Deep Neural Networks for YouTube Recommendations (Recsys 2016)

박상우·2023년 8월 2일
0

Paper Review

목록 보기
18/45
post-thumbnail

INTRODUCTION

  • 유튜브의 추천 시스템을 살펴보고자 함
  • 총 3가지의 어려움이 존재
    • Scale: 방대한 유저와 비디오 (효율적인 서빙 요구됨)
    • Freshness: 매우 역동적인 비디오들이 수 초단위로 업로드 됨, 인기 있는 비디오와 새로운 비디오를 적절히 조절해야 하며 실시간성이 요구됨 (exploration/exploitation)
    • Noise: 유저의 행동 정보는 본질적으로 Noisy함 (Implicit feedback siganl을 활용해야 함)
  • 딥 러닝은 추천 시스템의 새로운 패러다임을 제시함

SYSTEM OVERVIEW

  • candidate generation, ranking으로 이루어진 two-stage 모델
  • 유저의 행동 이력을 기반으로 small subset을 추출하는 (약 100개) candidate generation
  • few 'best' recommendation을 찾는 ranking (어떤 score를 부여해 계산)
  • 이러한 two-stage 아키텍쳐는 수백만의 video corpus에서 개인화된 추천을 제공할 수 있음
  • 모델링 과정에서는 precision, recall, ranking loss등 오프라인 지표를 이용하나, 최종적으로는 CTR, 체류 시간 등을 A/B test하여 결정

CANDIDATE GENERATION

  • 수백만개의 비디오 -> 유저가 좋아할만한 100개의 비디오

Recommendation as Classification

  • 기본적으로 multiclass classification problem
  • wt,U,C\mathrm{w_t, U,C}는 시간, 유저, 문맥(컨텍스트)에 해당
  • 특정 시간에 유저가 i\mathrm{i}아이템을 볼 확률을 의미
  • MF based로 학습이 진행되며, explicit feedback이 존재하긴 하지만 implicit feedback을 사용하여 학습함
    • Implicit feedback이 훨씬 더 많기에, explicit feedback보다 long tail을 잘 catch할 수 있다는 가정

Efficient Extreme Multiclass

  • 수 백만의 클래스를 다루는 모델을 학습시켜야 함
  • Background 분포로부터 negative sample을 수집
  • True Label과 negative sample간의 cross-entropy loss를 최소화 하는 방식으로 모델을 학습
  • 모델 서빙에서는 Top N 연산을 위해 기존 유튜브 시스템의 hashing 방식을 사용하여 스코어링 시간을 sublinear하게 단축시킴

Model Architecture

  • 각 아이템별로 dense한 embedding으로 representation
  • 유저의 아이템 이력 sequence를 embedding layer를 통해 representation하고 이를 average하여 dense input으로 활용
  • 이외에도 user metadata를 concatenate하여 FC layer를 통과시키는 방식으로 학습

Heterogeneous Signals

  • DNN을 MF의 generalization으로 사용하였을 때 이점은, continous와 categorical 변수를 조합하기 쉽다는 것에 있음
  • 그 예시로 유저의 검색 query를 unigram, bigram 으로 tokenizing하여 embedding을 생성한 뒤, 이를 평균낸 dense vector를 input으로 활용 가능
  • 인구통계학적인 정보 또한 0,1로 normalized되어 network에 추가할 수 있음

"Example Age" Feature

  • 유저들은 fresh한 영상을 선호하는 경향이 있음
    • ML 모델은 기존 패턴을 바탕으로 추천하기에, 과거의 아이템에 편향된 결과를 제공
    • 비디오의 인기도 분포는 non-stationary하지만 추천 시스템에 의해 생성된 아이템의 다항분포는 몇 주간의 watch likelihood를 반영함
  • 저자는 영상의 age를 feature로 추가하여 이를 해결해주고자 함
    • 그래프를 통해 영상의 age를 추가하여 성능이 많이 개선됨을 알 수 있음

