Collaborative Filtering & CF & Neighborhood-based CF
Collaborative Filtering
협업 필터링 (Collaboraitve Filtering, CF)
- 많은 유저들로부터 얻은 기호 정보를 이용해 유저의 관심사를 자동으로 예측하는 방법
최종 목적 -> 유저 u가 아이템 i에 부여할 평점을 예측하는 것
방법
- 주어진 데이터를 활용해 유저-아이템 행렬을 생성한다.
- 유사도 기준을 정하고, 유저 혹은 아이템 간의 유사도를 구한다.
- 주어진 평점과 유사도를 활용하여 행렬의 비어 있는 값을 채운다.
CF 기반 추천 시스템의 원리
- 유저 A와 비슷한 취향을 가진 유저들이 선호하는 아이템을 추천
Neighborhood-based CF
이웃기반 협업 필터링의 원리를 이해하고 적용하자
User-based CF(UBCF)
- 두 유저가 얼마나 유사한 아이템을 선호하는가?
- 유저 간 유사도를 구한 뒤, 타겟 유저와 유사도가 높은 유저들이 선호하는 아이템을 추천
Item-based CF(IBCF)
- 두 아이템이 유저들로부터 얼마나 유사한 평점을 받았는가?
- 아이템간 유사도를 구한 뒤, 타겟 아이템과 유사도가 높은 아이템 중 선호도가 큰 아이템을 추천
Neighborhood-based CF(NBCF)
- 특징
- 구현이 간단하고 이해가 쉽다.
- 아이템이나 유저가 계속 늘어날 경우 확장성이 떨어진다.(Scalability)
- 주어진 평점/선호도 데이터가 적을 경우, 성능이 저하된다.(Sparsity)
- NBCF를 적용하려면 적어도 sparsity ratio가 99.5%를 넘지 않는 것이 좋다.
- 그렇지 않을 경우 모델 기반 CF을 사용해야함.
K-Nearest Neighbors CF (KNN CF) & Similarity Measures
- NBCF의 한계
- 유저가 많아 질 경우 계속해서 연산은 늘어나고 오히려 성능이 떨어진다.(모든 유저와 유사도를 구해야하기 때문)
- KNN 협업 필터링의 아이디어
- 유저와 가장 유사한 K명의 유저를 이용해 평점을 예
- 유사도 측정법
- 두 개체 간에 유사성을 수량화하는 실수 값 함수 혹은 척도
- 일반적으로는 거리의 역수 개념을 사용한다.
- 두 개체 간 거리를 어떻게 측정하냐에 따라 유사도 측정 방법이 달라짐.
Mean Squared Difference Similarity
- 추천 시스템에서 주로 사용되는 유사도
- 각 기준에 대해 점수의 차이를 계산, 유사도는 유클리드 거리에 반비례
- 분모가 0이 되는 것을 방지하기 위해 분모에 1이 더해짐(smoothing)
Cosine Similarity
주어진 두 벡터 X,Y에 대하여,
- \[\cos(\theta) = \cos(X,Y) = \frac{X\cdot Y}{\left| X \right|\left| Y \right|} = \frac{\sum_{i=1}^{N}X_i Y_i}{\sqrt{\sum_{i=1}^{N}X_i^2}\sum_{i=1}^{N}Y_i^2}\]
- 두 차원이 같아야 한다.
- 직관적으로 두 벡터가 가리키는 방향이 얼마나 유사한지를 의미한다.
- 비슷할수록 1, 반대일수록 -1에 가깝다.
Pearson Similarity(Pearson Coreelation)
- 각 벡터를 표본 평균으로 정규화한 뒤에 코사인 유사도를 구한 값.
- 직관적으로 해석하면 (X와 Y가 함께 변하는 정도) / (X와 Y가 따로 변하는 정도)
- 1에 가까우면 양의 상관관계, 0일 경우 서로 독립, -1에 가까울수록 음의 상관관계를 나타냄
- 어느 환경에서도 추천 시스템에서 어느정도의 성능은 낸다.
Jaccard Similarity
- 집합의 개념을 사용한 유사도
- Cosine, Pearson 유사도와 달리 길이(차원)이 달라도 이론적으로 유사도 계산 가능
- 두 집합이 같은 아이템을 얼마나 공유하고 있는지 나타냄
- 두 집합이 가진 아이템이 모두 같으면 1
- 두 집합에 겹치는 아이템이 하나도 없으면 0
Rating prediction
유저 매트릭스의 빈칸을 채우는 일
UBCF - Absolute Rating
- Average
- 빈칸을 채울 때 다른 유저들의 대한 rating 평균을 냄
- Weighted Average (유사도를 필요로 함)
- 다른 유저들에 유사도를 반영하여 평점을 예측한다.
- 한계
- 유저가 평점을 주는 기준이 제각기 다름
UBCF - Relative Rating
- 상대적 평점의 개념
- 유저의 평균 평점에서 얼마나 높은지 혹은 낮은지, 그 편차(Deviation)를 사용함.
by boostcamp
- predicted rating = 유저 평균 rating + predicted deviation
IBCF - Absolute Rating
아이템 기반 협업 필터링도, 유저 기반 협업 필터링과 대부분 유사하다.
Collaborative Filtering 의 최종 목적
- 유저 u가 아이템 i에 부여할 평점을 예측하는 것
Recommendation System의 최종 목적
- 예측 평점이 높은 아이템을 유저에게 추천하는 것
- Top-N Recommendation
Comments