当前位置:   article > 正文

ALS(Alternating Least Squares)

alternating least squares

ALS(Alternating Least Squares)算法是基于矩阵分解的协同过滤算法中的一种,它已经集成到Spark的Mllib库中,使用起来比较方便。

1.矩阵分解

这里的矩阵分解可以理解为,将一个m×n的矩阵A分解为一个m×k的矩阵U和n×k的矩阵V的转置的乘积的近似值,即

Am×nUm×k×VTn×k
Am×nUm×k×VTn×k

将这个公式放到推荐系统中,则 Am×n Am×n表示用户对产品的偏好评分矩阵, Um×k Um×k代表用户对隐含特征的偏好矩阵, Vn×k Vn×k表示产品所包含的隐含特征矩阵。
为了使矩阵U和V转置的乘积尽可能接近A,我们使用用户喜好特征矩阵U(m∗k)中的第i个用户的特征向量 ui ui,和产品特征矩阵V(n∗k)第j个产品的特征向量 vj vj预测打分矩阵A(m∗n)中的 aij aij,需要最小化平方误差损失函数:
C=i,jR[(aijuivTj)2+λ(u2i+v2j)]

有了损失函数之后,下面就开始介绍优化方法。通常的优化方法分为两种:交叉最小二乘法(alternative least squares)和随机梯度下降法(stochastic gradient descent)。

2.交替最小二乘法(ALS)

在开始的时候,随机初始化一个ui的值,因此上式就变成了一个关于vj的函数,问题转化为最小二乘问题,用最小二乘法求vj的最优解:
这里写图片描述

其迭代步骤是:首先随机初始化ui,利用上述方法更新得到vj,然后利用ui的表达式更新ui,直到RMSE(均方根误差)变化很小或者到达最大迭代次数为止。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/649366
推荐阅读
相关标签
  

闽ICP备14008679号