ALS推荐系统的在线更新

时间:2018-02-07 19:57:38

标签: apache-spark-mllib collaborative-filtering

有没有办法在训练后将火花ALS模型导出为PMML模型或任何可以在火花环境之外调用的格式?

,例如,在JAVA中,给定客户ID C和产品ID P,加载由SCALA程序创建的模型文件,并调用它,它将输出(C,P)的分数。

这个问题的主要原因是,当活跃用户的规模很大时,超过100种产品的用户数量为1亿,预测规模将达到100亿。在我们的案例中,基于项目的推荐不是一个选项。

不确定业内人士如何做到这一点,尤其是当需要每天更新模型时,该模型由之前的整月/周数据训练。

1 个答案:

答案 0 :(得分:0)

有一种方法可以在模型环境中保存模型,例如ALSmodel.save("myModelPath")。使用此模型,您可以对所有已知的客户/项目对进行评分。

我想如果你想在火花之外得分你必须输出物品&用户因素进入另一个系统并自己计算mf。在那里,您还可以更新用户迭代以获得建议。

使用ALSmodel.userFactorsALSmodel.itemFactors,您可以提取模型的因素。

为什么你想要在火花之外得分?您可以简单地预先计算您的预测并在线提供。如果您想在非常高的频率级别更新建议,则必须采用建议的方式。如果您只想每天更新您的模型,我建议您只需重新训练模型。