일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- STAGE
- boostcamp #aI tech #주간리뷰
- 파이썬
- GitHub 설치
- 함수
- local repository 생성
- python
- git
- 1
- amend
- 15596
- Reset
- git push
- github
- commit
- 수정사항업데이트
- git commit
- git config global
- regExr
- 두수비교하기
- 1330
- ADD
- remote repository 생성
- Push
- 백준
- Restore
- Baekjoon
- 정규식
- Today
- Total
Très bien
(Paper Review) Deep Neural Networks for YouTube Recommendations 본문
(Paper Review) Deep Neural Networks for YouTube Recommendations
LemonSoda 2022. 3. 19. 20:461. Introduction
추천시스템에 적용할 수 있는 데이터양이 증가하면서 전통적인 기계학습 기법을 딥 러닝 모델에 적용하기 위한 연구가 활발히 진행되고 있습니다. 본 논문은 2016년 RecSys에 발표한 Google의 논문으로 Deep Neural Network를 YouTube 추천에 적용한 연구를 소개하고 있습니다. 유튜브 추천 시스템은 세 가지 관점에서 성능 개선을 위한 연구를 진행했습니다.
- Scale : 많은 유저와 아이템을 다룰 수 있는 특화된 분산 학습 알고리즘과 효율적인 서빙 시스템
- Freshness : 신규 컨텐츠와 사용자의 최신 행동을 적절하게 조합할 수 있는 추천 정책 (exploration/exploitation)
- Noise : Sparsity, 고객 만족도에 대한 ground truth 획득의 어려움, meta data의 비정교성 등의 요소를 극복해야 함.
2. System Overview
DNN for Rec 시스템은 후보 생성(Candidate generation)과 우선순위할당(ranking)의 두 개의 Neural Network로 구성되어 있습니다.수백만개의 Video Corpus로부터
- Candidate Generation network : 사용자의 과거 행동 기록으로 학습된 사용자-아이템 간 유사도(similarity) 네트웍을 통해 수백만개의 Video Corpus로부터 수백개 단위(Top-K)의 아이템 subset을 추출합니다.
- Candidate Ranking : User, Item feature를 더 활용하여 Score를 구하고 최종 추천 아이템 리스트를 제공합니다.
3. Candidate Generation
3.1 Inputs
다양한 feature를 concate하여 입력 벡터를 구성하여 Neural Network의 입력값으로 사용하였습니다.
- watch vector : 사용자의 과거 시청 정보를 임베딩하고 마지막 시청 이력이 큰 가중치를 갖지 않도록 평균함
- search vector : 사용자의 과거 검색 이력을 임베딩하고 마지막 검색어가 너무 큰 가중치를 갖지 않도록 평균함
- demographic & geograpic features : 성별 등 인구통계학 정보와 지리적 정보를 feature로 포함함
- example age : 시청 로그가 최신 데이터를 많이 반영할 수 있도록 학습 시점으로부터 경과한 시점을 feature로 포함
3.2 Multi-layer Neural Network (multi-class classifier)
- n개의 dense layer를 거쳐 user vector, u를 생성합니다.
- 출력된 user vector는 softmax function을 거쳐 multi-class의 classification을 수행합니다.
- softmax의 최종 출력은 비디오를 k개의 class에 해당하는 probabilities 형태로 출력합니다. .
3.3 serving
학습된 user vector(user-context pair)와 video class probability를 입력받아 상위 N개의 비디오 목록을 추출하여 서빙합니다.
- Candidate generation에서 Neural Network는 과거 user-context 이력으로부터 임베딩을 학습합니다.
- 학습된 유저 벡터(u)는 모든 비디오 벡터(v)와 내적을 계산하여 각 비디오가 class i에 속할 확률을 내적으로 계산합니다.
- 특정 시간, t에 유저 u가 C 라는 컨텍스트를 가지고 있을 때, 비디오(i)를 볼 확률을 다음과 같이 모델링 했습니다. $ \boldsymbol{u} $는 고차원 (user, context) 임베딩이고 $ \boldsymbol{v} $는 video(item) 후보의 임베딩 입니다.
$ {P(\omega_{t}=i|U, C)}=\frac{e^{v^{i}u}}{\sum_{j\epsilon V}e^{v^{u}u} } $
- softmax classifier에서 특정 video가 class-i에 해당할 확률을 계산하여 Top-K video를 추출합니다.
- Annoy, Faiss 같은 ANN 라이브러리를 사용하여 빠르게 서빙합니다.
4. Candidate Ranking
4.1 Inputs
- video embedding : Candidate Generation 단계에서 생성한 Video(item) 후보 목록
- user action feature : 좋아요 영상 목록, 과거 시청 이력
- time since last watch : 특정 topic의 동영상을 본 후 얼마나 시간이 지났는지를 모델링한 벡터
- previous impressions : 영상의 과거 시청 여부
4.2 Model
▶ Multi-Layer Network
Candidate Generation 단계에서 생성한 video 후보 목록 (video embedding)가 Network Frame을 통과하며 Video 시청 예측값을 학습합니다. 학습을 위한 loss function은 weighted cross-entropy loss를 사용하여 비디오 시청 시간으로 가중치를 제공했습니다.
▶ Ranking
Logistic Regression을 사용하여 최종 추천될 비디오들의 순위를 정합니다. 시청 여부만을 맞히는 CTR 예측을 적용했습니다.
$ {P(watch) \epsilon [0, 1]} $
5. 결론
수백만개의 Video Corpus로부터 Candidate를 생성하여 계산의 범위를 좁힌 후, ranking을 적용하여 최종 추천 목록을 생성하는 2단계 구조로 구성된 추천 시스템을 제안했습니다. 각 단계마다 multi-layer neural network를 적용하고, 다양한 feature를 임베딩하여 학습에 반영했습니다. 단순 CTR 예측이 아닌 Expected Watch Time을 예측했습니다.
References
- Deep Neural Networks for YouTube Recommendations. Paul Covington, et al. RecSys ’16
- boostcamp AI Tech, RecSys Lecture Notes by 이준원
- NVIDIA Developer Technical Blog, How to Build a Winning Recommendataion System, by Carol McDonald Gabriel Moreira https://developer.nvidia.com/blog/how-to-build-a-winning-recommendation-system-part-1/
'Study > RecSys' 카테고리의 다른 글
(Paper Review) Training Deep AutoEncoders for Collaborative Filtering (0) | 2022.03.20 |
---|---|
(Paper Review) Autoencoders Meet Collaborative Filtering (0) | 2022.03.19 |
Recommender System (추천시스템) (0) | 2022.03.19 |
(Paper Review) Neural Collaborative Filtering (0) | 2022.03.19 |
Collaborative Filtering (협업 필터링) (0) | 2022.03.19 |