有没有一种方法可以在训练后将spark ALS模型导出为PMML模型或任何格式,可以在spark环境之外调用?
例如,在JAVA中,给定客户id C和产品id P,加载SCALA程序创建的模型文件,并调用它,它将输出(C,P)的分数。
这个问题的主要原因是,当活跃用户的规模很大时,假设100个产品上有1亿用户,那么预测规模将是100亿。在我们的案例中,基于项目的推荐不是一个选项。
不确定行业内的人是如何做到这一点的,特别是当需要每天更新模型时,该模型是由之前的整个月/周数据训练的。
发布于 2018-02-20 18:18:53
有一种方法可以将模型保存在扩展环境中,就像这个ALSmodel.save("myModelPath")。使用此模型,您可以对所有已知的客户/项目对进行评分。
我猜,如果你想在spark之外得分,你必须将项目和用户因子导出到另一个系统中,并自己计算mf。在那里,您还可以为您的推荐更新用户迭代操作。
使用ALSmodel.userFactors和ALSmodel.itemFactors,您可以提取模型的因子。
为什么你想在spark之外得分?你可以简单地预先计算你的预测,并在线提供它们。如果你想在一个非常高的频率级别上更新推荐,你必须按照建议的方式去做。如果您只想每天更新模型,我建议您只需每隔一天重新训练模型。
https://stackoverflow.com/questions/48672266
复制相似问题