【发布时间】:2015-06-01 17:39:54
【问题描述】:
我正在开发一个使用 Neo4j (v1.9) 作为底层数据存储和 Spring Data Neo4j 的项目(社交网络)。 我正在尝试将标签系统添加到项目中,并且正在寻找使用协同过滤策略有效实施标签推荐的方法。 经过大量研究,我提出了以下选择:
- 密码。它是 Neo4j 使用的嵌入式查询语言。不需要其他框架,也许计算时间比其他框架好。也许我可以使用 Spring Data Neo4j 轻松实现查询。
- Apache Mahout。它提供的机器学习算法主要集中在协同过滤、聚类和分类领域。但是,它不是为图形数据库设计的,可能会很慢。
- Apache Giraph。 Google Pregel 的开源版本。
- 阿帕奇星火。它是用于大规模数据处理的快速通用引擎。
- reco4j。这是迄今为止最合适的解决方案,但该项目似乎已死。
- Apache Spark GraphX + Mazerunner。由@johnymontana 的the answer 建议。我正在记录它。主要问题是我不知道它是否支持协同过滤。
- Graphaware Reco。 @ChristopheWillemsen 在评论中建议。来自官网
是一个可扩展的高性能推荐引擎框架,用于 Neo4j,允许计算和服务实时以及 预先计算的建议。
但是,我还不知道它是否适用于旧版本的 Neo4j(我目前无法升级 Neo4j 版本)。
那么,您有什么建议,为什么?随意推荐上面未列出的其他有趣的框架。
【问题讨论】:
-
您可能希望将 GraphAware 推荐引擎添加到您的列表中。 Github:github.com/graphaware/neo4j-reco 和视频:vimeo.com/118837191
-
@ChristopheWillemsen 我现在正在看视频。你建议吗?如果是,为什么?
-
我不能推荐你“一个”的东西,关于你想要解决什么问题以及如何解决的信息如此之少,但是对于 k-neighbors 风格,该插件可以让你的生活更轻松。下面提到的 Mazerunner 是一个非常好的项目。
-
@ChristopheWillemsen 谢谢,我正在记录这两个方面。我还更新了我原来的问题以反映答复。你知道 GraphAware 是否可以在旧版本的 Neo4j 上工作(我现在正在处理 Neo4j 1.9 实例)。
标签: neo4j recommendation-engine collaborative-filtering