12. 딥러닝활용 - 유튜브 추천시스템(2016)
- 유튜브는 구글의 다른 서비스들과 함께 거의 모든 학습
문제에 대한 범용 솔루션으로 딥러닝을 사용하는 방향으
로 근본적인 패러다임 변화를 겪었다.
- MF의 방식을 딥러닝으로 흉내 내어 복잡하고 많은 변수
들을 사용할 수 있게 하였음
- 10억개의 파라메터, 1000억개의 데이터를 학습
- 딥러닝 구조를 추천시스템에 어떻게 활용하였는지 위주로 준비하였음. 피쳐 엔지니어링, 아키텍
쳐 디자인에 대한 세부 정보가 궁금하다면 아래 논문참조(카톡에 같이올렸음)
Paul Covington, Jay Adams, Emre Sargin - Deep Neural Networks for YouTube Recommendations
13. 1. 유튜브 추천시스템이 도전적인 이유
1. 규모:
- 기존에 존재하던 추천알고리즘들은 소규모 문제에서만 잘 작동했음.
- 분산처리 시스템과 효율적으로 정보를 추리는 방법이 필수적임.
2. 신선함:
- 매초마다 수 시간의 새로운 영상들이 올라옴.
- 추천시스템은 이런 최신 컨텐츠와 사용자들의 최근 행동기록들을 분석할 수 있어야함.
- 신선한 컨텐츠와 이미 유명한 컨텐츠들 간의 밸런스는 탐험/활용 관점에서 해석될 수 있음.
3. 노이즈:
- 유튜브 사용기록은 매우 희소하고 다양한 외부요인들이 작용하기 때문에 예측이 어렵다.
- 유저의 진짜 만족에 대해서는 거의 알 수 없고 잡음 섞인 암묵적 피드백을 통해서만 모델링이
가능하다.
- 컨텐츠의 메타데이터가 잘 정리되어있지 않다.
14. 2. System Overview
각각의 역할을 수행하는 2개의 네트워크로 구성
1. 후보생성 네트워크:
• 협업필터링을 기반으로 사용자의 행동기록을 인풋으로 하여
수백개의 후보영상들을 추려냄.
• 정밀도(precision)에 중점을 둠
• 검색단어, 인구통계, 영상 시청 기록, 영상 나이 등을 이용
2. 랭킹 네트워크:
• 간추려진 후보들의 순위를 매기는 네트워크.
• 재현률(recall)에 중점을 두어 각각의 비디오에 점수를 부여.
• 사용자와 영상의 관계를 표현하는 매우 풍부한 피쳐들을 이용
이 두 네트워크를 통해 방대한 영상들로 부터 개인화된 소수의 영상을 제공
15. 3. 후보생성 네트워크
유튜브의 수많은 영상들로부터 수백개
의 후보영상들을 추려내는 과정
• 각각의 비디오를 하나의 클래스로 취
급하여 익스트림한 멀티클래스 분류문
제로 다루었다.
• Matrix Factorization 접근법을 딥러닝
방식으로 일반화한 것.
16. 3. 후보생성 네트워크
- u와 v는 각각 N차원으로 임베딩된 유저와 비디오정보.
- 기존에 희소공간에 존재하는 벡터들을 N차원의 dense
벡터로 매핑하여 사용한다.
유저특성(U)과 비디오정보(C)가 주어진 상황에서
시점 t에 유저가 비디오 i를 볼 확률을 계산.
이게 왜 Matrix Factorization 방식?
17. 3. 후보생성 네트워크
- u와 v는 각각 N차원으로 임베딩된 유저와 비디오정보.
- 기존에 희소공간에 존재하는 벡터들을 N차원의 dense
벡터로 매핑하여 사용한다.
이게 왜 Matrix Factorization 방식?
유저특성(U)과 비디오정보(C)가 주어진 상황에서
시점 t에 유저가 비디오 i를 볼 확률을 계산.
Video
User
User
VideoFactor
Factor𝑣𝑗
𝑢𝑖
18. 3. 후보생성 네트워크
- 유저가 시청하지 않은 영상 수천개를 샘플링하여
시청한 영상과 함께 훈련에 사용. 유저의 반응(클릭,
시청 등) 확률을 예측하게 한다.
- Cross-Entropy Loss 최소화
신경망의 궁극적인 역할은 소프트맥스 분류기가
비디오들에 대한 유저의 반응을 잘 예측할 수 있도록
유저정보를 임베딩 하는 방법을 배우는 것.
유저특성(U)과 비디오정보(C)가 주어진 상황에서
시점 t에 유저가 비디오 i를 볼 확률을 계산.
19. 3. 후보생성 네트워크
- serving time에는 수백만개의 비디오들에 대
한 점수를 일일히 계산하기에 시간 부족
- 이때는 u, v 벡터를 이용하여 KNN을 통해 근
사적으로 top N개의 영상을 추려냄.
- 미리 일부의 비디오에 대해 점수를 예측해
놓은 뒤(v,u내적), 높은 점수의 영상과 비슷한
영상을 골라내는 식
2048 - 1024 - 512 - 256 - softmax
Fully connected
20. 4. 랭킹 네트워크
수 백 개의 후보 영상들을 사용자가 선호할 순서
대로 순위를 부여하는 네트워크.
- 목적은 추천된 횟수 대비 평균 감상 시간을 로지
스틱회귀로 예측하는 것.
- 대상이 수 백 개의 후보 영상으로 줄었기 때문에
유저와 영상 간의 더 많은 관계를 표현하는 변수
들을 포함시킬 수 있음.
- A/B테스트를 통해 지속적으로 구조를 업데이트.
꿀팁: 연속형 변수에 대해 𝑥, 𝑥2
, 𝑥 중 무엇이 더 좋을지 모른다면 모두 사용해 버리기~
네트워크가 몇 개의 레이어를 거치는 비선형성을 직접 학습할 필요 없이 단일 레이어
의 가중치만 잘 학습하면 됨!
21. 5. 결론
• 이 방법이 Matrix Factorization보다 좋다.
• 전체 시스템을 디자인하는 것은 과학이 아니라 거의 예술의 영역이다.
• "영상의 나이“ 변수가 잘 작동한다.
• 좋은 성능을 위해선 다양한 피쳐들을 잘 활용할 방법을 알아내야 한다.
• 노출 당 기대시청시간을 예측하는 모델이 클릭률을 예측하는 모델보다 결과가 좋다.