4 minute read

Collaborative Filtering

협업 필터링 (Collaboraitve Filtering, CF)

  • 많은 유저들로부터 얻은 기호 정보를 이용해 유저의 관심사를 자동으로 예측하는 방법

최종 목적 -> 유저 u가 아이템 i에 부여할 평점을 예측하는 것

방법

  1. 주어진 데이터를 활용해 유저-아이템 행렬을 생성한다.
  2. 유사도 기준을 정하고, 유저 혹은 아이템 간의 유사도를 구한다.
  3. 주어진 평점과 유사도를 활용하여 행렬의 비어 있는 값을 채운다.

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)

Pearson

  • 각 벡터를 표본 평균으로 정규화한 뒤에 코사인 유사도를 구한 값.
  • 직관적으로 해석하면 (X와 Y가 함께 변하는 정도) / (X와 Y가 따로 변하는 정도)
  • 1에 가까우면 양의 상관관계, 0일 경우 서로 독립, -1에 가까울수록 음의 상관관계를 나타냄
  • 어느 환경에서도 추천 시스템에서 어느정도의 성능은 낸다.

Jaccard Similarity

Jaccard

  • 집합의 개념을 사용한 유사도
  • Cosine, Pearson 유사도와 달리 길이(차원)이 달라도 이론적으로 유사도 계산 가능
  • 두 집합이 같은 아이템을 얼마나 공유하고 있는지 나타냄
    • 두 집합이 가진 아이템이 모두 같으면 1
    • 두 집합에 겹치는 아이템이 하나도 없으면 0

Rating prediction

유저 매트릭스의 빈칸을 채우는 일

UBCF - Absolute Rating

  • Average
    • 빈칸을 채울 때 다른 유저들의 대한 rating 평균을 냄
  • Weighted Average (유사도를 필요로 함)
    • 다른 유저들에 유사도를 반영하여 평점을 예측한다.
  • 한계
    • 유저가 평점을 주는 기준이 제각기 다름

UBCF - Relative Rating

  • 상대적 평점의 개념
  • 유저의 평균 평점에서 얼마나 높은지 혹은 낮은지, 그 편차(Deviation)를 사용함.

itemset by boostcamp

  • predicted rating = 유저 평균 rating + predicted deviation

IBCF - Absolute Rating

아이템 기반 협업 필터링도, 유저 기반 협업 필터링과 대부분 유사하다.

Collaborative Filtering 의 최종 목적

  • 유저 u가 아이템 i에 부여할 평점을 예측하는 것

Recommendation System의 최종 목적

  • 예측 평점이 높은 아이템을 유저에게 추천하는 것
    • Top-N Recommendation

참고자료

Comments