推荐系统CTR预估模型之Attentional Factorization Machines(AFM)

 Attentional FM(AFM[1])可以看成是在FM[2]的基础上作了一些改进,与FFM[3]把相同性质的特征引入一个field,同时也为每一个field学习一个独立的隐向量有所不同,它入了一个attention机制。 传统的FM通过为每个特征学习一个embedding 向量,可以计算任何一个交叉特征的权重;然而,在实际场景中,不同的特征组合对最后的结果影响会有很大的不同,举个简单的例子,我们要做一个简单的预测用户收入的模型,feature有3个:(1)occupation={banker, engineer,…} (2) level={junior, senior} and (3) gender={male, female},一般情况下是初级的banker的收入比初级的engineer低, senior的banker的收入可能会比senior的engineer高一些,gender的影响可能会很小(如果不考虑男女的一些比如生理上和其他的差异,完全理想的情况下应该是和性别无关的)。从这个例子可以看出,其实不同特征的交叉对最终结果的影响是有很大的不同的,useful feature的交叉应该给一个更高的权重,less userful feature的交叉则正好相反,FM并不能解决这种问题,AFM则可以更好的解决这个问题,而且可解释性更强。
在这里插入图片描述
 上图是AFM的结构图,FM的一些简单基础可以参考前面DeepFM的介绍 ,假设输入有n个feature,那feature之前的交叉一共有n*(n-1)/2个,传统FM计算的方式如下:
在这里插入图片描述
 xi, xj分别表示第i个和第j个feature,vi和vj表示每个feature对应的隐向量,AFM相当于在FM的基础上为每个交叉的特征学习了一个额外的权重。其计算公式如下:
在这里插入图片描述
 aij是feature i和feature j 交叉的额外的权重,这部分采用一个简单的MLP通过梯度下降的方式优化loss来学习到,具体计算公式如下:
在这里插入图片描述
 其中h, W和b都是模型的权重参数,这样,特征交叉的权重参数a就可以很容易计算出来。AFM的最终计算公式如下:
在这里插入图片描述
 前面的为线性部分,后面的为引入attention的特征交叉部分。

 时间复杂度分析: FM的时间复杂度可以通过简化计算公式最后的复杂度是O(kn),其中k是每个特征向量的长度,n是模型中输入特征的个数;AFM为每个特征交叉引入了一个attention权重,这部分计算公式无法简化,AFM和FFM的时间复杂度相同,都是O(kn*n)。

AFM的tensorflow代码实现可以参考:https://github.com/qiaoguan/deep-ctr-prediction/tree/master/AFM
参考文献:

【1】Jun Xiao et all. “Attentional Factorization Machines: Learning the Weight of Feature Interactions via Attention Networks,” In IJCAi, 2017.

【2】Steffen Rendle et all. “Factorization Machines,” In ICDM, 2010.

【3】Yuchin Juan et all. “Field-aware factorization machines for ctr prediction,” In RecSys, 2016.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值