[추천시스템] Collaborative Denoising AutoEncoders for Top-N Recommender Systems 논문 리뷰
Collaborative Denoising Auto-Encoders for Top-N Recommender Systems
1. Introducton
CDAE (Collaborative Denoising AutoEncoder) 는 DAE를 Collaborative Filtering에 적용하여 top-N 추천에 활용한 모델
모델은 input으로 corrupted된 user-item 선호도를 주고 이것의 latent representation을 학습
→ 이는 corrupted되기 전의 원래의 input을 더 잘 복원해줌
2. Problem Definition
2.1 Overview of Model-based Recommender
- model definition (input과 output의 관계를 수식화한 것)
- objective function (best model의 param을 찾기 위해 학습과정에서 최적화하는 것)
Recommender Models
user u의 item i에 대한 선호도를 구하는 모델
- 후보 모델 4가지
- Latent Factor Model (LFM)
- user와 item의 latent vector들의 dot product로 선호도를 정의
- Similarity Model (SM)
- item j에 대한 user의 선호도와 item i와 j간의 유사도의 가중합으로 정의
- Factorized Similarity Model (FSM)
- SM모델의 similarity matrix를 2개의 저차원 행렬로 분해
→ item개수에 따라 parameter의 개수가 기하급수적으로 증가하는 SM모델의 단점 개선
- SM모델의 similarity matrix를 2개의 저차원 행렬로 분해
- LFSM (LFM+FSM)
- netflix prize에서 우승한 SVD++
- Latent Factor Model (LFM)
Objective Functions for Recommenders
추천모델 학습시 사용되는 목적함수는 2가지
*주의할 점 :
학습 데이터 셋으로 관찰된 user-item pair만 사용 시, 데이터가 implicit feedback인 경우 y값이 전부 1이기 때문에 예측값도 전부 1인 문제 발생
→ 따라서 관측되지 않은 데이터도 학습데이터에 포함시켜야 함 ($O'$)
- point-wise
- item 각각을 독립적인 개체로 보고 각각에 대하여 선호도 계산하여 예측값을 뱉음
- pair-wise
- item pair (positive item, negative item)를 사용하여 선호도 계산
- item간에 상대적 rank가 반영됨
⇒ 일반적으로 top-N recommender를 최적화하는데는 pair-wise 함수가 더 적합
loss function
- square loss
- log loss
- hinge loss
- cross entropy loss
2.2 Denoising Auto-Encoders
denoising auto-encoder(DAE)는 classical auto-encoder의 확장판
neural network structure
- 1개의 hidden-layer
- input vector $x$
- hidden representation $z$
- mapping function $h$$W$ : weight matrix, $b$ : offset vector
- $z=h(x)=\sigma(W^Tx+b)$
- reconstructed vector $\hat{x}$
- $\hat{x} = \sigma(W'z+b'),\ \ W' =W$ (tied weights)
corrupted input vector
DAE는 input 학습 데이터 $x$에 변형을 준 nosiy input $\tilde{x}$ 를 사용
→ robust한 모델
corruption method
- additive Gaussian noise
- multiplicative mask-out/drop-out noise
- : input의 일부를 q의 확률로 0으로 랜덤하게 덮어쓰는 방식
3. Proposed Methodology
3.1 Collaborative Denoising Auto-Encoder
CDAE는 DAE랑 비슷하게 1개의 hidden layer로 구성된 nerural net인데요, 차별점은
DAE와의 차별점
- user에 대한 latent vector encoding
구조
Input Layer
- $I+1$개의 노드
- $I$개의 item input node
- $1$개의 user input node
- user-specific node
- item input node
- $y_{ui}$ : user $u$ 의 item $i$ 에 대한 선호도 (0/1)
Hidden Layer
- $K$개의 노드
- input vector 크기보다 작음
- bias node
Output Layer
- $I$개의 노드
- reconstructed 된 $y_{u}$
Weight
- $W$ : item input node와 hidden layer node 사이의 weight matrix
- $V_{u}$ : user input node의 weight vector
- $W'$ : hidden layer와 output layer 사이의 weight matrix
- $b$ : hidden layer의 bias node의 weight vector
input vector
- $y_{u} = {{y_{u1}, y_{u2}, ... , y_{uI}}}$
- sparse binary vector
- $|O_{u}|$개의 $y_{ui}$ = 1, 나머지는 0
- : user $u$의 item 집합 $I$안의 모든 item에 대한 feedback이 담긴 vector
corrupted input vector
- $\tilde{y_{u}} = {{\tilde{y_{u1}}, \tilde{y_{u2}}, ... , \tilde{y_{uI}}}}$
- q의 확률로 0이 아닌 $y$를 drop out
CDAE parameter 학습과정
- parameter학습에 SGD기법 적용
- 전체 user에 대해 iteration 1번 시간복잡도 = $O(UIK)$
→ user와 item수가 굉장히 커지면 실행어려움 - ⇒ $( S_{u} \subset \bar{O_{u}} ) \ \cup O_{u}$ 에 포함된 item에 대해서만 gradient 계산하도록.
- 전체 user에 대해 iteration 1번 시간복잡도 = $O(UIK)$
- AdaGrad 적용
Recommendation
- user $u$ $$의 $\bar{O_{u}}$ 의 item 중 output layer에서 가장 큰 예측값들을 가진 item을 추천
3.2 Discussion
- CDAE는 top-N recommendation을 구현하는데 있어 유연하고 일반화된 모델
(2.1에서 제시된 다른 기존 method들을 정의할 수 있음) - → best model을 확정지을 수 없지만 여러 variant를 실험해보고 task에 가장 적합한 모델을 고를 수 있음
- CDAE에서는 pair-wise보다 point-wise를 쓰는 것이 성능이 더 좋음
4. Related Work
neural network기반 추천 시스템 모델
Restricted Boltzmann Machines (RBM)
- top-N이 아닌 순위예측 모델
- loss function에서 관찰된 평점만 고려
AutoRec
- rating 예측에 Auto-Encoder 사용
- 차이점
- AutoRec역시 loss function에서 observed ratings만 고려 ⇒ 이는 top-N 추천의 성능을 보장해주지 못함
- vanilla Auto-Encoder 구조를 사용
- denoising 기술 사용 X
5. Experimental Results
실험 평가는 두 파트로 이루어짐
- study the effects of various choice of the components of CDAE (CDAE의 여러 요소들에 변화를 주어 그 효과를 검증)
- CDAE와 최신 top-N 추천 모델 비교
5.1 Data Sets and Experimental Setup
3가지 data set
- MovieLens 10M (ML)
- Netflix
- Yelp
- 4 star 이상의 데이터만 남기고 나머지는 전부 missing data로 간주
- 남겨진 데이터는 $y_{ui}$ = 1 로 변환
- (이러한 전처리는 implicit feedback을 가진 추천의 경우 널리 사용되는 과정이다)
- 남긴 평점 수가 5개 이하인 user/item 제거
5.2 Implementation Details
- 모델별로 5-fold CV 진행하여 best hyperparameter 선정 → 학습
- SGD를 적용하여 parameter 학습 (제안 모델과 비교를 위해)
- AdaGrad 적용
- negative sampling의 경우, 여러 숫자를 실험해본 결과, NS = 5 일 때 일관성있는 좋은 결과를 보임
→ 이는 각user는 negative sample이 observed rating 수의 5배임을 의미 ..(?)
5.3 Evaluation Metrics
- precision
- recall
추천모델의 precision과 recall은 모든 유저의 precision과 recall의 평균
- MAP (Mean Average Precision)
- AP (Average Precision)
- ranked precision metric으로, 옳게(?) 추천한 item이 top rank에 있을수록 더 큰 가중치 부여하는 방식
- MAP
- 모든 user의 AP score의 평균
- N이 1,5,10 인 경우에 대해서만 실험. (N은 추천 수)
5.4 Analysis of CDAE Components
CDAE모델의 주요 요소
- mapping function
- hidden layer와 output layer에 identitify/sigmoid function 조합실
- loss function
- CDAE의 경우 pair-wise보다 point-wise objective function의 성능이 더 좋음
원인 : implicit feedback
- CDAE의 경우 pair-wise보다 point-wise objective function의 성능이 더 좋음
- level of corruption
- corrupton level q [ 0, 0.2, 0.4, 0.6, 0.8, 1]
실험 결과
결론 : 데이터에 따라 요소들을 결정해야 함
mapping function
- non-linear function을 사용 → 성능 향상
denoising technique
- input에 noise를 추가 → 성능 향상
M1, M2에서 뚜렷
DAE와 비교
- CDAE는 user specific input을 가짐
실험
- Yelp data
M!, M2에서 user-specific vector를 사용하는 것이 큰 성능향상을 보임
M3, M4에서는 성능 향상의 정도가 상대적으로 작음 - MovieLens data
모든 variant에 대하여 DAE보다 CDAE에서 MAP 값이 더 큼
Tied Weights
(여기서 tied weights의 효과성 확인)
- tied weights를 사용했을 때와 안 했을 때의 MAP 비교
실험 결과
- MovieLens의 M2모델을 제외하고 전부 tied weights를 사용하지 않았을 때(NTW) 더 좋은 성능을 보임
→ CDAE에서 tied weights를 사용 추천 X
Number of latent dimension
- latent dimension $K$ 의 효과성 확인
실험 결과
- $K$값이 커질수록 (일정 수준까지만) 성능이 향상 (K값을 더 증가시키면 더 이상 성능이 좋아지지 않고 overfitting에 의해 성능이 떨어짐)
5.5 Experimental Comparisons woth Previous Models
- CDAE와 다른 유명한 top-N recommendation 방식 baseline으로 삼고 비교
- baseline 모델들의 hyperparameter는 cross validation을 적용하여 선정
- latent dimension = 50
- 평가지표 : MAP와 recall
baseline method
- POP
- ITEMCF
- MK
- BPR
- FISM
실험결과
- MAP와 recall의 결과 일치 (그래프의 성향이 비슷한걸 알수있음)
- MAP@10과 Recall@10의 결과에서 CDAE가 일관성있게 다른 모델들을 능가함
- Yelp data에서는 CDAE가 다른 모델들과 큰 차이를 이루며 능가, 그 중 두번째로 성능이 좋은 모델인 MF의 성능보다 15% 좋음
- Netflix data에서 흥미로운 점은 ITEMCF모델이 (CDAE제외)다른 모델들에 비해 더 좋은 성능을 보임. 그럼에도 불구하고 여기서도 여전히 CDAE가 더 좋음
6. Conclusion
- top-n 추천모델로 CDAE를 제시
- CDAE는 DAE를 사용하여 user-item feedback 데이터 형성
- 3가지 데이터셋을 기반으로 모델의 요소들이 성능에 어떤 영향을 주는지 실험
- CDAE와 최신 top-N 추천모델들 비교 (CDAE가 큰 차이로 성능이 더 좋다는 것도 확인)
- q = 0, q = 1
→ M1에서 q = 0일 때 MAP값이 훨씬 낮음 - input vector를 그대로 사용하는 것이 전체를 drop out하는 것보다 더 좋은 모델을 내지 못함
- non-linear function은 이러한 문제를 완화시킴
mapping function
- hidden layer와 output layer에 identitify/sigmoid function 조합실험