SlideShare ist ein Scribd-Unternehmen logo
1 von 22
Deep Neural Networks for YouTube
Recommendations
2016
https://static.googleusercontent.com/media/research.google.com/ko//pubs/archive/45530.pdf
Introduction (3가지 핵심적인 Challenge & Approach)
[Scale]
기존 알고리즘들이 작은 규모에서는 잘 동작하지만, YouTube 같은 Scale 에서는 잘 동작 않음
=> Softmax, Loss, Nearest Neighbor Search 등에 그러한 고민을 반영된 것을 볼 수 있음
[Freshness]
새롭게 Upload 되는 영상에 잘 반응 할 수 있어야 함
=> Train Set 의 Age 를 Feature 로 포함하여 훈련, Inference 시에는 약간 음수로 처리 등
[Noise]
사용자의 이력 및 반응은 명확하지 않으며, Video 에 대한 Tag 등도 잘 정리되어 있지 않다.
=> Click , 좋아요 등 보다는 Play Time 을 추정하는 것이 실제 A/B 테스트 성과가 가장 좋음
System Overview
전체 시스템은 두개의 신경망으로 구성
[CANDIDATE GENERATION]
전체 컨탠츠에서 수백개 정도의 개인에 적합한
후보를 도출하는 모델
[Ranking]
수백개의 컨탠츠의 노출 순서를 산출하는 모델
Candidate Generation
1.Recommendation as Classification
후보에 해당하는 컨탠츠를 추려내는 역할을 위한 모델을 엄청나게 많은 컨탠츠를 분류하는 문제를
해결하는 모델로 설계 함
U : User Info, C : Contents Info , Omega t : t 시간에 본 영상, i : Contents Index
Thumb Up/Down 등 명시적인 타겟이 아닌 영상 시청 여부를 타겟으로 사용함
Candidate Generation
1.Recommendation as Classification - Efficient Extreme Multiclass
엄청나게 많은 Class 를 분류하는 모델을 효과적으로 학습 시키기 위하여,
1) hierarchical softmax 도 검토 하였으나, 클래스가 연관성 문제나 복잡성 증대
등으로 Negative Sampling 을 하는 형태 (2)Sampled Softmax로 효율성 개선
※ 논문을 보면 실제로는 Negative Sampling 을 사용한 것으로 보임 .
1) hierarchical softmax : 특정 Class 의 확률을Root 부터 마지막까지 단계별 확률의 곱으로 표시
2) 모든 클래스를 대상으로 SoftMax 연산을 하는 것이 아닌, Random 하게 추출한 Sample에
포함된 Class 에 대해서만 SoftMax 연산을 하는 방식 (https://www.tensorflow.org/extras/candidate_sampling.pdf)
[Candidate Sampling]
Label 의 수가 많아 지는 추천이나, NLP 등에서는 SoftMax의 연산량을 줄이기 위한 시도들이 많이
있었음. 해당 훈련 데이터 셋 안에서 존재하는 Label 에 대해서만 SoftMax 연산을 하여 Loss를 구하
고 Back Propagation 하는 방식을 사용함. 논문에서는 Negative Sampling 을 사용함.
(1) Negative Sampling : Multi Class 문제를 True / False 이진 문제로 바꿔서 해결, False 에 대해서
는 Negative Sampling 을 통해 연산량을 줄일 수 있다 (※Sample의 출현 빈도 순으로)
실제 Binary Cross Entropy 에 적용해 보면 Y
Label + Sampled 된Negative Label 을 사용하
는 형태
Candidate Generation
2. Model Architecture (1) Embedding : continuous bag of words
language models (예: Word2Vec)에서 아이디
어를 얻어 고정된 사이즈의 Vector 로 시청 컨탠
츠를 표현하고 Average 하여 Feed Forward 한
다고 함.
(2) Train 시점과 Inference 의 사용 방법이 다르다,
Inference 시에는 1)dot product 에 기반한
nearest neighbor search 로 Top K개의
Contents 를 추출한다.
1) http://www.cs.cmu.edu/~agray/approxnn.pdf
Candidate Generation
2. Model Architecture (3) User Vector 는 아마도 SoftMax 이전의
마지막 Hidden Layer 로 추정함
(4) Video Vector는 User Vector 와 연산하는
Weight Vector 로 추정함
(E 가 User Vector 의 사이즈라고 할때,
Weight Vector 의 사이즈는 Class 수 X
E 의 사이즈 )
Candidate Generation
2. Model Architecture (5) 논문에서 언급하지는 않지만, Embedding Vector
는 어떻게 구할까?
- Nearest Neighbor를 위한 Index를
사용할 수도 있을 것이고?
- 영상 수 * Embedding Size 를 갖는
Embedding Matrix 를 사용할 수도 있고
- Tag, Text, Image 를 활용하여, Auto
Encoder 같은 모델의 Latent Space를
사용할 수도 있을듯.
Candidate Generation
2. Model Architecture (5) 아래와 같은 문구를 발견 하였음.
3.5 Experiments with Features and Depth Adding
features and depth significantly improves precision
on holdout data as shown in Figure 6. In these
experiments, a vocabulary of 1M videos and 1M
search tokens were embedded with 256 floats each
in a maximum bag size of 50 recent watches and 50
recent searches.
-> V 를 1M 으로 정하고 실험했음 , 이게
Real World 에서 동작할 수 있을까??
Scaling Up To Large Vocabulary Image Annotation에서 발표된 Weighted Approximate-Rank
Pairwise loss) 를 사용함. 원래 웹 이미지에 복수의 Label 이 혼재되어 있을 경우 처리 방안에 대한
논문이지만, 잘 맞춘것 보다 틀린것을 더 잘 맞출 수 있도록 훈련한다는 점에서 추천에서도 잘 활용
될 수 있음
https://medium.com/@gabrieltseng/intro-to-warp-loss-automatic-differentiation-and-pytorch-b6aa5083187a
(1) 이미지 피쳐를 추출함, Annotation 과 비교하여 유사도 추출
(2) 동일 이미지에 대해 다른 Annotation 을 랜덤 추출
(3) 다른 Annotation 과의 유사도 추출
(4) (1) 과의 비교를 통해 (3)에서 새로 추출한 Annotation 의
유사도가 더 크다면 해당 Loss 를 줄이는 형태로 W Update
[Weighted Approximate-Rank Pairwise loss]
https://static.googleusercontent.com/media/research.google.com/ko//pubs/archive/37180.pdf
[Weighted Approximate-Rank Pairwise loss]
Function Pi(I) 는 이미지의 Feature 를 추출하는 모델
Function Pi(W) 는 이미지의 Tag/Notation을 추출하는 모델
Dot Product 는 Tag 와 Image Feature 간의 유사도를 구함
(해당 모델의 목적 자체가 아미지를 가장 잘 설명하는 Tag를 찾기 위함)
동일한 이미지이지만, 다른 Tag 가 된 경우
새롭게 샘플링한 tag 이 유사도가 더 높으면 그 차이만큼을
Loss 로 정의하여 모델 훈련, 이때 앞에 Term 은 전체 레이블중에
역전 없이 진행한 횟수를 분모에 둬서 해당 Tag 의 신뢰성이
높을 수록 Loss를 적게 만들어 주는 역할을 함
*여기서 Y 가 커지면 시간이 많이 소요 되기 때문에 K개를 지정하여 Sampling 하여 진행
[approximate nearest neighbor search]
추천 가능한 Item 의 수가 많을수록 NN을 통해 가장 가까운 K개를 연산하기 위해서 필요한 연산량
은 O(N)으로 매우 커지게 된다. 때문에 Brute Search 방법으로는 한계가 있어, 가장 가까운 K개는
아니더라도 특정거리 내에서 K개를 더 효율적으로 찾는 방법이 필요하였으며, 이런한 방법들을 통
칭하여, approximate nearest neighbor search라고 한다. Tree를 이용하는 방법 등 여러가지가 있으
나, 가장 많이 사용하는 방법은 Locality Sensitive Hashing (LSH)라고 한다
요약하자면 아래와 같은 단계로 실행된다.
(1) 고차원 데이터를 저차원으로 줄인다 (Random Projection 사용)
(2) 저차원으로 줄인 Vector 중에 동일한 것끼리 그룹핑을 한다.
(3) 찾고자 하는 데이터가 들어온다 -> 저차원으로 맵핑한다.
(4) 동일한 저차원 그룹을 찾는다. (경우에 따라서는 저차원 Hash Map 여러개 구성하여 정교화)
(5) 그 안에서 NN 을 실행한다.
https://lovit.github.io/machine%20learning/vector%20indexing/2018/03/28/lsh/ http://www.cs.cmu.edu/~agray/approxnn.pdf
[Random Projection ]
고차원 데이터를 저차원으로 변환하기 위한 방법은 PCA, AutoEncoder 등 다양한 방법이 있다. 그
중에서도 RP(Random Projection)이 고차원에서 Element 간의 거리를 저차원에서도 잘 유지 시켜준
다고 한다.
여기서 B 가 Random Vector 라는 것인데, 예를 들어서 X 가
(100,000 차원) 이라면 B(100,000, 100) Matrix 를 Random 으
로 만들어서 X와 Multiply 연산을 하여, X’(100차원)으로 축소
한다는 것인데, 이게 의외로 잘 동작한다고 한다. 거기에 B만
바꿔주면 새로운 관점으로 저차원너 매치칭이 가능하니 복수
의 Hash Table 을 만들어서 approximate nearest neighbor
search를 더 정교화 할 수도 있음
https://medium.com/@LightOnIO/lightons-summer-series-3-random-projections-and-the-blessing-of-dimensionality-48d4d256f179
Candidate Generation
3. Example Age
실제 데이터를 보면, 최신 업로드된 컨탠츠를 사람들이
선호한다는 것을 알 수 있음, 하지만 그냥 Window 단위
로 쪼개서 훈련을 하게 되면, 전체 훈련 데이터의 평균적
인 경향성을 따르게 되기 때문에 최신으로 업데이트된
컨탠츠를 우선 추천하는 기능을 수행 불가.
그래서 Train Set 의(Label 기준, Train Set Max Date -
N 형태 표시) Age 라는 변수를 추가 하였음. 이를 통해
최신 컨탠츠를 우선 추천하는 것이 가능해짐.
Inference 시에는 약간 음수 값으로 대체함(좌측 표 기준
으로 하면 Starting Point 로 해석되도록)
Candidate Generation
4. Label and Context Selection : Surrogate Problem(평점을 예측하는 모델이 좋은 추천을 할 수 있
는지), 추천 대상 중 조회뿐만 아니라 모든 조회 이력을 Label로 하여 의외서 확대 , 보던 컨탠츠의 연
속성을 반영하는게 더 예측에 유리함.
Candidate Generation
5. Feature and Depth
Feature 를 봤던 영화, 검색어, 기타 고객 정보 등 많이
사용할 수록 좋았고, Depth의 경우 4단계 까지 성능 향
상을 보여 주었음
# 해당 논문은 아키택쳐 측면의 다양한 시도에 초점이
있는게 아님. 아키택쳐는 그냥 Art 영역이기도 하고..
Ranking
1. Architecture
Ranking 모델은 직접적인 비교가 어려운 다양한 Candidate들을 Ensemble 하여 Contents 별
Watching time 을 Weighted Logistic 으로 예측하는 형태의 모델이다.
Ranking
2. Feature Representation
(1) Feature Engineering : 변수 탐색하고 만드는 작업 했다는 이야기. 아래는 예시
ex) When was the last time the user watched a video on this topic?
ex) most important signals are those that describe a user’s previous interaction with the
item itself and other similar items, matching others’ experience in ranking ads
(2) Embedding Categorical Features : Embedding Matrix 만들어서 사용했음.
조회수 순으로 높은거 1M개 Vocab 구성, OOV 는 Zero 처리, 파라메터 쉐어링
(1) Normalizing Continuous Features : 0~1 사이의 값으로 잘 스케일링해서 사용
Ranking
3. Modeling Expected Watch Time
N is the number of training examples
k is the number of positive impressions
Ti is the watch time of the ith impression
훈련시에는 Positive Smaple (Click )에 대해서는 위
와 같이 N-K 로 Weight 을 주어 Cross Entropy 로 훈
련한다.
Inference 시에는 exponential function 을 사용해서
실제 시청시간과 유사한 값으로 변환하여 사용
Ranking
4. Experiments with Hidden Layers
[weighted, per-user loss]
user 에게 추천된 컨탠츠를 Click 할 확률과 Click 하지 않을 확률
을 구하고,
클릭하지 않을 확률이 더 큰데도 불구하고, 예상 시청 시간이 있다
면, 잘못 추정된 것으로 가정한다.
이러한 잘못 추정된 예측 시청시간의 합을 weighted, per-user
loss라 함
=> Layer 를 늘리면 성능이 좋아지는
모습을 보인다.
Conclusion
정말 오래된 고전 논문임. 그래도, 실무 관점에서 추천할 컨탠츠가 아주 많은 경우에 효율적으로 어
떻게 모델을 훈련하고 서비스할 것인지에 대한 측면에서 고민했던 내용들은 의미가 있다고 생각함.
다만 아래 내용 등 보완해야할 문제점들이 상당히 많이 보인다고 생각함.
- 아키택쳐 등은 요즘 유행하는 Transformer 등 적용 시도는 해볼 필요 있음
- Oov 문제에 대해서 너무 Naive 하게 처리하고 넘어갔는데 방법 고민 필요
- 완전 신규 컨탠츠에 대해서 실시간 적용이 가능하지 않아 보임.
- Feature Embedding 방법도 Embedding Matrix 가 최선일까?
- 이거 구지 모델 두개로 만들어야만 하는걸까? End2End 모델 설계는 안될까?
- Video 의 이미지 Feature 는 사용하지 않는 것 같은데?
- Video Descripion 처리시 NLP 모델은 어떤식으로 적용하였을까?
- Click 이후 Back 이나, 잠시 시청 후 종료 등에 대한 적용 방안이 보이지 않음
- Ranking 모델 저렇게 구성되면 Inference 를 여러번 해야 할듯?

