注意力FM模型AFM
Posted zhiyong_will
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了注意力FM模型AFM相关的知识,希望对你有一定的参考价值。
1. 概述
在CTR预估任务中,对模型特征的探索是一个重要的分支方向,尤其是特征的交叉,从早起的线性模型Logistic Regression开始,研究者在其中加入了人工的交叉特征,对最终的预估效果起到了正向的效果,但是人工的方式毕竟需要大量的人力,能否自动挖掘出特征的交叉成了研究的重要方向,随着Factorization Machines[1]的提出,模型能够自动处理二阶的特征交叉,极大减轻了人工交叉的工作量。
但是在FM中,每一个交叉特征的权重是一致的,但是在实际的工作中,不同的交叉特征应该具备不同的权重,尤其是较少使用到的权重,对于统一的权重会影响到模型的最终效果。AFM(Attentional Factorization Machines)[2]模型在FM模型的基础上,引入了Attention机制,通过Attention的网络对FM模型中的交叉特征赋予不同的权重。
2. 算法原理
2.1. FM模型中的交叉特征
FM模型中包含了两个部分,一部分是线性部分,另一部分是二阶的交叉部分,其表达式如下所示:
y
^
F
M
(
x
)
=
w
0
+
∑
i
=
1
n
w
i
x
i
⏟
+
∑
i
=
1
n
∑
j
=
i
+
1
n
w
^
i
j
x
i
x
j
⏟
linear
regression
pair-wise
feature omteractions
\\beginmatrix \\haty_FM\\left ( \\mathbfx \\right )= & \\underbracew_0+\\sum_i=1^nw_ix_i & + & \\underbrace\\sum_i=1^n\\sum_j=i+1^n\\hatw_ijx_ix_j \\\\ & \\textrmlinear\\;regression & & \\textrmpair-wise\\;feature omteractions \\\\ \\endmatrix
y^FM(x)=
w0+i=1∑nwixilinearregression+
i=1∑nj=i+1∑nw^ijxixjpair-wisefeature omteractions
其中,
w
^
i
j
\\hatw_ij
w^ij表示的是交叉特征
x
i
x
j
x_ix_j
xixj的权重,在FM算法中,为了方便计算,为每一个特征赋予了一个
k
k
k维的向量:
v
i
∈
R
k
\\mathbfv_i\\in \\mathbbR^k
vi∈Rk,则
w
^
i
j
\\hatw_ij
w^ij可以表示为:
w ^ i j = v i T v j \\hatw_ij=\\mathbfv_i^T\\mathbfv_j w^ij=viTvj
对于具体为甚么上述的这样的计算方式可以方便计算,可以参见参考[3]。既然上面说 w ^ i j \\hatw_ij w^ij表示的是交叉特征 x i x j x_ix_j xixj的权重,那么为什么还说在FM模型中的每个交叉特征的权重是一致的,这个怎么理解?如果将FM模型放入到神经网络的框架下,FM模型的结构可以由下图表示:
对于每一个特征都赋予一个 k k k维的向量,如上图中的第二个特征 x 2 x_2 x2的 k k k维向量为 v 2 \\mathbfv_2 v2,同理,第四个特征 x 4 x_4 x4的 k k k维向量为 v 4 \\mathbfv_4 v4,这里类似于对原始特征的Embedding,最终 x 2 x_2 x2和 x 4 x_4 x4的交叉特征可以表示为: ( v 2 ⊙ v 4 ) x 2 x 4 \\left ( \\mathbfv_2\\odot \\mathbfv_4 \\right )x_2x_4 (v2⊙v4)x2x4,其中, ⊙ \\odot ⊙表示的是元素的乘积。最终,将所有的交叉特征相加便得到了交叉部分 y 2 y_2 y2:
y 2 = p T ∑ ( i , j ) ∈ R x ( v i ⊙ v i ) x i x j + b y_2= \\mathbfp^T\\sum_\\left ( i,j \\right )\\in \\mathfrakR_x\\left ( \\mathbfv_i\\odot \\mathbfv_i \\right )x_ix_j+b y2=pT(i,j)∈Rx∑(vi⊙vi)xixj+b
其中, R x = ( i , j ) i ∈ χ , j ∈ χ , j > i \\mathfrakR_x=\\left\\\\left ( i,j \\right ) \\right\\_i\\in \\chi ,j\\in \\chi,j>i Rx=(i,j)i∈χ,j∈χ,j>i, p ∈ R k \\mathbfp\\in \\mathbbR^k p∈Rk, b ∈ R b\\in \\mathbbR b∈R,在上述的FM中, p = 1 \\mathbfp=\\mathbf1 p=1, b = 0 b=0 b=0。在相加的过程中,对于每一部分的交叉特征的权重都是一致的,这就会导致上面说的统一的权重会影响到模型的最终效果。我们希望对于每一部分的交叉特征能够有不同的权重,即:
y 2 = p T ∑ ( i , j ) ∈ R x a i , j ( v i ⊙ v i ) x i x j + b y_2=\\mathbfp^T\\sum_\\left ( i,j \\right )\\in \\mathfrakR_xa_i,j\\left ( \\mathbfv_i\\odot \\mathbfv_i \\right )x_ix_j+b y2=以上是关于注意力FM模型AFM的主要内容,如果未能解决你的问题,请参考以下文章
5AFM(Attention+FM)-----Attentional Factorization Machines:Learning the Weight of Feature Interactio