카테고리 없음

[논문리뷰1] Deep Neural Networks for YouTube Recommendations

안나Anna 2024. 12. 18. 23:26

Deep Neural Networks for YouTube Recommendations

  • 이 논문을 선정한 이유
    1. 유명한 논문
    2. 추천 알고리즘에 대한 아이디어를 얻기에도 좋을 것 같아서.

0. Abstract

  1. 후보 생성 모델
  2. 랭킹 모델

1. Introduction

이 논문에서는 최근 YouTube 동영상 추천 시스템에 미친 딥러닝의 막대한 영향을 중점적으로 다룸

YouTube 동영상 추천이 어려운 이유

  • Scale: 방대한 데이터의 양
  • Freshness: 새로운 컨텐츠 빠르게 반영
  • Noise: 낮은 meta data(유튜버들이 단 태그 등) 퀄리티, Implicit feedback 위주 데이터. 알고리즘은 학습데이터의 이러한 특정 특성에 대해 강건해야함

2. System Overview

Figure2: 추천시스템 구조 후보 동영상을 검색하고 랭킹화한 뒤 사용자에게 소수의 동영상만 제공하는 깔때기(funnel) 구조를 보여줌

 

candidate generation network(후보 생성 네트워크)

  • user의 활동 기록에서 발생한 이벤트를 입력으로 받아서 대규모 DB에서 수백 개 동영상 추출
  • high precision이 목표→ 전체 영상 대비 유저들이 시청하는 영상개수는 작기 때문
  • 주로 협업 필터링을 통해 폭넓은 개인화 제공
  • 사용자 유사성은 동영상 시청 ID, 검색 쿼리 토큰, 인구 통계학적 정보→ 이런 대략적 특징으로 표현

ranking network

  • hige recall 목표
  • 추천 목록에서 최적의 동영상 제시 하려면 후보 간 상대적 중요성을 구별할 수 있어야 함
  • 동영상과 사용자에 대한 풍부한 feature을 활용. 원하는 목적 함수에 따라 각 동영상에 점수 부여. → 점수로 순위 매김→ 순서대로 사용자 화면에 표시

두 단계 접근 방식의 이점

  • 수백만개의 동영상에서 추천 생성.
  • but 기기에 표시되는 동영상은 몇 개 안됨.
  • but 사용자에게 개인화되고 매력적임 보장

⇒ 이 설계는 이전 연구(fourth ACM)에서 설명된 것처럼 다른 소스에서 생성된 후보를 혼합하는 것도 가능하게 함

평가 및 개선

  • 개발 중에는 오프라인 지표를 광범위하게 사용하여 시스템을 반복적으로 개선
  • but, 알고리즘이나 모델의 최종 효과성 결정 → A/B test 수행
  • 라이브 실험에서는 클릭률, 시청시간, 사용자 참여(좋아요,구독) 측정하는 다양한 지표에서 미세한 변화 측정 가능.
  • → 라이브 A/B test결과가 오프라인 실험 결과와 항상 상관관계가 있지는 않기 때문에 중요

3. Candidate Generation

방대한 유튜브 DB를 사용자와 관련이 있을 수 있는 수백 개의 동영상으로 축소

여기서 설명된 추천시스템 이전 버전은 rank loss를 기반으로 학습된 MF 접근 방식 사용.

초기 신경망 모델은 얕은 네트워크 사용해서 사용자의 이전 시청기록만을 임베딩하는 방식으로 이 분해 동작을 모방했음. 이런 관점에서 우리의 접근 방식은 행렬 분해 기술의 비선형 일반화로 볼 수 있음

3.1 Recommendation as Classification

문제 정의: recommendation = extreme multiclass classification

특정시간에 이 video를 볼 확률

$w_t$: specific video watch at time t

$i$: video(classes, =item)

$v_j$: video j embedding

$e^{v_j \cdot u}$

$V$: corpus

$U$:user

$C$: context(시간대, 지역, 디바이스 등)

