【问题标题】:Apache Spark ALS - how to perform Live Recommendations / fold-in anonym userApache Spark ALS - 如何执行实时推荐/折叠匿名用户
【发布时间】:2017-04-10 03:26:15
【问题描述】:

我正在使用 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 模型中的向量并获得推荐(就像recommendProducts() 调用),但避免重新训练整个模型

在 Apache Spark 中训练 ALS 模型后,有什么方法可以轻松折叠新的匿名用户向量?

提前致谢

【问题讨论】:

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


【解决方案1】:

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

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

MLeap 是又一个 ML-library-with-limited-feature-set,可以插入 Spark/Scikit-Learn/whatever 中,并且可以生成 Web 服务——或将模型导出到名为 Combust.ml 的托管解决方案

MLDB 是又一个 ML-library-with-limited-feature-set,完全在 Python/Spark 生态系统之外,但声称与 TensorFlow 完全集成——包括import existing Deep Learning models and tweak them for different uses 的能力。

【讨论】:

  • 非常感谢您给我这些建议,我会尽快看看。但是,正如我在原始问题中所写,我想使用 Apache Spark MLLIB 实现我自己的解决方案,因此我需要关于如何在该库上执行此操作的技术答案。
猜你喜欢
  • 2021-05-22
  • 2015-05-21
  • 2017-05-05
  • 1970-01-01
  • 2018-01-31
  • 1970-01-01
  • 2018-03-09
  • 2017-07-09
  • 1970-01-01
相关资源
最近更新 更多