[Boostcamp AI Tech] Recommender System with Deep Learning (1)

이성범·2022년 3월 12일
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를 학습하게 됨
profile
Machine Learning Engineer at Konan Technology

0개의 댓글