Ch 09-6. YouTube의 추천시스템

Yeonghyeon·2022년 8월 24일
0

Recommender System

목록 보기
33/33

본 포스팅은 Fastcampus 강의를 수강하며 일부 내용을 정리한 글임을 밝힙니다. 보다 자세한 내용은 아래 강의를 통해 확인해주세요.
참고 : Fastcampus 딥러닝을 활용한 추천시스템 구현 올인원 패키지 Online


Ch 08. Recommender System with Deep Learning


📑 1. YouTube Recommender System

  1. Nandy et al., (2010) The YouTube Video Recommendation System
  2. Covington et al., (2016) Deep Neural Networks for YouTube Recommendations
  3. Zhao et al., (2019) Recommending What Video to Watch Next: A Multitask Ranking System
  • 1, 3번은 간략하게 추천시스템 방식 알아봄
  • 2번은 좀 더 구체적으로 알아봄

1-1. The YouTube Video Recommendation System

RecSys 2010
  • 그 당시 유튜브 추천화면 예시
  • 스마트폰과 어플의 활성화 X
  • Website 에서 주로 YouTube 사용
  • [key point]: two-step으로 추천시스템 적용
    • step 1. Candidate Generation: user에게 적합한 영상 후보 생성

      • Association rule mining
    • step 2. Ranking: 생성된 후보에서 ranking을 매김

      • Video quality, User specificity, Diversification 등을 고려해서 랭킹 매김
  • System Implementation
    • Data collection, Recommendation generation, Recommendation serving
  • Evaluation

1-2. Deep Neural Networks for YouTube Recommendations

RecSys 2016

| Abstract

  • YouTube는 가장 크고 정교한 상업 추천시스템
  • 딥러닝을 적용하고 성능이 dramatic하게 향상됐음
  • Two-stage information retrieval dichotomy 소개
    • Deep candidate generation model
    • Deep ranking model
  • 거대한 추천시스템을 구축할 때 인사이트도 함께 제안

| Introduction

  • YouTube 추천은 수많은 사용자에게 개인화된 컨텐츠 추천을 해야 할 책임이 있다
  • 추천시스템 구현 시 다음과 같은 고민
    • 1. Scale

      ✔️ YouTube의 수많은 사용자와 코퍼스를 다루기 위해서 효율적인 서빙과 특화된 추천 알고리즘이 필요
    • 2. Freshness

      ✔️ YouTube에는 수많은 영상이 업로드 되고, 추천시스템은 새롭게 올라오는 컨텐츠와 사용자의 행동에 적절하게 대응 필요
      ✔️ 잘 만들어진 영상과 새로운 컨텐츠 사이에서 적절하게 적용 및 반영 가능해야 함
    • 3. Noise

      ✔️ Sparsity와 수많은 외부요인으로 사용자 행동을 예측하기 어려움
      ✔️ Implicit feedback을 적절히 사용하고, poorly structured metadata도 활용가능해야 함

| System Overview

Candidate GenerationRanking으로 나눌 수 있다

1. Candidate Generation

  • Input: 사용자의 Youbue 히스토리
  • Output: 사용자와 관련있을 만한 영상 집합
  • 협업필터링 사용하고 시청기록, 검색 키워드, demographics 정보 활용

2. Ranking Model

  • 영상과 사용자 features로 각 영상에 대한 점수를 매김

  • 학습할 때 offline metric(precision, recall, ranking loss 등) 활용
  • (라이브) A/B 테스트를 꼭 진행하여 최종 알고리즘 선택

| 1. Candidate Generation

  • Non-linear generalization of factorization technique

1. Recommendation as Classificaiton (추천을 분류 문제로 생각)

  • uRNu \in \mathbb{R^N}: high-dimensional user-embedding
  • v_j \in \mathbb{R^N}$: 개별 video의 embedding
  • CC: context
  • 사용자와 context의 vector u를 학습하여 영상을 시청할 확률을 학습하는 Softmax Classifier
  • Sparse한 Explicit feedback과 많은 implicit feedback 활용
  • Negative Sampling을 통해 효율적인 학습

    Negative Sampling이란?

    • 예를 들어, 1~100개의 아이템 중 1번 아이템만 positive고 나머지 99개 아이템을 negative로 두면, 이때 99개 중 랜덤으로 샘플링하여 positive와 negative 학습셋을 만들어서 학습한다 (negative 99개 전부 학습 X, 비효율)
    • 전체 negative sample을 모두 사용하여 학습하는 것보다 효율적

