FM模型原理推导、实现及面试常问问题

本文深入探讨了FM(Factorization Machine)模型的原理,从线性回归和二阶多项式回归背景出发,详细介绍了FM的公式、化简、损失函数和参数更新方法。此外,还讨论了FM在解决冷启动问题上的优势,并简述了与MF(矩阵分解)模型的关系。文章还涵盖了FM的代码实现和面试中常见的问题。

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

@ [FM模型原理推导、实现及面试常问问题]

一、模型原理

https://zhuanlan.zhihu.com/p/394917869

1.线性回归

特征 X ∈ R m × n X\in R^{m \times n} XRm×n,其中m为样本数,n为特征维度; x i , i = 1 , . . . , n x_i, i=1,...,n xi,i=1,...,n 代表第i维特征;标签 Y ∈ R Y \in R YR.
线性回归公式:
y = w 0 + ∑ i = 1 n w i x i y=w_0 + \sum_{i=1}^{n}w_ix_i y=w0+i=1nwixi

其中, w i w_i wi为待学习的模型参数,为特征 x i x_i xi的权重,算上偏置 w 0 w_0 w0,有n+1个参数(假设特征之间是独立不相关)。

缺点:需要人工组合特征

2.二阶多项式回归:

因为在实际中,结果不止受到多个变量组合的影响,比如男性喜欢运动 两个变量发生的条件下,购买男士运动服的情况比较大,因此需要将特征组合起来进行拟合:
y = w 0 + ∑ i = 1 n w i x i + ∑ i = 1 n ∑ j = i + 1 n w i j x i x j y=w_0 + \sum_{i=1}^{n}w_ix_i + \sum_{i=1}^{n} \sum_{j=i+1}^{n}w_{ij}x_ix_j y=w0+i=1nwixi+i=1nj=i+1nwijxixj

参数除了 w i j w_{ij} wij基本和线性回归相同, w i j w_{ij} wij为特征 x i x_i xi x j x_j xj同时出现的权重。(当 x i x_i xi或者 x j x_j xj有一个为0, x i x j = 0 x_ix_j=0 xixj=0, 则无法学习 w i j w_{ij} wij,即使预测时出现了 x i x j = 1 x_ix_j=1 xixj=1的情况,也无法考虑该特征组合)

优点:考虑了二维组合特征
缺点:模型规模指数倍增长,并且增大了特征稀疏的情况

3.FM模型

3.1 公式:

对于每个特征 x i x_i xi的给一个k维隐向量 v i ∈ R k v_i \in R^k viRk,且令
w i j = v i ⋅ v j w_{ij}=v_i \centerdot v_j wij=vivj

则FM的模型:
y = w 0 + ∑ i = 1 n w i x i + ∑ i = 1 n ∑ j = i + 1 n v i ⋅ v j x i x j y=w_0 + \sum_{i=1}^{n}w_ix_i + \sum_{i=1}^{n} \sum_{j=i+1}^{n} v_i \centerdot v_jx_ix_j y=w0+i=1n<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值