因子分解机

FM(Factorization Machine)

模型描述

在点击率预估等任务中,10维的类别型特征做onehot编码后变成1000维特征,绝大多数特征取值为0,即特征稀疏。然后,某些稀疏特征经过关联得到的关联特征,例如“化妆品”类商品和“女”性,与label之间的相关性会提高。因此对于一个具有n个特征的样本,模型表示

y^=w0+i=0nwixi+i=1n1j=i+1nvijxixj

但是 xi xj 本来就很多为0, xixj 就更多为0,而有 n(n1)2 vij 要训练,因此训练样本的不足很容易导致 vij 不准确。在 W=VVT ,其中 WRn×n VRn×K 的启发下,模型变成
y^=w0+i=0nwixi+i=1n1j=i+1n<vi,vj>xixj

其中, xiR ,代表样本 x i维特征取值; viR1×K,i{1,2,,n} ,代表特征 i 对应的隐向量,即模型可表示为
y^=w0+i=0nwixi+i=1n1j=i+1n(vixi)(vjxj)T

模型的参数共有 1+n+n×K 个,而所有第 {j|xixj0} 维特征都可以用来训练 vi ,很大程度上避免了数据稀疏性的影响。

模型求解

对于回归问题,优化目标是MSE(Mean Square Error)时,对N个训练样本,优化问题描述为

min J(θ)=1Ni=1N(yiy^i)2

由于点击率预估的问题中,样本数量很大,因此采用随机梯度下降方法。优化目标变成在第 i 次迭代中,让当前样本的J(θ)最小
min J(θ)=(yiy^i)2

迭代方程
θi=θi1αJ(θ)θ

其中
J(θ)θ=2(yiy^i)y^iθ


y^θ=1xixinj=1vjkxjvikx2iθ=w0θ=wiθ=vik

其中 i 代表第i维特征, j 代表第j维特征, vik 代表第 i 维特征的隐向量vi的第 k 维取值。

虽然直观求解

y^vi=i=1n1j=i+1nxixjvTj

复杂度为 O(Kn2) ,但是
i=1n1j=i+1n(vixi)(vjxj)T=12(i=1nvixi)(i=1nvixi)T12i=1nx2ivivTi

因此
y^vi=xi(j=1nvjxj)TvTix2i

其中计算 nj=1vjxj 的复杂度为 O(Kn) ;之后计算每个 y^vi,i{1,2,,n} 的复杂度是 O(1) wi w0 也是,即计算每个参数的梯度的复杂度是 O(1) ;得到梯度后更新每个参数的复杂度是 O(1) ;模型参数一共 Kn+n+1 个,因此FM在训练时的复杂度为 O(Kn) 。综上,FM可以在线性时间内训练和预测,是非常高效的模型。

FFM(Field aware factorization machine)

对于一个具有m个特征的样本,经过one-hot编码后,特征维数变为n,对 xi,i{1,2,,n} ,隐向量 viRm×K ,最初设想中

i=1n1j=i+1nvijxixji=1n1j=i+1n<vi,mj,vj,mi>xixj

其中 mj 代表编码后的第 j 维特征在编码前属于的特征维数(所属field)。FFM的二次参数有nmK个,远多于FM模型的nK个。由于隐向量与field相关,FFM二次项不能化简,预测复杂度是O(Kn2)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值