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

时间:2016-11-25 17:17:57

标签: python apache-spark pyspark apache-spark-mllib collaborative-filtering

我正在使用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)

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

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

提前致谢

1 个答案:

答案 0 :(得分:0)

我见过广告的一些开源“模型服务器”解决方案,但没有实际操作经验。我也听说过商业广告,但现在不能只记住这个名字 因此,请提出自己的意见,并密切留意可能的替代方案。

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

MLeap还是另一个ML-library-with-limited-feature-set,可以插入Spark / Scikit-Learn /中,可以产生一个Web服务 - 或者导出你的模型到名为Combust.ml的托管解决方案

MLDB是另一个ML-library-limited-features-feature-set,完全在Python / Spark生态系统之外,但声称与TensorFlow完全集成 - 包括{{3}的能力}。