추천시스템 기본이론2 -collaborative filtering-

1. motivation

 

상품을 추천하고자하는 사용자가 x일때, x와 유사한 취향을 가지는 여러 사용자들을 찾는다.

 

이 유사한 취향을 가지는 여러 사용자들이 선호한 상품들을 찾는다.

 

이 상품들을 x에게 추천하고자 하는 방법이 협업 필터링이다.

 

 

2. idea

 

유사한 취향의 사용자들을 찾는 것이 핵심인데 어떻게 찾아야 할까?

 

 

 

위와 같은 상황을 상상해보자. 평점이 입력되지 않는 경우도 존재한다.

 

그리고 한눈에 보면 지수와 제니는 취향이 비슷하고 제니와 로제는 취향이 서로 반대된다.

 

지표로 어떻게 나타내냐? 평점간 상관계수로 두 사람의 취향의 유사도를 구하는 것이다.

 

 

 

공동 구매한 상품을 가정하고 있는데 2명중 평점을 1명만 제시한 경우 그 상품은 상관계수 계산에 제외하겠다는 것이다.

 

당연하지만 분자를 보면 같은 상품에 대해 둘 다 같은 방향으로 평점을 주면(둘 다 높은 점수를 주거나 둘 다 낮은 점수를 주거나) 상관계수 값이 커진다.

 

(음수로든 양수로든) 그래서 취향이 유사하다는 뜻이다.

 

 

3. example

 

 

둘 다 평점을 준 상품에 대해서만 상관계수를 계산

 

지수와 제니는 취향이 비슷해보였는데 실제로도 높은 0.88이라는 상관계수를 보임

 

 

둘 다 평점을 준 상품에 대해서만 상관계수를 계산함

 

지수와 로제는 예상대로 상관계수가 음수로 취향이 완전 반대

 

지수와 제니는 취향이 비슷하고 지수와 로제는 취향이 반대이다.

 

제니가 미녀와 야수를 좋아하지 않았기 때문에 취향이 비슷한 지수도 미녀와 야수를 좋아하지 않을 확률이 높아 지수의 "미녀와 야수"칸의 ?를 추측 가능하다

 

 

4. estimation of rating

 

상품 s를 추천하고자 하는 사용자 x에 대하여 상품 s를 구매했고 취향이 유사한 k명의 사용자 집합 N(x;s)을 구한다.

 

사용자 x와 k명 각각의 취향의 유사도를 상관계수를 이용하여 구한다.

 

이 상관계수를 가중치로 이용한 k명의 상품 s에 대한 평점의 가중평균을 x의 추정된 평점으로 한다.

 

 

5. decision of recommendation

 

위 방법으로 x가 아직 구매하지 않은 상품들에 대해 평점을 추정한다.

 

추정한 평점 중 가장 높은 평점이 기록된 상품을 x에게 추천한다.

 

 

6. 장단점

 

사용자의 취향으로 상품을 추천하므로 상품의 속성 정보가 필요 없다

 

새 상품, 새로운 사용자에게는 사용이 어렵다. 사용자의 취향을 파악하지 못해서 그렇다.

 

독특한 취향의 사용자에게는 쓰기 어렵다.

 

왜냐하면 유사한 취향을 가진 사용자를 찾기 어려워서 그렇다.

 

앞에서 예를 들었던 상관계수가 정의되지 않는 [1,1,1,1,1,1,1,1,1,1….]로 모든 평점을 (악의적으로?) 동일하게 주는 사람의 경우를 말한다.

 

 

 

 

TAGS.

Comments