(本文部分内容来自Neo4j.com: https://neo4j.com/blog/announcing-graph-native-machine-learning-in-neo4j/ )

作为全球领先的图数据库平台软件开发者,Neo4j率先发布全球第一个“原生图机器学习库” GDS :Graph Data Science 版本1.4。在这一版本中,除了增加更多图算法外,还第一次引入并实现了面向“图学习”(Graph Machine Learning)的企业级“图嵌入”(Graph Embedding)和图表示的机器学习模型算法过程。下面我们来逐一看一下GDS中到底有哪些“干货”吧。

1、原生(Native)属性图(Label PropertyGraph)

现实世界可以用属性图(Property Graph),即包含节点属性的图结构来描述和存储。例如,在一个社交网络中,人、地方、活动等可以用节点来表示,人群之间的关系诸如亲属、朋友、同事等则可以用关系来表示;代表“人”的节点的属性则可以是姓名、出生年月、性别等,代表“朋友”的关系的属性则可以有“成为朋友的日期”等。

从上面的简单例子可以看出,以属性图表示复杂的网络其最大的优点是自然、简洁、易于理解;而基于原生(Native)图数据库存储和处理网络则能为图的遍历提供最佳的查询性能。在原生的图数据库中,数据以图的方式存储、查询、展现。下图对不同的存储模式做了比较。

基于属性图的原生图计算和学习 - Neo4j GDS介绍

 

关于图的模式,还有另外一种流行的标准是RDF(Resource Description Framework - 资源描述框架),这个是W3C制订的标准,使用三元组(可以简单地理解为主-谓-宾)表示和存储数据,在语义网络(Semantic Web)、本体建模和知识表示中有着广泛的应用。

2、图嵌入(Graph Embedding)

属性图是一种结构化数据(节点-关系-属性),然而现有的机器学习算法过程(例如神经元网络)需要向量化数据(例如一个1x5的向量(1,1,0,0,1) )作为输入。直白地说,就是需要把下面的一个社交网络(来自著名的Karate Graph)转换成右边的二维坐标平面中分布的点。这个转换过程就是“图嵌入”。

基于属性图的原生图计算和学习 - Neo4j GDS介绍

我们再用数学的术语来描述一下上面的过程。真实的图(网络)往往是高维、难以处理的;图嵌入算法的发明,作为降维技术的一部分将图的节点嵌入到一个D维向量空间中,从而方便机器学习算法实现诸如分类的操作。好的图嵌入过程会将连接的(或者类似的)节点在D维空间中集聚在一起;而没有连接、或者差异很大的节点则分布很远。

Neo4j GDS提供了三种流行的图嵌入算法过程:

提供了三个嵌入选项,这些选项可学习图拓扑以及在某些情况下的节点属性,以计算更准确的表示形式:

1)Node2Vec

  • 这可能是最著名的图嵌入算法。它使用随机游走对图进行采样,并使用神经网络学习每个节点的最佳表示

2)FastRP

  • 最新的图嵌入算法,使用线性代数将图投影到较低维空间中。在GDS 1.4中,我们扩展了之前版本的实现以支持节点特征和关系的方向。
  • FastRP比Node2Vec快7万5千倍,而且计算结果同样准确!

3)GraphSAGE:

  • 这是一种通过图卷积神经网络(Graph Convolutional Neural Network)在图上使用归纳表示学习的嵌入技术,其中对图进行采样以学习可以预测嵌入的函数(而不是直接学习嵌入)。这意味着可以只学习图的一部分(子图),然后通过表示函数来获取新数据、并在图更新时进行连续预测(而不是在每次图中节点或者边有更新后不得不对全图进行学习!)

下表是三种算法的比较:

基于属性图的原生图计算和学习 - Neo4j GDS介绍

3、机器学习模型目录(ML Model Catalogue)

GraphSAGE通过训练模型以预测图中未知的部分、或者新的数据。

为了真正利用GraphSAGE的功能,需要提供模型目录功能以存储和引用各个预测模型。在Neo4j中,这些模型目录保存在“分析工作区”中,目录中其中包含模型版本信息、对哪些数据进行了训练、时间戳以及模型名称。

如果要使用某个模型时,可以将模型的名称、以及想要应用的命名子图作为参数提供给GraphSAGE。

基于属性图的原生图计算和学习 - Neo4j GDS介绍

4、GDS中的图算法

除了图嵌入,GDS中还提供5大类、近50种重要的图算法。

基于属性图的原生图计算和学习 - Neo4j GDS介绍

5、从图查询到图学习 - Neo4j GDS的未来

Neo4j认为,图最初的用途是解决查询的效率,在建立了诸如知识图谱的应用后,可以极高的效率和响应时间对大规模的图(包含节点和关系)进行查询。图嵌入的学习和表示是图数据科学的后续阶段,而最终的目标是实现原生的图学习网络。

基于属性图的原生图计算和学习 - Neo4j GDS介绍

GDS可以运行在Neo4j流行的开源社区版,同时自身也是开源的。社区成员可以从这里下载GDS的源代码:https://github.com/neo4j/graph-data-science 

我们会在后续文章中深入介绍GDS的过程和应用,请继续关注。

相关文章:

  • 2022-01-23
  • 2021-07-01
  • 2022-12-23
  • 2022-01-11
  • 2022-12-23
  • 2021-12-27
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-09-05
  • 2021-07-23
  • 2021-08-29
  • 2021-08-30
  • 2021-06-14
  • 2021-08-18
相关资源
相似解决方案