利用Spark MLlib实现协同过滤(ALS)算法实例(Python)
发布时间:2018-04-07 16:24,
浏览次数:1137
, 标签:
Spark
MLlib
ALS
Python
协作过滤
协同过滤通常用于推荐系统。这些技术旨在填补用户项目关联矩阵的缺失条目。
spark.ml目前支持基于模型的协作过滤,其中用户和产品由一组可用于预测缺失条目的潜在因素来描述。 spark.ml使用交替最小二乘(ALS)
算法来学习这些潜在因素。实现中spark.ml有以下参数:
numBlocks是为了并行化计算而将用户和项目划分到的块的数量(默认为10)。
rank是模型中潜在因素的数量(默认为10)。
maxIter是要运行的最大迭代次数(默认为10)。
regParam指定ALS中的正则化参数(默认为1.0)。
implicitPrefs指定是使用显式反馈 ALS变体还是使用 隐式反馈数据(默认为false使用显式反馈的手段)。
alpha是一个适用于ALS的隐式反馈变量的参数,该变量管理偏好观察值的 基线置信度(默认值为1.0)。
nonnegative指定是否对最小二乘使用非负约束(默认为false)。
注意: ALS的基于DataFrame的API目前仅支持用户和项目ID的整数。用户和项目ID列支持其他数字类型,但ID必须在整数值范围内。
显式与隐式反馈
基于矩阵分解的协同过滤的标准方法将用户项矩阵中的条目视为由用户给予该项的明确偏好,例如,给予电影评级的用户。
在许多真实世界的用例中,通常只能访问隐式反馈(例如查看,点击