본문 바로가기
논문 리뷰

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

by jjjaeunn 2023. 7. 5.

👩🏻‍💻 본 포스팅은 개인적 공부를 위해 추천시스템 모델인 DeepFM을 정리한 포스팅으로, 오류가 있을 수 있습니다.

Introduction


- Background, Problem Statement

user behavior에서 사용되는 feature interaction이 복잡해짐에 따라, CTR을 maximize하는 것이 recsys에서 중요한 부분이 되었다.

다만 high-order interaction이나 low-order interaction을 모두 고르게 반영하는 모델이 부족하였다.

 

- Difficulties / Existing Work

*배경지식

low-order feature interaction, high-order feature interaction

low-order feature interaction : 저차원 특징 상호작용으로, 입력 변수들 간의 단순한 관계를 모델링함.

high-order feature interaction : 고차원 특징 상호작용으로, 더 복잡한 관계를 모델링한다. 설명력이 높아지지만, 모델은 복잡해진다.(trade-off 관계)

 

CTR이란?

Click-Through Rate의 약자로, 광고를 클릭한 사람의 비율을 말함.

ex. 노출횟수가 100이고 클릭횟수가 5인 경우 CTR은 5%이다.

 

CTR을 극대화하기 위해서, 또 CTR를 정확히 예측하기 위해서는 user click behavior 내에서 이루어지는 상호작용(interaction)이 중요한 역할을 함.

CTR prediction의 implicit(숨겨진, behind) feature interaction에는 다음과 같은 종류가 있다.

  • 사용자들은 배달 앱을 식사 시간에 주문하는 경향이 있음. (앱 카테고리와 시간대의 상호작용)
  • 남자 청소년들은 슈팅, RPG 게임을 다운 받는 경향이 있음. (앱 카테고리와 사용자 성별/나이의 상호작용)
  • '기저귀'와 '맥주' 사이의 상관성 -> 위 두가지 예시와 달리 expert는 예측하기 힘든 대신 데이터와 머신러닝으로 예측이 가능함

Related Works


기존에는 FTRL algorithm과 같은 선형 모델들이 존재하였다. -> feature interaction들을 학습하는 능력치가 부족함 (high-order feature는 적용이 어렵다.) -> 특성 간의 상호작용은 고려하지 않는다.(1차원 특성만 학습이 가능)

 

FM(Factorization Machines) 모델

특성 간의 상호작용을 잠재 벡터로 표현하는데, 이러한 잠재 벡터는 특성의 의미를 내포하고 있는 저차원의 밀집 벡터이다. FM은 특성 간의 상호작용을 내적으로 모델링하는데, 이는 특성의 잠재 벡터를 곱하여 상호작용의 정도를 나타내는 값으로 변환한다.

principle FM -> low-order feature간의 interaction을 고려하기에 최적화되어있다. high-order feature interaction 적용이 가능하기는 하지만, 매우 복잡할 수 있다. 결국 고차원은 복잡하고, order-2 feature interaction(입력 변수들간의 제곱, 곱으로 생성된 변수)은 잘 수행한다.

Factorization Machines

기존 FM 모델은 추천 알고리즘에 적용되는데, 위 예시는 우리가 가지고 있는 영화 기록 데이터(Feature vector x)를 통해, 아직 보지 않은 영화의 평점(Target y)을 에측하는 모델이다. 위 FTRL 알고리즘은 선형 모델을 사용하므로 feature x간의 interaction은 고려하기 어렵다. 

FM의 model equation은 위와 같이 구할 수 있다.  < vi, vj > 는 i, j feature 사이의 2-way interaction을 계산하는 내적을 의미한다. x(i)와 x(j), feature간의 interaction을 고려하여 y vector를 계산할 수 있게 되었다. 

 

Wide & Deep

 

Google Wide & Deep

