有没有办法在训练后将火花ALS模型导出为PMML模型或任何可以在火花环境之外调用的格式?
,例如,在JAVA中,给定客户ID C和产品ID P,加载由SCALA程序创建的模型文件,并调用它,它将输出(C,P)的分数。
这个问题的主要原因是,当活跃用户的规模很大时,超过100种产品的用户数量为1亿,预测规模将达到100亿。在我们的案例中,基于项目的推荐不是一个选项。
不确定业内人士如何做到这一点,尤其是当需要每天更新模型时,该模型由之前的整月/周数据训练。
答案 0 :(得分:0)
有一种方法可以在模型环境中保存模型,例如ALSmodel.save("myModelPath")
。使用此模型,您可以对所有已知的客户/项目对进行评分。
我想如果你想在火花之外得分你必须输出物品&用户因素进入另一个系统并自己计算mf。在那里,您还可以更新用户迭代以获得建议。
使用ALSmodel.userFactors
和ALSmodel.itemFactors
,您可以提取模型的因素。
为什么你想要在火花之外得分?您可以简单地预先计算您的预测并在线提供。如果您想在非常高的频率级别更新建议,则必须采用建议的方式。如果您只想每天更新您的模型,我建议您只需重新训练模型。