当前位置:   article > 正文

2021-09-06LS是交替最小二乘(alternating least squares)的简称,用交替最小二乘求解的一个协同推荐算法。_交替最小二乘 matlab

交替最小二乘 matlab

ALS是交替最小二乘(alternating least squares)的简称。在机器学习中,ALS特指使用交替最小二乘求解的一个协同推荐算法。它通过观察到的所有用户给商品的打分,来推断每个用户的喜好并向用户推荐适合的商品。举个例子,我们看下面一个8*8的用户打分矩阵

3.1 基于 ALS 的协同过滤算法的改进和优化 在实际的生产环境中,推荐系统往往涉及大量的用户和物品。以 GroupLens 研究小组提供的 MovieLens 开源数据集为例,中等数据量大小的 ratings.bat 文 件中涵盖了 71567 个用户对 10681 部电影的 10000054 条评分数据。如果使用矩 阵的形式表示的话,每一行代表不同的用户,每一列代表不同的电影,矩阵的每一 个元素为用户对电影的评分,那么这个矩阵的存储将产生大量的内存开销;并且, 用户评分过的电影数量往往很小,导致评分矩阵具有相当高的稀疏度,这都给用户 或电影相似度的计算带来不小的困难,最终的推荐效果难以令人满意。矩阵分解的 出现则为稀疏性问题提供了一个不错的解决思路。 3.1.1 矩阵分解与交替最小二乘法 以电影推荐系统为例,假设在推荐系统中有 m 个用户,n 部电影,以用户为 行,电影为列,用户对电影的真实评分作为矩阵的每一个元素,可以得到用户评分 矩阵 

。矩阵分解的核心思想可以通过公式(3-1)进行概括:

ALS 指使用交替最小二乘求解的一个协同推荐算法

  • 它通过观察到的所有用户商品打分,来推断每个用户的喜好并向用户推荐适合的商品。

 

每一行代表一个用户(u1,u2,…,u8), 每一列代表一个商品(v1,v2,…,v8),用户的打分为1-9分。

这个矩阵只显示了观察到的打分,我们需要推测没有观察到的打分。

  • ALS的核心就是这样一个假设:打分矩阵是近似低秩的。

换句话说,就是一个m*n的打分矩阵可以由分解的两个小矩阵U(m*k)V(k*n)乘积来近似,即 A=UVT,k<=m,n 。这就是ALS的矩阵分解方法。

这样我们把系统的自由度从O(mn)降到了O((m+n)k)

  • 低维空间的选取。

这个低维空间要能够很好的区分事物,那么就需要一个明确的可量化目标,这就是重构误差

ALS中我们使用 F范数 来量化重构误差,就是每个元素重构误差的平方和。这里存在一个问题,我们只观察到部分打分,A中的大量未知元是我们想推断的,所以这个重构误差是包含未知数的。

解决方案很简单:只计算已知打分的重构误差。

  • ALS算法实现于org.apache.spark.ml.recommendation.ALS.scala文件中

 

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

闽ICP备14008679号