Field-aware Factorization Machines for CTR Prediction

本文深入解析了Field-aware Factorization Machines(FFM)模型,一种FM的变种,特别适用于个性化标签推荐。FFM通过引入field概念改进了FM,提高了在稀疏数据集上的表现。与Poly2模型相比,FFM在学习特征间交互时更加准确,特别是在处理包含ESPN和Adidas等特征对的样本时。FFM模型不仅支持并行化,速度快,而且在稀疏数据处理上优于多项式模型和FM。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

论文链接:
https://www.csie.ntu.edu.tw/~cjlin/papers/ffm.pdf

主要内容

Field-aware Factorization Machines(FFM)场感知分解机是FM的变种,FM的变体称为成对相互作用张量因子化(PITF)被提出用于个性化标签推荐。在2012年KDD杯中,PITF被称为“因子模型”的概括由Team Opera提出。因为这个术语太笼统,很容易与分解机器混淆,我们称之为“现场感知分解机器”(FFM)PITF和FFM之间的区别在于PITF考虑了三个特殊字段,包括“用户”,“项目”和“标记”,而FFM则更为通用。

VS Poly2&FM

Poly2:
ϕ P o l y 2 ( w , x ) = ∑ j 1 = 1 n ∑ j 2 = j 1 + 1 n w h ( j 1 , j 2 ) x j 1 x j 2 \phi_{\mathrm{Poly} 2}(\boldsymbol{w}, \boldsymbol{x})=\sum_{j_{1}=1}^{n} \sum_{j_{2}=j_{1}+1}^{n} w_{h\left(j_{1}, j_{2}\right)} x_{j_{1}} x_{j_{2}} ϕPoly2(w,x)=j1=1nj2=j1+1nwh(j1,j2)xj1xj2
FM:
ϕ F M ( w , x ) = ∑ j 1 = 1 n ∑ j 2 = j 1 + 1 n ( w j 1 ⋅ w j 2 ) x j 1 x j 2 \phi_{\mathrm{FM}}(\boldsymbol{w}, \boldsymbol{x})=\sum_{j_{1}=1}^{n} \sum_{j_{2}=j_{1}+1}^{n}\left(\boldsymbol{w}_{j_{1}} \cdot \boldsymbol{w}_{j_{2}}\right) x_{j_{1}} x_{j 2} ϕFM(w,x)=j1=1nj2=j1+1n(wj1wj2)xj1xj2
在稀疏数据集上,FMs模型要比poly2模型好一些,比如对于上述例子中,对于pair(ESPN,Adidas)只有一个唯一的负样本,通过poly2模型会学习到一个大的负向权重对于这个pair,然而对于FMs来说,因为它是学习ESPN和Adidas的隐向量表示,所有包含ESPN的样本和所有Adidas的样本都会被分别用来学习这2个隐向量,所以它的预测会更准确一些。

FFM模型

原文挺清楚的,这边排版不好的话推荐看原文

In our example, φFFM(w,x) is wESPN,A · wNike,P + wESPN,G · wMale,P + wNike,G · wMale,A. We see that to learn the latent effect of (ESPN, NIKE),wESPN,A is used because Nike belongs to the field Adver- tiser, and wNike,P is used because ESPN belongs to the field Publisher. Again, to learn the latent effect of (EPSN, Male), wESPN,G is used because Male belongs to the field Gender, and wMale,P is used because ESPN belongs to the field Pub- lisher. Mathematically,
ϕ F F M ( w , x ) = ∑ j 1 = 1 n ∑ j 2 = j 1 + 1 n ( w j 1 , f 2 ⋅ w j 2 , f 1 ) x j 1 x j 2 \phi_{\mathrm{FFM}}(\boldsymbol{w}, \boldsymbol{x})=\sum_{j_{1}=1}^{n} \sum_{j_{2}=j_{1}+1}^{n}\left(\boldsymbol{w}_{j_{1}, f_{2}} \cdot \boldsymbol{w}_{j_{2}, f_{1}}\right) x_{j_{1}} x_{j_{2}} ϕFFM(w,x)=j1=1nj2=j1+1n(wj1,f2wj2,f1)xj1xj2
f2表示j2的field,f1表示j1的field。

具体代码实现见:
https://github.com/DrWelles/CTR_Prediction

结论

FFM还支持并行化处理,所以速度比较快。FFM在稀疏数据的处理上比LM,poly2,FM效果要好很多,它把field的概念融入了FM中,很值得学习。实际在运用的时候要根据具体的问题来调参才会达到比较好的效果。

参考:
https://www.zuanbi8.com/talk/16476.html
https://blog.youkuaiyun.com/john_xyz/article/details/78933253

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值