Recommender System with DL
추천시스템과 딥러닝
-
Nonlinear Transformation
- Deep Neural Network(DNN)은 data의 non-linearity를 효과적으로 나타낼 수 있음.
즉, 복잡한 user-item interaction pattern을 효과적으로 모델링할 수 있음
-
Representation Learning
- DNN은 raw data로부터 feature representation을 학습해 사람이 직접 feature design 하지 않아도 됨.
- 텍스트, 이미지, 오디오 등 다양한 종류의 정보를 추천시스템에 활용할 수 있음
-
Sequence Modeling
- DNN은 자연어 처리, 음성 신호 처리 등 sequential modeling task에서 성공적으로 적용됨(RNN, Transformer, ..)
-
Flexibility
- Tensorflow, PyTorch 등 다양한 DL 프레임워크를 활용하여 효율적인 서빙을 할 수 있음
Recommender System with MLP
- MLP(다층 퍼셉트론): 퍼셉트론으로 이루어진 Layer 여러 개를 순차적으로 이어 놓은 feed-forward neural network
- 선형 분류만으로 풀기 어려웠던 문제(xor, ..)를 비선형적으로 풀 수 있음
Neural Collaborative Filtering
- MF(Linear Model)의 한계를 지적하며 신경망 기반의 구조를 사용해 더욱 일반화된 모델을 제시한 논문
개요 : Matrix Factorization의 한계
- user와 item embedding의 선형 조합(linear combination)을 구함
rui=puTqi
-> user와 item 사이에 복잡한 관계를 표현하는 것에 한계를 가짐
- ex) user similarity가 s23>s12>s13일 때,
- p1,p2,p3를 latent space에 나타내면 (b)와 같음.
- 이때, s41>s43>s42인 새로운 user4를 space에 표현하려 한다면, (MF에서 하는 dot product는 Linear하기 때문에) 모순이 발생함.
(자카드 유사도 기준)
NCF’s General Framework
- Neural Collaborative Filtering은 Input, Embedding, Neural CF, Ouput이라는 4가지 Layer로 구성되어 있음.
- 이때 Neural CF Layer를 어떻게 구성하느냐에 따라, GMF / MLP / NueMF로 나눠짐
Neural CF Layer : Neural CF Layer & Output Layer
- Neural CF Layer & Output Layer : 두 Embedding된 벡터를 concat(혹은 내적)하여 원하는 Neural CF Layer에서 이들의 상호작용을 모델링하는 단계.
- Neural CF Layer의 형태는 다음과 같이 세 가지가 있음
1. GMF(Generalized Matrix Factorization)
- 두 임베딩 벡터를 내적하고, 이를 1차원으로 바꿔주는 하나의 선형 레이어를 지나서 출력층 활성화 함수(sigmoid)를 거치는 구조
- 이름 그대로, Matrix Factorization의 일반화된 버전임
- 두 임베딩 벡터의 선형적인 관계를 모델링함
2. MLP
- 두 임베딩을 concat하고, 여러 층의 MLP Layer를 태우는 구조
- 활성화 함수로 ReLU를 사용, 출력층에서는 Sigmoid를 사용
- 두 임베딩 벡터의 비선형적인 관계를 모델링함
3. NueMF
- GMF와 MLP를 앙상블(Concat)하여 출력층 활성화 함수(Sigmoid)를 거치는 구조
- 각 GMF와 MLP 모델의 input 임베딩은 서로 분리됨(모델의 확장성을 높임)
- 두 모델의 concat 비율도 정할 수 있음(하이퍼파라미터 α)
결과
- MovieLens, Pinterest 데이터셋에 대하여 NCF의 추천 성능이 기존 MF(BPR)나 MLP 모델보다 높음
Deep Neural Networks for YouTube Recommendations
- 딥러닝 기반 추천시스템을 실제 유튜브 서비스에 적용한 논문
- 논문
유튜브 추천 문제의 특징
- Scale
: 엄청 많은 유저와 아이템 vs 제한된 컴퓨팅 파워
-> 효율적인 서빙과 이에 특화된 추천 알고리즘이 필요
- Freshness
: 잘 학습된 컨텐츠와 새로 업로드 된 컨텐츠를 실시간으로 적절히 조합해야 함
- exploration / exploitation
- Noise
: 높은 Sparsity, 다양한 외부 요인 등으로 유저의 행동을 예측하기 어려움
-> Implicit Feedback, 낮은 품질의 메타데이터 등을 잘 활용해야 함
전체 구조: 2단계 추천 시스템
1. Candidate Generation
- 주어진 사용자에 대해 Top N 추천 아이템 생성
- High Recall이 목표.
2. Ranking
- 스코어를 구하고 최종 추천 리스트를 제공
- User Profile을 더 디테일하게 추가하고, Video 자체의 메타데이터 정보를 임베딩하여 모델의 피처로 사용
Candidate Generation
Candidate Generation 문제 정의
: extreme multiclass classification
- 특정 시간(t)에 유저 U가 C라는 context를 가지고 있을 때, 비디오(i) 각각을 볼 확률을 계산
- 비디오가 수백만 개가 되기 때문에 Extreme
- 결국 마지막에 Softmax 함수를 사용하는 분류 문제임
Candidate Generation 모델
-
다양한 피쳐 벡터들을 한 번에 concatenate
-
n개의 dense layer를 거쳐 User Vector 생성
-
최종 output layer는 비디오를 분류하는 softmax function 적용
-
Serving
: 유저를 input으로 하여 상위 N개의 비디오를 추출(내적이 큰 비디오 서칭!)
- 학습 후, 유저 벡터(u)와 모든 비디오 벡터(vj)의 내적을 계산
- Annoy, Faiss 같은 ANN 라이브러리를 사용하여 빠르게 서빙
Ranking
Ranking 문제 정의
: CG 단계에서 생성한 비디오 후보들을 input으로 하여 최종 추천될 비디오들의 순위를 매기는 문제
- Logistic 회귀를 사용하는 기본적인 방법
- 딥러닝 모델로 유저, 비디오 feature들을 풍부하게 사용하여 정확한 랭킹 스코어를 구함
- loss function에 단순한 클릭 여부가 아닌 시청시간을 가중치로 한 값을 반영
Ranking 모델
- user actions feature 사용 (더 rich한 피쳐를 사용)
- 유저가 특정 채널에서 얼마나 많은 영상을 봤는가
- 유저가 특정 주제의 동영상을 본 지 얼마나 지났는가
- 영상의 과거 시청 여부
- ...
-> DL 구조보다는 도메일 전문가의 역량이 좌우하는 파트
(많은 Feature Selection / Engineering이 필요)
- 네트워크 통과한 뒤, 비디오가 실제로 시청될 확률로 매핑
(단순 CTR 예측이 아닌 Expected Watch Time을 예측)
- Loss Function
- 단순 binary가 아닌 weighted cross-entropy loss 사용
- 비디오 시청 시간으로 가중치를 줌
- 낚시성/광고성 컨텐츠를 업로드하는 어뷰징을 감소시킴
Recommender System with AE
Autoencoder (AE)
: 입력 데이터를 출력으로 복원(reconstruct)하는 비지도 학습 모델 (참고자료)
- hidden layer를 input data의 feature representation으로 활용
- 이상치 탐지(Anomaly Detection), 표현 학습(Representation Learning), 이미지 노이즈 제거(Image Denoisin Task) 등에 활용됨.
- AE의 Loss는 Original input과 Reconstructed input의 차이를 최소화하는 방향으로 구성됨.
Denosing Autoencoder (DAE)
: 입력 데이터에 random noise나 dropout을 추가하여 학습
- noisy input을 더 잘 복원할 수 있는 robust한 모델이 학습되어 전체적인 일반화 성능이 향상됨.
U/I AutoRec: Autoencoders Meet Collaborative Filtering
- AE를 CF에 적용하여 기본 CF 모델에 비해 Representation과 Complexity 측면에서 뛰어남을 보인 논문
- 논문
아이디어
: Rating Vector를 입력과 출력으로 하여 Encoder & Decoder Reconstruction 과정을 수행
- 유저 또는 아이템 벡터를 저차원의 latent feature로 나타내어이를 사용해 평점 예측
- Autoencoder의 representation learning을 유저와 아이템에 적용한 것.
- MF와의 비교
- MF는 linear, low-order interaction을 통한 representation이 학습되지만(-> 표현력에 한계가 있음), AutoRec은 non-linear하므로 더 복잡한 interaction 표현이 가능.
모델
- 아이템과 유저 중, 한 번에 하나에 대한 임베딩만을 진행
(아래는 아이템 임베딩 기준)
- ∗r(i) : 아이템 i의 Rating Vector
- Rui : 유저 u의 아이템 i에 대한 Rating
- V : 인코더 가중치 행렬
- W : 디코더 가중치 행렬
학습
- 기존의 Rating과 Reconstructed Rating의 RMSE를 최소화하는 방향으로 학습
- 관측된 데이터에 대해서만 역전파 및 파라미터 업데이트 진행
결과
- 무비렌즈와 넷플릭스 데이터셋에서 RBM, MF 등의 모델보다 좋은 성능
- hidden unit의 개수가 많아질수록 RMSE가 감소함을 보임
- 본 논문 이후 고급 AE 기법을 CF에 활용한 후속 연구들이 나오기 시작
- DAE: Collaborative Denoising Auto-Encoders for Top-N Recommender Systems
- VAE: Collaborative Variational Autoencoder for Recommender Systems
- I-AutoRec이 U-AutoRec보다 더 잘 동작함
- Rating per item이 Rating per user보다 압도적으로 많기 때문이라고 저자는 설명
Collaborative Denoising Auto-Encoders for Top-N Recommender Systems(CDAE)
- Denoising Autoencoder를 CF에 적용하여 TOP-N 추천에 활용한 논문
- 논문
모델 특징
- Auto Rec과의 비교
- AutoRec이 Rating Prediction을 위한 모델이었다면(RMSE로 평가),
- CDAE는 Ranking을 통해 유저에게 TOP-N 추천을 제공하는 모델임(NDCG 등으로 평가)
- 문제 단순화를 위해, 유저-아이템 상호작용 정보를 binary 정보로 바꿔서 학습 데이터로 사용
- 개별 유저에 대해서 아이템의 rating이 아닌 선호도(preference)를 학습하게 됨
문제 정의 및 모델
- AutoRec과 다르게 DAE를 사용하여 noise 추가
- 개별 유저에 대해서 Vu를 학습 (Collaborative)
- 유저에 따른 특징을 해당 파라미터가 학습하고, TOP-N 추천에 사용
- 인코더: zu, 디코더: y^ui
결과
: 대체적으로 N에 관계 없이 다른 TOP-N 추천 모델에 비해 더 높은 MAP와 recall을 보임
Multi-VAE(Variation Auto Encoder)
- Explicit density(학습 데이터의 분포를 기반으로 생성) 기반의 Generative 모델인 VAE를 추천시스템에 활용한 논문
- VAE 참고 영상
논문 요약
- VAE를 통해 기존 선형 CF 모델들이 가지는 표현력의 한계를 개선합니다.
- 추천시스템에서 잘 사용되지 않던 multinomial likelihood기반의 generative model과 Bayesian 추론을 사용합니다.
- 학습과정에서 anneling기법을 활용하여 파라미터를 효과적으로 튜닝합니다.
what is VAE?
: Variation Auto-Encoder
- Approximate Inference를 위한 방법론 중 하나
- Deep Generative Model의 일종
- ELBO term은 autoencoder 관점에서 해석 가능
- 직접 KL-Divergence를 줄이지 않고, ELBO를 maximize하여 간접적으로 줄임으로써, variational inference를 구함
Multi-VAE's key point
: VAE를 interaction data의 reconstruction에 활용