Weitere ähnliche Inhalte

Was ist angesagt?

Designing more efficient convolution neural network
Designing more efficient convolution neural networkDesigning more efficient convolution neural network
Designing more efficient convolution neural networkDongyi Kim
 
앙상블 학습 기반의 추천시스템 개발
앙상블 학습 기반의 추천시스템 개발앙상블 학습 기반의 추천시스템 개발
앙상블 학습 기반의 추천시스템 개발Jungkyu Lee
 
PR-313 Training BatchNorm and Only BatchNorm: On the Expressive Power of Rand...
PR-313 Training BatchNorm and Only BatchNorm: On the Expressive Power of Rand...PR-313 Training BatchNorm and Only BatchNorm: On the Expressive Power of Rand...
PR-313 Training BatchNorm and Only BatchNorm: On the Expressive Power of Rand...Sunghoon Joo
 
통신사 고객 이탈분석
통신사 고객 이탈분석통신사 고객 이탈분석
통신사 고객 이탈분석DataScienceLab
 
추천 시스템 개요 (1)-draft
추천 시스템 개요 (1)-draft추천 시스템 개요 (1)-draft
추천 시스템 개요 (1)-drafthyunsung lee
 
[한국어] Neural Architecture Search with Reinforcement Learning
[한국어] Neural Architecture Search with Reinforcement Learning[한국어] Neural Architecture Search with Reinforcement Learning
[한국어] Neural Architecture Search with Reinforcement LearningKiho Suh
 
