本文介绍DeepFM: An End-to-End Wide & Deep Learning Framework for CTR Prediction,原文Paper链接;
具体的代码实现见Github
摘要
对于CTR问题,学习特征交互是至关重要的问题,文中提出DeepFM(DNN+FM);
一、介绍
关于特征交互的作用,文中给出了一个例子:1、如人们经常在要吃饭的时候下载关于food的APP,所以APP和时间戳的二阶交互可以是一个很重要的预测信号;2、青少年男生更喜欢玩射击类游戏,所以可以引入三阶特征交互(APP类型+用户性别+用户年龄);但是这些都是很复杂的,同时考虑低阶和高阶特征交互,是要优于只用两个中的一个的;
虽然专家可以引入很好的特征交互,但是也存在问题,比如啤酒和尿布的故事,它们的关系被发现是通过大量的数据挖掘出来的,是由ML自动发现的;一系列对于CTR的研究开展:FTRL、FM、CNN/RNN、FNN、PNN、Wide&Deep等等;可以看出这些模型要么偏向低阶,要么偏向高阶特征组合,要么依赖特征工程;所以,文中的DeepFM自动学习高低阶,且是端到端的学习;
二、 方法
假设输入数据是 ( X , y ) (X,y) (X,y)且 X X X是m个field的数据,y是{0,1}变量,且 X X X由类别变量和连续变量组成,类别变量One-hot处理;
2.1、 DeepFM
DeepFM的网络架构如下图所示:
DeepFM由两部分组成:FM+Deep,他们共享相同的输入,其整个模型定义为: y ^ ( x ) = s i g m o i d ( y F M ( x ) + y D e e p ( x ) ) \hat y(x) = sigmoid({y_{FM}}(x) + {y_{Deep}}(x)) y^(x)=sigmoid(y