반응형
논문 : https://static.googleusercontent.com/media/research.google.com/ko//pubs/archive/45530.pdf
* 이번 논문은 유튜브 알고리즘에 대한 논문입니다. 제목에서 알 수 있듯이 기존의 전반적인 추천 성능 개선에 초점을 둔 논문과 달리, 하나의 플랫폼에서 추천 성능을 개선하는 데에 초점을 두고 있습니다. 그래서 다른 논문보다는 조금 말랑말랑한 느낌입니다.
오역, 오류는 댓글로 말씀 부탁드립니다!
Youtube 추천시스템 Overview
고려사항
- scale : 대규모 사용자와 아이템에 사용된다
- freshness : 실시간으로 발생하는 사용자 행동, 실시간으로 업로드되는 영상을 반영해야함
- noise : sparsity, 보이지 않는 외부 요인으로 noise가 존재하기 때문에 robust한 모델이어야 한다
- sparsity : 사용자 만족도에 대한 explicit feedback이 적다
- 해결 방법 : implicit feedback을 대신 사용한다
- sparsity : 사용자 만족도에 대한 explicit feedback이 적다
이를 반영하기 위해 DNN을 사용하지만 추천시스템 분야에서는 DNN 연구가 적다
모델 구조
- 후보 생성 : 사용자 행동(시청 영상 및 검색 등)을 토대로 사용자와 연관성이 높은 후보 영상을 선정한다
- precision 기준
- 사용자 간 유사도 계산 : 사용자 행동 정보 + 인구통계학적 정보
- 후보 간 순위 선정 : 영상과 사용자의 feature를 사용해 점수 계산
- recall 기준
성능 평가
- 개발 시에는 offline metric 사용
- 최종 효율성 판단 시 : AB 테스트 결과
- 클릭율, 시청 시간 등의 변화
- 결과 : 항상 offline metric과 일치하지는 않는다
후보 생성
- 초기 iteration마다 과거 시청 기록만 임베딩된 shallow network에서 MF 반복
- MF의 non linear generalization
분류 문제로써의 추천시스템
- 추천시스템 : 극단적인 multiclass 분류 문제
- implicit feedback을 사용하여 sparsity 해결
- implicit feedback : 시청 여부
- positive : 시청한 영상
- implicit feedback : 시청 여부
- Efficient Extreme multiclass
- 효율적인 학습
- negative class sampling : 100배 이상 속도 개선
- 중요도 가중치 부여 : sampling 결과 수정
- serving latency : N개를 추천하기 위해 N개 class를 계산해야 하는 문제
- nearest neighbor search 알고리즘 적용하여 해결
- 효율적인 학습
후보 생성 모델 구조
- 신경망: 고정된 길이의 dense한 input을 받아야함
- 영상 ID : 가변적인 길이 & sparse
- 고정된 길이 & dense하게 변환해야
- 가변적인 길이 → 고정된 길이 : 평균 계산
- 평균 : 가장 좋은 성능
- sparse → dense : embedding layer에서 dense한 벡터로 매핑
- embedding layer : normal gradient descent backpropagation을 통해 파라미터 지정
- 최종 input : 고정된 크기의 vocab에서 학습된 각 영상의 고차원 embedding
- 영상 ID : 가변적인 길이 & sparse
- 첫 번째 layer : 사용자, 영상의 벡터와 인구통계학 벡터를 concat
- 2번째 layer~ : ReLU
- tower pattern의 네트워크
- tower pattern : 갈수록 좁아지는 형태
- depth
- 깊이 = 0인 네트워크 : MF와 유사한 성능
- 네트워크 깊이가 깊어질수록 precision이 높아진다
- 수렴이 어려워질 때까지 너비와 깊이를 늘림
- feature 개수
- 많은 feature를 사용할수록 precision이 높아진다
Heterogeneous Signals
- 논문에서 제안한 모델 : MF를 DNN으로 일반화한 모델로, 보조 feature를 쉽게 추가할 수 있음
- 보조 feature
- 검색 기록 : n-gram으로 토큰화하고 임베딩 → 요약된 검색 기록(dense)
- 인구통계학 정보 : 새 사용자에게 추천하기 위해 중요
- Example Age : 영상의 age
- 사용자 : 최신 영상을 선호하는 경향 → 최신 영상을 추천하는 것이 중요
- ML의 편향 : 과거 정보로 미래를 예측하기 때문에 과거 영상을 추천하는 편향 존재
- 편향 조정을 위해 영상의 age를 feature로 투입
- 투입 효과
- 최근에 업로드된 영상의 class 확률이 높아진다
- 업로드 이전에는 class 확률이 계산되지 않는다
- 보조 feature
Label and Context selection
- surrogate problem : 보조적인 문제를 해결해 추천시스템을 개발하는 접근 방식
- 보조적인 문제 : 평점 예측, 시청 영상 예측 ...
- 평점 예측
- AB 테스트에서 중요하지만 offline 실험에서 측정하기 어려움
- 해결 방법
- train data : 추천 대상 시청 + 외부 유입 시청
- 새 영상을 반영하고 편향을 방지하기 위함
- CF를 통해 외부 유입 건을 빠르게 capture
- 사용자 가중치를 동일하게 부여하기 위해 사용자별 학습 데이터 크기 고정
- heavy user로 인한 편향 방지
- train data : 추천 대상 시청 + 외부 유입 시청
- 시청할 동영상 예측
- 사용자의 마지막 검색 결과를 재현하는 모델은 성능이 떨어진다
- 해결 방법 : 마지막 검색 결과를 재현하지 않기 위해 모델에 투입하는 정보를 가린다
- 시퀀스 정보를 무시, 순서가 없는 bag of token 형태로 검색 쿼리 represent → 모델 : label 원본 인식X
- asymmetric consumption 패턴
- 시리즈형 영상 : 순차적으로 시청
- 특정 장르의 영상 : 유명한 아티스트부터 시청하고 인지도가 낮은 아티스트 영상 시청
- asymmetric consumption 패턴으로 인해 held-out watch 예측보다 future watch 예측이 좋은 성능을 보인다
- held-out watch : 미래 정보 leakage, asymmetric consumption 패턴 무시
- future watch : 사용자 기록 rollback, 과거 정보만 가지고 예측
순위 선정
- 시청 정보 specialize 및 개별 사용자에게 맞도록 후보 예측 결과 보정
- 보정의 필요성 : 영상 시청 확률이 높더라도 썸네일로 인해 홈에서 클릭할 확률이 낮을 수 있음
- 영상과 user 간 관계를 나타내는 더 많은 feature 사용
- 선정된 후보에 대한 사용자의 action(평점)이 dense하기 때문
- 점수 비교가 어려운 경우 중요
모델 구조
- 후보 선정과 유사한 구조
- 각 영상에 독립적인 점수를 부여하고 점수에 따라 순위 부여
- Experiments with Hidden layers
- 은닉층의 폭과 깊이가 커질수록 성능이 높아짐
- 성능과 연산 시간 간 trade off 관계 존재
- 정규화된 연속형 변수만 투입한 경우 loss가 커진다
- Modeling expected watch time
- labeling
- positive : 클릭
- 가중치 : 시청 시간
- negative : 클릭X
- 가중치 : 동일
- positive : 클릭
- negative 기대 시청시간이 positive 기대 시청시간보다 많은 경우 : positive의 시청시간을 잘못 예측
- positive, negative 가중치가 동일한 경우 loss가 커진다
- labeling
- 목적함수 : 최종적으로는 AB 테스트 결과에 기반해 튜닝하지만, 시청 건당 기대 시청시간 사용
- $e^{Wx+b}$
- 클릭율 기반 랭킹보다 시청 시간 기반 랭킹이 관여도를 잘 capture
Feature Representation
- impression / query
- impression : item 특성. scored된 각 item에 대해 계산
- query : 사용자 및 context 특성. 요청 시마다 계산
- feature engineering : input으로 사용하기 위함
- 문제 상황 : 사용자 행동의 일시적 시퀀스 representation과 사용자 행동을 아이템 점수와 연관시키는 것
- 가장 중요한 신호 : 사용자와 (유사) item 간 과거 상호작용
- 관련 item에 대한 사용자의 action을 나타내는 연속형 feature
- 다른 item에 잘 일반화되기 때문에 중요
- 후보 생성 시의 정보를 순위 선정 시 사용할 수 있도록 전파하는 것이 중요
- 과거 영상 노출 빈도 : 이탈 개념 도입에 중요
- 추천 영상을 시청하지 않은 경우 해당 영상 노출을 줄임
- Embedding categorical feature : sparse한 카테고리형 변수를 dense하게 만들기 위함
- 카테고리가 너무 많은 경우, 클릭 빈도 수를 기준으로 상위 N개 선정
- out of vocabulary의 경우(상위 N개가 아닌 경우), 0으로 임베딩
- multivalent 카테고리형 feature : 임베딩 → 상위 N개 선정 → 임베딩 → input으로 사용하기 위해 평균 계산
- 같은 id를 가진 카테고리형 feature : 임베딩 공유
- 임베딩 공유 효과 : 일반화 성능 및 속도 개선, 메모리 사용량 감소
- 임베딩을 공유하더라도 각 feature를 개별적으로 네트워크에 투입 → 각 feature의 representation 학습 가능
- 카테고리가 너무 많은 경우, 클릭 빈도 수를 기준으로 상위 N개 선정
- Normalizing continuous features
- 필요성 : 신경망은 스케일링 및 input 분포에 민감
- 연속형 변수의 normalize : 수렴에 중요
- scaling : 0~1에서 균등하게 분포
- super/sub-linear한 feature를 학습하기 위해 $x^2$ , $\sqrt{x}$ 사용
- offline에서 정확성 향상
Conclusion
- 다양한 상호작용을 모델링 → 기존 MF보다 높은 성능
- asymmetric co-watch 행동 포착, 미래 정보 leakage 방지 → 높은 성능
- discrimative 신호 가리지 않을 경우 overfitting 문제 발생, 전이학습 성능 저하
- 영상의 age feature를 input으로 사용
- 과거에 대한 inherent bias 제거
- 인기 영상의 실시간 반응 represent
- offline holdout 정확도 결과 개선 및 최근 영상의 시청 시간 증가
- 순위 선정 : 전통적인 ML에 가까움
- 그러나 시청 시간 예측에서 선형 모델, 트리 기반 모델보다 높은 성능을 보임
- 사용자의 과거 행동 feature 사용 시 높은 성능을 보임
- DNN : 임베딩 및 정규화된 representation 필요
- layer가 많아질수록 비선형 상호작용 모델링 시 효율성 증가
- weighted logistic regression : positive의 시청 시간을 학습할 경우 클릭율 예측 성능이 증가