본 포스팅은 Fastcampus 강의를 수강하며 일부 내용을 정리한 글임을 밝힙니다. 보다 자세한 내용은 아래 강의를 통해 확인해주세요.
참고 : Fastcampus 딥러닝을 활용한 추천시스템 구현 올인원 패키지 Online
Ch 05. Neighborhood-based Collaborative Filtering
Neighborhood-based Collaborative Filtering
= Memory-based Collaborative Filtering: 이미 갖고 있던 데이터로 무언갈 하겠다!
- User-item간의 평점 등 주어진 데이터로 새로운 아이템 예측
- 특징
- 구현이 간단
- user-item 행렬을 통해 item-tiem 또는 user-user 간의 유사도 계산이 다임, 딥러닝처럼 네트워크 복잡 구성 필요 X
- Model-based CF에 비해 계산량 적음
- 학습을 한다는 것이 가장 큰 차이!
- 주어진 데이터를 모델을 통해 학습해서 새로운 추천을 만들어낸다
- 새로운 user, item이 추가되더라도 비교적 안정적 (행렬에 잘 위치시키기만 하면 됨)
- 새로운 content(user 또는 item) 추천 가능
- 협업필터링의 고질적인 장점이자 단점이 될 수 있음
1. User-based Collaborative Filtering
- 사용자 기반 협업 필터링
- 두 사용자가 얼마나 유사한 아이템을 좋아했는지 바탕으로 추천
- 플랫폼에서 사용자가 많은 부분을 차지하는 시스템에 적용하기 적절
- [참고] Regression vs. Classification
- 평점 등 점수 분포가 continuous일 때와 discrete할 때 나눠서 적용
- 평점 등 점수를 정규화하여 추천알고리즘에 적용 ➡️ Mean-Centering, Z-score normalization
- 원리: 유저 A와 전체 유저에 대한 유사도를 구한 다음, 유저 A의 어떤 아이템에 대한 평점(예시)을 예측할 때 가장 유사도가 높은 다른 유저의 평점(구하고자 하는 동일한 아이템에 대해)을 기반으로 예측함*
2. Item-based Collaborative Filtering
-
아이템과 아이템 사이의 유사도
-
과거 아이템 선호도 데이터 기반으로 선호 연관성 높은 다른 아이템 추천
- 컨텐츠기반 추천시스템과 차이점: 여러 사용자의 과거 선호도 데이터로 연관성 높은 아이템을 찾고, 해당 아이템을 사용자에게 추천!
- 컨텐츠기반은 아이템 특성 바탕으로
-
ex) 아마존, 넷플릭스 등
-
원리: 유저 A가 구하고자하는 상품 B의 평점에 대해, 상품 B가 다른 상품들과 유사도가 얼마인지 계산한 후 유저 A가 다른 상품들에 대해 평점 준 것과 유사도 바탕으로 계산
ex)
- 상품 B와 상품 C의 유사도 = 0.7, 상품 B와 상품 D의 유사도 = 0.85
- 유저 A의 다른 상품 C, D에 대한 평점: 상품 C=2, 상품 D=2.25
- 유저 A의 상품 B의 평점은? 0.7+0.85(0.7×2)+(0.85×2.5)
3. User-based vs. Items-based Collaborative Filtering
1. 정확도
- User 수 < Item 수: User-based
- User 수 > Item 수: Item-based
- User가 적으면 User에 집중, Item이 적으면 Item에 집중하는 것이 더 낫다
- Item이 User에 비해 너무 많으면 matrix가 너무 sparse해져서 정보 손실 등 추천 알고리즘의 정확도 높이기 어려움
2. 모델 Robustness
- 유저와 아이템이 얼마나 자주 그리고 많이 변하는지에 따라 다름
- 아이템 수가 크게 변하지 않는다 ➡️ Item-based
- ex) 아이템 수가 1만개로 고정되고 유저가 계속 유입된다면 이전에 계속 평가해놓은 이전 유저들의 정보를 이용해 새로운 유저에게 추천이 가능하다는 것
3. 설명력
- Item-based: 비슷한 item과 가중치로 함께 설명 가능
- 과거 데이터를 봤을 때 이러이러한 아이템들과 이만큼의 유사도가 존재하기때문에~ 라고 설명 가능
- User-based: 특정 user와 비슷한 user로 분류된 user의 실제 취향을 알 기 어렵다
4. 새로운 추천 기능
- Item-based: 과거 아이템에 의존 ➡️ 새로운 아이템 추천 어려움
- User-based: 여러 유저의 데이터 봄 ➡️ 더 새로운 추천 가능
정답이 있는 건 아니고 일반적으로 둘을 이렇게 비교할 수 있다는 것!
- 새로운 추천이 필요한 플랫폼 운영 ➡️ User-based
- 반대로 사용자에게 아이템에 치중된 플랫폼 운영 ➡️ Item-based
4. User-based & Item-based collaborative Filtering
문제점
1. Cold-start 문제 ➡️ 딥러닝 기반 추천 알고리즘
- 충분한 데이터가 없다면 좋은 추천 ❌
- 유저에 대한 아무런 기록이 없다면, 새로운 아이템에 대해 정보 없다면 ➡️ 추천 불가능
2. 계산량
- 데이터 많아질수록 유사도 계산 많아짐
- 하지만 데이터가 많아야 추천 품질이 좋아짐..!
3. Long-Tail Economy ➡️ 모델 기반 협업필터링
- 대부분의 사용자가 관심 갖는 소수 아이템으로 쏠림 현상
- 관심이 상대적으로 부족한 아이템은 추천되지 못하는 현상