Io17ex automl & autodraw
Io17ex automl & autodrawIo17ex automl & autodraw
Io17ex automl & autodrawTae Young Lee
 
딥러닝을 11번가 영상 검색에 활용한 경험 공유
딥러닝을 11번가 영상 검색에 활용한 경험 공유딥러닝을 11번가 영상 검색에 활용한 경험 공유
딥러닝을 11번가 영상 검색에 활용한 경험 공유혁준 전
 
Reinforcement learning
Reinforcement learningReinforcement learning
Reinforcement learningTae Young Lee
 
딥러닝을 이용한 사용자 선호도 기반 의상 추천 알고리즘 Ppt 선수강
딥러닝을 이용한 사용자 선호도 기반 의상 추천 알고리즘 Ppt 선수강딥러닝을 이용한 사용자 선호도 기반 의상 추천 알고리즘 Ppt 선수강
딥러닝을 이용한 사용자 선호도 기반 의상 추천 알고리즘 Ppt 선수강Minji Kang
 
연구실 세미나 Show and tell google image captioning
연구실 세미나 Show and tell google image captioning연구실 세미나 Show and tell google image captioning
연구실 세미나 Show and tell google image captioninghkh
 
Query suggestions as summarization in exploratory search
Query suggestions as summarization in exploratory searchQuery suggestions as summarization in exploratory search
Query suggestions as summarization in exploratory searchtaeseon ryu
 
Machine Learning Foundations (a case study approach) 강의 정리
Machine Learning Foundations (a case study approach) 강의 정리Machine Learning Foundations (a case study approach) 강의 정리
Machine Learning Foundations (a case study approach) 강의 정리SANG WON PARK
 
네트워크 경량화 이모저모 @ 2020 DLD
네트워크 경량화 이모저모 @ 2020 DLD네트워크 경량화 이모저모 @ 2020 DLD
네트워크 경량화 이모저모 @ 2020 DLDKim Junghoon
 
InfoGAN Paper Review
InfoGAN Paper ReviewInfoGAN Paper Review
InfoGAN Paper Review태엽 김
 
InfoGAN: Interpretable Representation Learning by Information Maximizing Gene...
InfoGAN: Interpretable Representation Learning by Information Maximizing Gene...InfoGAN: Interpretable Representation Learning by Information Maximizing Gene...
InfoGAN: Interpretable Representation Learning by Information Maximizing Gene...홍배 김
 
파이썬으로 익히는 딥러닝 기본 (18년)
파이썬으로 익히는 딥러닝 기본 (18년)파이썬으로 익히는 딥러닝 기본 (18년)
파이썬으로 익히는 딥러닝 기본 (18년)SK(주) C&C - 강병호
 
인공신경망
인공신경망인공신경망
인공신경망종열 현
 
Deep learning framework 제작
Deep learning framework 제작Deep learning framework 제작
Deep learning framework 제작Tae Young Lee
 
Random Forest Intro [랜덤포레스트 설명]
Random Forest Intro [랜덤포레스트 설명]Random Forest Intro [랜덤포레스트 설명]
Random Forest Intro [랜덤포레스트 설명]Hyunwoo Kim
 

Was ist angesagt? (20)

Designing more efficient convolution neural network
Designing more efficient convolution neural networkDesigning more efficient convolution neural network
Designing more efficient convolution neural network
 
