简介

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

API 层级

GDS API 由 Cypher 过程和函数组成。它们中的每一个都处于三个成熟度层级之一:

生产级 (Production-quality)

表示该功能已在稳定性和可扩展性方面经过测试。

测试版 (Beta)

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

Alpha 版 (Alpha)

表示该功能属于实验性质,可能随时会更改或删除。

操作参考列出了 GDS 中所有按其层级分类的操作。

算法

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

它们可以提供有关图中相关实体(中心度、排名)或固有结构(社群检测、图划分、聚类)的见解。

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

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

幸运的是,现有的优化算法利用了图的特定结构,通过记忆化(memoize)已探索的部分并并行化操作来提高性能。在可能的情况下,我们都应用了这些优化。

Neo4j 图数据科学库包含大量算法,详见算法章节。

算法特征 (Algorithm traits)

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

算法特征可以是:

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

  • 允许的 (allowed):算法不利用该特征,但仍能产生结果;

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

存在以下算法特征:

有向

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

无向

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

异构性 (Heterogeneous)

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

异构节点

该算法具有区分不同类型节点的能力。

异构关系

该算法具有区分不同类型关系的能力。

加权关系

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

节点属性

该算法支持配置以设置要使用的节点属性。这些值可以表示特征权重容量或其他领域特定的属性,通过不同的参数指定,例如 nodeWeightPropertyseedProperty 配置参数。

图目录 (Graph Catalog)

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

更多信息请参见 图管理

版本

Neo4j 图数据科学库有两个版本。默认情况下,GDS 以社区版 (Community Edition) 运行。要解锁企业版 (Enterprise Edition) 功能,需要有效的 Neo4j 图数据科学企业版许可证文件。有关如何配置许可证的信息,请参阅 GDS 企业版

© . This site is unofficial and not affiliated with Neo4j, Inc.