추천의 종류 및 개념.
추천에는 몇가지 방법을 제공한다.
아이템 자체의 내용을 분석해서 하는 추천하는 방법과 사용자들이 아이템을 평가한 이력을 분석해서 추천하는 방법이 대표적이다.
각 방법의 정확한 개념과 기본적인 사용법을 정의해본다.
User-based Collaboration Filtering | Item-based Collaboration Filtering | Content-based Filtering |
사용자 A 가 선호하는 아이템을 사용자 B 에게 추천한다. 사용자 A 와 B 의 연결고리는 유사도만 있다. Cold-start 단점이 있다. |
사용자 A, B, C, D, E 모두 아이템 X 를 가지고 있다. B, C, D, E 가 모두 아이템 X 와 아이템 Y 를 좋아한다면 아이템 X 와 Y 의 유사도는 높다고 볼 수 있다.(아이템간의 유사도는 평점을 이용해서 계산한다.) 따라서 사용자 A 에게 아이템 Y 를 추천한다. User-based 방식과 유사하게 아이템간의 유사도를 측정하는 방식. 넷플릭스, 아마존에서 사용하는 방식. |
아이템 자체의 속성(메타데이터)만을 이용한다. 사용자가 아이템 X 를 선택하면 아이템 X 와 유사도가 가장 높은 아이템을 추천한다.(아이템간의 유사도는 메다테이터만을 이용해서 계산한다.) 비슷한 장르(카테고리)만 추천한다는 단점. 사용자의 액션이 없이 아이템의 고유 메타데이터만이 고려대상이다. |
1. '사용자-아이템-평점' 의 sparse matrix 를 구한다. 2. '사용자-사용자' 유사도를 구한다. - '아이템-아이템' 유사도 구하는 방법과 동일하다. 3. 유사도가 높은 사용자의 평점이 높은 아이템을 추출한다. - 장르는 상관없이 평점만 고려한다. |
NaN 가 아닌 평점을 추려낸다. 평점을 이용해서 '아이템-아이템' 유사도를 구한다. 1. Sim(x, y) 를 구한다. |
아이템의 메타데이터를 이용해서 빈도수를 구한다. 유사도를 구한다. 1. TD-IDF 를 구한다. 2. Sim(x, y) 를 구한다. |
user-based 방식을 보완하는 것이 item-based 방식이다.
유사한 방식으로 구현되어 있으며 둘을 같이 엮어서 생각하는 것이 좋다.
일반적으로 사용자 숫자가 아이템 숫자보다 많기 때문에 user-based 방식을 사용할때 메모리 문제를 겪는 경우가 많다.
item-based 방식은 장르를 가리지 않고 추천이 가능하나 user-based 방식과 비교해서 정확성이 떨어진다는 단점이 있다.