DeepFM: A Factorization-Machine based Neural Network for CTR Prediction

투빅스1617 RS·2022년 5월 25일
0

Abstract


본 논문에서 소개하는 DeepFM은 CTR(click trough rate)을 최대화하는것을 목적으로 하는 모델이다. 기존의 모델들은 low-order 또는 high-order 중 하나만 고려해온 반면, DeepFM은 두 interaction을 모두 표현할 수 있는 end-to-end 학습 모델이라는 점이 핵심이다. DeepFM은 FM(factorization-Machine)과 DL(Deep Learning)을 결합하여 새로운 neural network architecture을 제안한다. 이와 비슷한 개념으로는 구글의 Wide & Deep model이 있는데, Wide & Deep model과는 달리 DeepFM은 wide와 deep 파트에서 input을 공유하고, feature engineering이 필요하지 않다는 차이점이 있다.

1. Instroduction


1.1 Motivation

CTR 예측은 user가 추천 item을 클릭할 확률을 추정하는 것으로 user의 클릭 로그로부터 feature interation을 정확히 파악하는 것이 중요하다. interaction은 명시적으로 그 관계가 드러날 수도 있지만, 암시적으로 드러나서 파악하기가 어려울 수도 있다.

예를 들어, 아래 3가지 상황으로부터 interaction들을 보자.

  • 사람들은 식사시간에 배달앱을 다운로드하는 경향이 있다.
    → ‘app category’ 와 ‘time’ 간의 interaction 존재 (order-2)
  • 10대 남자들은 rpg 게임을 선호한다
    → ‘app category’ 와 ‘gender’ 와 ‘age’ 간의 interaction 존재 (order-3)
  • 사람들은 맥주와 기저귀를 함께 구매하는 경향이 있다.
    → ‘beer’ 와 ‘diaper’ 간의 숨겨진 interaction 존재 (order-2)

위 2개의 예시는 명시적으로 interation이 드러나지만 3번 예시는 그렇지 않다. 그리고 현실에서 대부분의 feature interactions는 3번 예시처럼 숨겨져 있기 때문에 machine learning을 통해 자동으로 잡아내는 모델이 필요하다.

따라서, CTR 예측 모델을 구축할 때는 명시적인 interaction과 숨겨진 interaction을 둘 다 잡아내기 위해 DeepFM이 두 파트로 구성되어있다. (FM & DL)

Interaction을 고려하는 기존 연구는 다음과 같다.

  1. Generalized Linear Model (GLM)
    → 일반적으로 order-2 interaction까지만 고려하며 그 이상은 일반화 하기가 어렵다.

  2. Factorization Machine (FM)
    → low-order 뿐만 아니라 high-order interaction도 이론상으로 모델링이 가능하지만 후자까지 고려한다면 모델의 복잡도가 고도화되어 사실상 실질적으로는 사용이 불가능하다.

  1. Factorization Machine Supported Neural Network (FNN)
    → NN 기반의 모델로 high-order interaction 모델링이 가능하지만 low-order를 제대로 잡아내기 어렵다.

  2. Wide & Deep Model
    → linear 모델 (wide part)과 Neural Net 모델 (deep part)을 통합한 모델로 low-order와 high-order를 모두 포착할 수 있지만 wide part의 경우 고도의 feature engineering이 필요하다는 단점이 있다.

1.3 Contribution

  1. 본 논문에서 제안하는 새로운 neural network model인 DeepFM은 FM과 DNN을 통합한 모델이다.

FM으로 lower-order feature interaction을 학습하고, DNN으로 high-order feature interaction을 학습한다. 이 때, Wide & Deep Model과 달리 DeepFM은 별도의 feature engineering 없이 end-to-end 모델로 학습될 수 있다.

  1. DeepFM은 wide part와 deep part가 있는데, Wide & Deep Model과 달리 input과 embedding vector를 공유하기 때문에 더 효율적으로 학습된다.

  2. DeepFM은 CTR 예측을 benchmark data와 commercial data로 평가한다.

