[논문리뷰] Wide & Deep Learning for Recommender Systems

youngchae·2023년 6월 29일
0

논문리뷰

목록 보기
6/6

Cheng, Heng-Tze, et al. "Wide & deep learning for recommender systems." Proceedings of the 1st workshop on deep learning for recommender systems. 2016. 논문 리뷰입니다.


0. Abstract

  • Wide : Memorization
    • Cross-product feature transformation
    • More feature engineering effort
  • Deep : Generalization
    • Generalize to unseen feature combination
    • Less feature engineering effort
    • Over-generalize
  • Wide & Deep
    • Joint wide linear models and deep neural networks
    • 추천시스템을 위해 memorization, generalization의 장점을 합침
    • 온라인 실험을 진행하여 wide&deep이 wide만 사용한 경우와 deep만 사용한 경우보다 더 좋은 성능을 냈다는 것을 밝힘

1. Introduction

  • Memorization의 정의
    • Frequent co-occurrence of items or features
    • Exploit correlation available in the historical data
  • Generalization의 정의
    • Explore new feature combinations
  • 추천시스템에서 Memorization과 Generalization
    • Memorization : more topical and directly relevant to the items → historical data에서 본 내용을 바탕으로 추천
    • Generalization : improve diversity of the recommendations
  • Google Play Store의 apps recommendation 실험을 했지만 general하게 적용할 수 있다.
  • 기존 추천 모델의 한계
    1. Generalized Linear Model
      • Logistic Regression과 같은 모델에 대한 features를 만들어서 학습시킨다.
      • cross product 연산을 사용하여 Memorization (주어진 데이터 기억)에 특화된다.
      • 새로운 또는 관측되지 않은 데이터 (unseen data)에는 취약하다.
      • overfitting이 발생할 수 있다.
    2. Embedding based Model
      • Factorization Machine, Deep Neural Network 방법을 활용
      • Generalization (unseen data 대응)에 특화된다.
      • 특정 선호도를 가진 사용자나 좁은 매력을 가진 항목과 같이 matrix가 희소하고 순위가 높은 경우, 저차원 특징을 효과적으로 학습하는 것이 매우 어려움
      • 이러한 경우, 대부분의 쿼리 항목 쌍 사이에 interaction이 없어야하지만, dense embedding은 non-zero prediction 으로 이어짐 → 과도한 일반화 → 섬세한 추천 불가

1-1. Contributions

  1. Wide & Deep Learning framework를 제안한다.
    • Jointly training feed-forward neural network and linear model
  2. Google play에 상용화된 Wide&Deep 추천시스템의 평가와 구현내용을 공개한다.
    • 모바일 앱스토어에서 App 구매, 다운로드 등 향상
    • 학습과 서비스 속도를 충족
  3. Tensorflow 기반의 API를 오픈소스 형태로 제공한다.

2. Recommender System Overview

  • Inference : User가 app store를 방문할 때 query 생성
  • train : log 등 user actions을 활용하여 모델 학습
  • 데이터베이스에는 100만 개가 넘는 앱이 존재 → latency requirements 내의 모든 쿼리, 모든 앱에 대해 모든 앱을 완전히 채점하는 것은 어려움

3. Wide & Deep Learning

3-1. The Wide Component

y=wTx+by = w^Tx + b
  • Generalized Linear Model
  • y → predcition (유저 행동여부)
  • x = [x1,x2,...,xd][x_1, x_2, ... , x_d]
    • size d의 feature vector
    • Raw input features & cross-product feature
  • w = [w1,w2,...,wd][w_1, w_2, ..., w_d] → model parameters
  • b → bias
  • cross-product transformation
    ϕk(x)=i=1dxickicki{0,1}\phi_k(x) = \prod_{i=1}^dx_i^{c_{ki}} \qquad c_{ki}\in\{0,1\}
    • Cross-product feature의 k번째 요소
    • Raw feature의 i번째 요소가 true인지 여부
    • Feature interaction 반영
    • 모델에 Non-linearity 적용
      • ex) feature가 (gender, language)로 구성되어 있고, cross-product transformation (feature)의 k번째를 AND (female, en)일 때, 모두 만족하면 1 아니면 0

3-2. The Deep Component

  • Features를 임베딩과 뉴럴넷에 학습한다. → Generalization

