본문 바로가기
Computer Science/Data Science

[Recommendation System] Collaborative Filtering

by Gofo 2022. 6. 13.

Collaborative Filtering

나(activate user)와 취향이 비슷한 사람들(collaborate)들이 공통적으로 좋아할 만한 아이템을 추천한다.

 

Data 표현 : Rating Matrix

Rating matrix를 이용하여 데이터를 표현할 수 있다.

row : user, column : item으로 하여 user가 item을 좋아하는 점수를 표현한다.

 

구매 이력이 없는 경우 rating을 할 수 없기 때문에 empty(missing rate)로 남긴다.

 

알고리즘

  1. Neighbor 찾기 : active user c와 취향이 비슷한 user group(neighbor)을 찾는다.
  2. $r_{c, s}$ 추정 : 이웃들의 점수에 기반해서 내가 그 아이템에 점수를 어떻게 줄 것인지 추정한다.
  3. 추천 : 가장 높은 몇개의 estimated rated item을 추천한다.

 


CF Methods

Heuristic based

Similarity를 이용하여 neighbors을 찾는다.

다양한 similarity를 이용할 수 있다.

 

  • PCC(Pearson correlation coefficient)

  • Cosine similarity : 공통으로 존재하는 item의 차원에서 방향을 고려하여 similairty를 계산한다.

  • Aggregation
    • 취향이 비슷한 neighbor들의 통계를 이용한다.
    • 평균(a), weighted sum(b), 평균과의 차이의 합(c) 등을 이용할 수 있다.

 

Machine Learning based Method

  • matrix(tensor) factorization
    1. 나눈 후 다시 곱했을 때 원본과 유사해지도록 하는 factor($f$)를 골라 matrix를 쪼갠다.
    2. 나눠진 user feature과 item feature을 다시 곱하면 몰랐던 정보를 알 수 있다.

  • social network analysis : user와 item을 node로 표현해서 user가 item을 사면 edge로 연결한다.
  • deep learning

 

 

  •  

댓글