앙상블 학습 기반의 추천시스템 개발
앙상블 학습 기반의 추천시스템 개발앙상블 학습 기반의 추천시스템 개발
앙상블 학습 기반의 추천시스템 개발
 
PR-313 Training BatchNorm and Only BatchNorm: On the Expressive Power of Rand...
PR-313 Training BatchNorm and Only BatchNorm: On the Expressive Power of Rand...PR-313 Training BatchNorm and Only BatchNorm: On the Expressive Power of Rand...
PR-313 Training BatchNorm and Only BatchNorm: On the Expressive Power of Rand...
 
통신사 고객 이탈분석
통신사 고객 이탈분석통신사 고객 이탈분석
통신사 고객 이탈분석
 
추천 시스템 개요 (1)-draft
추천 시스템 개요 (1)-draft추천 시스템 개요 (1)-draft
추천 시스템 개요 (1)-draft
 
[한국어] Neural Architecture Search with Reinforcement Learning
[한국어] Neural Architecture Search with Reinforcement Learning[한국어] Neural Architecture Search with Reinforcement Learning
[한국어] Neural Architecture Search with Reinforcement Learning
 
Io17ex automl & autodraw
Io17ex automl & autodrawIo17ex automl & autodraw
Io17ex automl & autodraw
 
딥러닝을 11번가 영상 검색에 활용한 경험 공유
딥러닝을 11번가 영상 검색에 활용한 경험 공유딥러닝을 11번가 영상 검색에 활용한 경험 공유
딥러닝을 11번가 영상 검색에 활용한 경험 공유
 
Reinforcement learning
Reinforcement learningReinforcement learning
Reinforcement learning
 
딥러닝을 이용한 사용자 선호도 기반 의상 추천 알고리즘 Ppt 선수강
딥러닝을 이용한 사용자 선호도 기반 의상 추천 알고리즘 Ppt 선수강딥러닝을 이용한 사용자 선호도 기반 의상 추천 알고리즘 Ppt 선수강
딥러닝을 이용한 사용자 선호도 기반 의상 추천 알고리즘 Ppt 선수강
 
연구실 세미나 Show and tell google image captioning
연구실 세미나 Show and tell google image captioning연구실 세미나 Show and tell google image captioning
연구실 세미나 Show and tell google image captioning
 
Query suggestions as summarization in exploratory search
Query suggestions as summarization in exploratory searchQuery suggestions as summarization in exploratory search
Query suggestions as summarization in exploratory search
 
Machine Learning Foundations (a case study approach) 강의 정리
Machine Learning Foundations (a case study approach) 강의 정리Machine Learning Foundations (a case study approach) 강의 정리
Machine Learning Foundations (a case study approach) 강의 정리
 
네트워크 경량화 이모저모 @ 2020 DLD
네트워크 경량화 이모저모 @ 2020 DLD네트워크 경량화 이모저모 @ 2020 DLD
네트워크 경량화 이모저모 @ 2020 DLD
 
InfoGAN Paper Review
InfoGAN Paper ReviewInfoGAN Paper Review
InfoGAN Paper Review
 
InfoGAN: Interpretable Representation Learning by Information Maximizing Gene...
InfoGAN: Interpretable Representation Learning by Information Maximizing Gene...InfoGAN: Interpretable Representation Learning by Information Maximizing Gene...
InfoGAN: Interpretable Representation Learning by Information Maximizing Gene...
 
파이썬으로 익히는 딥러닝 기본 (18년)
파이썬으로 익히는 딥러닝 기본 (18년)파이썬으로 익히는 딥러닝 기본 (18년)
파이썬으로 익히는 딥러닝 기본 (18년)
 
인공신경망
인공신경망인공신경망
인공신경망
 
Deep learning framework 제작
Deep learning framework 제작Deep learning framework 제작
Deep learning framework 제작
 
Random Forest Intro [랜덤포레스트 설명]
Random Forest Intro [랜덤포레스트 설명]Random Forest Intro [랜덤포레스트 설명]
Random Forest Intro [랜덤포레스트 설명]
 

Ähnlich wie Deep neural networks for You-Tube recommendations

Chapter 11 Practical Methodology
Chapter 11 Practical MethodologyChapter 11 Practical Methodology
Chapter 11 Practical MethodologyKyeongUkJang
 
Transfer learning usage
Transfer learning usageTransfer learning usage
Transfer learning usageTae Young Lee
 
검색엔진에 적용된 딥러닝 모델 방법론
검색엔진에 적용된 딥러닝 모델 방법론검색엔진에 적용된 딥러닝 모델 방법론
검색엔진에 적용된 딥러닝 모델 방법론Tae Young Lee
 
[팝콘 시즌1] 최보경 : 실무자를 위한 인과추론 활용 - Best Practices
[팝콘 시즌1] 최보경 : 실무자를 위한 인과추론 활용 - Best Practices[팝콘 시즌1] 최보경 : 실무자를 위한 인과추론 활용 - Best Practices
[팝콘 시즌1] 최보경 : 실무자를 위한 인과추론 활용 - Best PracticesPAP (Product Analytics Playground)
 
[PAP] 실무자를 위한 인과추론 활용 : Best Practices
[PAP] 실무자를 위한 인과추론 활용 : Best Practices[PAP] 실무자를 위한 인과추론 활용 : Best Practices
[PAP] 실무자를 위한 인과추론 활용 : Best PracticesBokyung Choi
 
파이썬(Python) 으로 나만의 딥러닝 API 만들기 강좌 (Feat. AutoAI )
파이썬(Python) 으로 나만의 딥러닝 API 만들기 강좌 (Feat. AutoAI ) 파이썬(Python) 으로 나만의 딥러닝 API 만들기 강좌 (Feat. AutoAI )
파이썬(Python) 으로 나만의 딥러닝 API 만들기 강좌 (Feat. AutoAI ) Yunho Maeng
 
애자일과 애자일 테스트 소개 (테스트기본교육 3장 2절)
애자일과 애자일 테스트 소개 (테스트기본교육 3장 2절)애자일과 애자일 테스트 소개 (테스트기본교육 3장 2절)
애자일과 애자일 테스트 소개 (테스트기본교육 3장 2절)SangIn Choung
 
Active learning literature survey
Active learning  literature surveyActive learning  literature survey
Active learning literature surveyhyunsikkim30
 