Label and Context Selection

  • 추천 모델은 어떤 대리의 목표를 만족시킴으로써, 추천 결과를 향상시킴
    • rating을 accurate하게 예측함으로써 더 효과적으로 영화를 추천함
  • 오프라인 지표로 이를 측정하는 것은 어려운 문제
  • 학습 데이터로는 우리의 추천 결과 뿐만이 아닌, 외부 사이트를 포함한 모든 데이터를 이용해야 함
    • Exploitataion 문제가 발생할 수 있음
  • 만약 우리의 추천이 아닌 다른 방식으로 영상을 탐색한다면, 바로 모델에 반영시켜주어야 함
  • 또한 시청이 많은 유저에게 편향되지 않게 유저별로 데이터의 길이를 조정해야 함
  • 또한 직관에 반대될 수 있지만, 추천 결과를 바로 서빙에 반영하지 않음
    • 유저가 테일러 스위프트를 검색한 경우에 바로 다음에 이를 반영할 시 오히려 성능이 낮아짐을 empirical하게 발견

  • 보통 모델은 이전과 이후의 기록을 통해 사이 label을 예측
    • 이는 비대칭적인 영상 시적 패턴을 무시 (시계열적)
    • 따라서 우측과 같이 해당 시점 이전의 기록만을 input으로 받게 하였음

Experiments with Features and Depth

  • feature와 network의 depth가 상승할수록 precision 또한 상승함

RANKING

  • Candidate에 정량적인 scoring
  • Candidate와 유사하게 DNN과 Logistic Regression으로 구성
  • A/B 테스트를 통해 모델을 최종 선정
  • CTR은 'clickbait'와 같은 deceptive video에서 불완전할 수 있기 때문에, 시청 시간을 주 A/B테스트 방법론으로 설정

Feature Representation

  • 굉장히 다양한 feature가 존재 (순서형, bianry, contious, list 등..)
  • 크게 유저/context에 관한 query feature와 item에 관한 impression feature로 분리할 수 있음
    • query feature는 한 번만 계산되며, impression feature는 매 아이템 마다 계산 됨

Feature Engineering

  • 크게 continous, categorical로 분류 가능
  • deep learning이 feature engineering을 필요로 하지 않는다 하더라도, raw feature을 feedforward하기 위해서는 어느정도 engineering 해야 함
  • Main challenge는 현재 시점의 유저의 액션과 이를 impresseion score에 어떻게 반영할 것인가
  • 가장 중요한 signal은 item과 유저의 과거 interaction이 얼마나 유사한지
  • 이전 candidate generation에서 어떤 source가 이 아이템을 nominate하는지 또한 중요한 signal
  • 특정 카테고리에서 이탈(연속적으로 보다가 시청하지 않음)하는 것도 중요한 signal

Embedding Categorical Features

  • Candidate generation과 동일하게 sparse 데이터를 dense하게 embedding
  • Top-N 개의 embedding만 생성하며, out of range의 경우 영벡터로 계산
  • multivalent categorical feature는 속한 embedding을 average함으로써 계산
  • 비디오 아이디는 다양한 곳에서 쓰이지만 (추천에 계산될 비디오, 이전에 시청한 비디오) 임베딩은 공유 됨 (concat 할 때 다른 위치로 옮겨지기에 여러 정보를 받을 수 있음)

Normalizing Continuous Features

  • neural networks는 scail과 distribution에 민감 (cf; decision trees)
  • (0,1)의 누적 확률 분포로 변환
  • super, sublinear한 feature의 설명력을 높이기 위해 x2\mathrm{x^2}, 루트x\mathrm{x}를 사용함

Modeling Expected Watch Time

  • 추천된 영상의 기대 시청 시간을 예측하기 위해서, weight logistic regression을 이용 (시청 시간을 weight로)
  • Negative일 때는 시청 시간이 0이기에 unit weight를 부여

Experiments with Hidden Layers

  • 성능과 inference time은 trade-off
profile
세상아 덤벼라

2개의 댓글

comment-user-thumbnail
2023년 8월 2일

정리가 잘 된 글이네요. 도움이 됐습니다.

1개의 답글