Develope/AI 교육

[AI-역량강화] 협업 필터링(Collaborative Filtering) 관련 논문과 해당 모델의 특징

고로이 2021. 5. 31. 15:12
반응형

각 협업 필터링 모델은 논문에 기반한 것.

 



1. Neural Collaborative Filtering
* Neural Collaborative Filtering (IWWWC, 2017년)
 1) 개요
  - 기존 Linear Matrix Factorization 의 한계점 지적
  - Neural Ner 기반의 협업 필터링으로 non-linear한 부분을 커버
  - user와 item 관계를 보다 복잡하게 모델링 할 수 있다.
  - Matrix Factorization은 Neural CF 의 한 종류 이다. 

 2) 구현
  - User가 Item을 관측했는지에 따라 0또는 1로 표현한다. 선호도의 지표가 아닌 단순 관련성이다.
  - 바이너리이기 때문에 베르누이 분포를 이용한다.
  - Interaction Function F를 정의하고 user와 item간 interaction 이 있는지 확률을 예측한다
  - Loss function : Binary Cross Entropy

 3) 레이어 구성
  - Input Layer : Sparse one-hot Vector 표현
  - Embedding Layer : Sparse one-hot Vector => dense Vector 로 변환
  - Neural CF Layer : User Latent Vector + Item Latent Vector
  - Output Layer : 상관관계를 0과 1로 표현 

 4) 결론
  - General한 Framework NCF
  - Linear 모델의 한계를 Neural Network를 사용해서 해결
  - General Matrix Factorization 와 Multi-Layer Perceptron 의 장점을 합함


2. Factorization Machine
* S.Rendle, 'Factorization Machines', IEEE International Conference on Data mining, Sydney, NSW, 2010 

1) 개요
  - Support Vector Machine + Factorization Model(Matrix Factorization) 
   => sparse한 상황에서 맞지 않는 SVM의 단점을 커버
  - 실수값(Real Valued Feature)을 활용한 General Predictor이다.
   - Classific 문제 : 0또는 1(부호)를 예측
   - regression 문제 : Least Square erorr 를 활용
   - Ranking 문제 : 점수를 order로 설정
  - Linear 식이기 때문에 복잡하지 않다.
  - 특별한 데이터나 옵티마이저가 필요하지 않아 어디서나 쉽게 적용 가능하다.
 2) 구현 
 3) 결론
  - Factorized Interaction을 사용하여 feature Vector X의 모든 Interaction을 모델링한다.
  - sparse한 상황에서 interaction을 추청할 수 있다. Unobserved Interaction에 대해서 일반화한다.
  - Linear Complexity를 가진다.
  - SGD를 이용한 최적화를 진행할 수 있고, Loss Function 을 사용 가능하다.
  - high-order 의 경우 복잡도가 증가한다.(단점)"

 



3. Wide and Deep
* Wide and Deep Learning for Recommander System, Google Inc, 2016
 1) 개요
  - Tensor Flow 에 내장 모델로 구현되어있다
  - Wide : Memorization. 
    * 주어진 데이터를 그대로 외움

    * 아이템간 상관관계를 찾아, 서로 집적적인 관련이 있는 아이템을 찾는다.
    * 아이템과 특징이 얼마나 동시에 일어나는지(interaction)
    * 과거 데이터를 전부 사용한다.
  - Deep : Generalization. 
    * 아이템에 집중하여 새로운 추천을 만든다.

    * Feature의 새로운 결합을 찾는다. 추천 종류의 다양성이 향상된다.
    * 딥러닝 이용
  - Wide & Deep : 선형 + 딥러닝
  - YouTube 에서 사용중인 모델이다.
 2) 구현 
  - User Action 을 통해 Train하여 모델 업데이트
  - Generalization : Features를 임베딩과 뉴럴넷에 학습한다.
  - loss 값을 가지고 Deep과 wide 둘 다 업데이트한다.
 3) 결론
  - Wide + Deep 모델 : Linear + embedding-based 장점 조합
  - 알고리즘의 성능 뿐만이 아니라 속도가 개선되어 실제 서비스에 잘 맞는다.
  - Feature 들 간의 상호작용을 모델링하는 Feature Engineering이 필요하다. (단점)

 


4. DeepFM 
* DeepFM: A Factorization-Machine based Neural Network for CTR Prediction
 1) 개요
  - Factorization Machine + Deep learning
  - Click Trouch Rate(CTR : 클릭할 확률) 을 예측하는 모델. 
  - Implicit feature 학습이다. 숨겨진 관계 학습가능
  - Low와 High interaction 모두 학습(Wide_deep)
  - feature engineering 없이 raw feature 그대로 사용 가능 => 도메인 지식 불필요
 3) 결론
  - Deep Component와 FM Component를 합쳐서 학습
  - Pre-Training이 필요하지 않다
  - High&low order feature interaction 둘 다 모델링한다.
  - 다른 SOTA 모델보다 AUC와 LogLoss에서 뛰어나다
  - 가장 효율적인 모델이다..?

5. AutoEncoder meets Collaborative Filtering
* AutoRec: AutoEncoder meets Collaborative Filtering, WWW conference, 2015
* Training Deep AutoEncoders for Collaborative Filtering, NVIDIA, 2017
 1) 개요
  - AutoRec + Collaborative Filtering
  - input과 output 의 차이를 최소화하는 느낌
  - RMSE 를 최소화한다.
  - MF와 비슷하지만 AutoRec는 non-linear하고 item만 embed한다.
  - Vision과 Speech 분야에 적용하기 좋다.


 2) Training Deep AutoEncoder for Collaborative Filtering
  - Deep할수록 일반화하는 성능이 우수하다
  - Regularization을 사용하여 오버핏팅을 방지한다. * Sparse한 데이터인 경우 과적합하는 경우가 발생한다.
  - Dense re-feeding


** 넷플릭스의 추천시스템에서 사용하는 정보
좋아요
선택하는 영상
시청 시간대
영상 시청 기기
되감거나 멈춘 지점
끝까지 시청했는지의 여부

* Input Data
기존의 영화 데이터 : 장르, 감독, 배우, 태그(줄거리, 분위기, 유머 코드, 등장인물 특성 등)
사용자의 개별 콘텐츠 소비 취향 : 찜 한 영화, 좋아요/싫어요
사용자의 시청 습관 : 특정 콘텐츠를 중지한 시점, 빨리 넘기는 시점, 보지 않고 찜만 해 놓은 콘텐츠 등의 미세한 콘텐츠 소비 패턴

* 중간 분석을 위한 생성 Data
사용자와 다른 사용자와의 영화 선택 유사성
사용자가 안 본 콘텐츠의 선호 예상 점수

넷플릭스는 50여명의 태거(Tagger)가 콘텐츠를 직접 시청하고 태그를 부여한다.

반응형