또한 정교한 feature간의 interaction을 반영할 수 있는 딥러닝 모델들(CNN, RNN-based)도 많이 소개되었다. 그 중 대표적인 구글의 Wide & Deep 에서도 여전히 wide part(linear)는 별도의 feature engineering(cross-product feature)에 의존하여 high-order feature interaction을 수행한다.

-Solution

DeepFM은 power of factorization machine + deep learning for feature learning in a new neural network architecture을 접합한 모델을 제시한다. 따라서, DNN을 적용하여 high-order feature에서도 feature interaction을 향상시킬 수 있다.

low-order feature interaction에 대해서는 FM을 적용하고, high-order interaction에 대해서는 DNN을 적용하여 wide part와 deep part를 모두 고려하여 학습을 진행한다. 

 

기존 연구와 비교

* Factorization Model

DeepFM은 그냥 FM과 비교했을 때 pretraining 없이 덜 복잡하게 high-order feature interaction을 진행할 수 있음. 

* Wide & Deep

별도의 feature engineering(cross-product transformation) 없이 DNN 모델로 high-order feature interaction을 수행할 수 있음. 

Proposed Idea


  • Training Data Set : n개의 (χ, y) 쌍 instance를 가지고 있음.
    • χ는 user(사용자) item 사이의 쌍으로 이루진 m-field data record임. (field의 종류에는 gender, location, age 모두 들어갈 수 있음.)
    • 각 field는 one-hot encoding vector로 표현된다. 이 때 value 그 자체로 표현될 수도 있고, 연속 변수를 이산적으로 표현한 값이 될 수도 있다
    •  y ∈ {0, 1} is the associated label indicating user click behaviors
  • 각 instance는 (x,y)로 convert 될 수 있다. 이 때 x는 다차원 벡터로 변환되고, 각 x(fieldj)는 field j에 있어서의 X 벡터를 의미한다. 각 field가 비어져있는 경우가 많을 것이므로 희소 행렬(sparse)로 볼 수 있다. 

* 희소행렬인 이유

사용자가 모든 아이템에 접근하는 것은 아니기 때문에, 상호작용이 없었던 field들은 0으로 채워지기 때문이다.

one-hot encoding 벡터가 모인 다차원 벡터 X

  • DeepFM은 FM 부분과 Deep 부분으로 나눌 수 있다.
  • 이 FM 부분과 Deep 부분에는 같은 입력이 들어가는데, X 집합의 각 feature에서 W, V를 추출하게 된다. W, V를 포함한 모든 파라미터와 네트워크 파라미터들은 다음 모델을 위해서 모두 학습된다.

prediction model

y는 예측된 CTR 값이고, yFM과 yDNN은 각 FM 부분과 Deep 부분의 output이다.

 

FM Component

위에서 언급한 factorization machine으로, 사용자 맞춤 추천을 위해 feature간의 상호작용을 학습하는 모델이다.

order-1의 linear 상호작용을 넘어, order-2에서 feature간의 interaction까지 고려한 모델이다. 

이전 모델들은 feature i와 j가 같은 데이터에서 값이 존재해야지만, 즉 비어있는 field가 아니어야지만 상호학습이 가능했다. 이 단점을 넘어서 FM에서는 나타나지 않는 feature들까지 고려하여 latent vector를 학습시킬 수 있다. 데이터 레코드에 존재만 해도(즉, 값이 없어도) 학습이 가능하다. 

FM component의 output

<w, x>는 order-1 feature들을 linear하게 연산하는 유닛이고, 뒤에 있는 연산은 order-2 feature들 간의 상호작용까지 가능하게 한다.

FM Component의 연산

 

Deep Component

high-order feature interaction을 학습하는 데에 사용된다. data record인 벡터가 input으로 들어가고, high-sparse, high-dimensional, categorical-continuous-mixed, grouped in fields 인 특징이 있다. 이 때 고차원의 입력 벡터를 효율적으로 표현하기 위해 저차원의 밀집 벡터로 매핑하여 이를 통해 효과적으로 학습할 수 있게 된다. 