2. Our Approach


DeepFM의 데이터 구조는 다음과 같다.

  • n개의 데이터셋 (x,y)
  • x는 m-fields data record (user와 item 쌍)
  • y는 0 또는 1 (해당 유저의 해당 아이템 클릭 여부 label)

x는 m개의 필드로 이루어져 있으며 user의 필드에는 user id, 성별, 나이 등의 정보가 있으며 item 필드에는 특정 item 구매 정보 등을 담고 있다. 각 필드는 one-hot vector(categorical data) 또는 해당 값 그대로(연속값) 사용한다. 일반적으로 x는 극도로 sparse하며 high-dim으로 구성된다.

y는 클릭했을 경우에 1, 안했을 경우에 0으로 표기한다.

위의 x data와 y data를 활용해 user가 특정 item을 클릭할 확룔(CTR)을 예측한다.

2.1 DeepFM

다음 그림은 DeepFM의 아키텍쳐이다.

DeepFM은 input을 공유하는 FM component(low-order feature interaction 학습) part와 Deep compoment(high-order feature interaction 학습) part로 구성되어 있다. 두 모델의 구조는 이후에 자세히 설명되므로, input과 output 위주로 먼저 간단히 설명할 예정이다.

앞서 언급 되었듯이 FM layer와 Hidden layer는 input embedding vector를 공유한다.

여기서 embedding vector는 별도의 embedding layer를 훈련시켜 얻은 dense vector를 의미한다.

각 Neural Network는 hidden vector의 차원이 k이고 이는 sparse한 x값을 k차원으로 압축하여 표현하는 것이다.

그 과정에서 얻게 되는 가중치 행렬 W는 위와 같이 표현되며, 각 행벡터는 해당 feature에 대한 정보를 나타낸다.

output은 아래와 같이 두 모델이 각각 내놓은 예측값을 더하여 최종 결과로 사용한다.

2.1.1 FM Component

DeepFM 모델에서 low-order feature interaction을 포착하는 FM 모델을 살펴보겠다.

FM 모델은 order-1 interaction을 포착하는 부분과 order-2 interaction을 포착하는 부분으로 나뉜다. 이 모델은 order-2 interaction의 가중치를 위에서 설명한 embdeeing vector들의 내적으로 사용한다. 예를 들어 10대와 20대 feature의 interaction weight는 10대, 20대에 해당하는 embedding vectors의 내적이 된다.

즉, FM 모델은 order-1 interaction 뿐만 아니라 각 feature embedding vectors의 innner product로 order-2 interaction을 학습한다.

2.1.2 Deep Component

다음은 DeepFM 모델에서 high-order feature interaction을 포착하는 DNN 모델이다.

Embedding vector가 FM 모델에서는 가중치의 역할을 했다면, DNN 모델에서는 input으로 사용된다. FM model을 통해 vectors를 학습하기 때문에 pre-training이 필요 없어 end-to-end 학습이 가능하다.

위 그림은 embedding layer의 structure이다.

즉, embedding vector들을 합친 a(0)가 모델의 input이며 input을 H개의 층에 통과시켜 aH를 얻고, output layer(sigmoid 함수)를 통과한 값이 최종 결과이다.

참고로 이 때, FM 모델을 먼저 훈련하는 것은 아니고 동시에 훈련하여 같이 사용한다고 한다.

2.2 Relationship with the other Neural Networks

