论文笔记《Neural Factorization Machines for Sparse Predictive Analytics》

原文链接
本文发表于信息检索领域顶级会议 SIGIR 2017
代码链接

摘要

在当今互联网工业界中,有许多预测任务需要用到大量的类别特征。要想将这些类别特征送入到模型中,就必须得将其onehot。但这样一来,就会产生大量的稀疏特征,要想从这些稀疏特征中充分学习到有用的信息,必须要考虑特征之间的相互作用。
FM算法是一种常用的解决方案,因为它充分考虑了二阶特征之间的相互作用。然而FM有一个缺点,就是它仅仅以线性的方式组合了特征,并不能考虑到特征之间的非线性关系。
本文提出了一个称为Neural Factorization Machine (NFM)的模型,来解决上述问题。NFM充分结合了FM提取的二阶线性特征与神经网络提取的高阶非线性特征。总得来说,FM可以被看作一个没有隐含层的NFM,故NFM肯定比FM更具表现力。实验证明,NFM效果不错。

模型

1.FM
假设我们有一个特征向量 x R n ,FM算法是通过对每一对特征之间做相乘来提取二阶线性特征,公式如下:
FM公式
其中 w 0 为全局的 b i a s w i 则是控制每一个特征 x i 对预测结果影响的权重。 w i j 为二次项的权重。
但这样会造成一个问题,由上式可知,二次项的个数为 n ( n 1 ) 2 个,并且 x i x j 都是极度稀疏的向量,要有大量能满足 x i x j 同时不为零的样本才能够对上式进行训练(因为一旦有一个为0则相乘为0),这对数据的要求过于苛刻。又由于所有的 w i j 可以组成一个对称矩阵 W ,而我们可以将矩阵 W 分解为 W = V T V ,故我们可以通过下式来求一个近似解:
这里写图片描述
这里写图片描述
FM近似公式


2.NFM
假设我们有特征向量输入 x R n 其中 x i = 0 代表该样本没有第 i 个特征。NFM的目标函数可以由下式表示:
NFM
其中第1项与第2项是与FM相似的线性回归部分,第3项是NFM的核心部分,它由一个如下图所示的网络结构组成:
这里写图片描述
我们来逐层解释上图:
Embedding Layer
该层是一个全连接层,将稀疏的向量给压缩表示。
假设我们有 v i R k 为第 i 个特征的embedding向量,那么在经过该层之后,我们得到的输出为 { x 1 v 1 , . . . , x n v n } ,注意,该层本质上是一个全连接层,不是简单的embedding lookup.
Bi-Interaction Layer
上层得到的输出是一个特征向量的embedding的集合,本层本质上是做一个pooling的操作,让这个embedding向量集合变为一个向量,公式如下:
这里写图片描述
其中 代表两个向量对应的元素相乘。显然,该层的输出向量为 k 维,本层采用的pooling方式与传统的max pool和average pool一样都是线性复杂度的,上式可以变换为:
公式
上式中用 v 2 来表示 v v ,其实本层本质上就是一个fm算法。
hidden layer
就是普通的全连接层,没有什么特别的。
Prediction Layer
将hidden layer的输出过一个n*1的全连接层,得到输出

猜你喜欢

转载自blog.csdn.net/u014475479/article/details/81630959