本文介绍Attentional Factorization Machines:Learning the Weight of Feature Interactions via Attention Networks,简称为AFM,原文Paper链接;
具体的代码实现见Github
摘要
AFM以FM为基础,认为FM通过以相同权重建模所有特征交互的方式存在问题,因为不是所有特征交互都是同样有价值的,相反没有多大用的交互特征反而会引入噪声;AFM(Attentional Factorization Machine) 通过对FM不同的特征交互引入不同重要性来改善FM,重要性通过注意力机制来学习;
一、介绍
首先介绍对于监督学习问题,类别特征作为输入,一般One-hot,所以需要引入特征交互来做出更精确的预测;但是如果直接以product的方式来显示交互,对于稀疏输入数据集,只能观察到一些交叉特征;所以FM被提出了,利用隐变量来做内积实现交互,但是FM也存在问题,也就是所有交互特征的权重是一样的,但是在实际中,应该预测性较低的特征,其对应权重也较低,所以AFM就是基于这个思想;
二、 Factorization Machines
FM计算公式如下:
其中 w ^ i j = v i T v j {
{\hat w}_{ij}} = v_i^T{v_j} w^ij=viTvj,具体介绍可见前文,关于FM的劣势:1、隐藏向量 v i v_i vi在评估所有特征交互时,只要涉及到第 i i i个特征,那么就是共享的;2、 w ^ i j {
{\hat w}_{ij}} w^ij的对应的权重都为1。但是实际上不是所有特征的重要性是一样的;
三 Attentional Factorization Machines
3.1 Model
AFM模型如下图所示:
上图以线性回归为目标,输入层和Embedding层和FM是一致的;
Pair-wise Interaction Layer: 以element-wise product来编码两个交互向量,将 m m m个向量扩展为 m ( m − 1 ) / 2 m(m-1)/2 m(m−1)/2,形式化定义如下: f P I ( ξ ) = { ( v i ⊙ v j ) x i x j } ( i , j ) ∈ R x {f_{PI}}(\xi ) = {\left\{ {({v_i} \odot {v_j}){x_i}{x_j}} \right\}_{(i,j) \in {R_x}}} fPI(ξ)={
(v