[부스트캠프 AI Tech 5기] Recommender System with Deep Learning (1)

박상우·2023년 3월 30일
0

부스트캠프

목록 보기
32/54
post-thumbnail

딥 러닝을 사용한 추천 시스템 모델

Recommender System with DL

Why DL?

  • Nonlinear Transform으로 비선형성을 효과적으로 나타냄
  • Representation Learning으로 feature design이 필요 없음 (Text, Image, Audio 등을 사용할 수 있음)
  • Sequence Modeling에 유용
  • Flexibility가 높고 효율적

Recommender System with MLP

현업에서 사용 되는 모델이라기보다는, 의미가 있는 모델을 소개

MLP

  • 퍼셉트론으로 이루어진 Layer를 이어 놓은 feed-forward neural network

Neural Collaboratie Filtering

  • MF의 한계를 지적하며 신경망 구조를 사용해 일반화된 모델 제시

아이디어

  • user와 item의 선형 조합은 복잡한 관계를 표현할 수 없음
  • 차원을 늘리면 해결되지만, overfitting problem

모델


  • MLP 임베딩, MF 임베딩 레이어를 모두 한 후, 각각 레이어를 통과시켜 concat한 레이어를 예측에 사용
  • MLP를 추천 시스템에 처음 적용한 것에서 의의가 있음

Deep Neural Networks for YouTube Recommendations

유튜브 추천 문제

  • Scale (유저와 아이템이 많은 것에 비해, 제한된 컴퓨팅 파워)
  • Freshness (잘 학습된 컨텐츠와 새로 업로드 된 컨텐츠를 실시간으로 적절히 조합해야 함)
  • Noise (높은 Sparsity, 다양한 외부 요인으로 행동을 예측해야 함)

구조

  • 후보자를 제안하는 Candidate Generation
  • 후보자 중에서 Ranking을 생성해 최종 추천 리스트 제공

Candidate Generation

  • multiclass classification
  • 과거 시청 이력과 검색 이력을 각각 Input으로 사용
  • 임베딩 후 평균
  • 성별, 지리적 정보를 피쳐로 포함
  • 모델이 과거 데이터 위주로 편향될 수 있기에, 시청 로그가 학습 시점으로부터 경과한 정도를 피쳐로 포함
  • 하나로 Concat후 dense layer를 거쳐 user vector 생성
  • ANN 라이브러리를 사용하여 Top N 개의 아이템 벡터를 서빙

Ranking

  • Logistic 회귀를 사용하는 기본적인 방법
  • 다양한 Feature를 풍부하게사용
  • User action feature와 Item feature를 사용
  • 도메인 전문가의 역량이 좌우하는 파트
  • weighted cross-entropy로 비디오 시청 시간으로 가중치를 줌

요약

  • 딥 러닝 기반 2단계 추천을 처음으로 제안

Recommender System with AE

Autoencoder, AE

  • 입력 데이터를 출력으로 복원하는 비지도 학습 모델

Denoising Autoencoder, DAE

  • Input에 gaussian noise 등을 넣어 더 Robust한 모델을 생성

AutoRec

  • 기존의 Autoencoder를 CF에 적용하여 Representation을 개선하고 Complexity를 경감함

아이디어

Rating Vector를 입력, 출력으로 하여 Encoder, Decoder Reconstruction 과정을 수행

모델

  • 관측된 데이터에서만 역전파 및 파라미터 업데이트 수행

요약

  • Hidden unit이 높아질수록 RMSE가 감소함을 보임
  • 본 논문 이후, 고급 AE 기법을 CF에 활용한 후속 연구가 나옴

Collaborative Denoising Auto-Encoders for Top-N Recommender System

  • 평점 예측이 아닌 Top-N 추천을 제공
  • 문제 단순화를 위해, 상호작용을 이진 정보로 바꿔 학습 데이터로 사용
  • rating이 아닌 preference

모델

  • AutoRec과 다르게 DAE를 사용하여 Noise 추가
  • 유저 별 Vu를 학습

결과

  • Top-N 추천 모델에 비해 더 높은 MAP과 Recall
profile
세상아 덤벼라

0개의 댓글