使用Spark构建推荐引擎
1. 基于隐式反馈数据训练模型
标准的矩阵分解方法在MLlib中处理显式评分。若要处理隐式数据,可以使用 trainImplicit 方法,它的调用方式与标准的 train 方法类似,不过多了一个可设置的参数 alpha 。同时,正则化参数 lambda 应通过测试和交叉验证方法来选择。
alpha 参数控制应用的置信权重基线水平。较高的 alpha 值会使模型更确信缺失数据意味着相关用户 - 项目对没有偏好。
可以尝试将现有的MovieLens数据集转换为隐式数据集,有以下两种方法:
- 转换为二进制反馈 :通过在某个评分水平上设置阈值,将评分转换为二进制反馈(0和1)。
- 转换为置信权重 :将评分值转换为置信权重,例如低评分可能意味着零权重甚至负权重,MLlib的实现支持负权重。
在转换后的数据集上训练模型,并将结果与隐式模型生成的结果进行比较。
2. 使用推荐模型
训练好模型后,可用于进行预测,通常有两种形式:为给定用户生成推荐项目和为给定项目找到相关或相似项目。
2.1 用户推荐
为给定用户生成推荐项目,通常以top - K列表的形式呈现,即模型预测用户最可能喜欢的K个项目。这通过计算每个项目的预测得分并根据得分对列表进行排序来实现。
计算方法取
超级会员免费看
订阅专栏 解锁全文
3658

被折叠的 条评论
为什么被折叠?



