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
: 사용자간의 유사도를 기준으로 수행
- 평점 기반 user-item matrix (ex. df.pivot_table()) 생성
- user-item matrix를 사용하여 사용자간에 유사도 계산(ex. 코사인 유사도) -> 유사도 행렬 생성
- user-user interaction
- 유사도 행렬에 있는 사용자간 유사도를 사용하여 가중평균 -> user-item matrix의 해당 부분의 rating을 업데이트
2. Item-based Collaborative Filtering
: 아이템 간의 유사도를 기준으로 수행
- 평점 기반 user-item matrix (ex. df.pivot_table()) 생성
- user-item matrix를 사용하여 아이템간의 유사도 계산(ex. 코사인 유사도) -> 유사도 행렬 생성
- item-item interaction
- 유사도 행렬에 있는 사용자간 유사도를 사용하여 가중평균 -> 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
반응형
'DS | Data Science > RecSys | Recommendation System' 카테고리의 다른 글
[RecSys] 한 눈에 보기 정리 - 6 : Context-Aware Recommender System (0) | 2022.10.27 |
---|---|
[RecSys] 한 눈에 보기 정리 - 5 : Model-based Collaborative Filtering (0) | 2022.10.26 |
[RecSys] 한 눈에 보기 정리 - 3 : Content Based Recommendation System (0) | 2022.10.26 |
[RecSys] 한 눈에 보기 정리 - 2 (0) | 2022.10.26 |
[RecSys] 한 눈에 보기 정리 - 1 (0) | 2022.10.20 |