Collaborative filtering
협업 필터링(collaborative filtering)은 많은 사용자들로부터 얻은 기호정보(taste information)에 따라 사용자들의 관심사들을 자동적으로 예측하게 해주는 방법이다. 협력 필터링 접근법의 근본적인 가정은 사용자들의 과거의 경향이 미래에서도 그대로 유지 될 것이라는 전제에 있다. 예를 들어, 음악에 관한 협력 필터링 혹은 추천시스템(recommendation system)은 사용자들의 기호(좋음, 싫음)에 대한 부분적인 목록(partial list)을 이용하여 그 사용자의 음악에 대한 기호를 예측하게 된다. 이 시스템은 특정 사용자의 정보에만 국한 된 것이 아니라 많은 사용자들로부터 수집한 정보를 사용한다는 것이 특징이다. 이것이 단순히 투표를 한 수를 기반으로 각 아이템의 관심사에 대한 평균적인 평가로 처리하는 방법과 차별화 된 것이다. 즉 고객들의 선호도와 관심 표현을 바탕으로 선호도, 관심에서 비슷한 패턴을 가진 고객들을 식별해 내는 기법이다. 비슷한 취향을 가진 고객들에게 서로 아직 구매하지 않은 상품들은 교차 추천하거나 분류된 고객의 취향이나 생활 형태에 따라 관련 상품을 추천하는 형태의 서비스를 제공하기 위해 사용된다.
Memory-based
User-Item Matrix로부터 도출되는 유사도 기반으로 아이템을 추천을 합니다.
User-based Filtering
유저 간의 선호도(아이템에 대한 점수)나 구매 이력을 비교하여 추천하는 방법을 User-based CF라고 합니다.
두 벡터 간의 유사도를 구하기 위해서 다양한 방법이 사용될 수 있는데 대개는 코사인 유사도, 피어슨 유사도가 이용된다.
Item-based Filtering
User-based와는 반대로 아이템 간의 유저 목록을 비교하여 추천하는 방법입니다.
Model-based
- (Machine learning) 추천 알고리즘의 기초 총정리 - Collaborative filtering , Matrix Factorization, SVD, Factorization machines
- 딥 러닝(Deep Learning) 기반의 추천 시스템
- (Survey & Code) Deep Learning based Recommender Systems (딥러닝 기반 추천시스템)
- 카카오 AI추천 : 협업 필터링 모델 선택 시의 기준에 대하여 – tech.kakao.com
Model-based CF는 User-Item interaction을 머신러닝이나 딥러닝과 같은 모델을 학습하는 것을 말합니다.
장바구니 분석(Association rule)과 같이 아이템 간의 관계를 학습할 수도 있고, Clustering을 통해 유사한 아이템이나 유저 간의 그룹을 형성할 수도 있습니다.
- Matrix Factorization (행렬 분해)
- SVD
- Factorization machines
- Bayesian Network
- Decision Tree
- MLP-based Factorization
- Neural Collaborative Filtering (NCF)
- Generalized Matrix Factorization (GMF)
- Session-based Recommendations with Recurrent Neural Networks
- Neural Attentive Session-based Recommendation
- AE-based Model
- 목적함수를 최적화하는 기법으로, 사용자와 아이템의 Latent Factor를 한 번씩 번갈아가며 학습시킴.
- 아이템의 행렬을 상수로 놓고 사용자 행렬을 학습시키고, 사용자 행렬을 상수로 놓고 아이템 행렬을 학습시키는 과정을 반복함으로써 최적의 Latent Factor를 학습시키는 방법.
- 아이템에 대한 사용자의 선호도를 확률 모형화한 모델로, 사용자가 선호하는 아이템을 단계별로 카테고리화(긍정적 아이템, 부정적 아이템) 해서 분석을 진행함.
- 아이템을 카테고리화할 때 사용자가 내재적 피드백을 제공했는지 안 했는지의 정보만을 이용하기 때문에 정보의 손실이 발생할 수 있지만, 기존의 기법 대비 우수한 성능을 보이는 모델.
- 손실 함수(Loss Function)에서 한 번에 하나의 아이템만을 고려하는 방법으로, 하나의 사용자에 대응하는 하나의 아이템만을 자기고 Score를 계산하고 이를 Label Score과 비교해서 최적화함.
- 아이템 간의 순서 관계를 무시하고 독립적인 개체로써 학습시키고 결과만을 정렬한다는 단점이 있으나, 그만큼 직관적인 모델이기도 함.
- 손실 함수(Loss Function)에서 한 번에 2개의 아이템을 고려하는 방법.
- 1개의 긍정적 아이템과 1개의 부정적 아이템을 고려하기 때문에, 데이터 셋에 {사용자, 긍정적 아이템, 부정적 아이템}의 3가지 항목이 포함되어야 하고, 이로 인한 데이터 중복을 해결하기 위해 Sampling 기법이 활용됨.
- 추천 시스템에서 랭킹 추천 분야에서 많이 쓰이는 평가 지표로, 특히 상위의 랭킹 리스트가 하위 랭킹 리스트보다 확연하게 중요한 도메인에서 유용한 평가 기준.
- 사용자와 아이템 데이터에 숨어있는 특징을 잠재적인 차원(Factor)을 사용해 나타내고자 하는 모델로, Matrix Factorization(행렬 분해) 방식이 대표적.
- 학습 데이터에 레이블 데이터를 별도로 구축할 필요가 없는, 주어진 데이터만으로 학습이 가능한 비지도 학습 모델로, Encoder와 Decoder의 2개의 신경망으로 구성됨.
- Encoder는 입력 데이터에서 학습에 중요하다고 판단되는 정보만을 남기고 불필요하다고 판단되는 데이터는 제거함으로써 첫 입력 데이터보다 더 작은 크기의 데이터를 생성하는 역할을 하며,
- Decoder는 다시 처음의 입력 이미지로 복원하는 역할을 함. 이때, Encoder가 생성하는 더 작은 크기의 데이터를 Latent Vector(잠재 벡터)라고 칭함.
- 즉, Autoencoder가 학습하고 데이터를 생성하는 과정은 한 문장의 설명을 듣고 몽타주를 그리는 과정과 유사함.
- 모델이 특정 데이터에 과 적합(Overfitting) 되지 않고 다양한 데이터에 모두 적용 가능한 상태가 되는 것을 말함.
Content-based filtering vs Collaborative filtering
Recommender system#Content-based filtering vs Collaborative filtering 항목 참조.
Pytorch 로 Matrix Factorization 구현
MLP based Recommender Systems Architecture
- DIAG: A Deep Interaction-Attribute-Generation model for user-generated item recommendation
- A Ranking Recommendation Algorithm Based on Dynamic User Preference
- A Recommendation System Framework to Generalize AutoRec and Neural Collaborative Filtering
- Deep Collaborative Recommendation Algorithm Based on Attention Mechanism
- DeepSet: Deep Learning-based Recommendation with Setwise Preference
- Dual attention recommendation algorithm based on item attributes
- IntegrateCF: Integrating explicit and implicit feedback based on deep learning collaborative filtering algorithm
- Neural Attention Networks for Recommendation with Auxiliary Data
- Neural Matrix Factorization Recommendation for User Preference Prediction Based on Explicit and Implicit Feedback
- POI Recommendation Method of Neural Matrix Factorization Integrating Auxiliary Attribute Information
- Simultaneous Learning of the Inputs and Parameters in Neural Collaborative Filtering
- SDNN: Symmetric deep neural networks with lateral connections for recommender systems
- BRUCE: Bundle Recommendation Using Contextualized item Embeddings
- Context and Attribute-Aware Sequential Recommendation via Cross-Attention
- Effective and Efficient Training for Sequential Recommendation using Recency Sampling
- Modeling User Repeat Consumption Behavior for Online Novel Recommendation
- Recommendation as Language Processing (RLP): A Unified Pretrain, Personalized Prompt & Predict Paradigm (P5)
See also
- Recommender system (추천 시스템)
- Content-based filtering (컨텐츠 기반 필터링)
- Collaborative filtering (협업 필터링)
- Hybrid recommender systems
- Learning to rank (machine-learned ranking; MLR; 순위 학습)
- Similarity (유사도)