Computer Science/Data Science

[추천시스템] Collaborative Denoising AutoEncoders for Top-N Recommender Systems 논문 리뷰

_cactus 2024. 9. 24. 11:52
반응형

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

  1. model definition (input과 output의 관계를 수식화한 것)
  2. objective function (best model의 param을 찾기 위해 학습과정에서 최적화하는 것)

 

Recommender Models

user u의 item i에 대한 선호도를 구하는 모델

  • 후보 모델 4가지
    1. Latent Factor Model (LFM)
      • user와 item의 latent vector들의 dot product로 선호도를 정의
    2. Similarity Model (SM)
      • item j에 대한 user의 선호도와 item i와 j간의 유사도의 가중합으로 정의
    3. Factorized Similarity Model (FSM)
      • SM모델의 similarity matrix를 2개의 저차원 행렬로 분해
        → item개수에 따라 parameter의 개수가 기하급수적으로 증가하는 SM모델의 단점 개선
    4. LFSM (LFM+FSM)
      • netflix prize에서 우승한 SVD++
반응형

Objective Functions for Recommenders

추천모델 학습시 사용되는 목적함수는 2가지
*주의할 점 :
학습 데이터 셋으로 관찰된 user-item pair만 사용 시, 데이터가 implicit feedback인 경우 y값이 전부 1이기 때문에 예측값도 전부 1인 문제 발생
→ 따라서 관측되지 않은 데이터도 학습데이터에 포함시켜야 함 ($O'$)

  1. point-wise
    • item 각각을 독립적인 개체로 보고 각각에 대하여 선호도 계산하여 예측값을 뱉음
  2. 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

  1. additive Gaussian noise
  2. multiplicative mask-out/drop-out noise
  3. : 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 계산하도록.
  • 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 사용
  • 차이점
    1. AutoRec역시 loss function에서 observed ratings만 고려 ⇒ 이는 top-N 추천의 성능을 보장해주지 못함
    2. vanilla Auto-Encoder 구조를 사용
    3. denoising 기술 사용 X

5. Experimental Results

실험 평가는 두 파트로 이루어짐

  1. study the effects of various choice of the components of CDAE (CDAE의 여러 요소들에 변화를 주어 그 효과를 검증)
  2. CDAE와 최신 top-N 추천 모델 비교

5.1 Data Sets and Experimental Setup

3가지 data set

  1. MovieLens 10M (ML)
  2. Netflix
  3. 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모델의 주요 요소

  1. mapping function
    • hidden layer와 output layer에 identitify/sigmoid function 조합실
  2. loss function
    • CDAE의 경우 pair-wise보다 point-wise objective function의 성능이 더 좋음
      원인 : implicit feedback
  3. 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 조합실험

 

728x90
반응형