2. Model Architecture

  • 다음의 embedding을 모두 concat
    • 사용자의 시청기록(embedded video watches)
    • 사용자의 검색기록(embedded search token)
    • geographic embedding
    • 추가 meta 정보(age, gender 등)

3. Heterogeneous Signals

  • Continuous와 categorical features를 deep neural network에 사용 가능하다
  • 보통 새로운 영상을 사용자가 선호하는 경향 보임
  • 시청 기록은 시간 정보를 포함하고 있지 않음
  • Age feature는 영상 콘텐츠의 시간 정보

4. Label and Context Selection

  • 추천시스템은 surrogate problem(실제 상황과 evaluation metric의 차이)을 항상 고려해야 함

    • evaluation metric이 좋다고해도 실제 상황에서도 좋다는 것이 아님
  • 유튜브이외의 데이터도 학습데이터에 포함해야 함

  • 사용자의 가중치를 동일하게 하기 위해서 사용자의 학습 데이터 수를 고정

  • 무작위로 아이템을 선정하여 예측하는 것보다 특정 시점 기준으로 예측하는 것이 더 효과적 (위 그림 참고)

    • (a): network inputs을 좌우에서 가져와서 시간 정보에 대해 신경 안 씀
    • (b): network inputs을 label 바로 직전의 것들만 사용하여 시간 정보를 담음으로써 미래의 상황을 예측하는 것이 더 효과적

5. Experiments

  • Features 수와 depth에 따라 달라지는 성능을 비교한다 (많은 features수와 많은 depth)
  • y축: 일반적으로 사용하는 evaluation metric MAP

| 2. Ranking

  • 영상과 사용자 사이의 관계를 표현하는 featues를 많이 사용해야 함

  • Candidate generation과 비슷한 모델 구조 사용

  • Categorical과 continuous features 사용

  • 사용자의 이전 행동을 고려하여 아이템과의 interaction을 모델링 하는 것이 keypoint

  • 각 features에 대한 feature engineering이 필요

    • Embedding Categorical features
    • Normalizing Continous features
  • 목표: 사용자가 선택한 아이템과 그렇지 않은 아이템의 expected watch time 예측

    • 사용자가 영상에 대해 얼마나 시청할 지
  • Model Architecture

| Continuous

  • YouTube 영상 추천시스템은 candidate generation과 ranking 부분으로 나뉨

    • candidate generation: binary classification (softmax classification)
    • ranking: expected watch time
  • Deep collaborative filtering 모델은 더 많은 특징과 interaction 반영 가능

  • Age feature 를 추가하여 time-dependent한 부분을 반영하고 watch time이 증가함을 확인

  • Embedding categorical features와 normalized continous features를 활용

  • 여러 층의 신경망은 수많은 features 사이의 non-liear interactions를 효과적으로 모델링 가능


1-3. Recommending What Video to Watch Next: A Multitask Ranking System

RecSys 2019
  • 추천을 해주긴 하는데, 다음 영상으로 무엇을 추천할 지

| Contributions

  1. 영상 추천을 위한 End-to-end Ranking System 제안

  2. 랭킹 문제를 Multi-objective learning 문제로 풀고, 모든 objective에 대해 성능을 향상시키기 위해 Multi-gate Mixture-of-Experts 구조로 확장

    • 즉, Multi-task Learning
    • 데이터가 들어왔을 때 task를 여러개 주고 푸는 모델링
  3. Wide&Deep 모델 구조 적용하고, position bias를 줄임 (mitagate)

  4. 실제 서비스에서 영상 추천 시스템을 평가하고 효과를 입증

| Model Architecture

  • multi-task learning
    • User Engagement task와 User Satisfaction task

  • 추천 랭킹 순위(positive features)와 device info(other features)를 활용하여 selection bias 정보 추가
  • 사용자는 화면에 보여지는 영상 중 가장 상단에 위치한 영상을 주로 선택하는 경향
    • 오른쪽에 관련 동영상에서 가장 상단
  • Position bias를 없애서 더 좋은 성능 얻을 수 있음

0개의 댓글