Neighborhood-based Collaborative Filtering
Collaborative Filtering
(이전 게시글 내용) User의 정보를 기반으로 비슷한 성향을 가진 다른 User가 좋아하는 Item을 추천해주는 방식입니다. 이를 위해 많은 사용자로부터 수집한 구매 패턴이나 평점 데이터를 사용해야 합니다. A와 B가 유사한 장르의 시청 기록을 가지고 있으면, A가 본 영화를 B에게 추천해줄 것입니다.
한계: Cold Start, 많은 연산량, Long tail
저번 게시글에 이어 이번에는 협업 필터링 모델에 대해 다뤄보고자 합니다. 콘텐츠 기반 필터링 모델이 User의 과거 이력을 기반으로 유사한 Item을 추천해주는 원리였다면, 협업 필터링은 User간의 유사도까지 고려하는 알고리즘입니다. 앞서 말했듯이, User의 정보를 기반으로 비슷한 성향을 가진 다른 User가 좋아하는 Item을 추천해주는 방식이 협업 필터링의 기본 원리라고 이해할 수 있습니다. “나와 취향이 비슷한 사람이 선호하는 콘텐츠는 나도 선호할 가능성이 크다” 라고 가정을 하는 것입니다. 출처: https://medium.com/fnplus/neighbourhood-based-collaborative-filtering-4b7caedd2d11
협업 필터링의 종류
협업 필터링은 이웃기반(Neighborhood-based)과 모델기반(Model-based)로 구분할 수 있고, 이웃기반 협업 필터링은 다시 item-based와 user-based로 구분할 수 있습니다.
Neighborhood-based Collaborative Filtering
(= Memory-based Collaborative Filtering라고 부르기도 합니다.) 이웃기반 협업 필터링의 핵심은 **<비슷한 User에게="" 같은="" Item을="" 추천="">**입니다.비슷한>
Steps
- 과거이력이 비슷한 User A와 B 찾기 이때 Item-based 또는 User-based CF로 나누어 유사도를 계산합니다. 해당 결과를 기반으로 예측합니다.
- User A가 선호하는 새로운 Item
- 해당 Item을 User B에게 추천
아이템과 아이템 간의 유사도를 기준으로 추천하는 방법을 Item-Based, User A와 User B의 유사도를 기준으로 추천하는 방법을 User-Based라고 합니다.
Item-based CF
Item과 Item간의 유사도를 파악합니다. 위의 Matrix에서, Item D와 Item E의 유사도는 0.85, Item C와 Item D의 유사도는 0.7입니다. 이때 User C의 Item D 선호도는 (0.72+0.852.5)/(0.7+0.85)입니다. C유사도C점수 + E유사도E점수 를 C유사도 + E유사도로 나누는 수식입니다.
User-based CF
User와 User간의 유사도를 파악합니다.
User C와 가장 유사한 사용자는 User B입니다. 이때 User C의 Item D에 대한 선호도를 5로 예측할 수 있습니다. (User B와 동일하게)
Item-based CF vs User-based CF
정확도가 더 높은 모델 => User 수 < Item 수일 경우: User-based CF Item 수 < User 수일 경우: Item-based CF User가 적으면 User에 집중하고, Item이 적으면 Item에 집중하는 것이 더 나은 성능을 보입니다.
모델 Robustness가 더 높은 모델 => (Item 수가 크게 변하지 않을 경우) Item-based CF Item 수가 고정되고 유저가 계속 유입된다면 이전에 평가해놓은 정보를 이용해 새로운 유저에게 추천이 가능합니다.
설명력이 더 높은 모델 => Item-based CF Item-based는 아이템 간의 유사도를 근거로 설명할 수 있는 반면 User-based는 User들의 과거 이력을 기반으로 선호도를 예측하는 것이기 때문에 실제로 선호할지는 알기 어렵습니다.
새로운 아이템을 추천할 수 있는 모델 => User-based CF Item-based는 과거 아이템에 의존하는 반면 User-based는 여러 유저의 데이터를 기반으로 하기 때문에 새로운 추천이 가능합니다.