Apache Spark ALS - 如何执行实时建议/折叠匿名用户

Val*_*rch 6 python collaborative-filtering apache-spark pyspark apache-spark-mllib

我正在使用Apache Spark(Pyspark API for Python)ALS MLLIB开发一项服务,为我的站点中的匿名用户(不在训练集中的用户)执行实时推荐.在我的用例中,我以这种方式在用户评级上训练模型:

from pyspark.mllib.recommendation import ALS, MatrixFactorizationModel, Rating
ratings = df.map(lambda l: Rating(int(l[0]), int(l[1]), float(l[2])))
rank = 10 
numIterations = 10
model = ALS.trainImplicit(ratings, rank, numIterations)
Run Code Online (Sandbox Code Playgroud)

现在,每次匿名用户选择目录中的项目时,我想在ALS模型中折叠其向量并获得建议(就像recommendedProducts()调用一样),但避免重新训练整个模型.

在Apache Spark中训练ALS模型后,有没有办法轻松完成新匿名用户向量的折叠

提前致谢

Sam*_*ter 0

我见过一些开源“模型服务器”解决方案的广告,但没有实践经验。我还听说过一种商业产品,但现在记不起名字了。
因此,请发表自己的意见,并留意可能的替代方案。

PredictionIO (该初创公司已被 SalesForce 吞并,但他们的解决方案仍然可用)使用 Spark+Hadoop+HBase 堆栈,以及某种 Web 服务器组件。

MLeap是另一个具有有限功能集的 ML 库,它可以插入 Spark/Scikit-Learn/任何其他库,并且可以生成 Web 服务,或者将模型导出到名为 Combust 的托管解决方案。毫升

MLDB是另一个功能有限的 ML 库,完全脱离了 Python/Spark 生态系统,但声称与 TensorFlow 完全集成——包括导入现有深度学习模型并针对不同用途进行调整的能力。