SeongBeomLEE
로그인
SeongBeomLEE
로그인
[Boostcamp AI Tech] Recommender System with Deep Learning (1)
이성범
·
2022년 3월 12일
팔로우
1
AutoRec
Boostcamp AI tech
CDAE
NCF
YouTube Recommendation
recsys
1
Boostcamp AI Tech
목록 보기
41/49
Recommender System with Deep Learning (1)
00. 학습 내용
추천시스템에 딥러닝을 사용하는 이유에 대하여 학습
YouTube Recommendation에 대하여 학습
Neural Collaborative Filtering(NCF)에 대하여 학습
AutoRec에 대하여 학습
Collaborative Denoising Auto-Encoders(CDAE)에 대하여 학습
01. 추천시스템에 딥러닝을 사용하는 이유
Nonlinear Transformation
Deep Neural Network은 data의 non-linearity를 효과적으로 나타낼 수 있음
복잡한 user-item interaction pattern을 효과적으로 모델링하여 user의 선호도를 예측할 수 있음
Representation Learning
DNN은 raw data로부터 feature representation을 학습해 사람이 직접 feature design하지 않아도 됨
텍스트, 이미지, 오디오 등 다양한 종류의 정보를 추천 시스템에 활용할 수 있음
Sequence Modeling
DNN은 자연어처리, 음성 신호 처리 등 sequential modeling task에서 성공적으로 적용됨
추천 시스템에서 next-item prediction, session-based recommendation에 사용됨
Flexibility
Tensorflow, PyTorch 등 다양한 DL 프레임워크 존재
추천시스템 모델링 flexibility가 높으며 더 효율적으로 서빙할 수 있음
02. YouTube Recommendation
유튜브 추전 문제의 특징
Scale
엄청 많은 유저와 아이템이 존재
제한된 컴퓨팅 파워를 가짐
따라서 효율적인 서빙과 이에 특화된 추천 알고리즘 필요
Freshness
잘 학습된 컨텐츠와 새로 업로드 된 컨텐츠를 실시간으로 적절히 조합해야 함
Noise
엄청 많은 유저와 아이템이 존재하는 만큼 높은 Sparsity를 가짐
다양한 외부 요인으로 유저의 행동을 예측하기 어려움
따라서 Implicit Feedback, 낮은 품질의 메타데이터를 잘 활용해야 함
YouTube Recommendation은 위와 같은 과정으로 이루어짐
먼저 수백만개의 비디오에서 Candidate Generation Model을 이용해 수백개의 주어진 사용자에 대해 Top N 추천 아이템 생성을 생성
Candidate Generation에서 유저, 비디오 피쳐를 좀 더 풍부하게 사용하여(Candidate Generation Model 덕분에 수백개의 비디오로 줄여졌기 때문에 가능함) Ranking Model을 이용해 스코어를 구해 최종 추천 리스트를 제공
여기서 두 Model 모두 DNN을 사용 했다는 것이 YouTube Recommendation의 특징이라고 할 수 있음
Candidate Generation Model은 특정 시간(t)에 유저 U가 C라는 context를 가지고 있을 때, 비디오(i) 각각을 볼 확률을 계산하는 것임
따라서 비디오가 수백만 개나 되어 Extreme하고, 마지막에 Softmax 함수를 사용하는 분류 문제이기 때문에 extreme multiclass classification 문제라고 할 수 있음
과거 시청 이력과 검색 이력에 대한 임베딩 평균 값을 Watch Vector and Search Vector로 사용하여 Model의 input feature로 사용함
성별 등의 인구통계학 정보와 지리적 정보를 Model의 input feature로 사용함
모델이 과거 데이터 위주로 편향되어 학습되는 문제가 존재하여 시청 로그가 학습 시점으로부터 경과한 정도를 반영하는 Example Age를 Model의 input feature로 사용함
다양한 feature Vector을 한 번에 concatenate 하고, n개의 dense layer를 거쳐 User Vector 생성하고, User Vector를 output layer에 넣어 비디오를 분류
단순히 output layer의 확률 값으로 Top-K에 아이템을 뽑는 것인지, 유저 벡터와 비디오 벡터의 내적으로 Top-K에 아이템을 뽑는 것인지는 논문을 한번 읽고 알아봐야할 듯 (추가로 비디오 벡터는 어떻게 구했는지도 궁금하여 본 논문을 한번 읽어볼 예정임)
Ranking Model은 Candidate Generation 단계에서 생성한 비디오 후보들을 input으로 하여 최종 추천될 비디오들의 순위를 매김
Logistic 회귀를 사용하는 기본적인 방법
loss function에 단순한 클릭 여부가 아닌 시청 시간을 가중치로 한 값을 반영
즉, 단순 CTR 예측이 아닌 Expected Watch Time을 예측함
03. Neural Collaborative Filtering
전에 리뷰한
포스팅
을 보는 것이 더 좋을 듯함
04. AutoRec
전에 리뷰한
포스팅
을 보는 것이 더 좋을 듯함
05. Collaborative Denoising Auto-Encoders
입력 데이터에 random noise나 dropout을 추가하여 학습하는 Denoising Autoencoder를 사용하는 모델
noisy input을 더 잘 복원할 수 있는 robust한 모델이 학습되어 전체적인 성능 향상
CDAE는 Ranking을 통해 유저에게 Top-N 추천을 제공하는 모델
문제 단순화를 위해, 유저-아이템 상호 작용 정보를 이진(0 또는 1) 정보로 바꿔서 학습 데이터로 사용
따라서 개별 유저에 대해서 아이템의 rating이 아닌 preference를 학습하게 됨
이성범
Machine Learning Engineer at Konan Technology
팔로우
이전 포스트
[Boostcamp AI Tech] Item2Vec and ANN
다음 포스트
[Boostcamp AI Tech] Week8 회고
0개의 댓글
댓글 작성