继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

为什么Spark的协同过滤只有als一种算法

2020-03-27 17:36:342957浏览

小简同学

3实战 · 1手记
TA的实战

als是交替最小二乘法,是一种优化算法,在机器学习中,als特指使用交替最小二乘法的一个协同过滤推荐算法。
在基于矩阵分解的推荐系统中,由于用户-物品评分矩阵是一个稀疏矩阵,所以将这个矩阵分解为两个矩阵,一个是用户对物品的偏好矩阵,一个是物品包含的特征的矩阵,在矩阵分解过程中,矩阵的缺失值得到了填充,那么就可以填充后的评分矩阵给用户推荐商品。
设这个评分矩阵为

图片描述
,用户偏好矩阵为

图片描述
,物品隐含特征矩阵为

图片描述
,那么

图片描述
。als的目的就是要找到用户偏好矩阵为

图片描述
,和物品隐含特征矩阵为

图片描述
。为了让

图片描述
尽可能的接近

图片描述
,也就是使损失函数

图片描述
最小化,为了解决过拟合的问题,加入了正则化的系数,即

图片描述
,由于有两个变量x,y,所以先固定y,将损失函数对

图片描述
求偏导,再固定x,对

图片描述
求偏导,依次迭代,将上一步得到的
图片描述

图片描述
作为下一步的输入,直到均方根误差RMSE很小。
以上就是als的算法原理。als算法大大减少了存储的空间,而且Spark可以利用这种稀疏性用简单的线性代数计算求解。这些都使得als算法在大规模数据上计算是非常快的,这也解释了为什么Spark的推荐算法只有als。

打开App,阅读手记
5人推荐
发表评论
随时随地看视频慕课网APP