위 표는 DeepFM 모델과 다른 Neural Network 모델들을 비교한 것이다. 이는 앞서 related work에서 했던 내용과 비슷하다.

  1. FNN
    앞서 언급했던 모델이다. DNN component만을 활용하고 Embedding시에 FM Pre-Trained된 값으로 initialization 한다. High-Order를 상호작용을 학습할 수는 있지만 Low-Order학습은 불가능하다.

  2. PNN
    DNN Component구조에서 Product Layer를 추가한 형태이다. Inner Product를 활용할 수도 있고 Outer Product를 활용할 수도 있고 둘 다 활용할 수도 있다. Outer Product를 활용하는 경우 근사법을 사용하기 때문에 feature 정보를 많이 잃어버리고 이 때문에 unstable해진다. Inner Product의 경우 더 reliable하지만 Product Layer 이후에 Hidden Layer의 모든 neuron에 연결되기 때문에 High Computational Complexity가 요구된다. PNN과 다르게 DeemFM은 오직 마지막 output layer(하나의 neuron)에만 연결된다. FNN과 같이 Low-Order학습은 불가능하다.

  3. Wide & Deep
    DeepFM과 다르게 Wide Part의 Input을 직접 feature engineering 해야 한다. 이 모델의 Linear Regression(LR)부분을 FM으로 바꾸면 DeepFM과 비슷하지만 DeepFM은 Feature Embedding을 Share한다는 점이 다르다. Embedding을 share하는 방식은 low-order, high-order 상호작용을 표현하는 feature representation에 영향을 미쳐 더 정교하게 만든다.

3. Experiments


DeepFM과 다른 SOTA 모델들을 비교하였을 때 DeepFM 모델이 더 좋은 성능을 보였다.

3.1 Experiment Setup

3.1.1 Dataset

  1. Criteo Dataset
    4,500만 명의 유저 클릭 기록을 포함하고 있다. 13개의 continuous feature와 26개의 categorial feature가 있다. 실험에서는 무작위로 90%는 train set으로 나머지 10%는 테스트용으로 나눈다.

  2. Company* Dataset(저자가 속해 있는 Huawei 데이터를 말하는 것 같습니다)
    실제 산업에서의 CTR 예측 성능을 평가하기 위해 회사 데이터에서 실험을 해보았다. 회사의 App store에서 연속된 7일의 유저 클릭 기록을 training용으로 사용했고 다음 하루치를 test용으로 사용했다. 전체 데이터는 10억 개가량의 기록이 있다. 이 dataset에서는 app에 관련된 feature(e.g. identification, category and etc)와 user와 관련된 feature(e.g. 유저가 다운로드한 앱 등), context feature(e.g. operation time 등)이 있다.

3.1.2 Evaluation Metrics

본 논문에서는 실험에서 AUC와 Logloss를 평가 지표로 사용했다.

3.1.3 Model Comparision

9개의 모델을 실험에서 비교했다.

LR, FM, FNN, PNN(내적 사용, 외적 사용, 내외적 둘 다 사용 3가지), Wide & Deep(Wide 부분을 LR로 사용한 모델과 FM으로 사용한 모델 두 가지), DeepFM.

3.1.4 Parameter Settings

Criteo Dataset에서는 공정한 비교를 위해 FNN과 PNN에서의 파라미터와 동일하게 사용했다.

  1. dropout: 0.5
  2. network structure: 400-400-400
  3. optimizer: Adam
  4. activation function: tanh for IPNN, relu for
    other deep models.

Company Dataset은 본인들의 최적화된 parameter를 찾아서 사용했다고 한다.

3.2 Performance Evaluation

Efficiency와 Effectiveness를 나누어서 실험했다.

3.2.1 Efficiency Comparison

LR 대비 학습에 걸린 시간을 나타낸 그래프이다. FNN을 보면 DeepFM에 비해 오래 걸리는데(1.89+1.32) Pre-Training에서 시간을 많이 쓴다. IPNN이나 PNN의 경우 Inner Product가 Hidden Layer에 붙으면서 학습 속도가 굉장히 느려지는 걸 확인할 수 있다. Wide&Deep 모델(LR&DNN로 표시)보다는 살짝 느리지만 준수한 속도를 보인다.

