Spark 2.2.0 文档中文版 Collaborative Filtering 协同过滤 JAVA推荐系统

  协同过滤经常使用于推荐系统,这项技术旨在填补 丢失的user-item关联矩阵 的条目,spark.ml目前支持基于模型的协同过滤(用一些丢失条目的潜在因素在描述用户和产品)。spark.ml使用ALS(交替最小二乘法)去学习这些潜在因素。在spark.ml中的实现有如下参数:java

numBlocks:块的数量,user和item将被分红多少块,以并行计算。(默认10)apache

ranK:模型隐含因素的个数。(默认10)api

maxIter:模型的最大迭代次数。(默认10)app

regParam :ALS的正则化参数。(默认1.0)dom

implicitPrefs :使用显式反馈仍是隐式反馈。(默认false,即显式反馈)ide

alpha:信心权重所应达到的基准线。(默认1.0)学习

nonnegative :是否使用非负数的约束。(默认false)
测试

  注意:基于dataFrame - API的ALS目前只支持整数型的userID和itemID,其余数字类型也支持,可是取值范围必须在整数以内。ui

显式反馈VS隐式反馈

  标准的基于矩阵分解的协同过滤方法对待user-item矩阵的条目项 是显式地给出user对item的偏好,例如,用户给电影评级。this

  而现实生活中常见案例是只能有隐式反馈(例如:视图,点击鼠标,购买,喜欢,分享……)。在spark.ml中使用的方法是:对隐式反馈数据集的协同过滤。实际上,这种方法不是直接对数据矩阵进行建模,而是将数据视为表明用户行为意愿强度的数字(例如点击的次数或某人累积观看电影的时间)。而后,这些数字与观察到的用户偏好的置信水平相关,而不是给予项目的明确评级。 而后,该模型尝试找到可用于预测用户对项目的预期偏好的潜在因素。

相关文章
相关标签/搜索