neo4j - 我应该使用哪个来在 Neo4j 之上实现协同过滤?

标签 neo4j recommendation-engine collaborative-filtering

我正在开发一个项目(社交网络),该项目使用 Neo4j (v1.9) 作为底层数据存储和 Spring Data Neo4j。 我正在尝试向项目添加标签系统,并且正在寻找使用协作过滤策略有效实现标签推荐的方法。 经过大量研究后,我提出了以下选项:

  1. 赛弗。它是 Neo4j 使用的嵌入式查询语言。不需要其他框架,也许计算时间比其他框架更好。也许我可以使用 Spring Data Neo4j 轻松实现查询。
  2. Apache ·马胡特。它提供的机器学习算法主要集中在协同过滤、聚类和分类领域。但是,它不是为图形数据库设计的,并且可能会很慢。
  3. Apache 吉拉夫。 Google Pregel 的开源版本。
  4. Apache Spark 。它是一个快速、通用的大规模数据处理引擎。
  5. reco4j。这是迄今为止最合适的解决方案,但该项目似乎已经死了。
  6. Apache Spark GraphX + Mazerrunner。建议者the answer @johnymontana。我正在记录它。主要问题是不知道是否支持协同过滤。
  7. Graphaware Reco。由 @ChristopheWillemsen 在评论中建议。来自官方网站

is an extensible high-performance recommendation engine skeleton for Neo4j, allowing for computing and serving real-time as well as pre-computed recommendations.

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

那么,您有什么建议以及为什么?请随意建议上面未列出的其他有趣的框架。

最佳答案

Cypher 在本地遍历方面非常快,但并未针对全局图操作进行优化。如果您想要计算所有用户对之间的相似性指标,那么使用图形处理框架(如 Apache Spark GraphX)会更好。有一个项目叫Mazerunner连接 Neo4j 和 Spark,您可能想看看。

对于纯 Cypher 方法,herehere最近有几篇博客文章展示了 Cypher 查询推荐。

关于neo4j - 我应该使用哪个来在 Neo4j 之上实现协同过滤?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30579770/

相关文章:

hadoop - Mahout 终止错误

javascript - 如何使用 JavaScript 实现访问内存 Neo4j 驱动程序?

neo4j:具有最小关系属性方差的最短路径

java - Spring Data Neo4j - 关系实体的(所有)属性

algorithm - 商品到商品的亚马逊协同过滤

recommendation-engine - 如何在推荐引擎中添加用户和项目元数据以及哪个python开源工具可以提供此功能

algorithm - 协作或结构化推荐?

Neo4j 3.0.6 和 neo4j-ogm 2.0.5 - 在数据库上创建重复数据

recommendation-engine - 如何评估基于内容的推荐系统

data-mining - 推荐系统的数据集