美文网首页
对比ALS和FM

对比ALS和FM

作者: Colleen_oh | 来源:发表于2020-05-09 11:55 被阅读0次

最近在研究推荐系统矩阵分解算法。下面就来对比这两者。主要通过两者者公式区别、如何求解以及优缺点进行总结。都是个人总结。有问题的麻烦直接提出来哈!

本文围绕一下问题进行:

1、ALS和FM的公式原理

2、ALS与FM的求解过程(如何迭代)

3、ALS和FM的优缺点

一、ALS(Alternating Least Squares,交替最小二乘法 )

ALS模型

ALS在推荐系统中就是将用户(user)对商品(item)的评分矩阵分解成2个矩阵:user对item 潜在因素的偏好矩阵(latent factor vector),item潜在因素的偏好矩阵。这两个矩阵相乘最后会约等于原矩阵。:R_{m\times n} = X_{m\times k}\times Y_{n\times k}^T

如何求解?

那么问题来了 X和Y都是未知的。只要我们知道其中一个,就可以求解另一个了。

ALS的核心有个假设:打分矩阵是近似低秩的。换句话说,就是一个m\times n的打分矩阵可以由分解的两个小矩阵X(m\times k)Y(k\times n)的乘积来近似。这就是ALS的矩阵分解方法。

为了让X和Y相乘能逼近R,因此我们需要最小化损失函数(loss function),因此需要最小化损失函数,在此定义为平方误差和(Mean square error, MSE)。

Loss(X,Y)=\sum_{i,u}(r_{ui}-x_uy_i^T)^2   ,其中r_{ui}代表某个user对某个item的评分。

一般损失函数都会需要加入正则化项(Regularization item)来避免过拟合的问题,通常是用L2,所以目标函数会被修改为:

Loss(X,Y)=\sum_{i,u}(r_{ui}-x_uy_i^T)^2   +\lambda (\sum_{u}||x_u||^2 + \sum_{i}||y_i||^2  )

上面介绍了“最小二乘(最小平方误差)”,但是还没有讲清楚“交替”是怎么回事。因为X和Y都是未知的参数矩阵,因此我们需要用“交替固定参数”来对另一个参数求解。

先固定Y, 将loss function对X求偏导,使其导数等于0

再固定X, 将loss function对Y求偏导,使其导数等于0

既然是交替,就会有迭代的模式存在:

迭代方法:先写出损失函数(最小二乘——最小平方误差),然后分别对x_uy_i求偏导并令偏导结果等于0可以求出x_uy_i,然后初始化Y,可以求出x_u,把x_u带入到y_i中,可以求出y_i,把两者代入到RMSE中,计算出结果。然后从求偏导开始迭代,知道迭代次数结束或者是达到预期RMSE结果。

优缺点?

优点:相比SVD可以解决稀疏矩阵分解的问题

缺点:对于隐变量个数选择比较敏感,k越大越精确,但是计算时间越长

参考:

推荐算法之矩阵分解——https://flashgene.com/archives/52522.html

协同过滤算法之ALS——https://www.biaodianfu.com/collaborative-filtering-als.html

推荐系统中—矩阵分解——https://www.jianshu.com/p/0bb8c470326b

ALS交替最小二乘法总结——https://www.cnblogs.com/arachis/p/ALS.html


FM(Factorization Machines,因子分解机)

因子分解机是从二阶多项式模型“进化”过来的。二阶多项式模型公式如下:\hat{y} (X)=w_0+\sum_{i=1}^nw_ix_i+\sum_{i=1}^{n-1}\sum_{j=i+1}^n w_{ij}x_i x_j

其中x_ix_j表示两个互异特征组合的二阶特征,w_{ij}表示二阶特征的交叉项系数。

上述二阶多项式模型却有一个致命的缺陷的训练是很困难的:数据稀疏性普遍存在的实际应用场景中,二阶特征系数w_{ij}是很困难的。

原因是:

(1)w_{ij}的学习需要大量特征分量X都非零的样本。

(2)样本本身是稀疏的,同时满足x_ix_j\neq 0的 样本非常少。

由于以上原因,大佬们就将w_{ij}表示为另一种形式。即引入辅助隐向量v_i。公式如下:w_{ij}=<v_i,v_j>=\sum_{f=1}^kv_{if}v_{jf },于是就可以改写为FM模型:\hat{y} (X)=w_0+\sum_{i=1}^nw_ix_i+\sum_{i=1}^{n-1}\sum_{j=i+1}^n <v_i,v_j>x_i x_j

(表示FM模型的偏置)

w\in R^n(表示FM模型对一阶特征的建模)

V\in R^{n\times k}(表示FM模型对二阶特征的建模)

参数的个数为:1+n+nk

