1、背景
1.1 wide&deep
首先来介绍一下wide&deep模型,模型结构如下图

模型中,wide部分负责记忆,deep部分负责扩展(泛化性)。一些重要特征往往放在wide的浅层,一些隐性的特征可以放在deep部分借助于embedding的学习和隐性交叉来学习特征之间的交互。
1.2 FNN
和wide deep出发点一样, 一些线性模型LR很难学到非线性表达, 非线性模型比如FM, GBDT又很难学到所有的特征组合方式。那么,如何利用DNN去自动学习到特征表达,自动去学习到特征之间的交叉呢?
首先需要对category特征进行一个one-hot编码。
l1, l2层都是隐藏层,那么, dense real layer 就可以看作一个embedding层, 每个field 分别 对应一个embedding的过程。通常,使用FM去初始化这些参数往往能够更快地收敛,最大限制避免训练过程中陷入局部最小,以及得到更好的结果。可以看到,FNN其实就是widedeep模型的deep部分,但是FNN有用FM进行一个参数初始化的过程。

1.3 PNN模型
上一篇文章介绍了PNN模型
PNN的结构的思想相比于WideDeep模型核心改动地方在对于embedding后的dense feature,增加了两两交叉的功能,widedeep是embedding feature全部输入到隐藏层了。不同field经过Embedding后的特征做点击运算其实就相当于FM,那么PNN认为首先需要确保学习到这些交叉特征,再去额外交给DNN去学习更复杂的交叉特征。那么PNN结构其实相当于FM+DEEP。
再说下网络细节: Embedding layer 和Wide Deep模型是一样的, 不同field特征映射到了一个embedding的空间上,这时,不是所有的特征直接送到一个NN网络里面去,这里分成两个部分z 和p。
z部分直接就是原始的embedding特征不变;
P部分是embedding特征两两做内积运算,达到FM的效果,接下来z和p拼接成一个vector, 送到一个NN网络里面,最后softmax输出概率值。

1.4 DeepFM
DeepFM相对于wide deep模型的改进在于,wide部分替换为了FM

2、方案
2.1 NFM Neural Factorization Machines for Sparse Predictive Analytics∗

FM的参数是这样的,

而NFM相当于在Deep部分增加了一个Bi-Interaction Layer.该B-interaction Layer 得到的是一个和embedding维数相同的向量。然后后面接几个隐藏层输出结果。
Bi-Interaction Layer
的输入是整个的嵌入向量,
是特征取值,
特征对应的嵌入向量。(这里是和PNN中只是简单相乘然后线性变化的最大不同。)中间的操作表示对应位置相乘(element-wise product)

2.2 AFM Attentional Factorization Machine

AFM是NFM模型的一个改进, 在传统FM模型中,使用二阶交叉特征得到非线性表达能力,但是不是所有的特征交叉都会有预测能力,很多无用的特征交叉加入后反而会相当于加入了噪声。
因此,在这个模型中,加入了Attention Net 机制,aij表示特征i,j交叉的权重。计算方式如下: 经过一个attention net的隐藏层,得到该特征交叉的权重
假设输入有n个feature,那feature之前的交叉一共有n*(n-1)/2个,传统FM计算的方式如下:

xi, xj分别表示第i个和第j个feature,vi和vj表示每个feature对应的隐向量,AFM相当于在FM的基础上为每个交叉的特征学习了一个额外的权重。其计算公式如下:

aij是feature i和feature j 交叉的额外的权重,这部分采用一个简单的MLP通过梯度下降的方式优化loss来学习到,具体计算公式如下:

其中h, W和b都是模型的权重参数,这样,特征交叉的权重参数a就可以很容易计算出来。AFM的最终计算公式如下:

前面的为线性部分,后面的为引入attention的特征交叉部分。
3、总结
FNN是使用FM作为初始化embedding,
PNN是在embedding和DNN直接多了一层product layer。
AFM比FM多了attention;
DeepFM和NFM还是有所区别,浅层部分使用了FM,深度部分使用的是简单的DNN,
而NFM是相当于FM接上MLP串联的结构。
4、参考文献
Jun Xiao et all. “Attentional Factorization Machines: Learning the Weight of Feature Interactions via Attention Networks,” In IJCAi, 2017.