상세 컨텐츠

본문 제목

[논문 리뷰 스터디] DeepFM: A Factorization-Machine based Neural Network for CTR Prediction

심화 스터디/논문 리뷰

by 남르미누 2022. 11. 24. 19:52

본문

💡 2017년 발표된 논문으로, Factorization Machines를 신경망으로 확장한 DeepFM 모델을 제안하고 있다.

DeepFM이란 click trhough rate(CTR)을 예측하는 모델이다. 이는 Factorization-Machine(FM)과 Deep Learning(DL)을 통합한 것으로, feature들의 interaction을 모델링 하는 것이 특징이다.

기존 모델들은 low-order feature interaction 또는 high-order feature interaction 중 하나만 고려한 반면, DeepFM은 두 interaction을 모두 표현할 수 있는것이 핵심이다. 이와 비슷한 아이디어를 갖는 Wide & Deep model과 달리 DeepFM은 FM파트와 DL파트가 같은 input을 공유하며 별도의 feature engineering이 필요없다는 것이 가장 큰 차이점이다.

 

Introduction

CTR 예측이란, 아래 그림처럼 user에게 추천 아이템들이 주어졌을 때 user가 해당 아이템을 클릭할 확률을 추정하는 것이다. 이때 추정된 확률을 바탕으로, user의 선호 아이템 순위를 메길 수 있다.

💡 What is feature interaction?

CTR을 정확하게 예측하기 위해서는, user의 클릭 로그로부터 feature interaction을 면밀히 파악하는 것이 중요하다. 아래는 다양한 상황으로부터 고려할 수 있는 interaction 예시다.

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

위의 두 예시는 발견하기 쉽고 또 이해하기도 쉬운 반면, 마지막 예시는 모델이 자동으로 찾아주지 않으면 포착하기 어려운 interaction 일 수 있다. 따라서 CTR 예측모델을 고려할 때는, 명시적인 interaction과 숨겨진 interaction을 둘 다 잡아낼 수 있는 모델을 고려하는 것이 중요하다. (DeepFM이 두 파트로 구성된 이유)

 

  • DeepFM은 low-order와 high-order feature interaction을 모두 포착할 수 있다. 비슷한 구조인 Wide & Deep 모델과 다르게 end-to-end 방식으로 학습되며 별도의 feature engineering이 필요 없다.
  • DeepFM은 FM 파트와 DL 파트가 input과 embedding 벡터를 공유하기 때문에 효율적인 학습이 가능하다.

Model - DeepFM

DeepFM 데이터 구조

DeepFM의 데이터 구조는 총 n개의 데이터가 있다고 할 때, 각 row는 user와 item 정보를 담고 있는 x와 특정 아이템 클릭여부를 나타내는 y로 이루어져 있다.

먼저 x는 m개의 필드로 이뤄져 있으며 각 필드는 다양한 정보를 담고있다. 예를들어 user 필드에는 user의 id, 성별, 나이 등의 정보가, item 필드에는 특정 item의 구매 정보 등이 포함된다. 각 필드에는 카테고리 피처일 경우 one-hot 벡터로, 연속적인 피처일 경우 해당 값을 그대로 사용할 수 있다. 일반적으로 x는 굉장히 sparse 하며 고차원이다.

이어 y 는 user의 특정 item에 대한 클릭여부를 나타낸다. 만약 user가 특정 item을 클릭 했을 경우 y=1, 클릭하지 않았을 경우 y=0이 된다.

위와 같은 데이터 구조를 고려할 때, DeepFM의 목표는 x 가 주어졌을 때, user가 특정 item을 클릭할 확률을 예측하는 것이 되겠다.

DeepFM의 input과 output

DeepFM은 위와 같이 low-order feature interaction을 포착하는 FM 모델과, high-order feature interaction을 포착하는 DNN 모델로 구성된다. 먼저, DeepFM의 Input과 output을 살펴보겠다.

 

Input

