ALS的理解
ALS 是spark 中唯一实现的协同过滤算法,也是我学习的重点。
对于一个users-products-rating的评分数据集,ALS会建立一个的m*n
的矩阵。其中,m为users的数量,n为products的数量,值为评分。但是在这个数据集中,并不是每个用户都对每个产品进行过评分,所以这个矩阵是 稀疏 的,用户i对产品j的评分往往是空的.
ALS所做的事情就是将这个稀疏矩阵通过一定的规律填满,这样就可以从矩阵中得到任意一个user对任意一个product的评分,也就是传说中的预测得分。
ALS算法的核心:
- 就是将稀疏评分矩阵分解为用户特征向量矩阵和产品特征向量矩阵的乘积
- 交替使用最小二乘法逐步计算用户/产品特征向量,使得差平方和最小
- 通过用户/产品特征向量的矩阵来预测某个用户对某个产品的评分