각 협업 필터링 모델은 논문에 기반한 것.
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)가 콘텐츠를 직접 시청하고 태그를 부여한다.
'Develope > AI 교육' 카테고리의 다른 글
[AI-역량강화] 추천 알고리즘 - 협업필터링 개념 및 용어 설명 (0) | 2021.05.31 |
---|---|
[AI-역량강화] 추천 알고리즘 개념 및 종류 정리 (0) | 2021.05.31 |
Ch 01. 추천시스템이란 (0) | 2021.01.29 |
[코딩야학] 머신러닝 3일차 (0) | 2021.01.06 |