模型复杂度O(n^2k)

化简方程

首先化简二阶项系数项。

对上述化简过程做一些解释:

第1个等号:对称方阵\hat{W} 的所有元素之和减去主对角线元素之和

第2个等号: <v_i,v_j>向量内积展开成累加形式

第3个等号:提出公共部分\sum_{f=1}^k

第4个等号:表示为“和平方”减去“平方和”

带入化简后的表达式,FM模型方程为:\hat{y} (X)=w_0+\sum_{i=1}^nw_ix_i+\frac{1}{2} \sum_{f=1}^{k}[(\sum_{i=1}^n (v_{if}x_i))^2-\sum_{i=1}^n v_{if}^2x_i^2]

损失函数

对于回归问题,损失函数可以取最小平方误差函数:loss(\hat{y},y )=\frac{1}{2} (\hat{y} -y)^2

对于分类问题,损失函数可以取logit逻辑函数:loss(\hat{y},y )=log(1+e^{-\hat{y} y})

最优化目标函数

\theta ^*=argmin\sum_{i=1}^N loss(\hat{y_i} ,y_i)

如何求解?

首先对目标函数求偏导,目标函数对模型参数的偏导数通式为:

loss对模型估计函数\hat{y} (X)的偏导数为:

对于FM模型而言,优化的参数为:\theta ^*=\left\{ w_0,w,V \right\} ,则FM模型方程对各个参数\theta ^*的偏导数为:

于是对于FM模型的优化问题,我们可以采用SGD优化目标函数.

FM模型的算法步骤:

优缺点?

优点:

(1)FM模型对特征的一阶组合和二阶组合都进行了建模

(2)FM模型通过MF思想,基于K维的Latent Factor Vector,处理因为数据稀疏带来的学习不足问题

(3)FM模型的训练和预测的时间复杂度是线性的 

(4)FM模型可以用于DNN的embedding

(5) FM是一个通用模型,它可以用于任何特征为实值的情况

缺点:

每个特征只引入了一个隐向量,不同类型特征之间交叉没有区分性

参考:

FM模型的算法思想——https://www.jianshu.com/p/8d792422e582

FM、FFM——https://www.jianshu.com/p/1db7404689c5


总结

其实ALS和FM都是比较好理解的,ALS则是直接对于评分矩阵做矩阵分解,则FM则是在二阶多项式模型公式基础上把二阶系数改成了隐向量的形式。

算法上共同点:

1、两者都进行了隐语义分解

3、都可以解决评分矩阵稀疏的问题

FM运行的速度是比ALS快的。接下来还会继续挖掘FM!!!

参考:

关于矩阵分解:特征值分解 svd分解 mf分解 lmf分解 pca 以及个性化推荐 fm ffm als——https://blog.csdn.net/weixin_37589896/article/details/78423493

相关文章

  • 对比ALS和FM

    最近在研究推荐系统矩阵分解算法。下面就来对比这两者。主要通过两者者公式区别、如何求解以及优缺点进行总结。都是个人总...

  • pyspark分解机(Factorization Machine

    FM算法主要分三类 SGD(随机梯度下降) ALS(交替最小二乘法) MCMC(马尔科夫链蒙特卡罗法) ALS已经...

  • 2018-02-10

    als和wenn的区别时间连词als和wenn表示“当……时候”,als通常用于描写过去某时间一次性发生的 事,所...

  • 总结

    1.ALS 2.基于ALS算法的改进 3.实验结果分析 4.结论 1.ALS 1.1ALS算法的基本思想 ALS(...

  • [半監督]ALS(交替最小二乘)

    ALS(交替最小二乘) alternating least squares(ALS)ALS(交替最小二乘)常用於推...

  • 每日学习记录 2019-10-10

    2019-10-10 问题的提出 ALS 和 RSVD模型的简介 ALS 的预测评分公式如下: 其中: R为打分矩...

  • 推荐系统9:MF推荐

    1.LFM推荐 思路和ALS算法类似,区别在于,ALS利用坐标下降法,LFM利用梯度下降法假设: 评分矩阵??,?...

  • als与wenn的区别

    说明 时间连词als和wenn表示“当……时候”,als通常用于描写过去某时间一次性发生的 事,所以时态要...

  • Deep Learning over Multi-field C

    ctr预估 ctr中传统的FM,以神经网络的角度来看可以等效为下图: 对比FM公式来看,第一项为图中最左边常数,第...

  • 交替最小二乘法(ALS)

    ALS是alternating least squares的缩写 , 意为交替最小二乘法;而ALS-WR是alte...

网友评论

      本文标题:对比ALS和FM

      本文链接:https://www.haomeiwen.com/subject/aszxnhtx.html