Extreme multiclass classification 효율적으로 구현하는 법

  • offline(미리 계산)
    • negative class 샘플링
    • 각 class마다 BCE loss(binary cross entropy) 사용
    • 대략 수천개정도의 negative sampling사용
    • hierarchical softmax는 사용x
    • 대안으로 자주 사용되는 hierarchical softmax는 비교적 성능이 낮았음. 이는 계층적 소프트맥스에서 트리의 각 노드를 탐색할 때 종종 관련 없는 클래스 집합 간의 구별을 요구→ 문제를 더 어렵게 만들고 성능 저하시킴
  • serving time(실시간 추천)
    • 기존에는 hashing 사용. 이번에도 동일
    • 최종적으로는 dot-product space에서 가장 가까운 아이템 찾는 과정
    • A/B test결과 nn알고리즘 간 추천성능 차이x

3.2 Model Architecture

Figure3: Deep candidate generation model architecture 는 sparse feature, dense feature가 연결되어있다. 희소 ID의 가변크기 집합을 고정폭 벡터로 변환하기 위해서, 임베딩은 연결 전에 평균화됨. 이러한 고정 폭 벡터는 은닉층의 입력으로 적합. 모든 은닉층은 완전 연결된 구조로 구성됨. 학습 시에는 샘플링된 소프트맥스의 출력에 대해 교차 엔트로피 손실을 경사하강법으로 최소화함. serving 단계에서는 approximate nearest neighbor lookup을 수행하여 수백개의 후보 동영상 추천 생성

Embeddings

  • video embedding, search token embedding
  • dense vector(256, word2vec CBOW에서 영감 받음)
  • 모델의 backpropagation 통해서 embedding도 함께 학습

Combiner

  • 고정된 사이즈의 input으로 바꿈
  • 합, 최댓값 등 다양한 시도 했지만 평균이 가장 우수한 성능 보임

Additional Features

  • Concatenate

ReLU Stack

  • fully connected “Tower”: 점점 좁은 쪽으로 통과 시킴
  • Output으로 user embedding(유저의 선호도 정보)나옴

Softmax Prediction

  • 각 video별 가중치가 output으로 나옴
  • Negative sampling: 수천개의 샘플만 뽑아서 샘플링된 것을 통해 학습 시킴(100배 이상 시간 단축)

Serving

  • Top N
  • dot prodect space에서 가장 가까운 아이템 찾음
  • nearest neighbor 알고리즘 간 성능 차이는 없음3.2 Model ArchitectureFigure3: Deep candidate generation model architecture 는 sparse feature, dense feature가 연결되어있다. 희소 ID의 가변크기 집합을 고정폭 벡터로 변환하기 위해서, 임베딩은 연결 전에 평균화됨. 이러한 고정 폭 벡터는 은닉층의 입력으로 적합. 모든 은닉층은 완전 연결된 구조로 구성됨. 학습 시에는 샘플링된 소프트맥스의 출력에 대해 교차 엔트로피 손실을 경사하강법으로 최소화함. serving 단계에서는 approximate nearest neighbor lookup을 수행하여 수백개의 후보 동영상 추천 생성Embeddings
    • video embedding, search token embedding
    • dense vector(256, word2vec CBOW에서 영감 받음)
    • 모델의 backpropagation 통해서 embedding도 함께 학습
    Combiner
    • 고정된 사이즈의 input으로 바꿈
    • 합, 최댓값 등 다양한 시도 했지만 평균이 가장 우수한 성능 보임
    Additional Features
    • Concatenate
    ReLU Stack
    • fully connected “Tower”: 점점 좁은 쪽으로 통과 시킴
    • Output으로 user embedding(유저의 선호도 정보)나옴
    Softmax Prediction
    • 각 video별 가중치가 output으로 나옴
    • Negative sampling: 수천개의 샘플만 뽑아서 샘플링된 것을 통해 학습 시킴(100배 이상 시간 단축)
    Serving
    • Top N
    • dot prodect space에서 가장 가까운 아이템 찾음
    • nearest neighbor 알고리즘 간 성능 차이는 없음

3.3 Heterogeneous Signals(이질적 신호)

딥러닝을 행렬 분해의 일반화로 사용하는 주요 이점 중 하나는 임의의 연속형 및 범주형 feature를 모델에 쉽게 추가 가능.

검색 기록

  • 시청기록과 유사. 각 검색 쿼리는 unigrams, bigrams로 토큰화되며, 각 토큰이 임베딩됨. 토큰화되고 임베딩된 쿼리를 평균화하면 사용자의 dense search history 요약을 나타냄.