al+1=f(Wla(l)+b(l))a^{l+1} = f(W^{l}a^{(l)}+b^{(l)})
  • l은 number of layers
  • f는 activation function (ReLU)
  • a(l),b(l),W(l)a^{(l)}, b^{(l)}, W^{(l)}
    • Activation, bias and model weights at l-th layer
  • Dense Embeddings
    • Nominal Feature에 해당하는 임베딩을 랜덤 초기화하고 모델 전체 학습

3-3. Joint Training of Wide & Deep Model

  • ensemble : 개별 모델이 서로를 알지 못한 채 개별적으로 학습, 추론 시에만 예측 결합되고 학습 시에는 결합되지 않음

  • joint training : 학습 시점에 wide, deep 부분과 그 합의 가중치 모두 고려 → 모든 parameter 동시 최적화

  • continuous, categorical features를 concat하여 deep의 input a로 활용

  • user install app과 impression app을 cross-product하여 wide의 input x로 활용

  • backpropagation을 wide와 deep에서 동시에 진행하여야함

    • P(Y=1|X)는 app을 다운받을 확률
    • sigmoid함수의 input으로 Wide와 Deep을 합한 값을 넣어주고, 그 output이 최종 결과

4. System Implementation

  • 아래의 Figure3의 pipeline과 같이 데이터 생성, 모델 학습, 모델 제공의 3단계로 구성됨

4-1. Data Generation

  • 일정 기간 동안의 사용자 및 앱 노출 데이터를 사용하여 학습 데이터 생성
  • 레이블은 app acquisition (노출된 앱이 설치 되었으면 1, 설치되지 않았으면 0)
  • categorical feature들을 정수형 변수로 매핑한 vocabularies는 이 단계에서 생성
  • continuous 실수 feature들은 feature x를 누적 분포 함수에 매핑하여 [0,1]로 정규화

4-2. Model Training

  • categorical feature 32 dimension embedding vector
  • 모든 임베딩을 밀도가 높은 특징과 함께 연결하여 약 1200차원의 밀도 높은 벡터 생성
  • 벡터 3개의 ReLU layer에 공급하고 마지막으로 logistic 출력 유닛에 공급
  • 5000억 개 이상의 예제들로 학습
  • 새로운 학습 데이터셋이 생길때마다 다시 모델을 학습시켜야함
  • but 매번 처음부터 학습시키면 계산 비용↑, 시간↑ → embedding을 통해 새 모델을 초기화하는 warm-starting system 구현

4-3. Model Serving

  • 모델이 학습되고 검증되면 모델 서버에 로드
  • 각 요청에 대해 서버는 앱 검색 system, 사용자 기능으로부터 앱 후보 집합을 수신하여 각 앱에 접수 표시
  • wide&deep mode에 대한 forward inference pass를 계산하여 점수 계산됨

5. Experiment Results

  • live 실험 진행하여 app acquisition, serving performance 두 가지 측면에서 시스템 평가함

5-1. App Acquisitions

  • 3주 동안 A/B test 프레임워크에서 3주 동안 온라인 실험 진행

5-2. Serving Performance

  1. Offline AUC
    • Test Set의 사용자 행동결과로 성능 측정
    • AUC는 클수록 좋은 점수 (=ROC 커브의 아래 면적)
  2. Offline Acquisition Gain
    • 실제 사용자들의 action을 추적
    • 기존 모델 대비 application 실제 다운로드 수가 증가

  • Multithreading, Split each batch into smaller batches → latency를 14ms 줄일 수 있었다.
  • 추천알고리즘의 성능 뿐만 아니라 Commercial Mobile App Store의 서비스까지 신경 쓴 것을 알 수 있다.

6. Conclusions

  • Wide & Deep Learning
    • Memorization과 Generalization 모두가 중요하기 때문에 Memorization의 Wide와 Generalization의 Deep을 결합한 모델을 제안
    • Wide : sparse한 feature interaction 효과적으로 기억
    • Deep : 저차원 임베딩을 통해 이전에 볼 수 없었던 feature interaction 생성
  • Linear model과 embedding-based model의 장점을 잘 조합함
  • 좋은 추천 알고리즘을 실제 서비스 환경에서 작동할 수 있도록 구현함
  • open sourse로 tensorflow api를 구현하여 다양하게 활용할 수 있음
profile
we_need_to_talk_about_ds

0개의 댓글