欲速不達

일을 급히 하고자 서두르면 도리어 이루지 못한다.

Fantastic AI, Fantastic World

DS | Data Science/RecSys | Recommendation System

[RecSys] 한 눈에 보기 정리 - 4 : Memory-based Collaborative Filtering

_껀이_ 2022. 10. 26. 14:28
728x90
반응형

 

Collaborative Filtering

내가 좋아할만한 영화를 추천 받는다고 할때,

  • 내가 좋아하는 영화의 장르, 감독, 배우 등을 기준으로 찾아본다.
    • 내가 기준 - 내가 좋아하는 속성
    • Content-based Filtering
  • 나와 비슷한 성향을 가진 다른 사람들이 봤던 영화를 찾아본다.
    •  다른 사람 기준 - 나와 비슷한 사람들의 속성
    • Collaborative Filtering

 

Collaborative filtering의 기본 목적

: 아이템을 추천하는 대상이 되는 사용자의 해당 아이템에 대한 선호도를 예측하여 높은 선호도를 가지는 아이템을 추천

== user-item matrix에서 평점이 0으로 초기화되어있는 값을 예측하는 것

  • 예시
    • rating 0~5일때, 0인 부분 -> user u가 item i에 대해서 평점 매기지 않음
    • click 수 같이 0,1인 경우, 0인 부분 -> 클릭 X, 하지만 선호도는 모르니깐 예측해야함

 

 

1. User-based Collaborative Filtering

: 사용자간의 유사도를 기준으로 수행

  1. 평점 기반 user-item matrix (ex. df.pivot_table()) 생성
  2. user-item matrix를 사용하여 사용자간에 유사도 계산(ex. 코사인 유사도) -> 유사도 행렬 생성
    • user-user interaction
  3. 유사도 행렬에 있는 사용자간 유사도를 사용하여 가중평균 -> user-item matrix의 해당 부분의 rating을 업데이트

 

2. Item-based Collaborative Filtering

: 아이템 간의 유사도를 기준으로 수행

  1. 평점 기반 user-item matrix (ex. df.pivot_table()) 생성
  2. user-item matrix를 사용하여 아이템간의 유사도 계산(ex. 코사인 유사도) -> 유사도 행렬 생성
    • item-item interaction
  3. 유사도 행렬에 있는 사용자간 유사도를 사용하여 가중평균 -> user-item matrix의 해당 부분의 rating을 업데이트

 

 

3. Memory-based Collaborative Filtering의 장단점

  • 장점
    • 최적화나 훈련과정 X -> model-based가 아니라 수식을 통해 예측하는 것이므로
    • 접근 방식이 쉬움
    • Item-based CF : 시간에 따라 유사도 행렬의 변화가 적음 -> 업데이트가 자주 X / User-based CF보다 계산량 적음
      • ::: feature로 상대적으로 아이템의 수 변화량 보다 유저의 수 변화량이 높을 것
  • 단점
    • 데이터가 sparse 할수록 성능 저하 : user-item interaction 저하 : similarity 왜곡
    • 데이터가 많아질수록 계산량이 증가함 -> 확장성 문제 발생
    • User-based CF : cold start 문제
    • Item-based CF : Implicit feedback 문제 -> 사용자가 아이템에 대해 interaction(feedback)한 정보가 많아야함

 

 

 

728x90
반응형