图神经网络简介

图神经网络(Graph Neural Network)算法是将深度神经网络的运算(如卷积、梯度计算)与迭代图传播结合在一起:每个顶点的特征都是由其邻居顶点的特征结合一组深度神经网络来计算。但是, 现有的深度学习框架不能扩展和执行图传播模型,因此缺乏高效训练图神经网络的能力,并且现有框架一般采用数据/模型并行来分布式训练深度神经网络,这种并行计算方法难以直接应用于图神经网络,因此限制了训练大规模图神经网络的能力。

而现有的图处理系统虽然能够表示迭代图传播模型,并能有效支持大规模图的迭代计算,但是缺乏支持神经网络计算的关键能力,如张量抽象、自动微分等。因此,为了支持图神经网络在大规模图上的应用,以及对更复杂图神经网络结构的探索,开发针对图神经网络的训练系统是十分有必要的。

目前,有10种具有代表性的图神经网络框架:DGLPyTorch GeometricNeuGraphEnGNEulerPSGraphAliGraphRocAGLPGL

  • DGL是易于使用,高性能且可扩展的Python库,用于图结构的深度学习,能够与主流的深度学习框架集成,例如Tensorflow、PyTorch、MXNet。
  • PyTorch Geometric是基于PyTorch构建的深度学习库,用于处理非结构化数据的深度学习。
  • NeuGraph是一种将数据流系统和图处理系统结合起来训练图神经网络的框架, 它构建在现有的数据流引擎之上,使用Python和C++作为开发语言。
  • EnGN是一种以边为中心,专门用于大规模图神经网络训练的加速器。
  • Euler与PSGraph是一个与深度学习工具集成的大规模分布式图学习框架,支持用户在数十亿点数百亿边的图上进行模型训练。
  • AliGraph是由阿里巴巴团队开发的采样建模训练一体化的图神经网络平台。
  • Roc是一种用于快速图神经网络训练的分布式多GPU框架。
  • AGL是用于工业用途图学习的集成系统, 利用传统基础架构(MapReduce、参数服务器)实现了容错性和一致性。
  • PGL (paddle graph learning)是由百度开发的基于PaddlePaddle的高效灵活的图学习框架。

图神经网络框架介绍

1. DGL

DGL是用于图结构深度学习的Python库,通过与主流的深度学习框架集成,能够实现从传统的张量运算到图运算的自由转换。DGL提供基于消息传递的编程模型来完成图上的计算,结合消息融合等优化技术使系统达到了比较好的性能。
DGL
以下是DGL的一些主要特点:

  • 灵活的图表示:DGL可以处理各种类型的图数据,包括有向图、无向图和多重图。同时,它支持不同类型的节点和边上的特征数据。
  • 易于使用的API:DGL提供了简单易用的API,使用户能够方便地创建图和图神经网络,并进行训练和评估。
  • 高效的计算:DGL使用高效的图计算引擎,使得对大规模图进行训练和推理成为可能。它还支持GPU加速,以加快计算速度。
  • 可扩展性:DGL可以与其他深度学习框架(如PyTorch和TensorFlow)进行无缝集成,从而使得用户能够轻松地将图神经网络与其他深度学习模型结合起来。
  • 社区支持:DGL有一个活跃的社区,包括开发人员和用户,他们共同致力于推动图神经网络的研究和应用。

DGL的API主要有两部分:

  1. 消息函数: m k t = ϕ e ( e k t − 1 , v r k t − 1 , v s k t − 1 ) m_k^t=\phi^e(e_k^{t-1}, v_{rk}^{t-1}, v_{sk}^{t-1}) mkt=ϕe(ekt1,vrkt1,vskt1)
  2. 累和函数:
    累和函数

其中 e k e_k ek代表边k的特征向量, v i v_i vi代表顶点i的特征向量, v r k v_{rk} vrk是边k的源顶点特征向量, v s k v_{sk} vsk是边k的目的顶点特征向量, m k m_k mk代表边k上的消息,t表示迭代次数, ϕ e \phi^e ϕe是一个消息函数,定义在边上,通过将边的特征和两端的顶点特征组合来生成“消息”. ϕ v \phi^v ϕv是在顶点上定义的更新函数,通过使用reduce操作汇总其传入的消息来更新顶点特征。在图神经网络种,这些功能由神经网络模块进行参数化,⊕可以是求和运算,也可以是均值,最大值、最小值或LSTM网络,s.t. rk=i表示对目的顶点为 i i i的所有消息进行聚合操作。

