본문 바로가기

IT 로그

추천시스템 공부(1) 협업필터링 - 절대 거절 못할 제안을 하지

728x90
반응형

추천시스템을 공부해보자 ! 

데이터 분석 중에서 추천시스템에 가장 관심이 많이 생기고 재밌다

애초에 내 특기가 누군가에게 좋은걸 추천해주는 거여서인가 

암튼 각설하고 바로 추천시스템을 누구나 구현할 수 있게끔 추천 시스템 을 완전 타파해보자 

 

 

- 추천시스템의 유형 

* 콘탠츠 기반 필터링 (Content Based Filtering)

* 협업 필터링(Collaborative Filtering)

1) 최근접 이웃 협업 필터링(Nearest Neighbor)

2) 잠재요인 협업 필터링 (Latent Factor) 

 

trend : 넷플릭스 추천 시스템 경연 대회에서 행렬 분해 기법을 이용한 잠재 요인 협업 필터링 방식이 우승하면서 잠재 요인 협업 필터링 적용 중, BUT 서비스하는 아이템의 특성에 따라 콘텐츠 기반 필터링이나 최근접 기반 필터링 유지하는 사이트 많다. (아마존은 아직도 최근접 필터링 방식)

요즘은 개인화 특성 강화를 위한 하이브리드 형식의 콘텐츠 기반 + 협업 기반을 적절히 사용하는 경우도 늘고 있음 

 

콘텐츠 기반 필터링 추천 시스템 

 

정의 : 사용자가 특정 아이템을 매우 선호하는 경우, 그 아이템과 비슷한 콘텐츠를 가진 다른 아이,템을 추천하는 방식

EX : 사용자가 특정 영화에 높은 평점을 줬다면 그 영화의 장르, 출연 배우, 감독, 영화 등의 콘텐츠와 유사한 다른 영화를 추천해주는 방식 

 

예시 : 사용자 A가 영화 a에 높은 점수, b 에 높은 점수를 줬다 그럼 a b와 장르, 감독, 출연 등의 정보가 유사한 다른 영화 c를 추천할 수 있게 된다. 

 

최근접 이웃 협업 필터링

취향이 비슷한 사람들에게 묻는다 ! 

말그대로 취향 거리가 가까운 이웃 

 

- 정의 : 사용자가 아이템에 매긴 평점 정보나 상품 구매 이력과 같은 사용자 행동 양식 (User Behavior)만을 기반으로 추천을 수행하는 것을 협업 필터링이라고 함 

 

- 협업 필터링의 목표 : 사용자 - 아이템 평점 매트릭스와 같은 축적된 사용자 행동 데이터를 기반으로 사용자가 아직 평가하지 않은 아이템을 예측 평가(Predicted Rating) 하는 것

 

 

출처 : https://blog.bizspring.co.kr/30385

위 그림에 물음표 되어 있는 평점을 예측하는 방식 

 

- 협업 필터링의 종류 : 최근접 이웃 방식 & 잠재 요인 방식 

- 특징 : 두 방식 모두 사용자 - 아이템 평점 행렬 데이터에 의존해 추천 수행, 행은 개별 사용자 열은 item 정보를 담아야 하며 만약 행이 item 열이 사용자로 되어 있으면 python의 pandas를 이용해서 pivot 처리를 해줘야 한다. 

보통 item이 더 많아서 열의 수가 많은 다차원 행렬이고 사용자가 아이템에 대한 평가를 매기는 경우가 많지 않아 희소행렬(Sparse Matrix) 특성을 가짐

 

- 최근접 이웃 협업 필터링 = 메모리 협업 필터링 

사용자 기반과 아이템 기반으로 나뉜다.

사용자 기반 : 너랑 취향 비슷한 애들도 이거샀다 더라?

아이템 기반 : 이 제품 산 애들이 요 제품도 같이 샀어 

 > 사용자 기반 : 특정 사용자와 유사한 다른 사용자를 TOP-N 으로 선정해 이 TOP-N  사용자가 좋아하는 아이템 추출하는 방식으로 특정 사용자와 다른 사용자간의 유사도 측정 후 가장 유사도가 높은 사위 N명의 사용자를 추출해 그들이 선호하는 아이템을 추천하는 것 

 

> 아이템 기반 : 아이템간의 속성이 아님 

아이템이 얼마나 비슷한지가 아니라 사용자들이 그 아이템을 좋아하는지 / 싫어하는지의 평가 척도가 유사하는 아이템을 추천 기준으로 사용하는 알고리즘 

 

출처 : https://pearlluck.tistory.com/667

ITEM A를 기준으로 비교했을 때 C보다 B와 훨씬더 평가정보가 유사한 것을 알 수 있다.

 

어떤게 더 정확해 ?

일반적으로 사용자 기반보다 아이템 기반이 훨씬더 정확도가 높다. 왜? 비슷한 영화를 구입했다고 해서 그 사람의 취향이 완전히 같다고 하기에는 변수가 많다. 매우 유명한 영화는 취향과 관계없이 대부분의 사람이 관람하는 경우가 많고, 사용자들이 평점을 매긴 영화의 개수가 많지 않은 경우가 일반적이라 다른 사람과의 유사도를 비교하기 어려운 부분도 있다. 

주로 코사인 유사도를 활용해 유사도 측정을 적용한다.

 

 

반응형