前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >FM和FFM原理

FM和FFM原理

作者头像
全栈程序员站长
发布2022-08-31 10:05:05
6210
发布2022-08-31 10:05:05
举报

大家好,又见面了,我是你们的朋友全栈君。

模型用途

FM和FFM,分解机,是近几年出的新模型,主要应用于广告点击率预估(CTR),在特征稀疏的情况下,尤其表现出优秀的性能和效果,也数次在kaggle上的数据挖掘比赛中拿到较好的名次。

FM原理

特征编码时常用的one-hot编码,会导致特征非常稀疏(很多0值)。常用的特征组合方法是多项式模型,模型表达式如下:

y(x)=w0+∑i=1nwixi+∑i=1n∑j=i+1nwijxixjy(x)=w0+∑i=1nwixi+∑i=1n∑j=i+1nwijxixj

其中 xixi 表示第i列特征, nn 表示特征数, w0,wi,wijw0,wi,wij 为模型参数。模型参数为 n2n2 个。在对模型进行训练时,采用SGD(随即梯度下降),由于特征较稀疏,大部分 wijwij 的梯度值为0,那么参数 wijwij 的值就不准确,会影响模型的效果。 FM模型,将参数 wijwij 对应的矩阵 WW ,利用矩阵分解表示为 W=VTVW=VTV , 矩阵 VV ∈Rk×n∈Rk×n , 可以通过调节k来调节模型的泛化能力。

k影响
k影响

FM模型则表示为:

y(x)=w0+∑i=1nwixi+∑i=1n∑j=i+1n<vi,vj>xixjy(x)=w0+∑i=1nwixi+∑i=1n∑j=i+1n<vi,vj>xixj

模型参数减少为kn个。训练方法还是采用SGD,在预测时,可以通过下式将计算复杂度从 O(kn2)O(kn2) 降低为 O(kn)O(kn) :

∑i=1n∑j=i+1n<vi,vj>xixj=12∑f=1k((∑i=1nvi,fxi)2−∑i=1n(vi,fxi)2)∑i=1n∑j=i+1n<vi,vj>xixj=12∑f=1k((∑i=1nvi,fxi)2−∑i=1n(vi,fxi)2)

FFM 原理

FFM模型是在FM特征组合的基础上给特征加上了field属性,于是模型表示为

y(x)=w0+∑i=1nwixi+∑i=1n∑j=i+1n<vi,fj,vj,fi>xixjy(x)=w0+∑i=1nwixi+∑i=1n∑j=i+1n<vi,fj,vj,fi>xixj

其中 fifi 表示特征i所属的field,需要训练的 VV 为 n×k×fn×k×f , ff 为field的个数,具体案例见 ppt 由于FFM加入field,使得训练和预测过程参数计算不能简化,复杂度为 O(kn2)O(kn2)

参考文献
  1. http://tech.meituan.com/deep-understanding-of-ffm-principles-and-practices.html
  2. ffm源码git

转自:https://blog.csdn.net/Leo00000001/article/details/71330927?locationNum=13&fps=1

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/143838.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年5月2,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 模型用途
  • FM原理
  • FFM 原理
  • 参考文献
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档