04-《DeepFM: A Factorization-Machine based Neural Network for CTR Prediction》
1.背景
DeepFM,2017年被提出,是一个以并行形式结合了DNN和FM的模型。它被提出用于解决构建复杂特征组合的问题。
在CTR预测中,学习用户点击行为背后的隐藏特征组合是非常重要的。这些隐藏特征组合通常比较复杂,包括了低阶和高阶。我们需要注意是的,低阶和高阶的特征组合是同样重要的,我们不应该忽略任意一个。
构建特征组合的问题,其实一直是CTR预测中的一个难题。
对于复杂高阶特征组合而言,多数复杂的特征组合其实是靠机器学习自动学习得到,而非人工构建出来的(比如“尿布和啤酒”的例子);而对于简单低阶特征组合,当有大量数目的简单组合时候,人工也很难完全详尽构建。
而DeepFM在基于这样的情况下被提出,它能够实现:(1)同时捕获低阶和高阶的特征组合;(2)不用人工构建特征组合。
2.DeepFM结构
在上图中,我们可以看到DeepFM中分为两个部分:FM和DNN。
FM和DNN以并行方式组合,并且共享Embedding向量作为输入。
预测公式为:
2.1 Sparse Features(输入层)
这一层是原始的输入层,但并不是原始的数据。原始数据需要经过处理才是该层的向量。
我们设原始数据为。
为包含m个filed特征的数据,y是表示用户是否点击(y=1表示用户点击了该项目,y=0表示未点击)
原始特征数据中,一般包含categorical和continuous两种特征。我们需要分别处理。
- categorical 特征:表示成one-hot编码后向量
- continuous 特征:表示为值本身,或者离散化后再表示成one-hot编码后向量
所有特征处理后,我们会得到一个稀疏向量x,即 Sparse Features。 那么此时,我们得到的训练数据就是(x,y).
2.2 Dense Embedding(embedding 层)
Sparse Features经过Embedding后,得到m个embedding向量。这个操作是为了压缩原始数据的维度。
这里有两个地方需要注意:
(1)不同field(即不同特征)的向量的长度可以不同,但得到的embeddi向量最终都相同。
(2) FM中的隐向量(V),在这里成为输入层向量到embedding层向量的网络权值,并被学习。
因为输入层是ont-hot编码,所以一个Field中有且仅有一个**元素等于1。那么一个Field对应的embedding向量,也就是该**元素的隐向量。在上图中,向量就是第二个元素的隐向量。
接下来,FM和DNN部分都会以embedding向量作为输入。
2.3 FM部分
Normal Connection:即黑色连接,它表示需要被学习的权重w。
Weight-1 Connection:即红色连接,它表示默认值且不变为1的权重。
Embedding:即蓝色连接,它表示的隐向量。
Addition:表示将所有的输入都相加的操作。
Inner Product:表示这个单位的输出是两个输入向量的乘积。
我们看FM的公式里,由一阶和二阶两部分组成:
与图中对应的,Addition就是公式中的一阶;所有的Inner Product就是公式中的二阶。
2.4 Deep部分
这部分其实是一个普通的前馈神经网络。
Activation Function,可以选用 relu 或者tanh。
DeepFM和Wide&Deep的结构类似,都是并行结构,且两部分联合训练。不过DeepFM使用FM构建低阶特征,Wide&Deep使用cross-product构建低阶特征;DeepFM两份
3. 总结
DeepFM以并行方式组合了FM与DNN两部分,它们共享Embedding层作为输入,共同参与训练。
DeepFM通过FM构建低阶特征,通过DNN自动构建高阶特征,实现自动捕获低阶与高阶特征组合,不需要手动构建特征工程。