Recommender System (3)

suyeon·2022년 10월 10일
0

Boostcamp AI Tech

목록 보기
3/6

1. Collaborative Filtering

2. CF를 활용한 Rating Prediction

3. Top-N Recommendation


1. Collaborative Filtering

  • 협업 필터링 (Collaborative Filtering, CF) : 많은 유저들로부터 얻은 아이템의 기호 정보를 이용해 유저의 관심사를 예측하는 방법, 아이템이 가진 성능은 활용하지 않는다.

  • NEighborhood-based Collaborative Filtering (NBCF)

    • 유저 기반 협업 필터링(User-based CF, UBCF) : 두 유저간의 선호도를 가지고 유사도를 구한 뒤 타겟 유저에게 추천을 한다.
      한 아이템에 대해 예측하기 위해서는 아이템을 평가한 유저 집합에 속한 모든 유저와의 유사도를 구해야 하기 때문에, 유저가 많을 경우 비효율적이다.
    • 아이템 기반 협업 필터링 (Item-based CF, IBCF) : 아이템과 아이템 사이의 유사도 비교
  • K-Nearest Neighbors CF (KNN CF)
    NBCF에서 시작된 아이디어
    어떤 타겟과 가장 가까운 K명의 이웃의 데이터를 참고하는 방법
    K = 25~50을 많이 사용하지만 자동으로 학습되는 파라미터가 아니라, 직접 튜닝해야 하는 하이퍼파라미터

  • 유사도 측정법(Similarity Measure)
    두 개체간의 유사성을 수치화해서 나타낼 수 있는 함수나 척도

    • Mean Squared Difference Similarity
      msd(u,v)=1IuviIuv(ruirvi)2,msd_sim(u,v)=1msd(u,v)+1msd(u,v) = \frac{1}{|I_{uv}|} \centerdot\sum_{i\in{I_{uv}}}(r_{ui}-r{vi})^2, msd\_sim(u,v) = \frac{1}{msd(u,v)+1}
      smooting이 적용됨 (smoothing : 분모가 0이 되는 것을 방지하기 위해 분모에 1을 더함)

    • Cosine Similarity : 같은 차원을 가진 두 벡터의 각도를 이용, 두 벡터가 가리키는 방향이 유사할수록 값이 커짐
    • Pearson Similarity (Pearson Correlation) : 같은 차원을 가진 두 벡터를 각각의 표본평균으로 정규화한 뒤 그 정규화한 벡터를 cosine 유사도 값을 구한 것, 어떤 도메인에서도 무난하게 추천 성능을 낼 수 있다는 장점이 있다고 알려져 있다.
    • Jaccard Similarity : 집합에 대한 유사도, 따라서 차원이 달라도 계산 가능
      J(A,B)=ABAB=ABA+BABJ(A,B) = \frac{|A\cap B|}{|A \cup B|} = \frac{|A\cap B|}{|A|+|B|-|A\cap B|}

2. CF를 활용한 Rating Prediction

  • Absolute Rating

    • Average : 단순히 평균값으로 예측하는 것
    • Weighted Average : 유저간의 유사도를 weight로 하여 가중 평균을 냄
    • 유저가 아이템에 평점을 주는 기준이 제각각 다르기 때문에 각각의 유저별로 가지는 편차를 적용할 수 없다는 한계가 있다.

  • Relative Rating : 상대적 평점

    • 개별 유저의 평균 평점을 구하고, 그 평점으로부터 얼마나 높은지/낮은지의 편차를 활용
      dev(u,i)=r(u,i)rˉudev(u,i) = r(u,i)-\bar r_u
      predicted rating = 유저 평균 rating + predicted deviation

3. Top-N Recommendation

  • 타겟 유저에 대해 아이템들의 모든 평점이 계산된 후 평점을 높은 순서대로 상위 N개를 뽑아 추천하면 된다.

0개의 댓글