Recommendation System History
Recommendation System HistoryRecommendation System History
Recommendation System HistoryTae Young Lee
 
풀잎스쿨 - LIME 발표자료(설명가능한 인공지능 기획!)
풀잎스쿨 - LIME 발표자료(설명가능한 인공지능 기획!)풀잎스쿨 - LIME 발표자료(설명가능한 인공지능 기획!)
풀잎스쿨 - LIME 발표자료(설명가능한 인공지능 기획!)Bong-Ho Lee
 
Image data augmentatiion
Image data augmentatiionImage data augmentatiion
Image data augmentatiionSubin An
 
2021-11-16 모두콘 딥러닝 경량화 발표
2021-11-16 모두콘 딥러닝 경량화 발표2021-11-16 모두콘 딥러닝 경량화 발표
2021-11-16 모두콘 딥러닝 경량화 발표JongkukLim
 
testing for agile?, agile for testing
testing for agile?, agile for testingtesting for agile?, agile for testing
testing for agile?, agile for testingSangIn Choung
 
더 나은 S/W를 만드는 것에 관하여 (OKKY 세미나)
더 나은 S/W를 만드는 것에 관하여 (OKKY 세미나)더 나은 S/W를 만드는 것에 관하여 (OKKY 세미나)
더 나은 S/W를 만드는 것에 관하여 (OKKY 세미나)Jeongho Shin
 
딥러닝 세계에 입문하기 위반 분투
딥러닝 세계에 입문하기 위반 분투딥러닝 세계에 입문하기 위반 분투
딥러닝 세계에 입문하기 위반 분투Ubuntu Korea Community
 
링크드인의 Big Data Recommendation Products - 어제의 데이터를 통해 내일을 예측한다
링크드인의 Big Data Recommendation Products - 어제의 데이터를 통해 내일을 예측한다링크드인의 Big Data Recommendation Products - 어제의 데이터를 통해 내일을 예측한다
링크드인의 Big Data Recommendation Products - 어제의 데이터를 통해 내일을 예측한다Evion Kim
 
알고리즘 마케팅 CH5
알고리즘 마케팅 CH5알고리즘 마케팅 CH5
알고리즘 마케팅 CH5kyuchul kim
 
