FM与深度学习融合的模型,都是在多层神经网络的基础上增加了针对性的特征交叉操作。

FNN

主要思想

结构上与DeepCrossing 类似,都是稀疏特征经过embedding,再进行全连接,FNN的改进在于embedding层的初始化,使用FM预训练的特征隐向量来初始化输入层与embedding层之间的参数。

模型结构

这二者主要区别主要有:

  • FNN在embedding层使用FM训练好的隐向量作为初始化embedding层的参数;
  • DeepCrossing在全连接层使用了残差网络的结构

FNN:
image.png
DeepCrossing:
20200910-《深度学习推荐系统》-chp3 - 图2

DeepFM

主要思想

将FM于Wide&Deep融合,从Wide&Deep模型出现后,很多改进都是在它的基础上进行的。DeepFM的改进思想和Deep&Cross一样,都是将wide侧替换为具有自动特征组合能力的结构。

模型结构

image.png
这里与wide&deep不一样的点在于:

  • wide和deep侧共享相同的embedding层;
  • wide侧用FM代替了原来线性的wide侧,对不同特征域的embedding进行两两交叉,加强浅层网络特征交叉的能力。

    NFM

    主要思想

    FM、FFM在进行特征交叉上受到复杂度的限制,很难扩展到三阶及以上,需要一个比原来的二阶项表达能力更强的函数。深度学习理论上可以拟合任意复杂函数,NFM将FM的二阶部分替换为神经网络,所以NFM仍然是Wide&Deep的结构。

    模型结构

    image.png
    对比原始的Wide&Deep可以发现,NFM将embedding的拼接(concatenate)层替换为Bi-Interaction Pooling,该层将特征域对应的embedding向量两两交叉计算element-wise product,将得到的向量集合经过sum pooling后输入全连接层。