【问题标题】:The reduction of recommendations number in Prediction IO + Universal RecommenderPrediction IO + Universal Recommender 中推荐数量的减少
【发布时间】:2016-03-28 09:35:52
【问题描述】:

我们正在尝试使用 PredictionIO(0.9.5 版)+ Universal Recommender(0.2.3 版)为我们服务的用户构建个人推荐。 EventServer 正在收集有关用户对 MySQL 数据库中项目评分的事件,Recommender 的 retrain 由调度程序运行,并将个人推荐存储到 ElasticSearch。在开始和后来的一些训练中,推荐者的响应看起来不错,有很多项目,但过了一段时间,推荐的数量开始下降。我们查看了 ElasticSearch 中的数据:项目存在,但它们的属性被删除。 我们想知道为什么会发生这种情况?

附件中的engine.json示例:engine.json

提前致谢!

【问题讨论】:

  • 到目前为止你尝试过什么? Stack Overflow 用于帮助解决现有代码的问题,而不是免费编写代码解决方案。
  • 对不起,我不是要写代码——我们有!问题在于 PIO 配置(当前配置在文件中由相关链接表示)。

标签: java predictionio


【解决方案1】:

如果 EventServer 中没有相应的事件,该项目将不会被写入 Elasticsearch。您是否在训练时间之间擦除 EventServer 中的数据?还是从所有新数据开始,丢弃旧数据?

如果您曾经有事件,则会将一个项目写入 Elasaticsearch,但如果以后没有事件,它将消失,因为 Elasticsearch 索引在每列火车上都会被替换。 EventServer 旨在随着时间的推移积累数据,而不是在每次训练之前擦除。

顺便说一句,您应该升级到新的 PredictionIO v0.9.6 和 Universal Recommender v0.3.0。这些必须一起升级并从这些存储库中获取。

https://github.com/actionml/PredictionIO

https://github.com/actionml/template-scala-parallel-universal-recommendation

【讨论】:

  • 首先感谢您的回复!不,我们不会在训练时间之间删除数据。通过调度程序启动脚本,使用两个命令: - pio train - pio deploy 今天我正在尝试升级 PIO 版本(到 0.9.6)和 Universal Recommender(到 0.3.0)。此外,我将 MySQL 替换为 PostgreSQL 作为 EventData 和 ModelData 的存储。元数据存储仍然是 Elasticsearch。第一次训练成功完成。希望以后不会出现问题。
  • 升级后的 PIO+Universal Recommender 运行良好,但经过一段时间(约 3 天)后,推荐中的项目计数仍然为空。这可能是因为我们网站上的新活动数量很少吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-11-29
  • 1970-01-01
  • 2013-08-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多