[boostcamp-ai-tech][RecSys] DeepCTR: Wide&Deep, DeepFM, DIN, BST

whatSup CheatSheet·2022년 3월 19일
0

RecSys

목록 보기
9/13
post-thumbnail

CTR Prediction with Deep Learning

CTR 예측에 딥러닝이 필요한 이유

  • 현실의 CTR 데이터를 기존의 선형모델로 예측하는 데에는 한계가 있음

    1. Highly sparse & Super high-dimensional features
    2. Highly non-linear association between the features

    -> 이러한 데이터에 효과적인 딥러닝 기법들이 CTR 예측 문제에 적용되기 시작

Wide & Deep

  • 선형적인 모델(Wide)과 비선형적인 모델(Deep)을 결합하여 기존 모델들의 장점을 모두 취하고자 한 논문
  • 논문

등장 배경

추천시스템에서 해결해야 할 두 가지 과제: Memorization & Generalization

  • Memorization: 함께 빈번히 등장하는 아이템 혹은 특성(feature) 관계를 과거 데이터로부터 학습(=암기)
  • Generalization: 드물게 발생하거나 전혀 발생한 적 없는 아이템/특성 조합을 기존 관계로부터 발견(=일반화)

-> 이 둘을 결합하여 사용자의 검색 쿼리에 맞는 앱을 추천하는 모델을 제안

Wide & Deep 구조

Wide Component

  • 일반적인 선형모델은 서로 다른 두 개의 변수 간 상호작용을 학습할 수 없음
    • ex)
  • 상호작용을 학습하기 위해 Cross-Product Transformation을 사용
    • 두 변수를 조합하여 새로운 변수를 추가하는 것(feature engineering)
      • 두 변수를 cross product로 조합 (and연산)
    • 모든 cross product를 구하면 계산량이 기하급수적으로 증가하므로, 주요 feature 2개를 쓰는 second-order product만 진행
      (논문에선 User Installed AppImpression App만 사용)
    • ex)

      Cross-Product Transformation는 이전에 배웠던 Polynomial Logistic Regression과 유사함

The Deep Component

Feed-Forward Neural Network

  • 3 layer로 구성되었으며, ReLU를 사용
  • 연속형 변수는 그대로 사용하고, 카테고리컬 변수는 피쳐 임베딩 후 사용

전체 구조 및 손실 함수

  • 전체 구조
  • 수식

DeepFM

  • Wide & Deep 모델과 달리 두 요소(wide, deep)가 입력값을 공유하도록 한 end-to-end 모델
  • 논문

등장 배경

  • 추천시스템에서는 Implict feature interaction을 학습하는 것이 중요한
    • ex)
  • 기존 모델들은 low-order interation이나 high-order interation 중 어느 한 쪽에만 강함
    • wide & deep 모델은 이 둘을 통합하여 문제를 해결했으나,
      wide component에 feature engineering(=cross-product transformation)이 필요하다는 단점이 있음
    • 따라서 DeepFM에서는 FM을 Wide component로 사용하여 입력값을 공유하도록 함

    DeepFM = Factorization Machine(wide) + Deep Neural Network(deep)

DeepFM 구조

FM Component (for low-order feature interaction)

  • 기존의 FM 모델과 완전히 동일한 구조
    -> order-2 feature interaction을 효과적으로 잡음

    기존 FM Formula

Deep Component (for high-order feature interaction)

  • 모든 feature들은 동일한 차원(kk)의 임베딩으로 치환됨.
    이때, 임베딩에 사용되는 가중치(파라미터)는 FM Component에서 사용하는 가중치(VijV_{ij})를 동일하게 사용

전체 구조 (FM Component + Deep Component)

타 모델과의 비교

No Pre-trainingHigh-order FeaturesLow-order FeaturesNo Feature Engineering
FNNxoxo
PNNooxo
Wide & Deepooox
DeepFMoooo

Deep Interest Network (DIN)

  • User behavior feature를 처음 사용한 논문
  • 논문

등장 배경

  • 기존의 딥러닝 기반 모델들은 모두 유사한 Embedding & MLP 패러다임을 따름

    1. Saprse feature들을 저차원 임베딩으로 변환
    2. 임베딩된 데이터들을 fully connected layer(MLP)에 입력으로 넣어줌.
  • 그러나 이러한 기존의 방식은 사용자의 다양한 관심사를 반영할 수 없음

    • ex)
      • 여러 종류의 식재료와 생필품을 동시에 찾아볼 때
      • 특정 카테고리의 상품을 검색하던 중 추천 목록에 있는 상품을 클릭할 때
      • ...

    -> 사용자가 기존에 소비한 아이템의 리스트(User Behavior Feature)를 만들어, 예측 대상 아이템과 이미 소비한 아이템들 사이에 관련성을 학습할 필요가 있음.

    DIN 구조

  1. Embedding Layer -> 기존 모델들과 유사함
  2. Local Activation Layer (Transformer의 attention 역할과 비슷)
  3. Fully-connected Layer(MLP) -> 기존 모델들과 유사

    Local Activation Layer

    • Local Activation Unit
      : 내가 예측하려는 아이템(candidate)과 과거에 내가 소비했던 아이템(N)이 얼마나 연관이 있는지를 계산하여 가중치로 표현
    • Weighted Sum Pooling
      : 여러 개의 표현 벡터를 가중 합한 값을 출력으로 사용
      • 후보 광고와 관련성이 높은 행동은 다음과 같이 높은 활성화 가중치를 받음

모델 성능

  • Dice: DIN에서 제시한 Activation Fuction

Behavior Sequence Transformer (BST)

  • Transformer를 사용한 CTR 예측 논문
  • 논문

개요

  • CTR 예측 데이터와 NLP 번역 데이터 간 공통점
    • 대부분 Sparse feature로 구성되어 있음
    • low-order feature interaction과 high-order feature interaction이 모두 존재하여 비선형적 관계를 가짐
    • 문장의 순서가 중요하듯, 사용자의 행동 순서 또한 중요함
      (핸드폰을 구매한 뒤 -> 핸드폰 케이스에 대한 니즈가 증가)

    -> NLP 분야 전반에서 강력한 성능을 보이는 Transformer 구조를 CTR 예측에도 적용해 볼 수 있음

Transformer

  • 참고
  • transformer는 어떤 값의 어떤 부분에 주의(attention)을 기울일 것인지를 찾는 원리임

BST 구조

전체 구조

Embedding Layer

  • 기존 Transformer의 Positional Encoding과는 달리,
    Custom한 Positional Encoding 사용

Transformer(Encoder) Layer

Multi-Head Self-Attention

  • Self Attention(Scale Dot-product Attention)
  • Multi-Head Attention

Point-wise Feed-Forward Neural Networks

  • 기존 Transformer와 달리
    • Dropout 적용
    • Activation Function으로 LeakyReLU 사용

Stackin the Self-Attention block

  • 기존 transformer는 논문에서 6개의 Self-Attention block을 사용했지만,
    BST 논문에서는 1개 ~ 4개를 쌓는 것이 적당하다고 말하고 있음.

모델 성능

  • Transformer는 CTR 예측에서도 SOTA의 성능을 보임
profile
AI Engineer : Lv 0

0개의 댓글