본문 바로가기
네이버 부스트캠프 AI Tech/Recommendation System

[부스트캠프 AI Tech] Collaborative Filtering

by 중앙백 2022. 3. 11.

Collaborative Filtering(CF, 협업 필터링)

 - 유저들로부터 얻은 기호 정보를 이용해 유저의 관심사를 예측하는 방법 

 - 목적: 유저 u가 아이템 i에 부여할 평점을 예측하는 것

 - User-Item matrix를 생성하고 유사도 기준을 정해 유사도 구하거나 평점을 예측

 

분류

  • Neighborhood-based CF(Memory-based CF)
     - User-based
     - Item-based
  • Model-based CF
     - Non-parametric(KNN, SVD)
     - Matrix Factorization
     - Deep Learning
  • Hybrid CF
     - Content-based Recommendation과 결합

 

 

Neighborhood-based CF(NBCF)

구현이 간단하고 이해가 쉬움 

한계점

 - scalability & sparsity 문제가 존재

 - 아이템에 대한 평점 예측을 위해서는 그 아이템을 평가한 모든 유저와의 유사도를 구해야 하는데 유저가 많아질 경우 연산 횟수가 늘어나고 오히려 성능이 떨어지기도 함

 

User-based CF(UBCF)

두 유저가 얼마나 유사한 아이템을 선호하는 지

 

Item-based CF(IBCF)

두 아이템이 유저들로부터 얼마나 유사한 평점을 받았는지 아이템간 유사도 구하고 타겟 아이템과 유사도 높은 아이템 중 선호도 큰 아이템 추천

 

 

K-Nearest Neighbors CF(KNN CF)

 - 아이템에 대한 평점 예측시, 아이템을 평가한 모든 유저 데이터를 사용하지 않고 타겟 유저와 가장 유사한 K명의 유저만 이용해 평점 예측

 - 유사도 측정 : Mean squared difference similarity, Cosine similarity, Pearson Similarity, Jaccard Similarity

 

Rating Prediction

 - Average vs Weighted Average

 - Absolute rating vs Relative Rating(use deviation)

 

 

 

 

Model Based Collaborative Filtering

 - 항목 간 유사성을 단순 비교하는 것에서 벗어나 데이터에 내재한 패턴을 이용해 추천하는 기법

 - Parametric Machine learning

 - 장점

   1) 모델 학습/빠른 서빙 속도

   2) sparsity / scalability 개선

   3) Overfitting 방지

   4) Limited Coverage 극복

 

SVD(singular Vector Decomposition)

Rating Matrix를 user latent matrix, latent diagonal matrix, item latent matrix로 분해하는 기법

한계점

 - 분해하려는 행렬이 불완전할 경우 정의되지 않음.

 - 결측치를 채우는 과정이 필요하고

 - 따라서 결측치가 많을 경우에는 데이터를 왜곡시키고 예측 성능을 떨어뜨림

 

MF(Matrix Factorization)

 - User-Item rating matrix를 user latent matrix와 item latent matrix로 분해하는 방법

 - SVD와의 차이점 : SVD는 모든 데이터를 모델링에 활용했으나 MF는 관측된 선호도(평점)만 모델링에 활용

 

ALS(Alternative Least Square)

 - Implicit feedback을 다룰 수 있는 MF

 - 기본 컨셉 : 유저/아이템 행렬 중 하나를 상수로 놓고 나머지 매트릭스를 업데이트

댓글