消息张量的大小正比于图中边的数量,因而当图增大时,消息张量消耗的内存空间也会显著上升。为了避免生成消息张量带来的额外存储开销,DGL实现了消息融合技术,将send函数和recv函数合并成了 s e n d a n d r e c v ( E , ϕ e , ⊕ , ϕ v ) send_and_recv(E, \phi^e,⊕, \phi^v) sendandrecv(E,ϕe,,ϕv)

总之,DGL是一个功能强大、易于使用和可扩展的图神经网络框架,它可以帮助用户快速构建、训练和评估各种类型的图神经网络模型。

2. PyTorch Geometric

PyTorch Geometric,是一个基于PyTorch构建的深度学习库,可以对非结构化数据进行建模和训练。该库利用专用CUDA内核实现了高性能训练。

PyTorch Geometric (PyG) 是一个基于 PyTorch 的图神经网络框架,它提供了高效、灵活和易用的工具来处理图数据,支持图卷积网络 (GCN)、图注意力网络 (GAT)、图卷积网络的变种 (e.g., GIN, GraphSAGE) 等多种图神经网络模型,并且提供了大量的图数据集和预处理器。
PyG
PyTorch Geometric提供一个简单的消息传递API,将卷积算子推广到不规则域,具体表示为:
卷积算子
其中, ⊕表示可微置换不变函数,如求和、均值或最大值。整个模型可以通过gatherscatter顶点特征以及对其进行矢量化的元素计算来实现.。通过这个消息传递模型,用户只需要定义消息函数和更新函数,以及选择聚合方案⊕,就可以设计新的图神经网络模型。该库采用COO格式编码边索引,一个维度表示源顶点,另一个维度表示目标顶点,这种存储格式非常适用于消息传递模型,能够快速获取顶点对应的源顶点的信息。与通过矩阵乘法实现的方法相比,使用消息传递模型能够达到更好的性能。

以下是 PyTorch Geometric 的主要特点:

  • 高效性: PyTorch Geometric 充分利用了 PyTorch 的 GPU 加速和自动微分功能,具有高效的计算能力和灵活性,可以在大规模图数据上进行快速训练。
  • 灵活性: PyTorch Geometric 提供了灵活的图数据处理工具,允许用户自定义图数据的结构和特征,支持各种图形数据的表示形式(如邻接矩阵、边列表等),也提供了许多预处理器(如最大池化、度剪枝等)来帮助用户更好地处理图形数据。
  • 易用性: PyTorch Geometric 非常易于使用,可以与 PyTorch 的其他模块(如 nn.Module 和优化器)无缝集成,用户可以用相对简单的代码来定义和训练图神经网络模型。
  • 可扩展性: PyTorch Geometric 提供了大量的开箱即用的图数据集和图神经网络模型,还可以方便地自定义和扩展。

总之, PyTorch Geometric 是一个功能强大、灵活易用、高效可扩展的图神经网络框架,可以帮助用户处理各种复杂的图形数据,并训练出高效的图神经网络模型。

3. NeuGraph

NeuGraph提出了一种新的框架,根据图神经网络是将标准神经网络与迭代图传播结合起来的这一特点,NeuGraph在数据流中引入以顶点为中心的消息传递模型,将图模型和数据流模型结合,来支持并行图神经网络计算。NeuGraph还将图计算的优化方法如数据分区、调度,引入到了数据流框架中,来支持高效的图神经网络训练。

NeuGraph提出了一种新的处理模型SAGA-NN,它将数据流和顶点编程模式相结合来表示图神经网络的计算SAGA-NN将前向计算分为4个阶段: ScatterApplyEdgeGatherApplyVertex。ApplyEdge和ApplyVertex提供了两个用户定义函数,供用户在边和顶点上声明神经网络计算。ApplyEdge函数定义每个边上的计算,以edge和W作为输入,其中edge是指边数据,W包含图神经网络模型的可学习参数。ApplyVertex函数定义了顶点的计算,它以顶点张量、顶点聚合累积量和可学习参数W作为输入,并在应用神经网络模型后返回新的顶点表示。Scatter和Gather执行数据传播和收集,由系统隐式触发和执行。SAGA-NN中的顶点程序采用以顶点为中心的编程模型来表达图神经网络的计算,对图神经网络中的通用阶段进行建模,并在图计算和数据流调度中实现优化。
NeuGraph
NeuGraph在数据流抽象的基础上引入了特定的图分区方法,可以解决GPU内存的物理限制问题。通过2D图分区方法,NeuGraph将顶点数据分割成P个大小相等的不相交顶点块,并将邻接矩阵分为P×P个边块。通过将图数据分割成块,在逐个处理边块信息时,只需要边块所对应的源顶点块和目标顶点块即可。

