图数据科学 (GDS) 集成

Neo4j Graph Data Science (GDS) 算法可以帮助您深入挖掘数据中的新见解,无论是针对节点本身,还是它们之间的连接方式。有关图算法的更多信息,请参阅《Neo4j Graph Data Science 库手册》

在场景(Scene)中的元素上运行 Graph Data Science 算法不会更改基础数据。这些分数仅在 Bloom 中临时存在。

以下简要介绍了这些算法,完整说明请参考《Neo4j Graph Data Science 库手册》

为了在 Bloom 中使用 GDS 功能,您需要安装支持版本的 GDS 插件。有关更多信息,请参阅版本兼容性以及《Neo4j Graph Data Science 库手册》→ 支持的 Neo4j 版本

Bloom 中可用的 GDS 算法

可用的算法可以分为两类:中心性(Centrality)社区发现(Community detection)。中心性算法用于衡量网络中特定节点的重要性,并发现各个节点所扮演的角色。节点的重要性可能意味着它拥有大量的连接,或者它与其他重要节点存在传递性连接。它也可以意味着通过很少的跳转即可到达另一个节点,或者它位于多个节点对的最短路径上。Bloom 中提供以下中心性算法:

  • 中介中心性 (Betweenness Centrality)

  • 度中心性 (Degree Centrality)

  • 特征向量中心性 (Eigenvector Centrality)

  • PageRank

另一方面,社区发现算法用于查找数据中的子组,并可以深入了解网络是否容易瓦解。社区发现适用于各种图,从社交媒体网络到机器学习。Bloom 中提供以下社区发现算法:

  • Louvain

  • 标签传播 (Label propagation)

  • 弱连通分量 (Weakly connected components)

度中心性 (Degree Centrality)

度中心性算法通过测量连接到节点的入度、出度或两者,来查找图中连接最多的节点。

中介中心性 (Betweenness Centrality)

中介中心性算法用于发现有影响力的节点,即那些作为场景中大多数最短路径的“交通要道”的节点。具有高中介中心性的节点是连接图的不同子部分的节点。

特征向量中心性 (Eigenvector Centrality)

特征向量中心性算法用于衡量节点的传递性影响。这意味着,一个节点要获得较高的特征向量中心性得分,它需要连接到其他节点,而这些节点本身也连接良好。特征向量中心性与中介中心性的区别在于,前者不仅基于节点与其他节点的直接关系,还基于相关节点的关系。

PageRank

PageRank 算法是一种衡量图中每个节点相关性的方法。节点的相关性基于它拥有多少来自其他节点的入度关系,以及这些源节点本身的重要性。

Louvain

Louvain 算法旨在在大型网络中查找连接紧密的节点集群。例如,它对于产品推荐非常有用。如果您知道客户购买了某个特定集群中的一件产品,他们很可能对该集群中的另一件产品感兴趣。

标签传播 (Label Propagation)

标签传播算法是查找图中社区的另一种方法。标签传播与 Louvain(均为社区发现算法)的一个区别是,前者允许一定程度的监督,即可以设置某些先决条件,从而对结果进行一定程度的控制。当您已经对数据的内在结构有所了解时,这非常有用。

弱连通分量 (Weakly Connected Components)

弱连通分量算法用于查找图中与其他部分无法连通的子图。它可用于确定您的网络是否完全连通,例如,也可用于发现供应链中的薄弱环节。

在 Bloom 中使用 GDS 算法

先决条件

要在 Bloom 中使用 GDS 算法,在启动 Bloom 之前,您需要执行两件事:

  • 安装 Graph Data Science 库插件。最简单的方法是通过 Neo4j Desktop 安装。有关更多信息,请参阅 Neo4j Desktop 手册中的安装插件部分。

  • neo4j.conf 文件中允许使用 GDS。这可以手动完成或通过 Neo4j Desktop 完成。dbms.security.procedures.unrestricted 设置需要包含 Bloom 和 GDS(以及已指定的其他项),如下所示: dbms.security.procedures.unrestricted=jwt.security.*,bloom.*,gds.*,apoc.*

    需要取消注释 dbms.security.procedures.allowlist 设置,并同样需要包含 Bloom 和 GDS(如前所述,包括其他项),如下所示: dbms.security.procedures.allowlist=apoc.coll.*,apoc.load.*,gds.*,bloom.*,apoc.*

完成上述配置后,您可以启动 Bloom 并开始搜索,将数据导入场景以运行算法。

另外,如果您连接到 Neo4j Aura 实例,GDS 算法可以通过无服务器(serverless)选项在单独的计算环境中运行,或者使用 Graph Analytics 插件在与数据库相同的 AuraDB 实例中运行(共享资源)。这在您于 Neo4j Aura 控制台中创建 AuraDB 实例时进行选择。有关更多信息,请参阅Neo4j Aura → 创建实例

louvain

运行算法

通过场景左上角的 GDS 按钮可以访问 GDS 算法。选择合适的算法后,您可以选择在场景中的所有元素上运行它,或者指定要运行的节点类别和/或关系类型。此外,您还可以选择要遍历的关系方向。这些选项可通过 GDS 面板中的“设置”(Settings)按钮进行访问。

应用所选算法不会立即更改场景中的任何内容。您可以检查每个节点以查看其分数,但为了使结果清晰可见,请应用基于规则的样式。这直接在 GDS 面板中完成。中心性算法基于数值范围,可以进行大小缩放或颜色渐变,而社区发现算法使用唯一值,并提供独特的颜色来设置节点样式。

degree centrality