04-《DeepFM: A Factorization-Machine based Neural Network for CTR Prediction》

1.背景

DeepFM,2017年被提出,是一个以并行形式结合了DNN和FM的模型。它被提出用于解决构建复杂特征组合的问题。

在CTR预测中,学习用户点击行为背后的隐藏特征组合是非常重要的。这些隐藏特征组合通常比较复杂,包括了低阶和高阶。我们需要注意是的,低阶和高阶的特征组合是同样重要的,我们不应该忽略任意一个。

构建特征组合的问题,其实一直是CTR预测中的一个难题。

对于复杂高阶特征组合而言,多数复杂的特征组合其实是靠机器学习自动学习得到,而非人工构建出来的(比如“尿布和啤酒”的例子);而对于简单低阶特征组合,当有大量数目的简单组合时候,人工也很难完全详尽构建。

而DeepFM在基于这样的情况下被提出,它能够实现:(1)同时捕获低阶和高阶的特征组合;(2)不用人工构建特征组合。

2.DeepFM结构

 

           04-《DeepFM: A Factorization-Machine based Neural Network for CTR Prediction》

在上图中,我们可以看到DeepFM中分为两个部分:FM和DNN。

FM和DNN以并行方式组合,并且共享Embedding向量作为输入。

预测公式为:  04-《DeepFM: A Factorization-Machine based Neural Network for CTR Prediction》

2.1  Sparse Features(输入层)

这一层是原始的输入层,但并不是原始的数据。原始数据需要经过处理才是该层的向量。

我们设原始数据为04-《DeepFM: A Factorization-Machine based Neural Network for CTR Prediction》04-《DeepFM: A Factorization-Machine based Neural Network for CTR Prediction》为包含m个filed特征的数据,y是表示用户是否点击(y=1表示用户点击了该项目,y=0表示未点击)

原始特征数据04-《DeepFM: A Factorization-Machine based Neural Network for CTR Prediction》中,一般包含categorical和continuous两种特征。我们需要分别处理。

    - categorical 特征:表示成one-hot编码后向量

    - continuous 特征:表示为值本身,或者离散化后再表示成one-hot编码后向量

所有特征处理后,我们会得到一个稀疏向量x,即 Sparse Features。 那么此时,我们得到的训练数据就是(x,y).

2.2  Dense Embedding(embedding 层)

                                              04-《DeepFM: A Factorization-Machine based Neural Network for CTR Prediction》

Sparse Features经过Embedding后,得到m个embedding向量。这个操作是为了压缩原始数据的维度。

这里有两个地方需要注意:

(1)不同field(即不同特征)的向量的长度可以不同,但得到的embeddi向量最终都相同。

(2) FM中的隐向量(V),在这里成为输入层向量到embedding层向量的网络权值,并被学习。

因为输入层是ont-hot编码,所以一个Field中有且仅有一个**元素等于1。那么一个Field对应的embedding向量,也就是该**元素的隐向量。在上图中,向量04-《DeepFM: A Factorization-Machine based Neural Network for CTR Prediction》就是第二个元素的隐向量。

接下来,FM和DNN部分都会以embedding向量作为输入。

2.3 FM部分

                                          04-《DeepFM: A Factorization-Machine based Neural Network for CTR Prediction》

Normal Connection:即黑色连接,它表示需要被学习的权重w。

Weight-1 Connection:即红色连接,它表示默认值且不变为1的权重。

Embedding:即蓝色连接,它表示的隐向量。

Addition:表示将所有的输入都相加的操作。

Inner Product:表示这个单位的输出是两个输入向量的乘积。

我们看FM的公式里,由一阶和二阶两部分组成:

                              04-《DeepFM: A Factorization-Machine based Neural Network for CTR Prediction》

与图中对应的,Addition就是公式中的一阶;所有的Inner Product就是公式中的二阶。

2.4 Deep部分

                  04-《DeepFM: A Factorization-Machine based Neural Network for CTR Prediction》

这部分其实是一个普通的前馈神经网络。

Activation Function,可以选用 relu 或者tanh。

DeepFM和Wide&Deep的结构类似,都是并行结构,且两部分联合训练。不过DeepFM使用FM构建低阶特征,Wide&Deep使用cross-product构建低阶特征;DeepFM两份

3. 总结

DeepFM以并行方式组合了FM与DNN两部分,它们共享Embedding层作为输入,共同参与训练。

DeepFM通过FM构建低阶特征,通过DNN自动构建高阶特征,实现自动捕获低阶与高阶特征组合,不需要手动构建特征工程。