FM与深度学习融合的模型,都是在多层神经网络的基础上增加了针对性的特征交叉操作。
FNN
主要思想
结构上与DeepCrossing 类似,都是稀疏特征经过embedding,再进行全连接,FNN的改进在于embedding层的初始化,使用FM预训练的特征隐向量来初始化输入层与embedding层之间的参数。
模型结构
这二者主要区别主要有:
- FNN在embedding层使用FM训练好的隐向量作为初始化embedding层的参数;
- DeepCrossing在全连接层使用了残差网络的结构
DeepFM
主要思想
将FM于Wide&Deep融合,从Wide&Deep模型出现后,很多改进都是在它的基础上进行的。DeepFM的改进思想和Deep&Cross一样,都是将wide侧替换为具有自动特征组合能力的结构。
模型结构
这里与wide&deep不一样的点在于:
- wide和deep侧共享相同的embedding层;
- wide侧用FM代替了原来线性的wide侧,对不同特征域的embedding进行两两交叉,加强浅层网络特征交叉的能力。
NFM
主要思想
FM、FFM在进行特征交叉上受到复杂度的限制,很难扩展到三阶及以上,需要一个比原来的二阶项表达能力更强的函数。深度学习理论上可以拟合任意复杂函数,NFM将FM的二阶部分替换为神经网络,所以NFM仍然是Wide&Deep的结构。模型结构
对比原始的Wide&Deep可以发现,NFM将embedding的拼接(concatenate)层替换为Bi-Interaction Pooling,该层将特征域对应的embedding向量两两交叉计算element-wise product,将得到的向量集合经过sum pooling后输入全连接层。