Très bien

(Paper Review) Deep Neural Networks for YouTube Recommendations 본문

Study/RecSys

(Paper Review) Deep Neural Networks for YouTube Recommendations

LemonSoda 2022. 3. 19. 20:46

1. Introduction

추천시스템에 적용할 수 있는 데이터양이 증가하면서 전통적인 기계학습 기법을 딥 러닝 모델에 적용하기 위한 연구가 활발히 진행되고 있습니다.  논문은 2016년 RecSys에 발표한 Google의 논문으로 Deep Neural Network를 YouTube 추천에 적용한 연구를 소개하고 있습니다. 유튜브 추천 시스템은 세 가지 관점에서 성능 개선을 위한 연구를 진행했습니다.

  • Scale : 많은 유저와 아이템을 다룰 수 있는 특화된 분산 학습 알고리즘과 효율적인 서빙 시스템
  • Freshness : 신규 컨텐츠와 사용자의 최신 행동을 적절하게 조합할 수 있는 추천 정책 (exploration/exploitation) 
  • Noise : Sparsity, 고객 만족도에 대한 ground truth 획득의 어려움, meta data의 비정교성 등의 요소를 극복해야 함. 

2. System Overview 

DNN for Rec 시스템은 후보 생성(Candidate generation)과 우선순위할당(ranking)의 두 개의 Neural Network로 구성되어 있습니다.수백만개의 Video Corpus로부터

  • Candidate Generation network :  사용자의 과거 행동 기록으로 학습된 사용자-아이템 간 유사도(similarity) 네트웍을 통해 수백만개의 Video Corpus로부터 수백개 단위(Top-K)의 아이템 subset을 추출합니다. 
  • Candidate Ranking : User, Item feature를 더 활용하여 Score를 구하고 최종 추천 아이템 리스트를 제공합니다. 

DNN for Rec system Architecture (출처:  Deep Neural Networks for YouTube Recommendations) 

3. Candidate Generation 

Deep candidate generation model architecture 

3.1 Inputs 

다양한 feature를 concate하여 입력 벡터를 구성하여 Neural Network의 입력값으로 사용하였습니다.

  • watch vector : 사용자의 과거 시청 정보를 임베딩하고 마지막 시청 이력이 큰 가중치를 갖지 않도록 평균함 
  • search vector : 사용자의 과거 검색 이력을 임베딩하고 마지막 검색어가 너무 큰 가중치를 갖지 않도록 평균함 
  • demographic & geograpic features : 성별 등 인구통계학 정보와 지리적 정보를 feature로 포함함
  • example age : 시청 로그가 최신 데이터를 많이 반영할 수 있도록 학습 시점으로부터 경과한 시점을 feature로 포함

3.2 Multi-layer Neural Network (multi-class classifier) 

  • n개의 dense layer를 거쳐 user vector, u를 생성합니다. 
  • 출력된 user vector는 softmax function을 거쳐 multi-class의 classification을 수행합니다.
  • softmax의 최종 출력은 비디오를 k개의 class에 해당하는 probabilities 형태로 출력합니다. . 

3.3 serving

학습된 user vector(user-context pair)와 video class probability를 입력받아 상위 N개의 비디오 목록을 추출하여 서빙합니다. 

  • Candidate generation에서 Neural Network는 과거 user-context 이력으로부터 임베딩을 학습합니다. 
  • 학습된 유저 벡터(u)는 모든 비디오 벡터(v)와 내적을 계산하여 각 비디오가 class i에 속할 확률을 내적으로 계산합니다.  
  • 특정 시간, t에 유저 u가 C 라는 컨텍스트를 가지고 있을 때, 비디오(i)를 볼 확률을 다음과 같이 모델링 했습니다. $ \boldsymbol{u} $는 고차원 (user, context) 임베딩이고 $ \boldsymbol{v} $는 video(item) 후보의 임베딩 입니다.

$ {P(\omega_{t}=i|U, C)}=\frac{e^{v^{i}u}}{\sum_{j\epsilon V}e^{v^{u}u} } $

  • softmax classifier에서 특정 video가 class-i에 해당할 확률을 계산하여 Top-K video를 추출합니다. 
  • Annoy, Faiss 같은 ANN 라이브러리를 사용하여 빠르게 서빙합니다. 

 

4. Candidate Ranking 

4.1 Inputs 

  • video embedding : Candidate Generation 단계에서 생성한 Video(item) 후보 목록 
  • user action feature : 좋아요 영상 목록, 과거 시청 이력 
  • time since last watch : 특정 topic의 동영상을 본 후 얼마나 시간이 지났는지를 모델링한 벡터 
  • previous impressions : 영상의 과거 시청 여부

4.2 Model

▶ Multi-Layer Network

Candidate Generation 단계에서 생성한 video 후보 목록 (video embedding)가 Network Frame을 통과하며 Video 시청 예측값을 학습합니다. 학습을 위한 loss function은 weighted cross-entropy loss를 사용하여 비디오 시청 시간으로 가중치를 제공했습니다. 

▶ Ranking 

Logistic Regression을 사용하여 최종 추천될 비디오들의 순위를 정합니다. 시청 여부만을 맞히는 CTR 예측을 적용했습니다. 

$ {P(watch) \epsilon [0, 1]} $

5. 결론

수백만개의 Video Corpus로부터 Candidate를 생성하여 계산의 범위를 좁힌 후, ranking을 적용하여 최종 추천 목록을 생성하는 2단계 구조로 구성된 추천 시스템을 제안했습니다. 각 단계마다 multi-layer neural network를 적용하고, 다양한 feature를 임베딩하여 학습에 반영했습니다. 단순 CTR 예측이 아닌 Expected Watch Time을 예측했습니다. 

 

References 

Comments