embedding layer를 거쳐 활성화함수를 적용한 output a(0)이다.

a(l+1)은 DNN에서 layer의 깊이(개수)를 지난 후의 결과물이다. 

$$ y_{D N N}=\sigma\left(W^{|H|+1} \cdot a^H+b^{|H|+1}\right) $$

H개의 hidden layer를 지난 후, DNN이 출력하는 feature vector가 생성된다. $$y_{D N N}$$은 최종적 CTR prediction의 sigmoid 함수의 입력값으로 사용된다.

embedding layer의 구조 / DNN의 구조

 

embedding layer를 거친 결과로 a(0)가 반환되어 DNN 모델에 input으로 들어가 DNN 모델은 $$a(l+1)$$을 output으로 반환한다.

임베딩 레이어로 고차원의 벡터를 저차원의 벡터로 매핑하기 때문에, Wide & Deep과 달리 별도의 feature engineering이 요구되지 않는다는 특징이 있다.

 

Relationship with other Neural Networks

 

이전에 연구된 neural network들 (FNN, PNN, Wide & Deep, DeepFM)과 비교하였을 때, pre-train이 필요 없고 high-order와 low-order feature들을 모두 처리할 수 있으며 feature engineering도 필요로 하지 않는 모델은 DeepFM뿐이다.

 

Evaluation


Experiments

Datasets : click dataset을 포함하고 있는 Criteo Dataset, Company* Dataset를 사용하여 evaluate를 진행하였다. 

AUC Logloss metric을 통해서 결과를 분석하였다. 

 

Performance Evaluation

소요시간 / CTR performance 비교

다른 딥러닝 모델들에 비해 소요시간, CTR prediction 면에서 높은 성능을 보이는 DeepFM을 확인할 수 있음. 

 

 

Hyper-Parameter Study

Hyper parameter의 변화에 따른 deep model의 성능을 비교
선정 지표 : AUC, Logloss -> 모델의 class 구별 성능을 나타냄.

  1. dropout rate
    • neuron이 network 내에 존재한다는 가정 하에, dropout technique를 적용함.
    • 모델들은 dropout이 적절하게 세팅되었을 경우, 높은 성능을 보임.
  2. number of neurons per layer
    • neuron 개수를 늘릴 수록 복잡도가 높아짐.
    • 과하게 복잡한 모델은 overfitting 될 가능성이 높아지기에 OPNN 모델을 채택하면 성능이 안 좋음.
    • DeepFM에서는 레이어당 200, 400 뉴런이 가장 적합함.
  3. number of hidden layers
    • 초반에는 hidden layer의 개수가 많아질수록 성능이 향상됨.
    • 뒤로 갈 수록 성능이 감소하며 오버피팅 현상 일어남
  4. network shape
    • constant, increasing, decreasing, diamond의 network 모양을 고려했을 때, costant 모양 network가 가장 높은 성능을 보임

결론 : 다른 딥러닝 모델들보다 DeepFM이 AUC, logloss 지표에서 뛰어난 성능을 보인다.

 

 

Conclusions


요약

  • Problem : 이전 recsys SOTA 모델들은 high-order feature interaction의 학습을 효율적으로 진행하기 어려웠음.
  • 결과 : deep component와 FM component를 접합함.
    • 1. pre-training 필요 없음
    • 2. high, low-order feature interaction 모두 학습할 수 있음
    • 3. 추가적 feature engineering을 배제하고 feature embedding strategy를 소개함
  • Future Works : 타 strategies를 적용하여(pooling layer와 같은) high-order feature interaction의 결과를 개선하기, DeepFM을 GPU cluster에서 학습시키기.

 

 

*참고
https://supkoon.tistory.com/33

https://medium.com/@tomar.ankur287/user-user-collaborative-filtering-recommender-system-51f568489727

https://lsjsj92.tistory.com/563