简介

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

API 层级

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

生产质量

表明该功能已在稳定性与可伸缩性方面经过测试。

测试版

表明该功能是生产质量层级的候选。

Alpha 版

表明该功能是实验性的,随时可能更改或移除。

操作参考》列出了 GDS 中所有操作及其所属层级。

算法

图算法用于计算图、节点或关系的度量。

它们可以提供关于图中相关实体(中心性、排名)或固有结构(如社区(社区检测、图分区、聚类))的洞察。

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

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

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

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

算法特性

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

算法特性可以是:

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

  • 允许:算法不利用该特性但仍产生结果;

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

存在以下算法特性:

有向

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

无向

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

异构

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

异构节点

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

异构关系

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

加权关系

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

图目录

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

欲了解更多信息,请参阅《图管理》。

版本

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

© . All rights reserved.