apache-spark - 如何处理 Spark ALS 从 MLlib 生成的模型中的新用户/项目?

标签 apache-spark machine-learning recommendation-engine collaborative-filtering

目前,当新用户到来时,我无法更新我的推荐系统,这显然与未添加用户和项目矩阵有关。 我在哪里可以找到这个以及如何做到这一点?谢谢

模型.userFactors 模型.itemFactors

最佳答案

计算项目特征和用户特征时,模型仅准备为已知项目和用户推荐。如果您有新的用户/项目,您必须应对冷启动问题。

但是有两件事 - 为新用户/项目提供推荐,另一件事是近乎在线更新模型(特征矩阵)。

为了为新/匿名用户准备建议(模型构建时输入数据中没有这些建议),您必须准备其特征向量。该方法是根据已经看到的项目的特征(或您认为“喜欢”的任何类型的交互)来准备它,例如计算用户喜欢的项目中每个特征的平均值。或者查看 Oryx 代码中 building anonymous user feature vector 的方法

通过使用折叠技术来近在线更新您的模型(我写近,因为面对现实,真正的在线更新是不可能的),例如: Online-Updating Regularized Kernel Matrix Factorization Models for Large-Scale Recommender Systems. 瓯你可以看看代码:

  • MyMediaLite
  • Oryx - 使用 Lambda 架构范例构建框架。并且它应该具有包含新用户/项目的更新。

关于apache-spark - 如何处理 Spark ALS 从 MLlib 生成的模型中的新用户/项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36723429/

相关文章:

apache-spark - Spark - 如何在生产中使用训练有素的推荐模型?

algorithm - 冷启动的推荐方法和算法

apache-spark - Hive 查询以查找中间几周的计数

python-3.x - python tensorflow 中一种热编码的分类级别

python - scikit-learn 中的 apply() 函数可以做什么?

machine-learning - Python/Keras/Theano 深度自动编码器的错误维度

java - 关于推荐引擎

hadoop - 在 Spark 中转储 hadoop 配置

apache-spark - 从 Eclipse 和 Spark Context 将 Spark 应用程序作为 yarn 作业提交

java - 如何根据 JavaRDD<ObjectHandler> 对象中的特定列查找不同元素?