个人总结:推荐算法 从MF(LFM) 到 FM FFM Wide&Deep DeepFM

FM

在推荐系统中,经常会碰到电影评分这样高度稀疏的数据,在之前的个人总结:推荐算法篇(附协同过滤等) 综述的基于模型的协同过滤中,提到了FunkSVD(LFM,Latent Factor Model),通过设置隐含特征,进行矩阵分解,来实现对未知评分的预测。这里FM,和LFM一样,也是隐变量模型。

问题背景

传统逻辑回归认为特征直接是相互独立的,但是很多情况下特征之间的依赖关系不可忽视,因此需进行特征组合,但是大多数业务场景下,类别特征做完onehot后会变得非常稀疏,尤其是特征组合后,特征空间变得很大,而FM就是为了解决特征组合下数据稀疏所带来的问题。

由线性回归说起

一般的线性模型定义如下,很直观可以看出特征均单独出现。

引入二阶多项式,可以引入特征之间的依赖关系

二阶特征的参数共有n(n - 1)/2种,且任意参数间相互独立,并且在进行参数估计时发现,对于这些二次项的参数,都需要大量的非零样本来进行求解,但是很多时候特征空间是相当稀疏的,这种情况下参数的估计值变得相当不准确。

二阶FM原理

FM引入矩阵分解的思路,对交叉项的系数矩阵进行了如下分解:

这个分解的思想是:由于特征之间不是相互独立的,因此可以使用一个隐因子来串联,类似于推荐算法中将一个打分矩阵分解为user矩阵和item矩阵,也就是前面提到的FunkSVD(LFM,Latent Factor Model),每个user和item都可以用一个隐向量来表示,
FM采用类似思想,将所有二次项系数组成为一个对称矩阵W,W可被分解为V^T*V

V的第j列vj即为第j维特征的隐向量,每一个特征对应一个隐变量,即

特征向量xi和xj的交叉项系数就等于xi对应的隐向量与xj对应的隐向量的内积,即每个参数

其中为超参数表示隐向量的长度,因此wij可表示为

两个特征xi和xj的特征组合的权重值,通过特征对应的向量vi和vj的内积表示,这本质上是在对特征进行embedding化表征

于是模型可以表示为

我们将向量v按行拼成长方阵V

交互矩阵\widehat{W}

这里用到了一个结论:当k足够大,对于任意对称正定的实矩阵,均存在实矩阵,使得成立的对称性可以得到保证,那么如何保证正定性呢?因为我们只关心互异特征之间的相互关系,因此的对角线元素是可以任意取值的,只需将其取的足够大,就可以保证的正定性。

我们希望k取得足够大,但是在高度稀疏的场景下,由于没有足够的样本来估计交互矩阵,因此k通常取得较小。实际上对k(FM的表达能力)的限制,一定程度上可以提高模型的泛化能力。

复杂度分析

直观上看FM的预测复杂度为O(kn^2),通过化简可以优化至O(kn)

实际应用中,n(特征维数)往往很大,如果是O(kn^2),就完全没办法被工业界使用了,所以要进行算法复杂度优化。这也是为什么LR(算法复杂度和特征数量n成线性关系)在CTR业界被

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值