이웃 기반 협업 필터링 (1)
1. Introduction
메모리 기반 알고리즘으로도 알려져 있는 이웃 기반 협업 필터링 알고리즘은 비슷한 이용자들이 평점을 주는 방식에 비슷한 패턴을 보이고, 비슷한 아이템에는 유사한 평점을 주는 사실을 기반으로 한다. 이웃 기반 알고리즘은 크게 두 가지 유형이 있다.
-
사용자 기반 협업 필터링 (user-based collaborative filtering)
타깃 유저 A의 추천 제공을 위해 유사한 유저들의 평점을 이용한다. 예측된 A의 평점은 ‘피어 그룹’의 각 아이템의 평점에 대한 가중 평균으로 설정된다.
-
아이템 기반 협업 필터링 (item-based collaborative filtering)
타깃 아이템 B에 대한 추천을 만들기 위해 첫 번째로 해야 할 일은 B와 가장 유사한 아이템의 집합 S를 설정하는 일이다. 그리고 특정 사용자 A의 아이템 B에 대한 평점을 예측하기 위해서는 A에 대한 집합 S의 평점이 결정되어야 한다. 이 평점들의 가중 평균은 사용자 A의 아이템 B에 대한 평점을 예측할 때 계산된다.
두 알고리즘의 중요한 차이점은 사용자 기반 협업 필터링은 평점을 이웃 사용자의 평점을 활용해 예측하고, 아이템 기반 협업 필터링은 평점을 사용자가 평가한 평점 중 가장 비슷한 아이템에 대한 평점을 이용하는 것이다. 전자는 이웃은 사용자들 간의 유사도로 결정하는 반면, 후자의 이웃은 아이템 간의 유사도로 결정한다.
다른 협업 필터링 알고리즘처럼, 이웃 기반 협업 필터링 알고리즘은 다음 두 가지 중 하나의 방법으로 계산된다.
-
유저-아이템 조합의 평점 값 예측하기
평점 행렬 $R$의 entry $r_{uj}$에서 사용자 $u$ 에 대한 아이템 $j$의 누락된 평점을 예측하는 방법
-
상위-k 아이템 혹은 상위-k 사용자 결정하기
특정 사용자의 가장 관련 있는 상위-k의 아이템이나 특정 아이템의 가장 관련 있는 상위-k 사용자를 찾는 문제
상위-k의 아이템을 결정하는 문제가 상위-k 사용자를 아는 것이 더 관련이 있다. (다만 상위-k 사용자 문제는 마케팅에 활용하기 위한 적합한 사용자들을 결정하는 데 쓰일 수 있어 판매자에게 유용하다.)
2. 평점 행렬의 주요 특징
- Notation
사용자-아이템 평점 행렬 $R=[r_{ij}]$는 완전하지 않은 $m$ 사용자와 $n$ 아이템으로 이루어진 $m \times n$ matrix이다. 또한 평점 행렬의 일부만 명시되어 있거나 평가돼 있다. 사용자 $u$의 $j$ 아이템에 대한 평점은 $r_{uj}$로 나타내며, 행렬에서 지정된 entry(관측된 값)을 train data, 지정되지 않은 entry(관측되지 않은 값)을 test data라 한다. 이 경우 모든 지정되지 않은 entry는 class 변수나 종속 변수라 하는 특정 열에 속하게 된다. 따라서 추천 문제는 classification과 regression 문제의 일반화로 볼 수 있다.
평점은 여러 방법으로 나타낼 수 있다.
-
연속 평점
평점은 연속형이며 아이템에 대한 좋음과 싫음을 나타낸다. 사용자에게 실제 값의 무한한 가능성에 대한 부담을 줄 수 있어 상대적으로 굉장히 드물다.
-
인터별 기반 평점
주로 5점이나 7점 스케일을 주로 쓰며, 숫자 값은 명시적으로 평점 사이의 거리를 정의하고 평점 값 사이의 거리는 같다.
-
서수 평점
순서형의 범주형 값이 쓰이며, 이웃한 평점 쌍 간의 거리가 동일하지 않다고 가정한다. 양수와 음수의 응답은 bias 현상을 방지하기 위해 골고루 배치된다. 짝수의 응답이 쓰여진 경우 ‘Neutral’옵션은 존재하지 않는데, 이를 강제 선택 방법이라고 한다.
-
이진 평점
긍정 혹은 부정의 응답인 두 개의 옵션만이 존재한다. 사용자에게 중립을 선택하는 경우는 평가를 하지 않기 때문에 강제 선택 방법으로도 생각할 수 있다.
-
단항 평점
사용자에게 아이템에 대해 긍정 선호도를 지정할 수 있게 하지만 부정 선호도를 지정하는 구조는 없다. 고객이 명시적으로 피드백을 제공하지 않기 때문에 고객 행동에서 단항 평점을 간접적으로 유도하는 것을 암시적 피드백이라고 한다.
아이템에 대한 평점 분포는 long-tail 형태로 실제 환경의 속성을 반영한다. 아이템 중 극히 일부만이 자주 평가되며, 이러한 아이템은 인기 있는 아이템으로 해석할 수 있다. 대부분의 아이템은 거의 평가되지 않아, 평점은 크게 치우쳐져 있는 상태로 분포한다. 대부분의 항목은 적은 횟수로 평가되기 때문에, 이러한 평점 분포는 추천 프로세스에 중요한 영향을 끼친다.
- 많은 경우 잦은 빈도를 보이는 아이템은 판매자에게는 이익이 거의 없는 치열한 아이템인 경향이 있다. 이와 반대로 낮은 빈도를 보이는 아이템은 이윤이 더 크게 남는다. 이러한 경우 판매자는 적은 빈도의 아이템을 추천하는 것이 이득이다.
- Long-tail에서의 관찰된 평점은 매우 드문 경우이기 때문에 long-tail에서의 robust한 평점 예측은 일반적으로 더 어렵다. 사실 많은 추천 알고리즘은 유명한 아이템을 제안하는 경우가 더 많고, 이 현상은 다양함에 부정적인 영향을 주기도 하고 같은 유명 추천 아이템을 제안해 사용자가 지루하게 느낄 수 있게 한다.
- Long-tail 분포는 사용자가 자주 평가한 아이템의 수가 적음을 의미한다. 이는 이웃한 아이템이 종종 자주 평가된 아이템을 기반으로 정의되므로 이웃 기반 협업 필터링 알고리즘에도 중요한 영향을 미친다. 대부분의 경우 자주 등장하는 상품과 적게 등장하는 상품은 평점 패턴에 있어서 본질적으로 다른 차이를 갖고 있기 때문에 많은 평점을 받은 상품이 적은 평점을 받은 상품을 대변할 수 없다.
댓글남기기