在训练过程中, 与顶点块或边块相关的一些中间特征数据将用于反向传播。为了节省GPU内存,它们在前向计算期间交换到主机内存,在反向传播期间交换回。

NeuGraph为降低主机和GPU内存之间的数据传输做了一系列优化:在处理边块E时,NeuGraph设计了一个过滤器,来过滤每个顶点块内的必要顶点,并将其传输到GPU中;通过一种局部感知的图划分算法,NeuGraph将连接同一顶点的边尽可能地压缩到一个块内,通过这种方法,NeuGraph可以获得更好的顶点数据访问局部;NeuGraph设计流水线调度进一步重叠数据传输和计算,以隐藏传输延迟。

NeuGraph把常见的GNN分为三类:图卷积、图循环、图注意力网络。进而提出了SAGA-NN (Scatter-ApplyEdge-Gather-ApplyVertex with Neural Networks)编程模型,其中SAGA部分属于图计算的消息传递,而两个A则是深度学习神经网络的应用。
SAGA
由于GCN相比起传统的图算法(在图计算层面上)要简单很多,就是对全图不断进行遍历,因此Scatter和Gather是确定的,而两个Apply阶段则是用户自定义的函数。(所以似乎NeuGraph没法实现GraphSAGE,因为GraphSAGE的邻域是由一定策略采样出来的,而不是取全部邻域)。

4. EnGN

EnGN是一种处理大规模图神经网络的专用加速器架构,并且EnGN提出了一种使用专用架构的以边为中心的数据流模型EnGN将常见的图神经网络计算模式抽象为特征提取,聚合和更新3个阶段。在特征提取阶段,神经网络来压缩图中每个顶点的属性。聚合阶段通过聚合在特征提取中生成的每个顶点的邻居属性,来产生统一的输出特征,其中聚合函数的选择包括各种算术运算,例如max,min和add。在传播迭代结束时,更新阶段会利用学习到的参数进一步压缩聚合阶段中获得的输出特征,并在输出之前将非线性激活函数或GRU/LSTM函数应用于图的每个顶点。
EnGN

在以边为中心的数据流模型基础上,EnGN集成了一个神经图处理单元(NGPU),能够在统一的体系结构中执行特征提取,聚合和更新操作。它具有一个PE数组,每个PE单元都包含一个本地寄存器,用于存储临时结果并充当PE间通信的中介。EnGN提出了图属性感知(GPA)数据流,来分离顶点的输入属性和硬件计算结构。以这种方式,PE阵列的同一列中的每个PE负责顶点属性的单个维,而同一行中的每个PE处理单个顶点。输入顶点属性的尺寸变得独立于硬件体系结构,并且可以连续地注入到PE阵列中,而与阵列大小和属性尺寸无关。通过这种方式,处理单元可以处理具有任意尺寸属性的顶点。RER (ring-edge-reduce)阵列同一列中的每个PE连接到环形网络中的邻居,同一列中的每个PE仅与其两个最近的邻居(北, 南)通信。PE将其数据发送到北部邻居,并接收从南部邻居发送的数据以进行汇总。以此方式,PE可以基于环型数据流从边解析的控制信号来选择要聚合的相关顶点。

5. Euler

Euler是集成了深度学习系统TensorFlow的基于CPU的分布式图神经网络框架,支持图分割和高效稳定的分布式训练,可以轻松支持数十亿点、数百亿边的计算规模。

Euler系统抽象为图引擎、图操作算子、算法实现3个部分,可以快速地扩展一个图学习算法。该系统整体可以分为3层:最底层的分布式图引擎,中间层图语义的算子,高层的图表示学习算法

  • 在底层图引擎部分,Euler采用了分布式存储的架构,整个图在引擎内部用哈希方法切分为多个子图,每个计算节点被分配一个或几个子图。在进行迭代图广播时,顶层操作被分解为多个对子图的操作,并由各个计算节点并行执行,充分利用了各个计算节点的计算能力。
  • 在中间层Euler提供了多种图操作的算子,如全局带权采样点和边,基于给定顶点的邻居操作等等。利用灵活的图操作算子,Euler不仅支持传统的以图为中心的学习模式,且可以把基于图的学习方法结合到传统的学习任务中,实现端到端训练。
  • Euler在算法层内置了多种常见算法以及几种创新算法,如Scalable-GCN,一种加速GCN训练的方法。

