Factorization Machine

本文探讨了在线性回归等模型中处理稀疏数据的方法,并引入了Field-aware Factorization Machine (FFM) 来解决高维稀疏数据带来的挑战。通过改进交叉项参数的计算方式,FFM能有效利用有限的非零特征,提高模型预测精度。

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

对过于稀疏的数据进行优化,以线性回归为例:

原始模型

yhat=w0+ni=1wixi (1)
只能对存在的线性关系进行讨论
在实际问题中,以推荐系统为例,很多特征只有同时出现时才有价值,如“USA”与“Thanksgiving”、“China”与“Chinese New Year”这样的关联特征。
作为改进需要加入交叉项,加入度为2的交叉项之后公式更新为
yhat=w0+ni=1wixi+n1i=1nj=i+1wijxixj (2)
当度增加时,可以向上扩展,使用类似三个四个或是更多数据之间的interaction
这种做法有一个缺陷在于,wij的更新同时依赖于xixj两项数据,当其中一项为0时,会导致乘积为0,在进行梯度下降会导致无法对参数wij进行更新,在稀疏数据中这种现象更加普遍

改进

使用两个向量vivj的内积作为新的wij,即xixj之间interaction的大小
当对其中的某一个参数,如vj进行优化时,会遍历所有的(i,j)对,只要xixj同时不为0就会对参数的更新产生作用,而所有的符合要求的(i,j)对会共同对参数的更新产生作用,因为此时参数只固定了一个下标,另一个下标可为任意值,所有的影响进行叠加。
对于之前的wij而言,没有自由度,其更新由唯一的(i,j)对决定,但是在稀疏数据下,往往都为0,无法更新参数
同时若记vivj维度为k,则将n2个交叉项参数减少到kn
(1)式更新为
yhat=w0+ni=1wixi+n1i=1nj=i+1<vi,vj>xixj(3)

形式化

仔细观察会发现,每一个vi其实对应一个数据集中的一个特征,那么得到一个新的矩阵V=(v1;v2;v3...vn),进一步的,VVT=W

FFM

更进一步,提出Filed-aware Factorization Machine
对于类别特征featurei,从中one-hot编码得到的每一个特征都记为一个field, 如特征Day有三种取值
Day=26/11/15”、“Day=1/7/14”、“Day=19/2/15”,编码之后使用三个二值特征表示,但是计入同一个field,那么假设one-hot编码之后一条记录的长度是n维,共有f个field,进一步将交叉项的参数减少为fn
对于featurek,对于每一个fieldj都会计算一个向量vkj,在FM模型中,每一维特征的隐向量只有一个。FM可以看作FFM的特例,是把所有特征都归属到一个field时的FFM模型。
fj 是第 j 个特征所属的field,则(3)更新为
yhat=w0+ni=1wixi+n1i=1nj=i+1<vi,fj,vj,fi>xixj

打完收工

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值