在「WAVE Summit+」2019 深度学习开发者秋季峰会上,百度对外发布基于飞桨的图学习框架Paddle Graph Learning (PGL)。
近几年来,深度神经网络的成功推动了人工智能的发展,然而,在实际场景中,有大量的数据是在非欧式空间的,这限制了深度神经网络的应用。而图神经网络在非结构化数据上有着出色的处理能力,使得最近一段时间图神经网络在学界与工业界上大放光彩。
百度顺应潮流发布的PGL充分利用飞桨独有的Lod Tensor特性,实现了高度并行的图神经网络消息传递机制,在性能上超越了DGL等现有图学习框架13倍。依托于飞桨核心框架以及自研的分布式图引擎,PGL可支持十亿节点百亿边的巨图训练。此外,PGL原生支持异构图Meta Path采样以及Message Passing双模式,预置了13种业界主流图学习算法,方便开发者熟悉和使用图神经网络领域模型。下面我们逐一揭秘PGL的技术特色。
1. 高效:通用消息聚合性能超越业内主流框架DGL 13倍
图神经网络模型的独特优势在于充分捕捉数据中的结构信息。PGL采用消息传递范式(Message Passing)构建图神经网络的接口,用户只需要简单地编写send和recv函数就能够轻松的实现一个简单的GCN网络:其中send函数被定义在节点之间的边上,负责将消息从源点发送到目标节点;recv函数则负责将这些消息聚合起来。
目前,PGL提供两套聚合方式,一套是Scatter-Gather用于解决常见如求和聚合的方式,而另外一套则是基于飞桨Lod Tensor特性实现的并行通用的消息聚合方法。
如下图左所示,为了适配用户通用聚合函数,其他主流框架如DGL是串行地进行消息聚合,效率较慢;而下图右所示的PGL则将消息队列看作一组变长的序列Lod Tensor,然后利用飞桨的Lod Tensor Layers进行快速并行的消息聚合。
下表为使用LSTM作为聚合函数下GraphSAGE性能对比,得益于并行的消息聚合能力,PGL的速度能够达到DGL的13倍。
2. 规模:支持十亿节点百亿边的超大规模图训练
依托于分布式图引擎以及大规模参数服务器Paddle Fleet,PGL可以轻松在MPI集群上搭建分布式超大规模图学习算法。
如上图所示,超大规模图会以切分形式在分布式图引擎中存储,此外还提供诸如图信息访问、子图采样、游走等操作算子。在此之上则是PGL构建的分布式图训练模块,该模块会与参数服务器Paddle Fleet进行联动训练,满足用户数十亿节点Embedding学习需求。
3. 易用:轻松搭建异构图学习算法
在工业应用中,许多的图网络是异构。PGL针对异构图包含多种节点类型和多种边类型的特点进行建模,旨在为用户提供方便易用的异构图框架,让用户可以快速构建自定义的异构图模型。目前,PGL支持异构图的Meta Path采样以及异构图的Message Passing机制。
上图展示了“用户与商品”的异构图——节点和边存在不同的类型。PGL为用户提供了简单易用的元路径采样接口来处理这样的异构图,如指定路径为UPU(user-product-user),PGL即可采样出类似图中右边的采样序列。
Message Passing消息传递
异构图存在不同类型的节点和边,为了融入Message Passing机制,PGL可以在异构图中分别对不同类型的边进行消息传递。最后将同一个节点在不同边类型的表示融合在一起。下图展示了PGL异构图Message Passing的过程。
4. 丰富:预置13种业界主流图学习模型
为了便于用户熟悉和使用图神经网络领域的模型,PGL预置了13种主流的图学习模型。这些模型涵盖了同构与异构、图表示学习与图神经网络、分布式训练等样例,可以赋能推荐系统、知识图谱、用户画像、金融风控、智能地图等多个场景。用户可以方便地根据自己的需要选择不同的样例进行复现、修改、上线等。
综合来看,图学习框架PGL依托于飞桨,在高效、规模、易用、丰富等方面具有独特优势。基于此,PGL已在百度内部与外部企业落地多个项目,赋能各行各业,为人工智能产业化大生产贡献力量。