引言

Neo4j 图数据科学 (GDS) 库提供了高效实现的并行版本,常用的图算法以 Cypher 过程的形式公开。此外,GDS 还包括机器学习管道,用于训练预测性监督模型以解决图问题,例如预测缺失的关系。

API 层级

GDS API 包含 Cypher 过程和函数。这些都存在于三个成熟度层级之一中

生产级

表示该功能已针对稳定性和可扩展性进行了测试。

Beta 版

表示该功能是生产级层级的候选者。

Alpha 版

表示该功能是实验性的,并且可能随时更改或删除。

操作参考 中,根据其层级列出了 GDS 中的所有操作。

算法

图算法用于计算图、节点或关系的指标。

它们可以提供图中相关实体(中心性、排名)或内在结构(如社区)(社区检测、图分区、聚类)的见解。

许多图算法是迭代方法,它们经常使用随机游走、广度优先或深度优先搜索或模式匹配来遍历图进行计算。

由于随着距离增加,可能路径呈指数增长,因此许多方法的算法复杂度也很高。

幸运的是,存在利用图的某些结构、记忆化已探索的部分和并行化操作的优化算法。在可能的情况下,我们已应用这些优化。

Neo4j 图数据科学库包含大量算法,这些算法在 算法 章节中进行了详细介绍。

算法特性

GDS 中的算法有特定方式来利用其输入图的各个方面。我们称这些为算法特性

算法特性可以是

  • 支持的:算法利用该特性并产生明确的结果;

  • 允许的:算法不利用该特性,但它仍然会产生结果;

  • 不支持的:算法不利用该特性,并且在给定具有该特性的图时,将返回错误。

存在以下算法特性

有向

该算法在有向图上是明确定义的。

无向

该算法在无向图上是明确定义的。

异构

该算法能够区分不同类型的节点和/或关系。

异构节点

该算法能够区分不同类型的节点。

异构关系

该算法能够区分不同类型的关系。

加权关系

该算法支持配置以设置用作权重的关系属性。这些值可以表示成本时间容量或某些其他特定于域的属性,通过 relationshipWeightProperty 配置参数指定。默认情况下,该算法会认为每个关系同等重要。

图目录

为了尽可能高效地运行算法,GDS 使用一种专门的图格式来表示图数据。因此,必须将图数据从 Neo4j 数据库加载到内存中的图目录中。加载的数据量可以通过所谓的图投影来控制,图投影还允许例如根据节点标签和关系类型进行过滤,以及其他选项。

更多信息请参见 图管理

版本

Neo4j 图数据科学库提供两个版本。默认情况下,GDS 将作为社区版运行。要解锁企业版功能,需要有效的 Neo4j 图数据科学企业版许可证文件。有关如何配置许可证,请参见 GDS 企业版