본문 바로가기

Dev/AI 인공지능

[RecSys] MLP 기반의 추천 모델 | NCF (Neural Collaborative Filtering) | DNN for Youtube Recommendation

728x90
반응형

01. Recommendation System with DL

  • Nonlinear Transformation : 데이터 내 비선형 패턴을 효과적으로 나타낼 수 있음 → 복잡한 유저-아이템 상호작용 패턴을 효과적으로 모델링 가능
  • Representation Learning : DNN은 raw data로부터 알아서 feature representation을 학습
  • Sequence Modeling: 시계열 데이터 처리에서 효과적으로 적용 예: next-item prediction, seesion-based recommendation
  • Flexibility: 다양한 프레임워크가 존재해서 모델링 flexibility가 높고 효율적인 서빙이 가능함

 

02. 다층 퍼셉트론(Multi-layer Perceptron, MLP)란?

  • 퍼셉트론으로 이루어진 layer 여러 개를 순차적으로 이어 놓은 feed-forward neural network

 

03. NCF (Neural Collaborative Filtering)

아이디어 배경

  • MF(Matrix Factorization)는 $rating = user_{vec}^T × item_{vec}$ 로 선형조합임
  • 따라서 user와 item 간에 복잡한 비선형적인 관계를 표현하기 어려움

 

모델 구조

 

MLP Part

  • Input Layer: 유저 정보와 아이템 정보가 one-hot encodding 형태로 들어옴
  • Embedding Vector: 유저 정보와 아이템 정보를 latent vector로 embedding (one-hot encodding : sparse data → latent embedding vector : dense data)
  • Neural CF Layer

 

Total Part

  • MF를 일반화한 모델인 GMF와 MLP Part를 앙상블 (ensemble)
    • GMF와 MLP가 서로 다른 임베딩 레이어를 사용
    • 각각의 장점을 살리고 단점 보완 가능
  • Output Layer: 각 두 파트의 output을 conat하여 sigmoid를 통해 user와 item 사이의 관련도 0과 1사이의 값으로 예측

 

성능 및 실험 결과

  • NCF 추천 성능이 기존 MF(BPR)나 MLP모델보다 높음

 

04. DNN for Youtube Recommendation

아이디어 배경

  • Scale: 엄청 많은 유저와 아이템에 따라 효율적인 서빙 및 특화 알고리즘 필요
  • Freshness: 잘 학습된 컨텐츠와 새로 올라온 컨텐츠를 적절히 조합하여 추천해야 함
  • Noise: 높은 Sparsity, 다양한 외부 요인으로 유저 행동 예측이 어려움 → Implicit Feedback, 낮은 품질의 메타데이터를 잘 활용해야 함

 

모델 구조

 

Candidate Generation — extreme multiclass classification

주어진 사용자에 대해서 수백 개의 TopN 추천 아이템 생성

  1. 다양한 피처 벡터들을 한 번에 Concat
    • user — Embedded & Averaged Watch Vector
    • user — Embedded & Averaged Search Vector
    • user — Embedded Demographic & Geographic Vector
    • item— Example Age: 과거 데이터 덜 학습 + 최근 데이터 더 학습
  2. n개의 Dense Layer을 거쳐서 User Vector $u$ 생성
  3. Output : 비디오 분류 Softmat Function 수행 및 비디오 벡터 $v_j$ 생성
  4. Serving
    1. User Vector u를 사용하여 상위 N개 비디오 추출
    2. 유저 벡터와 및 모든 비디오 벡터와 내적 계산
    3. ANN 라이브러리를 사용하여 빠르게 서빙

 

 

 

Ranking — Logistic Regression

앞선 CG 단계에서 생성한 수백 개의 TopN 아이템 후보에 대해 score (실제로 시청될 확률)를 계산하고 추천 리스트 제공

  • 입력 데이터로 user action feature 사용
    • 유저가 특정 채널에서 얼마나 많은 영상을 봤는지
    • 유저가 특정 토픽의 동영상을 본 지 얼마나 지났는지
    • 영상의 과거 시청 여부 등을 입력
    • DL 구조보다는 도메인 전문가의 피처 선정 및 반영 여부 역량이 중요함
  • Logistic Regression으로 실제로 시청될 확률을 계산
    • CTR 예측: $P(watch) \in [0,1]$
    • 이를 토대로 최종 추천 아이템 10~20개 제공
  • Weighted Cross-entropy loss
    • 클릭 이후 시청 시간을 가중치로 한 값을 반영
    • abusing(낚시성 및 광고성 콘텐츠 ) 감소

 

성능 및 실험 결과

  • 딥러닝 기반 2단계 추천을 처음으로 서빙까지 제안하였음
  • CG Part : 기존 CF 아이디어를 기반으로 다양한 피처를 사용해 추천 성능 향상
  • Ranking Part : CG보다 더 많은 feature 사용하여 ranking함으로써 기존 선형/트리 기반 모델보다 더 뛰어난 성능을 보여줌
728x90
반응형