4 minute read

Day 31

CTR Prediction with Deep Learning

  • 배경
    • Click-Through Rate Prediction 이란?

      • 유저가 주어진 아이템을 클릭할 확률(probability)을 예측하는 문제

      • CTR 예측은 주로 광고에 사용되며 광고주 및 서비스 제공자들의 이익 창출에 사용됨

      • CTR 예측이 정확해지는 것은 곧바로 매출 향상에 직결됨

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

      • Highly sparse & super high-dimensional features

        • 데이터 자체가 high-dimensional features이라 너무 sparse하다.
      • Highly non-linear association between the features

        • 피처들간의 관계가 너무 높은 비선형성을 가지고 있다.
    • 이러한 데이터에 효과적인 딥러닝 기법들이 CTR 예측 문제에 적용되기 시작

Wide & Deep Learning for Recommender Systems

  • 배경

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

    • 추천시스템에서 해결해야 할 두 가지 과제

      • Memorization: 함께 빈번히 등장하는 아이템 혹은 특성(feature) 관계를 과거 데이터로부터 학습

        • ex) 자주 나오는 데이터는 X(남자, 컴퓨터) →Y(1)와 같이 자주 등장 하면 암기.
      • Generalization: 드물게 발생하거나 전혀 발생한 적 없는 아이템/특성 조합을 기존 관계로부터 발견(=일반화)

        • ex) 새로운 데이터는 X(남자, 화장품) → Y 는 기존 데이터로 다루기 어려움.
  • 모델 구조

    • The Wide Component

      • Linear와 거의 비슷하나, 차이점은 Cross-Product 활용.

      • GeneralizedLinearModel

        • (“gender=female” = 1), (“language=en” = 1), (“# of installs” = 50), …

        • $y = w^{T}x +b$

      • Cross-Product Transformation

        • (“gender=female” = 1) and (“language=en” = 1) → “AND(gender=female, language=en)” = 1

        • 서로 다른 변수 두개의 인터렉션을 표현하기위해 추가.

        • 본 논문에서는 편의상 두개의 주요 feature에 대해서만 연산.

        • Review – Polynomial Logistic Regression와 거의 유사함.
        • (n x n)만큼 학습 파라미터가 늘어나지만 표현할 수 있는 한계각 인터렉션의 한계가 명확하다.
\[\phi _{k}\left( x\right) =\prod ^{d}_{i=1}x_{i}^{c_{ki}}, c_{ki}\in\{0, 1\}\]
  • The Deep Component

    • Feed-Forward Neural Network

      • 일반적으로 Neural Network
    • 3 layer로 구성되었으며, ReLU 함수를 사용

    • 연속형 변수는 그대로 사용하고, 카테고리형 변수는 피쳐 임베딩 후 사용

    • 마지막에 전체를 concat한 뒤 시그모이드를 통해 최종 결과를 예측

  • 모델 도식화

    image

    image

  • 모델 성능

    • Baseline인 Wide 모델과 Deep 모델은 각각 Offline, Online에서 서로 다른 양상을 보인다.
    • Wide, Deep, Wide & Deep 모두 Offline 성능은 비슷함.
    • Wide & Deep 모델은 Offline, Online 모두 좋은 성능을 보임.

      image

DeepFM

  • 배경

    • Wide & Deep와 유사한 구조를 가지고 있음.

    • Wide & Deep 모델과 차이점은 두 요소(wide, deep)가 입력값을 공유하도록 한 end-to-end 방식의 모델.

    • 따로 feature enginering이 필요 없음.

    • 추천 시스템에서는 implicit feature interaction을 학습하는 것이 중요함
      • 식사 시간에 배달앱 다운로드 수 증가 (order-2 interaction), 식사 시간과 다운로드의 2개의 관계

      • 10대 남성은 슈팅/RPG게임을 선호 (order-3 interaction), 10대 남성 게임 장르 3개의 관계

    • 기존 모델들은 low-order나 high-order interaction 중 어느 한 쪽에만 강함

      • Wide & Deep 모델은 이 둘을 통합하여 문제를 해결함

      • Wide component에 feature engineering이 필요하다는 단점이 있음. (Cross Product)

      • FM을 wide component로 사용하여 입력값을 공유하도록 함

    • DeepFM = Factorization Machine + Deep Neural Network
  • DeepFM의 구조
    • FM Component
      • 기존의 FM 모델과 완전히 동일한 구조
      • Order-2 feature interaction을 효과적으로 잡음

       FM Component

    • Deep Component
      • 모든 feature들은 동일한 차원(k)의 임베딩으로 치환됨
      • 임베딩 된 입력값이 모두 Concat되어 DNN후 Sigimoid를 통해 결과를 예측함.
      • 이 때, 임베딩에 사용되는 가중치는 FM Component의 가중치와 동일함.

      Deep Componet

  • 모델 도식화

    image

  • 타 모델과의 비교

    image

  • 모델 성능
    • 화웨이가 발표한 데이터셋과 open ctr dataset으로 유명한 criteo 데이터셋에 대해 우수한 성능을 보임. image

Deep Interest Network (DIN)

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

    • 알리바바에서 낸 논문임.

    • 더 많은 user의 과거 행동 정보등의 다양한 feature를 모델에 사용하고 싶다.

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

      • 이러한 기존의 방식은 사용자의 다양한(diverse) 관심사를 반영할 수 없음

      • 유저가 서로 다른 카테고리에 관심사가 동시에 존재할 수 있음

      • 특정 카테고리의 상품을 검색하여 보던 도중에 추천 목록에 있는 상품을 클릭할 때 유저가 해당 카테고리에 관심있음을 의미.

    • 사용자가 기존에 소비한 아이템의 리스트를 User Behavior Feature를 만들어, 예측 대상 아이템와 이미 소비한 아이템 사이의 관련성을 학습해 더 좋은 예측을 기대함.

  • User Behavior Feature

    • Multi-hot encoding

      • 유저가 과거에 했던 행동이 하나가 아니라 n개 존재할 수 있기 때문
  • 모델 구성

    • Embedding Layer

      • Spare한 Feature를 embedding
    • Local Activation Layer

      • Local Activation Unit

        • 예측 아이템과 과거에 소비했던 아이템들의 연관성을 학습함.

        • 후보 광고에 따라 과거 User Behavior에서 소비했던 광고들의 weight 크기가 달라짐

      • Weighted Sum Pooling

        • Activation Layer Weight로 가중합한 값을 출력

    image

    • Fully-connected Layer
      • Sum Pooling의 출력과 다른 Feature들을 concat하고 MLP 학습을 함.
  • 모델 도식화

    image

  • 모델 성능

    • Dice는 해당 논문에서 새롭게 제시한 activation function임.

    • 기존의 알려진 CTR 에측에 비해 AUC 성능이 우수함.

      image

Behavior Sequence Transformer (BST)

  • 배경

    • Transformer를 사용한 CTR 예측 논문

    • CTR 예측 데이터와 NLP 번역 데이터 간 공통점

      • 대부분 sparse feature로 구성되어 있음

      • low-와 high-order feature interaction이 모두 존재하여 비선형적 관계를 이룸

      • 문장의 순서가 중요하듯, 사용자의 행동 순서(user behavior sequence) 또한 중요함

        • 핸드폰을 구매한 뒤 핸드폰 케이스 상품들을 찾아보는 경향이 있음
    • NLP 분야 전반에서 강력한 성능을 보이는 Transformer 구조를 CTR 예측에도 적용해 볼 수 있음

      • 앞서, DIN에서도 Transformer의 attention 역할을 하는 local activation unit을 사용
    • Transformer

  • 전체구조

    • 입력을 집합이 아닌 Sequence까지 표현해 그대로 넣어줌

    • Transformer의 인코더 부분만 활용

    image

  • Transformer Encoder Layer

    Transformer Encoder Layer

    • Multi-Head Self-Attention Multi-Head Self-Attention
    • Point-wise Feed-Forward Neural Networks  Point-wise Feed-Forward Neural Networks
    • Stacking the Self-Attention blocks Stacking the Self-Attention blocks
  • BST vs DIN

    • local activation layeràtransformer layer

    • user behavior featureàuser behavior sequence

  • BST vs Transformer

    • Dropout과 leakyReLU 추가

    • 레이어 1~4개 사용 (best: 1개)

    • Custom Positional Encoding

      • 원래 Transformer에서는 Postional Encoding을 sin과 cos으로 진행했다.
      • 현재 시간과 아이템을 소비한 물리적인 시간의 차이를 활용 $pos(v_{i}) = t(v_{t}) - t(v_{i})$
  • 모델 성능

    • Transformer는 CTR Prediction Task에서도 SOTA의 성능을 보임.

    • 단, Transformer 블록을 2개 이상 쌓을 때 오히려 성능이 감소

      • CTR 예측 Task의 sequence는 machine translation와 같은 NLP sequence보다는 덜 복잡한 것으로 보임.

      image

의문점

  • Deep Interest Network의 Embedding Layer에서 concat할 필요 없이 바로 전체를 Embedding 하면 latent까지 모두 고려될 거 같은데 왜 굳이 cocnat후 Embedding을 할까?

피어섹션

  • Factorization Machine 식의 세번째 항에서 x_i x_j 의 정확한 의미가 알고싶다.

멘토링

  • 강의에 나오는 논문은 다 읽어봐라!
  • BERT4REC → SOTA
  • 강의만 봐서는 해결할 수 없음 - trick 이 너무 많음 (notation 도 너무 자유분방한 듯).. 논문을 읽어야 함
  • heterogeneous 그래프에 관해 알아보기

Leave a comment