인구통계학적 feature

  • 새로운 사용자에 대해 추천이 합리적으로 작동하도록 사전 정보를 제공하는 데 중요. 사용자의 지리적 위치와 장치는 임베딩되어 연결되며, 사용자의 성별, 로그인 상태, 연령과 같은 단순한 이진형 및 연속형 feature은 [0, 1] 범위로 정규화된 실수 값으로 네트워크에 직접 입력.

“Example Age” feature

  • YouTube는 매초 수많은 동영상이 업로드됨
  • fresh한 콘텐츠 추천 중요
  • 머신러닝 시스템은 과거데이터 기반 미래행동 예측이라 암묵적으로 과거에 편향되는 경향 O
  • 히스토리 데이터 기반 학습→ 오래된 아이템들이 더 추천 많이 받음
  • 동영상 인기 분포는 매우 non-stationary(비정상적)이지만 추천시스템이 생성한 데이터베이스 상의 다항 분포는 몇 주간의 학습 기간 동안 평균적인 시청 가능성을 반영하게 됨. 이를 수정하기 위해, 학습 시 “example age”를 하나의 feature로 추가

베이스라인일때는 실제(Empirical) 분포와 다르게 나오지만, 영상의 나이를 추가하면 실제 분포와 유사해짐

 

3.4 Label and Context Selection

그 외 실제 환경 고려한 요소들

  • 모든 비디오 시청 이력을 확인해야 bias없음
  • 학습에 사용할 이용자별 영상 횟수를 fix해야 heavy user에 치우치지 않음
  • 새로운 검색 쿼리에 즉시 추천엔진 반영x(한번 검색만 했을 수 있음)
  • 비대칭적 감상 패턴을 적용해서 학습 시킴(영상을 규칙적으로 보지 않음. 여행 가기 전에 여행 영상 쭉 보다가 게임영상볼 때는 게임만 또 쭉 봄)

추천은 전형적인 Surrogate problem(대리문제). _ 다른 문제를 통해 추천문제 해결 가능

ex) 평점 예측→ 영화 추천

  • 학습데이터 생성: 잘못 만들면 추천 엔진이 부당하게 이용됨
    • 우리가 생성한 추천에서의 시청뿐만 아니라 모든 YouTube 시청(다른 사이트에 삽입된 동영상 시청 포함)에서 생성. 사용자가 우리 추천 외의 다른 경로로 동영상을 발견한다면, 이를 협업 필터링을 통해 다른 사용자에게 빠르게 전파할 수 있어야 함.
    또한, 사용자별로 고정된 수의 학습 예제를 생성하는 방법이 라이브 지표를 개선하는 데 중요
  • 모델 정보 제한(과적합 주의) 
    • 예를 들어, 사용자가 "taylor swift"를 검색한 직후를 생각해보면, 분류기가 이 정보를 이용한다면 해당 검색 결과 페이지에 나타나는 동영상이 가장 많이 시청될 것이라고 예측할 것. 하지만 사용자의 마지막 검색 페이지를 홈 화면 추천으로 복제하면 매우 낮은 성능을 보임.
    • 해결법: 검색 쿼리를 순서가 없는 토큰 집합으로 표현(분류기가 레이블의 출처를 직접적으로 알 수 없도록)
  • 비대칭 소비 패턴 반영
    • 동영상의 자연스러운 소비 패턴은 일반적으로 매우 비대칭적인 공동 시청(co-watch) 확률로 이어짐. 예를 들어, 에피소드 시리즈는 보통 순차적으로 시청되며, 음악의 경우 유명→마이너로 가는 경향 있음
    • 사용자의 다음 시청을 예측하는 것이 임의로 보류된 시청을 예측하는 것보다 훨씬 더 나은 성능(그림 5 참조).
    • 많은 협업 필터링 시스템은 일반적으로 사용자 이력에서 임의의 항목을 보류하고 이를 다른 항목으로부터 예측하는 방식으로 레이블과 컨텍스트를 선택(그림 5a). 그러나 이 방법은 미래 정보를 누설하고 비대칭 소비 패턴을 무시

(a) 과거데이터 일부 보관, 그것 예측

(b) 과거데이터 사용해서 미래 이벤트 예측(시점 t_N 이후의 미래 시점(t_{N+1})에 일어날 시청 기록을 예측하는 것이 목표.)

A/B test 결과 (b)방식이 실시간 성능에서 더 유리

 

