大家好,又见面了,我是你们的朋友全栈君。
模型用途
FM和FFM,分解机,是近几年出的新模型,主要应用于广告点击率预估(CTR),在特征稀疏的情况下,尤其表现出优秀的性能和效果,也数次在kaggle上的数据挖掘比赛中拿到较好的名次。
FM原理
特征编码时常用的one-hot编码,会导致特征非常稀疏(很多0值)。常用的特征组合方法是多项式模型,模型表达式如下:
其中
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来调节模型的泛化能力。
FM模型则表示为:
模型参数减少为kn个。训练方法还是采用SGD,在预测时,可以通过下式将计算复杂度从
O(kn2)O(kn2)
降低为
O(kn)O(kn)
:
FFM 原理
FFM模型是在FM特征组合的基础上给特征加上了field属性,于是模型表示为
其中
fifi
表示特征i所属的field,需要训练的
VV
为
n×k×fn×k×f
,
ff
为field的个数,具体案例见
ppt
由于FFM加入field,使得训练和预测过程参数计算不能简化,复杂度为
O(kn2)O(kn2)
参考文献
转自:https://blog.csdn.net/Leo00000001/article/details/71330927?locationNum=13&fps=1
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/143838.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...