在Neo4j的基础上,我应该使用哪一个实现协作过滤?

在Neo4j的基础上,我应该使用哪一个实现协作过滤?,neo4j,recommendation-engine,collaborative-filtering,Neo4j,Recommendation Engine,Collaborative Filtering,我正在从事一个项目(一个社交网络),它使用Neo4j(v1.9)作为底层数据存储和Spring数据Neo4j。 我正在尝试将标签系统添加到项目中,我正在寻找使用协同过滤策略有效实现标签推荐的方法。 经过大量研究,我得出了以下选择: 塞弗。它是Neo4j使用的嵌入式查询语言。不需要其他框架,也许计算时间比其他框架好。也许我可以使用SpringDataNeo4j轻松地实现查询 阿帕奇管理员。它提供了主要集中在协同过滤、聚类和分类领域的机器学习算法。但是,它不是为图形数据库设计的,可能会很慢 阿帕奇·

我正在从事一个项目(一个社交网络),它使用Neo4j(v1.9)作为底层数据存储和Spring数据Neo4j。 我正在尝试将标签系统添加到项目中,我正在寻找使用协同过滤策略有效实现标签推荐的方法。 经过大量研究,我得出了以下选择:

  • 塞弗。它是Neo4j使用的嵌入式查询语言。不需要其他框架,也许计算时间比其他框架好。也许我可以使用SpringDataNeo4j轻松地实现查询
  • 阿帕奇管理员。它提供了主要集中在协同过滤、聚类和分类领域的机器学习算法。但是,它不是为图形数据库设计的,可能会很慢
  • 阿帕奇·吉拉夫。与Google Pregel相对应的开源软件
  • 阿帕奇火花。它是用于大规模数据处理的快速通用引擎
  • reco4j。到目前为止,这是最合适的解决方案,但该项目似乎已经失败
  • Apache Spark GraphX+Mazerunner。由@johnymontana的建议。我正在记录。主要的问题是,我不知道它是否支持协同过滤
  • 格拉帕瓦记录。由@ChristophenWillemsen在评论中提出。从官方网站
  • 是一个可扩展的高性能推荐引擎框架 Neo4j,允许实时计算和服务,以及 预先计算的建议

    但是,我还不知道它是否适用于旧版本的Neo4j(目前我无法升级Neo4j版本)


    那么,你有什么建议?为什么?请随意推荐上面没有列出的其他有趣的框架。

    Cypher在局部遍历方面非常快,但没有针对全局图操作进行优化。如果您想计算所有用户对之间的相似性度量,那么使用图形处理框架(如ApacheSarkGraphx)会更好。有一个名为Neo4j和Spark的项目,您可能想看看


    对于纯密码方法,最近的几篇博客文章演示了密码查询的建议

    您可能希望将GraphAware推荐引擎添加到列表中。Github:视频:@ChristophenWillemsen我正在看视频。你建议这样做吗?如果是这样的话,为什么?我不能推荐你“一件”的东西,因为你想要解决什么问题以及如何解决,但是对于k-Neights风格,这个插件可以让你在neo上轻松一点。下面提到的Mazerunner是一个非常好的项目。@ChristopherWillemsen谢谢,我正在记录这两个项目。我还更新了我原来的问题,以反映答复。你知道GraphAware能否在旧版本的Neo4j上工作吗(我现在正在开发Neo4j 1.9实例)。非常感谢你的建议。那么,马泽鲁纳是你最喜欢的选择吗?Spark+Mazerunner支持协同过滤吗?@tigerjack89虽然Mazerunner非常酷,可以让你使用Spark(这,),但它给项目增加了很多复杂性。就我个人而言,我会试图找到一种纯密码的方法,并从那里开始。但实际上,这在很大程度上取决于您的具体要求。