3.2.2 Effectiveness Comparison

  • 피쳐 간의 상호작용이 전혀 표현되지 않는 LR보다 상호작용을 표현하는 다른 모델들이 성능이 더 좋다.

  • Low-order와 High-order 상호작용을 같이 학습하는 모델인 DeepFM과 Wide&Deep 모델의 성능이 더 좋다.

  • Low-order와 High-order를 학습할 때 같은 feature-embedding을 share하는 DeepFM이 Wide&Deep 모델보다 성능이 좋다.

결과적으로 Wide&Deep보다 AUC와 LogLoss측면에서 각각 0.37% 포인트, 0.42% 포인트 성능이 더 좋아졌다. 근소한 차이지만 Wide&Deep 논문에 의하면 Offline에서 0.275% 포인트 차이가 Online CTR에서는 3.9% 포인트 차이로 이어졌다. 회사 AppStore에서 일일 전환율이 수백만 달러이기 때문에 작은 비율의 상승은 년간 수 백만 달러의 추가 이익을 가져온다고 한다.

3.3 Hyper-Parameter Study

Company dataset에 대한 hyper parameter에 관한 study이다.

3.3.1 Activation Function

선행 연구에 따르면, sigmoid 함수보다 relu와 tanh 함수가 deep model에 더 적합하다고 한다. 본 논문에서는 relu를 적용했을 때와 tanh를 적용했을 때의 performance를 비교했다.

위 그래프에 따르면, relu가 tanh보다 deep model에 더 적합하다. (IPNN 제외)

3.3.2 Dropout

드롭아웃은 1.0, 0.9, 0.8, 0.7, 0.6, 0.5로 설정하여 그 결과를 비교하였다.

모든 모델에서 dropout은 0.6에서 0.9일 때 성능이 가장 좋았다.

3.3.3 Number of Neurons per Layer

다른 요소가 모두 동일한 환경일 때, 각 레이어의 뉴런 수를 증가시켰을 때 복잡도를 나타냈다.

본 데이터셋에서는 200~400정도가 좋은 결과를 보였다. 이 이상은 overfitting이 일어난다.

3.3.4 Number of Hidden Layers

위 그래프에서 나타나듯이 hidden layer의 수를 증가시키면 처음에는 성능이 좋아지지만 3개가 넘어가면 점차 과적합된다.

3.3.5 Network Shape

3개의 hidden layer기준으로 같은 shape(neuron수가 200-200-200)이 증가하는 shape(100-200-300)이나 감소하는 shape(300-200-100)이나 diamond shape(150-300-150)보다 좋았다.

4. Conclusions


DeepFM은 FM과 DNN을 함께 훈련시키는 모델이다. 이는 pre training이 필요없고 두 모델이 embedding 벡터를 서로 공유하기 때문에 별도의 feature engineering 이 필요없다는 것이 장점이었다. 또한 low, high order feature interaction을 모두 표현해낼 수 있었다. 나아가 여기서는 생략했지만 experiment 결과에 따르면, DeepFM은 AUC와 logloss면에서 여타 최신 모델들보다 뛰어난 성능을 보였고 효율성 측면에서도 우수했다.

profile
투빅스 추천시스템 1617기

1개의 댓글

comment-user-thumbnail
2022년 6월 7일

투빅스 17기 이지수입니다.

이번 논문에서는 CTR를 최대화하는 것이 목적인 DeepFM에 대해서 다룬다. DeepFM은 기존 FM과 DL을 결합하에 새로운 구조를 제안하게 되고, 여기서는 feature engineering이 따로 필요하지 않다는 것이 장점이다.
FM모델에서는 low-order feature interaction을 포착하게되고, 특성의 embedding vector를 이용하여 order-2 상호작용또한 학습한다.
Deep Component는 high-order feature 상호작용을 포착하고, 두개의 모델이 동시에 훈련되며 좋은 성능을 가져온다.

답글 달기