推荐系统FM(因子分解机)详细推导

本文介绍了因子分解机(FM)的基本概念和梯度下降求解过程,包括模型的线性表达式与交叉项,以及如何通过辅助向量解决数据稀疏性问题。通过SGD进行参数更新,FM能在线性时间内完成训练和预测,是一种高效模型。

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

1. 基本概念

常见的线性表达式如下:

y = ω 0 + ∑ i = 1 n ω i x i y=\omega_0 + \sum^{n}_{i=1}\omega_ix_i y=ω0+i=1nωixi

其中 ω 0 \omega_0 ω0为初始权值,或者理解为偏置项, ω i \omega_i ωi为每个特征 x i x_i xi对应的权值。可以看到,这种线性表达式只描述了每个特征与输出的关系。FM的表达式如下,可观察到,只是在线性表达式后面加入了新的交叉项特征及对应的权值。

y = ω 0 + ∑ i = 1 n ω i x i + ∑ i = 1 n − 1 ∑ j = i + 1 n ω i j x i x j y=\omega_0 + \sum^{n}_{i=1}\omega_ix_i+\sum^{n-1}_{i=1}\sum^n_{j=i+1}\omega_{ij}x_ix_j y=ω0+i=1nωixi+i=1n1j=i+1nωijxixj

上面公式中, n n n代表特征数量, x i x_i xi是第i个特征得值, ω \omega ω是模型权重,从公式来看,模型得前半部分就是普通得LR线性组合,后半部分是交叉项:特征得组合。单单从模型的能力上讲,FM的表达能力强于LR,当交叉项参数全部为0得时候退化为普通得LR模型。从公式中,我们可以看出组合特征得参数一共有 1 2 n ( n − 1 ) \frac{1}{2n(n-1)} 2n(n1)1个,任意两个参数都是独立的。然而在数据稀疏性普遍存在的实际场景中,二次项参数的训练是很困难的。原因是:每个参数 ω i j \omega_{ij} ωij的训练都需要大量 x i x_i xi x j x_j xj都非零的样本;由于样本数据本来就比较稀疏,满足 x i x_i xi x j x_j xj都非零的样本将会非常的少。训练样本不足,很容易导致参数 w i j w_{ij} wij不准确,最终将严重影响模型的性能。

矩阵分解提供了一种解决数据稀疏性的思路。在基于模型的协同过滤中,一个评分矩阵可以分解为user矩阵和item矩阵,每个user 和item都可以采用一个隐向量表示。这里,采用的方法是:给每个特征分量 x i x_i xi,引入一个辅助向量 v i = ( v 1 , v 2 , . . . . . . . v k ) v_i=(v_1,v_2,.......v_k) vi=(v1,v2,.......vk),然后利用 v i ∗ v j v_i*v_j vivj对交叉项的系数 w i j w_{ij} wij进行估计(为什么可以这样估计还存在疑问),即 ω i j = < v i , v j > = ∑ f = 1 k v i , f ⋅ v j , f \omega_{ij}=\left<v_i,v_j\right>=\sum^k_{f=1}v_{i,f} \cdot v_{j,f} ωij=vi,vj=f=1kvi,fvj,f

在这种情况下,我们只需要求出特征分量 x i x_i xi的辅助向量 v i = ( v 1 , v 2 , . . . . . . . v k ) vi=(v_1,v_2,.......v_k) vi=(v

<think>好的,用户想要了解FM算法,也就是因子分解机,我得先回忆一下它的基本概念和应用场景。FM算法在推荐系统和CTR预估中很常,对吧?用户可能已经听说过协同过滤或者逻辑回归这些传统方法,现在想了解FM的优势在哪里。 首先,我需要解释FM解决的问题。传统的线性模型,比如逻辑回归,只能学习各个特征的权重,无法捕捉特征之间的交互作用。而现实中的数据,特征之间的组合往往很重要,比如用户年龄和商品类别的组合。这时候,二阶特征组合就变得必要了,但直接用线性模型处理会导致参数过多,特别是在特征维度高的情况下,计算量和过拟合问题都会很严重。 接下来,我得说明FM是怎么解决这个问题的。FM通过引入隐向量的概念,将每个特征映射到一个低维的向量,然后用这些向量的内积来表示特征交互的权重。这样参数数量就从O()降到了O(kn),k是隐向量的维度,通常远小于n。这样不仅减少了计算量,还能在数据稀疏的情况下更好地泛化,因为隐向量可以学习到特征之间的潜在关系。 然后需要比较一下FM和其他方法的区别。比如,和矩阵分解的关系,FM其实可以看作是矩阵分解的扩展,加入了更多特征。还有和SVM的对比,尤其是多项式核SVM,但FM的参数更少,计算效率更高,尤其是在处理稀疏数据时。 应用场景方面,推荐系统FM的主要战场,用户可能对CTR预估比较熟悉,这里可以举例子说明,比如用户点击率预测中,用户的特征和物品的特征组合起来,FM能有效捕捉这些交互。另外,在广告推荐或者电商推荐中,用户的历史行为和物品属性结合,FM都能发挥优势。 可能用户还会关心FM的数学公式,这里需要简单描述一下。FM的模型方程包括线性部分和特征交互部分。线性部分就是各个特征的权重相加,而特征交互部分则是所有特征两两组合的内积之和。不过这里要注意,用户可能不需要太复杂的公式推导,重点在于直观理解。 最后,总结一下FM的优势:处理高维稀疏数据、自动学习特征交互、计算高效。这些点需要简明扼要地提出来,帮助用户快速抓住重点。可能还需要提到FM的变体,比如FFM(场感知因子分解机),但根据用户的问题,可能暂时不需要深入
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值