6. AliGraph

AliGraph是由阿里巴巴开发的图神经网络系统,AliGraph总体上由5层组成,如图,其中存储层、采样层和操作层构成了系统的基础,算法层和应用层构建在前3层的基础之上。
AliGraph系统架构
AliGraph建立在分布式环境中,因此整个图被划分并分别存储在不同的节点中。

图分区的目标是最大程度地减少顶点在不同计算节点中的交叉边的数量。系统实现了4种内置的图形分区算法:METIS顶点切割边缘切割分区二维分区流式分区策略。除此之外,为了进一步降低通信开销,AliGraph提出了一种在本地缓存重要顶点邻居的优化方法,但顶点邻居过多会导致存储成本增加。

通过对顶点重要程度的度量,AliGraph可以在通信成本和存储成本之间做到很好的平衡。并且AliGraph证明了只需要缓存少量重要顶点即可实现通信成本的显著降低。
AliGraph

7. Roc

Roc是用于快速图神经网络训练的分布式多GPU框架。其性能提升得益于Roc的图分区和内存管理优化实现。系统利用多计算节点多GPU的计算资源在完整的现实世界图上训练大型图神经网络模型,来达到更好的性能和可扩展性。
Roc

图神经网络算法将计算密集型深度神经网络操作与数据密集型图传播混合在一起,因此在分布式环境中实现负载均衡的图分区是非常困难的。Roc使用在线线性回归模型来对图分区进行建模。

  • 在图神经网络架构的训练阶段,Roc建立了一种成本模型,用于预测在输入图上执行图神经网络操作的执行时间,成本模型既包含与图相关的部分,如图中顶点和边的数量,也包含与硬件相关的部分,如执行该操作的GPU内存访问的次数。

  • 在图神经网络的每次训练迭代期间,Roc使用成本模型来预测计算图分区,并使用图分区的结果来并行化训练。在每次训练迭代结束时,子图的实际运行时间将发送回Roc图分区模块,该程序通过最小化实际运行时间与预测运行时间之间的差异来更新成本模型

  • Roc还将GPU内存管理形式化为成本最小化问题:给定输入图,图神经网络结构和GPU设备,找到张量子集以缓存在GPU内存中,最大程度地减少CPU和GPU之间的数据传输。为了快速求解成本模型,Roc引入了动态规划算法以快速找到全局最优解。

8. PSGraph

PSGraph使用Spark和PyTorch作为资源管理和计算平台,使用参数服务器架构作为分布式训练架构。PSGraph通过参数服务器为Spark提供支持,以有效地训练数十亿规模的图数据,并将PyTorch集成到Spark中来实现神经网络的训练。
PSGraph
PSGraph由参数服务器、计算引擎和主节点构成。参数服务器用于存储高维数据和模型,它支持不同的数据结构,除此之外,PSGraph还为用户提供实现新数据结构的接口,支持按行索引和列索引的数据分区方式,提供不同的同步协议以控制工作进程之间的同步,以及实现多种常用运算符来操作参数服务器上的数据,每个参数服务器定期将本地数据分区存储到HDFS。计算引擎由Spark和PyTorch实现,用于存储数据、计算并创建参数服务器代理来管理Spark和参数服务器之间的数据通信。主节点负责资源分配、任务监视和故障恢复。
PSGraph总体架构

9. AGL

由阿里的蚂蚁金服团队推出的大规模图机器学习系统。在具有六十亿节点、三千亿边的网络中,训练两层GAT耗费14小时,完成整个图的推断需要1.2小时。
AGL
AGL使用了大规模并行框架(如MapReduce、Parameter Server)来设计其分布式组件,GraphFlatGraphTrainerGraphInfer。同样使用消息传递机制,在GraphFlat组件中,通过聚合K跳邻居的节点信息来生成目标节点的表示。通过邻居聚合,将大规模的图进行分解,每次导入一个或者批量的点来缓解内存的压力。由于聚合的邻居信息提供了充分的信息量,所以节点之间相互独立。即在GraphTrainer中,每一个worker只需处理自己的部分,所以不再需要额外的通信开销。除此之外,训练过程还包括许多优化来提高训练效率,如训练管道、网络剪枝、边的分割等。在推断阶段,GraphInfer提供了一种分层模型切片,利用MapReduce管道以从较低层推断到较高层具体来说,第k层的Reduce阶段载入第k层的模型切片,合并上一层的聚合in-edge邻居的embedding从而生成第k层的embedding,然后将这些中间embedding通过out-edge传到目标节点,为下一Reduce阶段做好准备。