Variational Autoencoder를 여러 가지 각도에서 이해하기 (Understanding Variational Autoencod...
Variational Autoencoder를 여러 가지 각도에서 이해하기 (Understanding Variational Autoencod...Variational Autoencoder를 여러 가지 각도에서 이해하기 (Understanding Variational Autoencod...
Variational Autoencoder를 여러 가지 각도에서 이해하기 (Understanding Variational Autoencod...Haezoom Inc.
 
211223 지승현 text generation survey
211223 지승현 text generation survey211223 지승현 text generation survey
211223 지승현 text generation surveyssuser23ed0c
 

Ähnlich wie Deep neural networks for You-Tube recommendations (20)

Chapter 11 Practical Methodology
Chapter 11 Practical MethodologyChapter 11 Practical Methodology
Chapter 11 Practical Methodology
 
Transfer learning usage
Transfer learning usageTransfer learning usage
Transfer learning usage
 
PaLM Paper Review
PaLM Paper ReviewPaLM Paper Review
PaLM Paper Review
 
검색엔진에 적용된 딥러닝 모델 방법론
검색엔진에 적용된 딥러닝 모델 방법론검색엔진에 적용된 딥러닝 모델 방법론
검색엔진에 적용된 딥러닝 모델 방법론
 
[팝콘 시즌1] 최보경 : 실무자를 위한 인과추론 활용 - Best Practices
[팝콘 시즌1] 최보경 : 실무자를 위한 인과추론 활용 - Best Practices[팝콘 시즌1] 최보경 : 실무자를 위한 인과추론 활용 - Best Practices
[팝콘 시즌1] 최보경 : 실무자를 위한 인과추론 활용 - Best Practices
 
[PAP] 실무자를 위한 인과추론 활용 : Best Practices
[PAP] 실무자를 위한 인과추론 활용 : Best Practices[PAP] 실무자를 위한 인과추론 활용 : Best Practices
[PAP] 실무자를 위한 인과추론 활용 : Best Practices
 
파이썬(Python) 으로 나만의 딥러닝 API 만들기 강좌 (Feat. AutoAI )
파이썬(Python) 으로 나만의 딥러닝 API 만들기 강좌 (Feat. AutoAI ) 파이썬(Python) 으로 나만의 딥러닝 API 만들기 강좌 (Feat. AutoAI )
파이썬(Python) 으로 나만의 딥러닝 API 만들기 강좌 (Feat. AutoAI )
 
애자일과 애자일 테스트 소개 (테스트기본교육 3장 2절)
애자일과 애자일 테스트 소개 (테스트기본교육 3장 2절)애자일과 애자일 테스트 소개 (테스트기본교육 3장 2절)
애자일과 애자일 테스트 소개 (테스트기본교육 3장 2절)
 
Active learning literature survey
Active learning  literature surveyActive learning  literature survey
Active learning literature survey
 
Recommendation System History
Recommendation System HistoryRecommendation System History
Recommendation System History
 
풀잎스쿨 - LIME 발표자료(설명가능한 인공지능 기획!)
풀잎스쿨 - LIME 발표자료(설명가능한 인공지능 기획!)풀잎스쿨 - LIME 발표자료(설명가능한 인공지능 기획!)
풀잎스쿨 - LIME 발표자료(설명가능한 인공지능 기획!)
 
Image data augmentatiion
Image data augmentatiionImage data augmentatiion
Image data augmentatiion
 
2021-11-16 모두콘 딥러닝 경량화 발표
2021-11-16 모두콘 딥러닝 경량화 발표2021-11-16 모두콘 딥러닝 경량화 발표
2021-11-16 모두콘 딥러닝 경량화 발표
 
testing for agile?, agile for testing
testing for agile?, agile for testingtesting for agile?, agile for testing
testing for agile?, agile for testing
 
더 나은 S/W를 만드는 것에 관하여 (OKKY 세미나)
더 나은 S/W를 만드는 것에 관하여 (OKKY 세미나)더 나은 S/W를 만드는 것에 관하여 (OKKY 세미나)
더 나은 S/W를 만드는 것에 관하여 (OKKY 세미나)
 
딥러닝 세계에 입문하기 위반 분투
딥러닝 세계에 입문하기 위반 분투딥러닝 세계에 입문하기 위반 분투
딥러닝 세계에 입문하기 위반 분투
 
링크드인의 Big Data Recommendation Products - 어제의 데이터를 통해 내일을 예측한다
링크드인의 Big Data Recommendation Products - 어제의 데이터를 통해 내일을 예측한다링크드인의 Big Data Recommendation Products - 어제의 데이터를 통해 내일을 예측한다
링크드인의 Big Data Recommendation Products - 어제의 데이터를 통해 내일을 예측한다
 
알고리즘 마케팅 CH5
알고리즘 마케팅 CH5알고리즘 마케팅 CH5
알고리즘 마케팅 CH5
 
Variational Autoencoder를 여러 가지 각도에서 이해하기 (Understanding Variational Autoencod...
Variational Autoencoder를 여러 가지 각도에서 이해하기 (Understanding Variational Autoencod...Variational Autoencoder를 여러 가지 각도에서 이해하기 (Understanding Variational Autoencod...
Variational Autoencoder를 여러 가지 각도에서 이해하기 (Understanding Variational Autoencod...
 
211223 지승현 text generation survey
211223 지승현 text generation survey211223 지승현 text generation survey
211223 지승현 text generation survey
 

Mehr von seungwoo kim

Graph neural network #2-2 (heterogeneous graph transformer)
Graph neural network #2-2 (heterogeneous graph transformer)Graph neural network #2-2 (heterogeneous graph transformer)
Graph neural network #2-2 (heterogeneous graph transformer)seungwoo kim
 
Graph Neural Network #2-1 (PinSage)
Graph Neural Network #2-1 (PinSage)Graph Neural Network #2-1 (PinSage)
Graph Neural Network #2-1 (PinSage)seungwoo kim
 
Graph neural network 2부 recommendation 개요
Graph neural network  2부  recommendation 개요Graph neural network  2부  recommendation 개요
Graph neural network 2부 recommendation 개요seungwoo kim
 
Graph Neural Network 1부
Graph Neural Network 1부Graph Neural Network 1부
Graph Neural Network 1부seungwoo kim
 
Enhancing VAEs for collaborative filtering : flexible priors & gating mechanisms
Enhancing VAEs for collaborative filtering : flexible priors & gating mechanismsEnhancing VAEs for collaborative filtering : flexible priors & gating mechanisms
Enhancing VAEs for collaborative filtering : flexible priors & gating mechanismsseungwoo kim
 
XAI recent researches
XAI recent researchesXAI recent researches
XAI recent researchesseungwoo kim
 
Siamese neural networks+Bert
Siamese neural networks+BertSiamese neural networks+Bert
Siamese neural networks+Bertseungwoo kim
 
MRC recent trend_ppt
MRC recent trend_pptMRC recent trend_ppt
MRC recent trend_pptseungwoo kim
 
NLP Deep Learning with Tensorflow
NLP Deep Learning with TensorflowNLP Deep Learning with Tensorflow
NLP Deep Learning with Tensorflowseungwoo kim
 

Mehr von seungwoo kim (10)

Graph neural network #2-2 (heterogeneous graph transformer)
Graph neural network #2-2 (heterogeneous graph transformer)Graph neural network #2-2 (heterogeneous graph transformer)
Graph neural network #2-2 (heterogeneous graph transformer)
 
Graph Neural Network #2-1 (PinSage)
Graph Neural Network #2-1 (PinSage)Graph Neural Network #2-1 (PinSage)
Graph Neural Network #2-1 (PinSage)
 
Graph neural network 2부 recommendation 개요
Graph neural network  2부  recommendation 개요Graph neural network  2부  recommendation 개요
Graph neural network 2부 recommendation 개요
 
Graph Neural Network 1부
Graph Neural Network 1부Graph Neural Network 1부
Graph Neural Network 1부
 
Enhancing VAEs for collaborative filtering : flexible priors & gating mechanisms
Enhancing VAEs for collaborative filtering : flexible priors & gating mechanismsEnhancing VAEs for collaborative filtering : flexible priors & gating mechanisms
Enhancing VAEs for collaborative filtering : flexible priors & gating mechanisms
 
XAI recent researches
XAI recent researchesXAI recent researches
XAI recent researches
 
Albert
AlbertAlbert
Albert
 
Siamese neural networks+Bert
Siamese neural networks+BertSiamese neural networks+Bert
Siamese neural networks+Bert
 
MRC recent trend_ppt
MRC recent trend_pptMRC recent trend_ppt
MRC recent trend_ppt
 
NLP Deep Learning with Tensorflow
NLP Deep Learning with TensorflowNLP Deep Learning with Tensorflow
NLP Deep Learning with Tensorflow
 

Deep neural networks for You-Tube recommendations

  • 1. Deep Neural Networks for YouTube Recommendations 2016 https://static.googleusercontent.com/media/research.google.com/ko//pubs/archive/45530.pdf
  • 2. Introduction (3가지 핵심적인 Challenge & Approach) [Scale] 기존 알고리즘들이 작은 규모에서는 잘 동작하지만, YouTube 같은 Scale 에서는 잘 동작 않음 => Softmax, Loss, Nearest Neighbor Search 등에 그러한 고민을 반영된 것을 볼 수 있음 [Freshness] 새롭게 Upload 되는 영상에 잘 반응 할 수 있어야 함 => Train Set 의 Age 를 Feature 로 포함하여 훈련, Inference 시에는 약간 음수로 처리 등 [Noise] 사용자의 이력 및 반응은 명확하지 않으며, Video 에 대한 Tag 등도 잘 정리되어 있지 않다. => Click , 좋아요 등 보다는 Play Time 을 추정하는 것이 실제 A/B 테스트 성과가 가장 좋음
  • 3. System Overview 전체 시스템은 두개의 신경망으로 구성 [CANDIDATE GENERATION] 전체 컨탠츠에서 수백개 정도의 개인에 적합한 후보를 도출하는 모델 [Ranking] 수백개의 컨탠츠의 노출 순서를 산출하는 모델
  • 4. Candidate Generation 1.Recommendation as Classification 후보에 해당하는 컨탠츠를 추려내는 역할을 위한 모델을 엄청나게 많은 컨탠츠를 분류하는 문제를 해결하는 모델로 설계 함 U : User Info, C : Contents Info , Omega t : t 시간에 본 영상, i : Contents Index Thumb Up/Down 등 명시적인 타겟이 아닌 영상 시청 여부를 타겟으로 사용함
  • 5. Candidate Generation 1.Recommendation as Classification - Efficient Extreme Multiclass 엄청나게 많은 Class 를 분류하는 모델을 효과적으로 학습 시키기 위하여, 1) hierarchical softmax 도 검토 하였으나, 클래스가 연관성 문제나 복잡성 증대 등으로 Negative Sampling 을 하는 형태 (2)Sampled Softmax로 효율성 개선 ※ 논문을 보면 실제로는 Negative Sampling 을 사용한 것으로 보임 . 1) hierarchical softmax : 특정 Class 의 확률을Root 부터 마지막까지 단계별 확률의 곱으로 표시 2) 모든 클래스를 대상으로 SoftMax 연산을 하는 것이 아닌, Random 하게 추출한 Sample에 포함된 Class 에 대해서만 SoftMax 연산을 하는 방식 (https://www.tensorflow.org/extras/candidate_sampling.pdf)
  • 6. [Candidate Sampling] Label 의 수가 많아 지는 추천이나, NLP 등에서는 SoftMax의 연산량을 줄이기 위한 시도들이 많이 있었음. 해당 훈련 데이터 셋 안에서 존재하는 Label 에 대해서만 SoftMax 연산을 하여 Loss를 구하 고 Back Propagation 하는 방식을 사용함. 논문에서는 Negative Sampling 을 사용함. (1) Negative Sampling : Multi Class 문제를 True / False 이진 문제로 바꿔서 해결, False 에 대해서 는 Negative Sampling 을 통해 연산량을 줄일 수 있다 (※Sample의 출현 빈도 순으로) 실제 Binary Cross Entropy 에 적용해 보면 Y Label + Sampled 된Negative Label 을 사용하 는 형태
  • 7. Candidate Generation 2. Model Architecture (1) Embedding : continuous bag of words language models (예: Word2Vec)에서 아이디 어를 얻어 고정된 사이즈의 Vector 로 시청 컨탠 츠를 표현하고 Average 하여 Feed Forward 한 다고 함. (2) Train 시점과 Inference 의 사용 방법이 다르다, Inference 시에는 1)dot product 에 기반한 nearest neighbor search 로 Top K개의 Contents 를 추출한다. 1) http://www.cs.cmu.edu/~agray/approxnn.pdf
  • 8. Candidate Generation 2. Model Architecture (3) User Vector 는 아마도 SoftMax 이전의 마지막 Hidden Layer 로 추정함 (4) Video Vector는 User Vector 와 연산하는 Weight Vector 로 추정함 (E 가 User Vector 의 사이즈라고 할때, Weight Vector 의 사이즈는 Class 수 X E 의 사이즈 )
  • 9. Candidate Generation 2. Model Architecture (5) 논문에서 언급하지는 않지만, Embedding Vector 는 어떻게 구할까? - Nearest Neighbor를 위한 Index를 사용할 수도 있을 것이고? - 영상 수 * Embedding Size 를 갖는 Embedding Matrix 를 사용할 수도 있고 - Tag, Text, Image 를 활용하여, Auto Encoder 같은 모델의 Latent Space를 사용할 수도 있을듯.
  • 10. Candidate Generation 2. Model Architecture (5) 아래와 같은 문구를 발견 하였음. 3.5 Experiments with Features and Depth Adding features and depth significantly improves precision on holdout data as shown in Figure 6. In these experiments, a vocabulary of 1M videos and 1M search tokens were embedded with 256 floats each in a maximum bag size of 50 recent watches and 50 recent searches. -> V 를 1M 으로 정하고 실험했음 , 이게 Real World 에서 동작할 수 있을까??
  • 11. Scaling Up To Large Vocabulary Image Annotation에서 발표된 Weighted Approximate-Rank Pairwise loss) 를 사용함. 원래 웹 이미지에 복수의 Label 이 혼재되어 있을 경우 처리 방안에 대한 논문이지만, 잘 맞춘것 보다 틀린것을 더 잘 맞출 수 있도록 훈련한다는 점에서 추천에서도 잘 활용 될 수 있음 https://medium.com/@gabrieltseng/intro-to-warp-loss-automatic-differentiation-and-pytorch-b6aa5083187a (1) 이미지 피쳐를 추출함, Annotation 과 비교하여 유사도 추출 (2) 동일 이미지에 대해 다른 Annotation 을 랜덤 추출 (3) 다른 Annotation 과의 유사도 추출 (4) (1) 과의 비교를 통해 (3)에서 새로 추출한 Annotation 의 유사도가 더 크다면 해당 Loss 를 줄이는 형태로 W Update [Weighted Approximate-Rank Pairwise loss] https://static.googleusercontent.com/media/research.google.com/ko//pubs/archive/37180.pdf
  • 12. [Weighted Approximate-Rank Pairwise loss] Function Pi(I) 는 이미지의 Feature 를 추출하는 모델 Function Pi(W) 는 이미지의 Tag/Notation을 추출하는 모델 Dot Product 는 Tag 와 Image Feature 간의 유사도를 구함 (해당 모델의 목적 자체가 아미지를 가장 잘 설명하는 Tag를 찾기 위함) 동일한 이미지이지만, 다른 Tag 가 된 경우 새롭게 샘플링한 tag 이 유사도가 더 높으면 그 차이만큼을 Loss 로 정의하여 모델 훈련, 이때 앞에 Term 은 전체 레이블중에 역전 없이 진행한 횟수를 분모에 둬서 해당 Tag 의 신뢰성이 높을 수록 Loss를 적게 만들어 주는 역할을 함 *여기서 Y 가 커지면 시간이 많이 소요 되기 때문에 K개를 지정하여 Sampling 하여 진행
  • 13. [approximate nearest neighbor search] 추천 가능한 Item 의 수가 많을수록 NN을 통해 가장 가까운 K개를 연산하기 위해서 필요한 연산량 은 O(N)으로 매우 커지게 된다. 때문에 Brute Search 방법으로는 한계가 있어, 가장 가까운 K개는 아니더라도 특정거리 내에서 K개를 더 효율적으로 찾는 방법이 필요하였으며, 이런한 방법들을 통 칭하여, approximate nearest neighbor search라고 한다. Tree를 이용하는 방법 등 여러가지가 있으 나, 가장 많이 사용하는 방법은 Locality Sensitive Hashing (LSH)라고 한다 요약하자면 아래와 같은 단계로 실행된다. (1) 고차원 데이터를 저차원으로 줄인다 (Random Projection 사용) (2) 저차원으로 줄인 Vector 중에 동일한 것끼리 그룹핑을 한다. (3) 찾고자 하는 데이터가 들어온다 -> 저차원으로 맵핑한다. (4) 동일한 저차원 그룹을 찾는다. (경우에 따라서는 저차원 Hash Map 여러개 구성하여 정교화) (5) 그 안에서 NN 을 실행한다. https://lovit.github.io/machine%20learning/vector%20indexing/2018/03/28/lsh/ http://www.cs.cmu.edu/~agray/approxnn.pdf
  • 14. [Random Projection ] 고차원 데이터를 저차원으로 변환하기 위한 방법은 PCA, AutoEncoder 등 다양한 방법이 있다. 그 중에서도 RP(Random Projection)이 고차원에서 Element 간의 거리를 저차원에서도 잘 유지 시켜준 다고 한다. 여기서 B 가 Random Vector 라는 것인데, 예를 들어서 X 가 (100,000 차원) 이라면 B(100,000, 100) Matrix 를 Random 으 로 만들어서 X와 Multiply 연산을 하여, X’(100차원)으로 축소 한다는 것인데, 이게 의외로 잘 동작한다고 한다. 거기에 B만 바꿔주면 새로운 관점으로 저차원너 매치칭이 가능하니 복수 의 Hash Table 을 만들어서 approximate nearest neighbor search를 더 정교화 할 수도 있음 https://medium.com/@LightOnIO/lightons-summer-series-3-random-projections-and-the-blessing-of-dimensionality-48d4d256f179
  • 15. Candidate Generation 3. Example Age 실제 데이터를 보면, 최신 업로드된 컨탠츠를 사람들이 선호한다는 것을 알 수 있음, 하지만 그냥 Window 단위 로 쪼개서 훈련을 하게 되면, 전체 훈련 데이터의 평균적 인 경향성을 따르게 되기 때문에 최신으로 업데이트된 컨탠츠를 우선 추천하는 기능을 수행 불가. 그래서 Train Set 의(Label 기준, Train Set Max Date - N 형태 표시) Age 라는 변수를 추가 하였음. 이를 통해 최신 컨탠츠를 우선 추천하는 것이 가능해짐. Inference 시에는 약간 음수 값으로 대체함(좌측 표 기준 으로 하면 Starting Point 로 해석되도록)
  • 16. Candidate Generation 4. Label and Context Selection : Surrogate Problem(평점을 예측하는 모델이 좋은 추천을 할 수 있 는지), 추천 대상 중 조회뿐만 아니라 모든 조회 이력을 Label로 하여 의외서 확대 , 보던 컨탠츠의 연 속성을 반영하는게 더 예측에 유리함.
  • 17. Candidate Generation 5. Feature and Depth Feature 를 봤던 영화, 검색어, 기타 고객 정보 등 많이 사용할 수록 좋았고, Depth의 경우 4단계 까지 성능 향 상을 보여 주었음 # 해당 논문은 아키택쳐 측면의 다양한 시도에 초점이 있는게 아님. 아키택쳐는 그냥 Art 영역이기도 하고..
  • 18. Ranking 1. Architecture Ranking 모델은 직접적인 비교가 어려운 다양한 Candidate들을 Ensemble 하여 Contents 별 Watching time 을 Weighted Logistic 으로 예측하는 형태의 모델이다.
  • 19. Ranking 2. Feature Representation (1) Feature Engineering : 변수 탐색하고 만드는 작업 했다는 이야기. 아래는 예시 ex) When was the last time the user watched a video on this topic? ex) most important signals are those that describe a user’s previous interaction with the item itself and other similar items, matching others’ experience in ranking ads (2) Embedding Categorical Features : Embedding Matrix 만들어서 사용했음. 조회수 순으로 높은거 1M개 Vocab 구성, OOV 는 Zero 처리, 파라메터 쉐어링 (1) Normalizing Continuous Features : 0~1 사이의 값으로 잘 스케일링해서 사용
  • 20. Ranking 3. Modeling Expected Watch Time N is the number of training examples k is the number of positive impressions Ti is the watch time of the ith impression 훈련시에는 Positive Smaple (Click )에 대해서는 위 와 같이 N-K 로 Weight 을 주어 Cross Entropy 로 훈 련한다. Inference 시에는 exponential function 을 사용해서 실제 시청시간과 유사한 값으로 변환하여 사용
  • 21. Ranking 4. Experiments with Hidden Layers [weighted, per-user loss] user 에게 추천된 컨탠츠를 Click 할 확률과 Click 하지 않을 확률 을 구하고, 클릭하지 않을 확률이 더 큰데도 불구하고, 예상 시청 시간이 있다 면, 잘못 추정된 것으로 가정한다. 이러한 잘못 추정된 예측 시청시간의 합을 weighted, per-user loss라 함 => Layer 를 늘리면 성능이 좋아지는 모습을 보인다.
  • 22. Conclusion 정말 오래된 고전 논문임. 그래도, 실무 관점에서 추천할 컨탠츠가 아주 많은 경우에 효율적으로 어 떻게 모델을 훈련하고 서비스할 것인지에 대한 측면에서 고민했던 내용들은 의미가 있다고 생각함. 다만 아래 내용 등 보완해야할 문제점들이 상당히 많이 보인다고 생각함. - 아키택쳐 등은 요즘 유행하는 Transformer 등 적용 시도는 해볼 필요 있음 - Oov 문제에 대해서 너무 Naive 하게 처리하고 넘어갔는데 방법 고민 필요 - 완전 신규 컨탠츠에 대해서 실시간 적용이 가능하지 않아 보임. - Feature Embedding 방법도 Embedding Matrix 가 최선일까? - 이거 구지 모델 두개로 만들어야만 하는걸까? End2End 모델 설계는 안될까? - Video 의 이미지 Feature 는 사용하지 않는 것 같은데? - Video Descripion 처리시 NLP 모델은 어떤식으로 적용하였을까? - Click 이후 Back 이나, 잠시 시청 후 종료 등에 대한 적용 방안이 보이지 않음 - Ranking 모델 저렇게 구성되면 Inference 를 여러번 해야 할듯?