먼저 Input의 경우 주목할 만한 특징은 FM layer와 Hidden layer가 같은 embedding 벡터를 공유한다는 점이다. 이는 앞서 Wide & Deep 모델과의 차별점이라고도 설명했다.

여기서 embedding 벡터란, 아래와 같은 별도의 embedding layer를 훈련시켜 얻은 dense 벡터를 의미한다. 정리하자면, 위 그림의 Sparse Features 부분에서, 각 필드의 노란색 부분에 해당하는 embedding 벡터를 FM과 DNN 이 모두 사용하는 것이 특징이다. (sparse한 원-핫-인코딩된 데이터, 연속형 데이터 → 각각 k차원으로 임베딩)

(ex) 5개의 범주형 데이터, 1개의 연속형 데이터

유저 메타 데이터 : 연령 범주 10개(범주형), 성별 범주 2개(범주형), 국가 범주 60개(범주형)

광고 메타 데이터 : 상품군 범주 100개(범주형), 상품 브랜드 범주 2000개(범주형), 상품 금액(연속형)

→ hidden layer로 전부 K차원으로 임베딩

→ 임베딩된 K차원의 벡터를 FM과 DNN에 각각 input

 

Output

$$ \begin{align*} \hat{y} = sigmoid(y_{FM} + y_{DNN}) \end{align*} \\ $$

output 같은 경우는 위처럼 두 모델이 각각 내놓은 예측치를 더한 값을 최종 결과로 사용한다.

DeepFM 모델 구조

FM Component : DeepFM 모델에서 low-order feature interaction을 포착하는 FM 모델

임베딩 matrix끼리 내적

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을 학습한다.

 

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인 e_i들을 합친 a(0)가 모델의 input이며, input을 H개의 층에 통과시켜 aH를 얻고, output layer(sigmoid 함수)를 통과한 값이 최종 결과이다.

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

 

Sigmoid

FM 결과값과 DNN 결과값을 합한 뒤 sigmoid layer 통과

Comparison with other Model

Pre-training이 필요하지 않다는 점,

Low order와 High order Interaction이 모두 모델링 가능하다는 점,

추가적인 Feature Engineering을 필요로하지 않는다는 점

DeepFm이 비교 우위에 있음을 알 수 있다.

Experiments

검증은 Click records를 포함하고 있는 Company Dataset과 Criteo Dataset에서 이루어졌다.

비교를 위한 Metric에는 AUC와 LogLoss가 사용되었다.

Result 1.

첫번째 실험은 Efficiency 비교이다.

각각은 Linear 모델 대비 각 모델이 학습에 걸린 시간을 의미한다.

DeepFM의 학습시간이 크게 우위에 있는 것은 아니지만, Pre-training을 필요로하지 않는다는 점이 주목할 만 하다.

Result 2.

두번째 실험은 Effectiveness 비교이다.

우선, 유일하게 Interaction을 고려하지 않는 LR모델이 나머지 Interaction을 고려하는 모델에 비해 성능이 떨어졌음을 확인할 수 있다. 따라서 Interaction의 고려가 CTR 예측에 긍정적인 영향을 준다는 것을 알 수 있다.

또한, High-order를 고려하는 모델들이 Low-order Interaction만을 고려하는 모델보다 성능이 좋았습니다. 그리고 최종적으로는 임베딩을 공유하는 DeepFM이 가장 좋은 CTR 예측 성능을 보였음을 알 수 있습니다.

Conclusions

DeepFM = deep component와 FM component를 결합한 추천시스템 모델

  • Deep, FM Component를 통해 High-order Interaction과 Low-order Interaction을 모두 모델링 할 수 있다는 장점
  • 두개의 Component 사이에 임베딩을 공유하여 부가적인 Featrue engineering을 필요로 하지 않는다는 장점
  • DeepFM이 Pre-training을 필요로 하지 않는다는 장점
  • 동일한 임베딩을 활용하여 다른 역할로 각각의 Component에서 활용한다는 아이디어의 Contribution

관련글 더보기

댓글 영역