排序算法模型(8):使用Attention机制结合FM的CTR预估模型AFM

FM的应用

由于LR在特征工程上的高昂成本,具有隐性特征交叉向量的FM(Factorization Machines)成为挖掘二阶特征组合的CTR预估。FM的核心思路是,为每一个特征设置一个隐向量,根据该向量的值来表示该特征与其他特征之间的关系。对于任意两个特征的组合,只需要求出两个隐向量的内积即可得到其权重值。

FM在CTR预估作业上的潜力被不断挖掘,先是FFM(Field-aware Factorization Machines)提出了“field”概念。原始的FM是每个特征只有一个隐向量 w i \boldsymbol w_i wi,而FFM则认为特征应该被分为不同的field,如果一共被分为 n n n个不同field的话,每个特征就应该具备 n n n个不同的隐向量。当两个特征进行组合时,将参与内积运算的应该是每个特征对应对方field的向量,比如两个特征分别为特征 i i i j j j,则它们所处的field分别记作 f i f_i fi f j f_j fj。此时交叉特征的权重为 w i , f j w j , f i \boldsymbol{w}_{i,f_j}\boldsymbol{w}_{j,f_i} wi,fjwj,fi

在Wide&Deep取得成功后,FM也被集成进DNN模型。DeepFM就是使用FM对特征进行embedding,之后再将embedding结果与DNN共享,使DNN学习更为高阶的特征组合特性。

Attention机制

Attention机制的核心就是为不同特征的组合分配权重系数。在NLP和CV的任务中,attention机制都取得了巨大的成功。在推荐系统中,attention机制也被不断尝试与DNN进行结合,比如DIN(Deep Interest Network)就是通过注意力机制对用户的历史兴趣进行有侧重的利用与挖掘。由于认为FM对于各个特征组合的结果进行等权重加和的设定较为朴素,AFM为每个特征组合设定了一个注意力得分,相当于是“权重的权重”。

AFM

AFM(Attentional Factorization Machines)是2017年ZJU和NUS合作发表在IJCAI上面的论文,相比于其他FM相关的模型,AFM提供了基于注意力机制的池化层,通过注意力得分为每组特征组合分配权重,从而突出对CTR影响最大的特征组合情况。

模型

Figure 1: The neural network architecture of our proposed Attentional Factorization Machine model.
由上图可知,AFM的模型内部存在两个比较核心的部分,一个是embedding后的Pair-wise Interaction Layer,另一个是用来训练注意力得分的Attention Network。

Pair-wise Interaction Layer

AFM给出了一种特征间的新的pair-wise interaction。如果将特征向量 x x x中的非零特征组成的集合记作 X \mathcal{X} X,将embedding layer所有输出记作 ε = { v i x i } i ∈ X \varepsilon=\{\boldsymbol v_ix_i\}_{i\in\mathcal{X}} ε={vixi}iX,则pair-wise interaction layer的输出则可以表示为向量集合: f P I ( ε ) = { ( v i ⊙ v j ) x i x j } ( i , j ) ∈ R x , f_{PI}(\varepsilon)=\{(\boldsymbol{v}_i\odot \boldsymbol{v}_j)x_ix_j\}_{(i,j)\in\mathcal{R}_x}, fPI(ε)={(vivj)xixj}(i,j)Rx,其中 ⊙ \odot 表示两个向量的element-wise product, R x = { ( i , j ) } i ∈ X , j ∈ X , j > i \mathcal{R}_x=\{(i,j)\}_{i\in\mathcal{X},j\in\mathcal{X},j>i} Rx={(i,j)}iX,jX,j>i,即所有非零特征的组合。通过定义pair-wise interaction layer,FM可以使用神经网络的结构进行表示。首先将 f P I ( ε ) f_{PI}(\varepsilon) fPI(ε)送入sum pooling,之后通过FC layer将结果映射为预测分数: y ^ = p T ∑ ( i , j ) ∈ R x ( v i ⊙ v j ) x i x j + b , \hat{y}=\boldsymbol{p}^T\sum_{(i,j)\in\mathcal{R}_x}(\boldsymbol{v}_i\odot \boldsymbol{v}_j)x_ix_j+b, y^=pT(i,j)Rx(vivj)xixj+b,其中 p ∈ R k \boldsymbol{p}\in\mathbb{R}^k pRk b ∈ R b\in\mathbb{R} bR分别表示prediction layer的权重与偏差。当 p \boldsymbol p p 1 \boldsymbol 1 1并且 b b b取0的时候,上式即为一般形式的FM。

Attention-based Pooling Layer

