본문 바로가기
추천 시스템 논문

Deep Neural Networks for YouTube Recommendation

by 블쭌 2021. 1. 17.
728x90
  • Abstract

딥러닝이 나온 이후에 딥러닝을 활용한 유튜브 추천 성능 향상에대한 논문이다. 2단계로 구성되어있고 첫번째 단계는 후보 생성 모델이고 두번째는 ranking model이다.

 

  • 많은 데이터에 따른 유튜브의 추천시스템이 직면한 문제점 3가지
    • 1. Scale: 기존에 존재하던 추천 알고리즘(ex. 협업필터링)은 소량의 데이터에서 성능이 좋았지만 유튜브에서는 적합하지 않았다. (생각해보면 현재 유튜브를 안보는 사람이 없을 정도니 협업필터링으로 연산하기엔 한계가 많다)
    • 2. Freshness: 유튜브는 매 1초마다 많은 양의 비디오가 업로드된다. 추천시스템은 이러한 최신 업로드된 컨텐츠 뿐만 아니라 유저의 최근행동에 대해서 유연하게 반응해야한다. 새로운 컨텐츠와 기존 컨텐츠 사이의 균형을 맞춰주는것이 중요하다.(기존 알고리즘의 경우 새로운 아이템에 대한 추천이 불가능하기 때문에 신선함이 필요하다는 뜻인것 같다)
    • 3. Noise: 유튜브의 유저 과거 행동들은 sparsity가 너무 크고 관찰되지 않은 많은 외부요인들이 존재하기 때문에 예측하는것이 어렵다. 사용자 만족도에 대한 explicit feedback을 구하기 굉장히 힘들기 때문에 implict feedback을 사용하게 되며, 메타데이터가 잘 구축되지 않기도 함
  • System Overview

  • 위 그림에서 볼 수 있듯이 candidate generation과 ranking 2가지 network로 구성되어있다.
    • candidate generation
      • 유튜브 유저 과거 활동 기록을 input으로 해서 다양한 컨텐츠 중에서 수백개의 조그만한(?) 비디오 셋을 output으로 내보내준다. 즉 어느정도 개인의 성향이 반영된 비디오를 추려서 제공해준다.
      • Collaborative filtering을 통해 개인화된 후보를 제공해주고, 비디오 시청 ID, 검색어, 그리고 인구통계학 정보와 같은 feature들을 통해서 두 유저 사이의 유사도를 표현해준다.
    • Ranking
      • 비디오와 유저를 묘사하는 다양한 feature를 사용하여 objective function에 따라서 각 비디오에게 score를 할당한다.
      • score가 높은 비디오들이 유저들에게 추천이 된다.
  • Candidate Generation
    • U: user, C: context 를 기반으로 특정시간 t: time에서 V: video corpus중 어떤 비디오를 시청할지에 대한 multiclass classfication으로 정의할 수 있다.
      • u는 고차원의 사용자 임베딩을 나타낸다.
      • v는 각 비디오 후보의 임베딩을 나타낸다.
      • 제안하고 있는 deep neural network의 주된 업무는 사용자 과거기록과 context를 응축한 u를 학습하는것을 바탕으로 softmax classifier를 통해서 아이템 시청 여부의 확률을 예측하는 것이다.
      • youtube에서 좋아요 싫어요를 표시하는 명백한 피드백이 있지만 이를 이용하지 않고 실제 유저가 한 영상을 끝까지 시청했는지 여부를 피드백으로 사용했다.

 

 

  • Efficient Extreme Multiclass
    • 모델을 효율적으로 train시키기 위해서 neagtive sampling 기법을 적용한다.
    • 이러한 방식을 적용하는 이유는 sample의 수가 너무 많기 때문에 softmax 연산시 많은 cost가 발생하기 때문이다. 
  • Model Architecture
    • 언어모델 CBOW에 영감을 받아서 고정된 vocabulary안에서 각 비디오에 대한 고차원의 임베딩을 학습한다.
    • 사용자의 과거 시청 기록은 sparse한 비디오들의 다양한 길이의 sequence에 의해 표현된다.
    • 그러나 네트워크는 고정된 사이즈의 input이 요구되기 때문에 임베딩의 단순 평균이 성능이 가장 좋아서 평균을 사용했다. 
  • Heterogeneous Signals
    • MF(행렬 분해)의 딥러닝 사용 이점은 연속형 변수와 범주형 변수를 모델에 쉽게 추가할 수 있는 것이다.
    • 과거 search, query 등을 embedding하여 평균낸것이 요약된 search history로 표현된다.
    • 새로운 유저에게 알맞은 추천을 위해서 인구통계학적 요소도 매우 중요하다. 그리고 각각의 요소들은 0~1사이의 값을 갖는 실수로 들어가게된다.
  • "Example Age"
    • 매초마다 대량의 영상들이 업로드될때 이러한 비디오를 추천하는것이 유튜브의 또 하나의 중요한 일이다.
    • 머신러닝은 미래를 예측하도록 훈련되어있기 때문에 과거 아이템에 대한 경향이 많다.
    • 또한 유튜브 모델은 아이템 벡터의 평균을 사용하기 때문에 sequence가 반영되지 않아서 이를 보정하기 위해서 새로운 age라는 feature를 추가했다.
    • 아래 그림에서 볼 수 있듯이 나이를 추가했을때 기존 분포와 더 유사해지는 것을 학인할 수 있다.

 

  • Label and Context Selection

  • 추천 시스템은 대부분 surrogate problem가 발생함
    *surrogate problem: 개발한 추천 엔진에 대한 평가는 직접 서빙하여 사용자로부터 피드백을 받는 것이지만 항상 이러한 형태의 평가가 불가능함으로, RMSE 혹은 MAP와 같은 성능 지표를 활용하여 모델을 평가하는 과정

  • 학습 데이터는 유튜브 추천 시스템으로 만들어진 데이터 이외의 방법으로 만들어진 데이터까지 포함하는 것이 좋음

    • 그렇지 않다면, 데이터 자체가 오로지 유튜브 추천 시스템에 의한 결과이기 때문에 bias가 자연스럽게 생길 수 있으며 새로운 아이템을 탐색하기 어려워짐

    • 사용자가 유튜브 추천 시스템이 아닌 다른 방법으로 영상 콘텐츠를 시청했다면, 우리는 그 데이터를 활용해서 또 다른 collaborative filtering이 가능함

  • 또 다른 방법으로는, 모든 사용자의 가중치를 동일하게 유지하기 위해서 사용자마다 학습 데이터의 수를 고정하는 것임

    • 이 방법은, 매우 활동적인 사용자의 영향을 방지하기 위해서임
  • 무작위로 선택된 아이템을 예측하는것보다 그 다음 아이템이 뭔지 예측하는것이 성능이 더 좋았다.
  • 오른쪽 아래 그림(b)에서 볼 수 있듯이 특정 label이전 watch history를 input으로 넣는다.

  • Ranking

    • Ranking모델의 주 역할은 예측된 후보에 대해서 특성화하는 것이다.
    • 수백만개가 아닌 몇백개의 스코어를 가진 video corpus이기 때문에 rank 과정에서 비디오를 묘사하는 많은 feature들 접근했다.
    • candidate generation모델과 유사하며 각 비디오마다 점수를 할당하고 정렬후 사용자에게 return된다.
728x90

댓글