NFM
无论是FM还是FFM,归根结底是一个二阶特征交叉的模型。受组合爆炸问题的困扰,FM几乎不可能扩展到三阶以上,这就不可避免地限制了FM模型的表达能力。那么,有没有可能利用深度网络更强的表达能力改进FM模型呢?
在数学形式上,NFM模型的主要思路是用一个表达能力更强的函数替代原FM中的二阶隐向量内积的部分(如下图所示)。
如果用传统机器学习的思路来设计NFM模型中的函数f(x),那么势必会通过一系列的数学推导构造一个表达能力更强的函数。但进入深度学习时代后,由于深度学习网络理论上有拟合任何复杂函数的能力,f(x)的构造工作可以交由某个深度学习网络来完成,并通过梯度反向传播来学习。在NFM模型中,用以替代FM二阶部分的神经网络结构如图所示。
NFM网络架构的特点非常明显,就是在Embedding层和多层神经网络之间加入特征交叉池化层。假设Vx是所有特征域的Embedding集合,那么特征交叉池化层的具体操作如下图所示。
其中,中间的符号代表两个向量的元素积操作。
在进行两两Embedding向量的元素积操作之后,对交叉特征向量取和,得到池化层的输出向量。再把该向量输入上层的多层全连接神经网络,进行进一步的交叉。
上图所示的NFM架构省略了其一阶部分。如果把NFM的一阶部分视为一个线性模型,那么NFM的架构也可以视为Wide&Deep模型的进化。相比原始的Wide&Deep模型,NFM模型对其Deep部分加入了特征交叉池化层,加强了特征交叉。
基于FM的深度学习模型的优点和局限性
对于FNN、DeepFM、NFM三个结合FM思路的深度学习模型。它们的特点都是在经典多层神经网络的基础上加入有针对性的特征交叉操作,让模型具备更强的非线性表达能力。
沿着特征工程自动化的思路,深度学习模型从PNN一路走来,经过了Wide&Deep、Deep&Cross、FNN、DeepFM、NFM等模型,进行了大量的、基于不同特征互操作思路的尝试。但特征工程的思路走到这里几乎已经穷尽了可能的尝试,模型进一步提升的空间非常小,这也是这类模型的局限性所在。
从这以后,越来越多的深度学习推荐模型开始探索更多“结构”上的尝试,诸如注意力机制、序列模型、强化学习等在其他领域大放异彩的模型结构也逐渐进入推荐系统领域,并且在推荐模型的效果提升上成果显著。