今天分享的是一个Attentional Factorization Machine模型,是17年FM家族的成员。它和NFM是同一个作者,其在FM上的改进,最大的特点就是使用一个attention network来学习不同组合特征**(二阶交叉)**的重要性。下面我们一起来看下。
1、Introduction
首先介绍对于监督学习问题,类别特征作为输入,一般采用One-hot编码,所以需要引入特征交互来做出更精确的预测;但是如果直接以product的方式来显示交互,对于稀疏输入数据集,只能观察到一些交叉特征;所以提出FM,利用隐变量来做内积实现交互,但是FM也存在问题,也就是所有交互特征的权重是一样的,但是在实际中,对于预测性较低的特征,其对应权重也较低,所以AFM就是基于这个思想来做交叉特征的权重。
2、FM
FM全称Factorization Machine(详情可见之前的文章FM),通过隐向量内积来对每一对特征组合进行建模。
提出FM仍存在有下面两个问题:
-
一个特征针对其他不同特征都使用同一个隐向量。所以有了FFM用来解决这个问题。
-
所有组合特征的权重w都有着相同的权重1。AFM就是用来解决这个问题的。
在一次预测中,并不是所有的特征都有用的,但是FM对于所有的组合特征都使用相同的权重。AFM就是从这个角度进行优化的,针对不同的特征组合使用不同的权重。这也使得模型的可解释性更强,方便后续针对重要的特征组合进行深入研究。
虽然多层神经网络已经被证明可以有效的学习高阶特征组合。但是DNN的缺点也很明显(参数多,可解释性较弱,这里AFM未采用,智者见智吧)