Attention机制的核心思想是,FM中不同的特征组合在统一表示时也应当对结果产生不同贡献。不同于FM的直接求和,AFM在特征交叉部分引入了attention实现了权重求和: f A t t ( f P I ( ε ) ) = ∑ ( i , j ) ∈ R x a i j ( v i ⊙ v j ) x i x j , f_{Att}(f_{PI}(\varepsilon))=\sum_{(i,j)\in\mathcal{R}_x}a_{ij}(\boldsymbol{v}_i\odot \boldsymbol{v}_j)x_ix_j, fAtt(fPI(ε))=(i,j)Rxaij(vivj)xixj,其中 a i j a_{ij} aij是特征组合 w ^ i j \hat{w}_{ij} w^ij的注意力得分,即 w ^ i j \hat{w}_{ij} w^ij对于目标预测的重要性。通常,要计算 a i j a_{ij} aij,最先想到的方式可能是直接通过最小化预测损失来学习 a i j a_{ij} aij的值,这在工程上也确实是可行的。但是这样做的问题在于,相比于LR,FM的一大优势是特征组合的权重学习不要求该组合在训练集上共现,而这一做法对于没有共现的特征组合是无法学习到注意力得分的。为了解决这个问题,AFM的作者设计了一个multi-layer perceptron(MLP),即attention network,将交叉特征的向量作为输入。定义attention network为: a i j ′ = h T R e L U ( W ( v i ⊙ v j ) x i x j + b ) , a'_{ij}=\boldsymbol{h}^TReLU(\boldsymbol{W}(\boldsymbol{v}_i\odot \boldsymbol{v}_j)x_ix_j+\boldsymbol b), aij=hTReLU(W(vivj)xixj+b), a i j = e x p ( a i j ′ ) ∑ ( i , j ) ∈ R x e x p ( a i j ′ ) , a_{ij}=\frac{exp(a'_{ij})}{\sum_{(i,j)\in\mathcal{R}_x}exp(a'_{ij})}, aij=(i,j)Rxexp(aij)exp(aij),其中 W ∈ R t × k , b ∈ R t , h ∈ R t \boldsymbol{W}\in\mathbb{R}^{t\times k}, \boldsymbol{b}\in\mathbb{R}^t, \boldsymbol{h}\in\mathbb{R}^t WRt×k,bRt,hRt都是模型参数, t t t是attention factor,表示attention network的隐层大小。注意力得分最终通过softmax函数进行归一化。基于AFM作者的实践,ReLU作为激活函数表现很好。

Attention-based pooling layer的输出是一个将所有特征组合通过重要性压缩得到的 k k k维向量。AFM模型的完整模型公式可以表示为: y ^ A F M = ( x ) = w 0 + ∑ i = 1 n w i x i + p T ∑ i = 1 n ∑ j = i + 1 n a i j ( v i ⊙ v j ) x i x j , \hat{y}_{AFM}=(x)=w_0+\sum^n_{i=1}w_ix_i+\boldsymbol{p}^T\sum^n_{i=1}\sum^n_{j=i+1}a_{ij}(\boldsymbol{v}_i\odot \boldsymbol{v}_j)x_ix_j, y^AFM=(x)=w0+i=1nwixi+pTi=1nj=i+1naij(vivj)xixj,其中 a i j a_{ij} aij已经在前面定义,模型包含参数为 Θ = { w 0 , { w i } i = 1 n , { v i } i = 1 n , p , W , b , h } \Theta=\{w_0, \{w_i\}^n_{i=1},\{\boldsymbol{v}_i\}^n_{i=1}, \boldsymbol{p}, \boldsymbol{W}, \boldsymbol{b}, \boldsymbol{h}\} Θ={w0,{wi}i=1n,{vi}i=1n,p,W,b,h}

学习方式

AFM直接从数据建模方向上对FM进行了提升,可以被直接应用于多种预测任务,如回归,分类,以及排序。不同的任务类型需要不同的目标函数。对于预测值为实数的回归任务,常见的目标函数是均方误差: L r = ∑ x ∈ τ ( y ^ A F M ( x ) − y ( x ) ) 2 , L_r=\sum_{x\in\tau}(\hat{y}_{AFM}(\boldsymbol{x})-y(\boldsymbol{x}))^2, Lr=xτ(y^AFM(x)y(x))2,其中 τ \tau τ表示训练集,对于二分类问题或者隐式反馈的推荐任务,可以最小化log loss。通过TF等常见框架的AutoDiff功能即可实现 y ^ A F M ( x ) \hat{y}_{AFM}(\boldsymbol{x}) y^AFM(x)部分的SGD,从而完成学习。

防止过拟合

AFM在pair-wise interaction layer部署了dropout,在attention network加入了 L 2 L_2 L2正则,此时attention network部分的目标函数变为: L r = ∑ x ∈ τ ( y ^ A F M ( x ) − y ( x ) ) 2 + λ ∥ W ∥ 2 , L_r=\sum_{x\in\tau}(\hat{y}_{AFM}(\boldsymbol{x})-y(\boldsymbol{x}))^2+\lambda\left\|\boldsymbol W\right\|^2, Lr=xτ(y^AFM(x)y(x))2+λW2,其中 λ \lambda λ是正则项的权重。AFM并没有在attention network部分使用dropout,其作者解释为在pair-wise interaction layer以及attention network都部署dropout后会引入一些稳定性问题,同时模型表现会受到影响。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值