10. PGL

PGL是由百度开发的基于PaddlePaddle的高效灵活的图学习框架。PGL实现了高度并行的图神经网络消息传递机制,并依托于自研的分布式图引擎以及大规模参数服务器PaddleFleet,可以支持十亿节点百亿边的超大规模图训练。
Paddle Graph Learning
PGL总体上由3层组成,最底层分布式图引擎分布式图训练模块以及分布式参数服务器PaddleFleet

  • 底层分布式图引擎以图切片的形式存储超大规模图,提供图信息访问、子图采样等操作算子,由上层模型调用。
  • PGL预置了丰富的图学习模型,这些模型涵盖了同构与异构、图表示学习与图神经网络等样例。
  • 分布式参数服务器PaddleFleet提供了一种高效的参数更新策略:GeoSSD在全异步的条件下进行参数更新,降低了节点间通信对训练速度的影响。

PGL采用类似于DGL的消息传递范式构建图神经网络的接口,能够帮助用户快速构建自定义图神经网络,用户只需要编写send和recv函数即可。目前,PGL提供两种聚合方法。一种是Scatter-Gather,用于常规聚合计算。另一种是基于LodTensor特性实现的并行通用的消息聚合方法。PGL将消息组织为PaddlePaddle中的LodTensor,将消息作为可变长度序列进行拼接,并引入一个索引数据结构来记录张量序列,利用LodTensor的特性可以快速的执行并行聚合。此外,PGL还支持异构图学习,可以对包含多个节点类型和多个边类型的异构图进行建模,并且可以描述不同类型之间的复杂连接。

图神经网络框架对比分析

从系统架构、处理模型、图分区策略、通信优化策略、以及社区活跃度与系统易用性方面,对现有图神经网络系统进行分析和对比,并从多个维度对系统的特点进行总结,以表格的形式清晰的展示系统的共性与不同。

1. 系统架构

DGL和PyTorch Geometric都是结合现有的深度学习框架来实现的,并且针对图神经网络的特点做了多种优化,达到了很好的性能。结合现有深度学习框架来实现的系统,更加方便用户使用,能够帮助其更快地实现图神经网络模型。但结合现有深度学习框架来实现的系统,在针对图操作的优化上有很多局限性。
NeuGraph采用了一种新的架构,将图模型和数据流模型结合起来,以支持高效的图神经网络训练,这种架构既弥补了现有数据流引擎不能有效地支持图计算的缺点,又弥补了图引擎不能支持数据流编程模型的缺点。
EnGN在统一的处理模型基础上,开发了一个定制的EnGN加速器,它集成了一个神经图处理单元(NGPU),可以在统一的体系结构中执行特征提取,聚合和更新操作。EnGN的专用加速器突破了硬件结构的限制,相比于其他系统配备的多个CPU或GPU,大大降低了成本和能源开销。
AliGraph、Euler和PGL的架构类似,都采用分层架构,构建于现有数据流框架之上,并且都构建在CPU平台上
Roc将图神经网络的计算分布在多个计算节点上,每个计算节点可以包含多个GPU,每个计算节点在子图上执行图神经网络的训练,并与CPU通信来获得输入张量并保存中间结果。Roc采用分布式多GPU的架构不仅解决了单节点系统对于大规模图的限制,并且比基于CPU的系统更高效。
AGL、PSGraph都是利用现有大数据处理系统和参数服务器的并行体系结构来组建的基于CPU的分布式图神经网络训练框架,这些系统具有良好的容错性和可伸缩性。

2. 处理模型

DGL和PyTorch Geometric通过使用面向图的消息传递接口包装深度学习系统,来支持针对图神经网络的编程。这种消息传递模型很好地表示了图上的数据流动,整个模型分为两步

  • 第1步:“消息”生成操作,这个操作定义在每个边上,通过将边的特征与两端顶点特征组合为每一条边生成一条“消息”。
  • 第2步:更新操作,定义在每个顶点上,通过汇总顶点入边传入的消息来更新顶点特征。通过系统提供的消息传递接口,用户可以快速实现图神经网络的原型制作。

