推荐系统笔记——FM 模型

本文是关于FM(Factorization Machine)模型在推荐系统中的学习笔记。线性模型通过加入交互项提升表达能力,但面临计算复杂度和稀疏数据问题。FM模型通过引入隐向量解决这些问题,其计算复杂度可优化到O(kn),并且能利用更多特征信息,优于MF模型。FM模型在推荐系统中有较高的计算效率和泛化能力。
摘要由CSDN通过智能技术生成

推荐系统笔记——FM 模型

楼主小白一枚还在学习,下面仅是学习笔记,并非教程,文章中如果有问题烦请指正,欢迎一起交流学习。

线性模型及其改进

传统的推荐系统中,比较常用的模型是 LR 模型。LR 模型本质上来说是线性模型,线性模型可以表示为下面的形式:

y ^ = w 0 + ∑ i = 1 n w i x i \hat{y} = w_0 + \sum_{i=1}^{n} w_i x_{i} y^=w0+i=1nwixi

线性模型的优点是速度性,并且可解释性强。缺点是表达能力弱。

为了提高普通线性模型的表达能力,可以在线性模型中加入交互项:

y ^ = w 0 + ∑ i = 1 n w i x i + ∑ i = 1 n ∑ j = i + 1 n w i , j x i x j ( 1 ) \hat{y} = w_0 + \sum_{i=1}^{n} w_i x_i + \sum_{i=1}^{n} \sum_{j=i+1}^{n} w_{i,j} x_i x_j \quad\quad (1) y^=w0+i=1nwixi+i=1nj=i+1nwi,jxixj(1)

注意,这里的交互项不包含 x i 2 x_i^2 xi2 这样的项。

上面的模型,实际上等价于 SVM 在 kernel 为多项式核的情况,因此上面的模型也在原论文中被称为 SVM 模型。也有人称这个模型为 LR 模型。

此模型的矩阵形式为

y ^ = w 0 + x T w + x T W x \hat{y} = w_0 + x^T w + x^T W x y^=w0+xTw+xTWx

由于不包含 x i 2 x_i^2 xi2 ,因此 W W W 的对角线为0,并且是对称矩阵(至于为什么对称,这应该是线性代数的知识吧?)。

SVM模型的缺点

加入交互项之后,虽然模型的表达能力增强,但是有下面的两个问题:

  1. 计算复杂度比较高。一共有 n(n-1) / 2 个参数
  2. 在数据很稀疏的条件下表现并不好。考虑是对类别变量进行 one-hot encoding 的情况,如果有两个类别在样本中没有同时出现过,那么 x i x j x_i x_j xixj 在样本中总是为 0,因此 ∂ y ^ ∂ w i , j ≡ 0 \frac{\partial \hat{y}}{\partial w_{i,j}} \equiv 0 wi,jy^0 w i , j w_{i,j} wi,j 完全无法更新。

FM 模型

由于上述的两个问题的存在,因此进行下面的改进,

假设第 i i i 个特征可以表示为一个 k 维的向量 v i ∈ R k v_i \in \mathbb{R}^k viRk k k k 是隐向量的长度,是一个需要提前给定的超参数。

w i , j w_{i,j} wi,j 是度量第 i 个特征和第 j 个特征的交互作用的参数。 令 w i , j = ⟨ v i , v j ⟩ w_{i,j} = \left\langle v_i, v_j \right\rangle wi,j=vi,vj,因此 ( 1 ) (1) (1) 式就变成了

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 ( 2 ) \hat{y} = w_{0} + \sum_{i=1}^{n} w_{i} x_{i} + \sum_{i=1}^{n} \sum_{j=i+1}^{n}\left\langle v_{i}, v_{j}\right\rangle x_{i} x_{j} \quad \quad ( 2 ) y^=w0+i=1nwixi+i=1nj=i+1nvi,vjxixj(2)

此时模型的参数为

  1. 常数项 w 0 w_0 w0
  2. 线性部分的参数,合写成一个向量 w 1 , … , w n w_1, \ldots, w_n w1,,wn
  3. 交互项部分的参数 v 1 , … , v n v_1, \ldots, v_n v1,,vn ,将其按行排列得到一个矩阵 V = ( v 1 T ⋮ v n T ) ∈ R n × k V = \begin{pmatrix} v_1^T\\ \vdots\\ v_n^T \end{pmatrix} \in R^{n \times k} V=v1TvnTRn×k

这个 V V V 模型看起来貌似比较突兀,其实如果从矩阵的角度来看会比较简单。SVM 模型的问题是 W W W 的维度过大,是 O ( n 2 ) O(n^2) O(n2) 量级的,并且在许多情况下是稀疏的。因此我们可以假设,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值