[Paper Review] DeepFM: A Factorization-Machine based Neural Network for CTR Prediction

이승규·2022년 7월 21일
3
post-thumbnail

H. Guo, R. Tang, Y. Ye, Z. Li, and X. He, “Deepfm: A factorizationmachine based neural network for CTR prediction,” in Proceedings of the Twenty-Sixth International Joint Conference on Artificial Intelligence, 2017, pp. 1725–1731.

1. Introduction

click-through-rate(CTR) 예측은 유저가 추천된 아이템을 클릭할 확률을 추정하는 task로, 추천시스템의 주요 과제 중 하나이다. 클릭 수를 높여 더 많은 수익을 내는 것은 많은 추천시스템의 목표라고 할 수 있다.

CTR 예측을 위해서는 유저의 클릭 행위 뒤에 숨겨진 implicit feature interaction을 학습할 필요가 있다. 예를 들어 앱 추천시스템의 경우 유저가 앱을 다운받는 행위는 시간대, 유저의 나이와 성별 같은 feature와 앱 카테고리 사이의 interaction이 CTR에 영향을 미칠 수 있다. 이러한 interaction은 매우 복잡하고 low, high-order feature interaction 가릴 것 없이 CTR에 있어서 모두 중요한 역할을 한다.

결국 중요 포인트는 feature interaction을 효과적으로 학습하는 것이다. 선행 연구에서는 generalized linear model부터 factorization machine, wide & deep learning까지 데이터 속에 감춰진 feature interaction을 머신러닝으로 잡아내기 위한 많은 시도가 이루어졌다. 하지만 low-order interaction이나 high-order interaction에만 편향되었거나, feature engineering 과정이 복잡해지는 등 몇몇 한계점이 존재했다.

논문에서 저자는 FM과 DNN의 구조를 결합한 DeepFM 모델을 제안한다. DeepFM은 FM의 특징을 가지고 있어 low-order feature interaction을 학습하고, DNN처럼 high-order feature interaction도 학습할 수 있다. wide & deep model과 같이 복잡한 feature engineering이 필요하지도 않다. 또 wide part와 deep part가 동일한 input, embedding vector를 공유한다는 특징이 있어 complexity를 감소시키고 효과적으로 학습될 수 있다.

2. Our Approach

모델 학습을 위한 데이터는 nn개의 instance (χ,y)(\chi, y)로 구성되어 있다. χ\chi는 유저와 아이템 쌍을 포함하고 있는 mm-fields data이고, y{0,1}y \in \{0, 1\}은 유저의 클릭 행위를 구분하는 associated label이다.

χ\chi는 범주형 변수와 연속형 변수를 모두 포함할 수 있는데, 범주형 변수의 경우 one-hot encoding으로 나타내고 연속형 변수의 경우 값 그 자체가 feature가 되거나 discretization 후 one-hot encoding으로 나타내는 방법이 있다.

이후 각 instance는 (x,y)(x, y)로 변환된다. x=[xfield1,xfield2,,xfieldj,xfieldm]x=[x_{field_1},x_{field_2}, \cdots,x_{field_j},\cdots x_{field_m}]dd차원 벡터로 xfieldjx_{field_j}χ\chi에서 jj번째 field의 벡터 표현식이다. 보통 xx는 차원이 높고 희소한 벡터이다.

CTR 예측 task는 유저가 특정 앱을 클릭할 확률을 추정하는 예측 모델 y^=CTR_model(x)\hat{y}=CTR\_model(x)를 학습시키는 것이다.

2.1 DeepFM

DeepFM의 구조는 아래 그림과 같다. low-, high-order feature interaction을 학습하기 위해 Factorization Machine(FM)과 deep neural network를 결합한 구조를 가지고 있다.

DeepFM에서 FM component와 deep component는 같은 input을 공유한다. feature ii에 대해서, 가중치 wiw_i는 order-1 importance를 나타낸다. 그리고 latent vector ViV_i는 FM component에서는 order-2 interaction, deep component에서는 high-order interaction을 나타내기 위해 사용된다.

wiw_i, ViV_i, 그리고 network parameter를 포함한 모든 파라미터들은 jointly train되어 다음과 같이 최종 예측값이 도출된다.

y^=sigmoid(yFM+yDNN)\hat{y}=sigmoid(y_{FM}+y_{DNN})

y^(0,1)\hat{y} \in (0, 1)은 CTR 예측값, yFMy_{FM}은 FM component의 output, yDNNy_{DNN}은 deep component의 output이다.

FM Component

FM component는 아래 그림과 같은 factorization machine이다.

FM은 linear interaction(order-1) 외에도 pairwise feature interaction(order-2)으로써 latent vector간의 inner product 연산을 이용한다. 기존 FM은 feature iijj 모두 한 data에 존재할 때 interaction이 학습될 수 있었는데, DeepFM의 FM component에서는 latent vector ViV_iVjV_j의 inner product를 통해 order-2 feature interaction이 좀 더 간편하게 계산될 수 있다.