PGL也采用消息传递范式构建图神经网络的接口,并提供多种聚合方法,提高了并行处理效率
NeuGraph提出了一种新的处理模型SAGA-NN,提高了在顶点和边上执行批量操作的灵活性,提供了在图计算和数据流调度中实现优化的机会,提高了系统性能。
EnGN提供一种以边为中心的处理模型,将图神经网络的计算抽象为特征提取,聚合和更新3个阶段。EnGN与其他3个系统不同,在处理模型基础上定制了针对图神经网络的加速器,不依赖于现有的深度学习系统,并拥有独特的数据流处理方法。EnGN优化了顶点数据和边数据移动的内存访问模式。对于大图中的源顶点数据访问,采用图切片技术,并确保对源节点的访问仅引起对连续内存地址的访问。对于聚合和更新阶段中的随机目标顶点访问,EnGN利用哈希边数据布局和多级缓存方法来避免写冲突并提高片上缓冲器中的数据命中率

3. 图分区策略

平衡的图分区是实现分布式图神经网络系统的关键之一

  • Euler采用简单的哈希方法将图的顶点进行分片,这种分片方式使各个节点拥有目标顶点的数量基本一致,但是在每个顶点的子图中拥有的邻居数量是不同的,所以每个节点的计算负载并不均衡
  • AliGraph则提供了多种内置的图分区算法供用户选择,比如适合处理稀疏图的METIS方法,适合稠密图的点割和边割方法,这种方法虽然为用户提供了多种选择,但需要用户自己去判断使用哪种分区方式,给用户造成很大不便。
  • Roc采用一种在线线性回归模型来优化图分区。这种基于线性回归的图分区方法在图神经网络系统中能够达到比传统分区更好的性能。

4. 通信优化策略

针对通信开销影响分布式系统性能的问题,Euler采用的是缓存对应顶点k阶内的邻居顶点信息,这种方式虽然直接避免了计算节点之间的通信,但是造成了很严重的内存浪费,并且在幂律分布的图中还会使各个计算节点之间负载不均衡。AGL采用的策略和Euler相同,但是AGL提出了重新索引的策略来均衡负载

AliGraph提出了一种缓存重要顶点的邻居的方法来降低通信开销,同时提出了一种对顶点重要性的度量标准,既能有效减低通信开销,又防止产生巨大的存储成本,避免资源浪费。

ROC引入了代价模型,可以最大程度地减少CPU和GPU之间的数据传输。这种动态的方法突破了手动优化的局限,将影响通信的多种因素综合考虑,从而更好的降低通信成本,提高系统性能。

PGL的分布式参数服务器提供了一种高效的参数更新策略:GeoSSD,在全异步的条件下进行参数更新,并重叠模型训练与节点通信,在保证模型效果的前提下提升了训练效率。

5. 社区活跃度与框架易用性

PyTorch Geometric、DGL、AliGraph、Euler、PSGraph、PGL为开源系统,这里的社区活跃度以GitHub上讨论区的数量为标准,这其中最活跃的社区为PyTorch Geometric
在系统易用性方面, 从配置文件的完整度、对其他系统的依赖度、用户使用的方便度多个角度综合考量,这其中DGL和PyTorch Geometric的易用性排在前列,而Euler与PSGraph虽然给出了配置文件,但在配置系统时,需要配置其他多个依赖包,并且数据处理过程繁琐,不易用户使用。

本文为系统的社区活跃度和易用性给出星级评价, 星级越高, 系统在这两方面表现越好, 其中空白符号表示系统未开源。见下表
系统总结

参考资料

  1. 《图深度学习》马耀,汤继良 著
  2. 《图表示学习》 William Hamilton 著
  3. Graph Representation 图神经网络
  4. 论文阅读:NeuGraph: Parallel Deep Neural Network Computation on Large Graphs
  5. NeuGraph: Parallel Deep Neural Network Computation on Large Graphs
  6. EnGN: A High-Throughput and Energy-Efficient Accelerator for Large Graph Neural Networks
  7. 一文读懂大规模图神经网络平台AliGraph
  8. Improving the Accuracy, Scalability, and Performance of Graph Neural Networks with Roc
  9. Paddle Graph Learning (PGL)一个高效易用的图学习框架
    10.赵港, 王千阁, 姚烽, 张岩峰, 于戈. 大规模图神经网络系统综述. 软件学报, 2022, 33(1): 150-170.
Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