본 포스팅은 Fastcampus 강의를 수강하며 일부 내용을 정리한 글임을 밝힙니다. 보다 자세한 내용은 아래 강의를 통해 확인해주세요.
참고 : Fastcampus 딥러닝을 활용한 추천시스템 구현 올인원 패키지 Online
Ch 08. Recommender System with Deep Learning
📑 1. YouTube Recommender System
- Nandy et al., (2010) The YouTube Video Recommendation System
- Covington et al., (2016) Deep Neural Networks for YouTube Recommendations
- Zhao et al., (2019) Recommending What Video to Watch Next: A Multitask Ranking System
- 1, 3번은 간략하게 추천시스템 방식 알아봄
- 2번은 좀 더 구체적으로 알아봄
RecSys 2010
- 그 당시 유튜브 추천화면 예시
- 스마트폰과 어플의 활성화 X
- Website 에서 주로 YouTube 사용
- [key point]: two-step으로 추천시스템 적용
- System Implementation
- Data collection, Recommendation generation, Recommendation serving
- Evaluation
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 Generation과 Ranking으로 나눌 수 있다
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 (추천을 분류 문제로 생각)
- u∈RN: high-dimensional user-embedding
- v_j \in \mathbb{R^N}$: 개별 video의 embedding
- C: 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를 효과적으로 모델링 가능
RecSys 2019
- 추천을 해주긴 하는데, 다음 영상으로 무엇을 추천할 지
| Contributions
-
영상 추천을 위한 End-to-end Ranking System 제안
-
랭킹 문제를 Multi-objective learning 문제로 풀고, 모든 objective에 대해 성능을 향상시키기 위해 Multi-gate Mixture-of-Experts 구조로 확장
- 즉, Multi-task Learning
- 데이터가 들어왔을 때 task를 여러개 주고 푸는 모델링
-
Wide&Deep 모델 구조 적용하고, position bias를 줄임 (mitagate)
-
실제 서비스에서 영상 추천 시스템을 평가하고 효과를 입증
| Model Architecture
- multi-task learning
- User Engagement task와 User Satisfaction task
- 추천 랭킹 순위(positive features)와 device info(other features)를 활용하여 selection bias 정보 추가
- 사용자는 화면에 보여지는 영상 중 가장 상단에 위치한 영상을 주로 선택하는 경향
- Position bias를 없애서 더 좋은 성능 얻을 수 있음