手记

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

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

小简同学

3实战 · 1手记

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


,用户偏好矩阵为


,物品隐含特征矩阵为


,那么


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


,和物品隐含特征矩阵为


。为了让


尽可能的接近


,也就是使损失函数


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


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


求偏导,再固定x,对


求偏导,依次迭代,将上一步得到的



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

5人推荐
随时随地看视频
慕课网APP