3.5 Experiments with Features and Depth

  • offline에서 MAP 측정
  • embedding size: 256dim
  • 영상, 검색어: 100만 개
  • 인 당 최대 개수: 영상, 검색어 각 50개

  • Depth 0: A linear layer simply transforms the concatenation layer to match the softmax dimension of 256
  • Depth 1: 256 ReLU
  • Depth 2: 512 ReLU → 256 ReLU
  • Depth 3: 1024 ReLU → 512 ReLU → 256 ReLU
  • Depth 4: 2048 ReLU → 1024 ReLU → 512 ReLU → 256 ReLU

폭과 깊이를 추가한 결과, 성능 개선이 점진적으로 감소하고 수렴이 어려워질 때까지 성능이 향상

feature와 네트워크 깊이를 추가하면 보류된 데이터에 대한 정밀도가 크게 향상됨

4. Ranking

  • 많은 feature 이용하여 item, user 간 관계 구함다른 후보 소스의 앙상블을 위해 매우 중요
  • 후보 생성모델보다 item 개수 적기 때문에 더 많은 feature 이용가능
  • 딥러닝 신경망 사용

 

  • A/B 테스트 결과를 기반으로 계속 업데이트됨.
  • 평가지표: 추천 횟수 대비 시청 시간

4.1 Feature Representation

딥러닝 통해 학습된 feature 뿐만 아니라 다른 feature들도 있음

  • 대략 수백개 feature 사용
  • 사용자의 이용패턴- 특히 여러 종류의 정보가 어떻게 관계를 맺고 있는지 중요
    • 이 채널에서 이 이용자가 몇개의 영상 시청했는지
    • 마지막으로 이 주제 영상 본게 언제인지
  • 사용자가 해당 항목 및 유사한 항목과의 이전 상호작용
  • 사용자가 점수를 매기는 동영상을 업로드한 채널과의 과거 상호작용 기록(예: 해당 채널의 몇 개의 동영상을 시청했는지, 마지막으로 해당 주제의 동영상을 본 시점 등)
  • 후보 생성 단계에서의 정보를 랭킹 단계로 전달
  • 추천했는데 안보는 영상→ 순위 낮춤

categorical feature embedding

  • Top-N 영상, 검색어 embedding, 나머지 0
  • 점수를 매기는 동영상 ID, 사용자가 마지막으로 본 동영상 ID, 추천을 "시작한" 동영상 ID 등 모두 사용. → 평균 구하거나 하지 않고 별도 network에 들어감. 다른 역할 해야함

continuous features

  • x가 [0,1] 사이값 갖도록 정규화
  • $x$, $x^2$, $sqrt(x)$ 다 넣어줌

4.2 Modeling Expected Watch Time

  • 추천된 영상 시청 시간 예측 목표
  • 감상시간: 미시청=0, 시청=시청 시간
  • 감상 시간으로 가중치 로지스틱 회귀(weighted logistic regression)
  • CTR보다 훨씬 효과적

4.3 Experiments with Hidden Layers

5. Conclusions

  • 후보생성 + 순위 매기기
  • YouTube에서 사용된 이전 행렬 분해 접근 방식보다 성능 뛰어남
  • 전체 시스템 디자인 하는 것은 과학 < 예술
  • “영상의 나이” 중요
  • 세부 튜닝은 딥러닝보다 전통적인 ML과 더 비슷
  • → 특히 사용자의 과거 행동 패턴을 잘 설명하는 feature가 중요
  • weighted logistic regression 쓴 것이 CTR 사용한 것보다 결과가 좋다

 

논문리뷰 후기

논문 리뷰를 이렇게 하는 것이 맞나 싶다. 이번 논문 리뷰는 논문 번역에 약간의 요약정도지만 매번 모델에 관련된 논문들 겉핥기만 하다가 꼼꼼히 제대로 읽어본 적은 처음인 것 같다. 급하게 필요해서 본게 아니라 꼼꼼히 봐서 그런지 굉장히 흥미롭고 재밌었다. 앞으로 열심히 읽어보도록 하겠다.

 

논문 출처

Covington, Paul, Jay Adams, and Emre Sargin. "Deep neural networks for youtube recommendations." Proceedings of the 10th ACM conference on recommender systems. 2016.

 

참고자료

https://keunwoochoi.blogspot.com/2016/09/deep-neural-networks-for-youtube.html

https://jonhyuk0922.tistory.com/160

https://www.youtube.com/watch?v=V6zixdCIOqw