FM 모델의 output은 위 그림에서 볼 수 있듯이 Addition unit과 Inner Product unit의 합이 된다.

yFM=w,x+j1=1dj2=j1+1dVi,Vjxj1xj2,y_{FM}=\langle w, x\rangle + \sum_{j_1=1}^{d} \sum_{j_2 = j_1+1}^d \langle V_i, V_j \rangle x_{j_1} \cdot x_{j_2}\,,\\
where wRd,  ViRk\text{where }w \in R^d , \; V_i \in R^k

Deep Component

deep component는 feed-forward neural network로 high-order feature interaction을 학습하는 것이 목적이다.

CTR 예측을 위한 raw feature input vector는 매우 sparse하고, 높은 차원을 가졌으며, 범주형 변수와 연속형 변수가 섞여있고, 필드들이 그룹화되어있다. 따라서 첫 번째 hidden layer에 통과시키기 전에 input vector를 저차원의 dense한 실수 벡터로 압축시켜주는 과정이 필요하다.

아래 그림은 input layer와 연결된 embedding layer의 구조를 보여준다.

위 network 구조는 두 가지 특징이 있다. 먼저 input field vector들끼리 크기가 다를 수 있음에도 embedding은 같은 크기 kk로 맞춰진다는 것이다. 또 latent feature vector VV가 여기서는 network weight 역할을 하게 된다.

선행연구에서 network를 초기화하기 위해 FM으로 사전학습된 latent feature vector를 사용한 것과 달리, 저자는 FM 모델도 전체 learning architecture에 포함시켰다. 즉 FM을 통한 사전학습 과정을 없애고 전체 network를 end-to-end로 jointly train시켰다.

embedding layer의 output을 a(0)=[e1,e2,,em]a^{(0)}=[e_1, e_2, \cdots , e_m]이라고 할 때, a(0)a^{(0)}은 DNN에 투입되어 아래 식과 같은 forward process를 거친다.

a(l+1)=σ(W(l)a(l)+b(l))a^{(l+1)}=\sigma(W^{(l)}a^{(l)}+b^{(l)})

식에서 ll은 layer depth, σ\sigma는 활성화 함수, a(l)a^{(l)}, W(l)W^{(l)}, b(l)b^{(l)}은 각각
ll번째 layer의 output, weight, bias를 나타낸다.

이렇게 dense real-value feature vector가 만들어지면 sigmoid 함수 yDNN=σ(WH+1aH+bH+1)y_{DNN} = \sigma(W^{|H|+1}\cdot a^H +b^{|H|+1}) 를 거치면서 DNN을 통한 CTR 예측값이 도출된다. H|H|는 hidden layer 수이다.

2.2 Relationship with the other Neural Networks

이어서 DeepFM을 CTR 예측에 사용되는 기존 모델들과 비교한다.

Figure 5에서 가장 왼쪽에 있는 모델은 FNN으로, FM-initialized feed-forward neural network이다. FM을 이용해 pre-train을 하는 원리이지만 몇 가지 단점이 존재한다. 바로 embedding parameter들이 FM에 과도하게 영향을 많이 받는다는 점과 pre-training 단계로 인해 학습 efficiency가 줄어든다는 점이다. 또 high-order feature interaction만을 잡아낸다는 단점도 있다. 반면 DeepFM은 사전학습이 필요없고 high-, low- order interaction을 모두 잡아낼 수 있다.

중앙에 있는 모델은 PNN이다. PNN은 embedding layer와 첫 번째 hidden layer 사이에 product layer를 넣어 inner product, 혹은 outer product로 high-order interaction을 잡아내고자 했다. 다만 outer product가 inner product에 비해 신뢰성이 떨어진다는 점과 연산의 복잡도가 높다는 한계가 존재한다.

가장 오른쪽에 있는 모델은 Wide & Deep Model로, low-, high- order feature interaction을 모두 잡아낼 수 있다는 장점을 가지고 있다. 하지만 wide part에 투입할 input을 만들어내는데 복잡한 feature engineering이 필요하다. DeepFM은 FM과 deep component가 같은 feature embedding을 공유할 수 있게 함으로써 이러한 한계를 극복했다.

FNN, PNN, Wide & Deep 모델과 DeepFM의 특징을 정리하면 아래 표와 같다.

3. Conclusions

CTR 예측을 위해 본 논문에서 제안된 DeepFM은 FM 기반 neural network 모델로써 deep component와 FM component가 jointly train 된다. DeepFM의 장점은 3가지 정도로 요약할 수 있다. 먼저 별다른 pre-training 과정이 필요하지 않다. 또 high-, low- order feature interaction을 모두 학습할 수 있다. 마지막으로 feature embedding을 공유하여 feature engineering 없이 동작한다.


profile
Machine Learning Engineer

0개의 댓글