Merge pull request #578 from PaddlePaddle/action remove py39 in github action
Merge pull request #578 from PaddlePaddle/action
remove py39 in github action
文档 | 快速开始 | English
一篇关于知识表示学习的论文被接收!!(2022.05.06)
PGL v2.2 2021.12.20
Graph4Rec: 我们发布了一个用于推荐系统的通用大规模分布式图表示学习工具包,详情请参考这里。
Graph4KG: 我们发布了一个用于大规模知识图谱表示学习的工具包,详情请参考这里。
GNNAutoScale: PGL现在支持GNNAutoScale框架了,这是一个用于图学习异构设备训练的工具包,详情请参考这里。
🔥 🔥 🔥 OGB-LSC KDD CUP 2021 冠军宣布!! (2021.06.17)
非常兴奋地宣布,我们PGL团队在 OGB-LSC KDD CUP 2021 的三个赛道中获得了两个冠军和一个亚军。官方排行榜可以参考这里.
MAG240M-LSC 赛道第一名: 代码和技术报告可以参考这里.
WikiKG90M-LSC 赛道第一名: 代码和技术报告可以参考这里.
PCQM4M-LSC 赛道第二名: 代码和技术报告可以参考这里.
两篇使用PGL的论文被接收!! (2021.06.17)
Paddle Graph Learning (PGL)是一个基于PaddlePaddle的高效易用的图学习框架
在最新发布的PGL中引入了异构图的支持,新增MetaPath采样支持异构图表示学习,新增异构图Message Passing机制支持基于消息传递的异构图算法,利用新增的异构图接口,能轻松搭建前沿的异构图学习算法。而且,在最新发布的PGL中,同时也增加了分布式图存储以及一些分布式图学习训练算法,例如,分布式deep walk和分布式graphsage。结合PaddlePaddle深度学习框架,我们的框架基本能够覆盖大部分的图网络应用,包括图表示学习以及图神经网络。
对比于一般的模型,图神经网络模型最大的优势在于它利用了节点与节点之间连接的信息。但是,如何通过代码来实现建模这些节点连接十分的麻烦。PGL采用与DGL相似的消息传递范式用于作为构建图神经网络的接口。用于只需要简单的编写send还有recv函数就能够轻松的实现一个简单的GCN网络。如下图所示,首先,send函数被定义在节点之间的边上,用户自定义send函数会把消息从源点发送到目标节点。然后,recv函数负责将这些消息用汇聚函数 汇聚起来。
send
recv
用户只需要下面简单几行代码,就可以实现一个求和聚合函数了。
import pgl import paddle import numpy as np num_nodes = 5 edges = [(0, 1), (1, 2), (3, 4)] feature = np.random.randn(5, 100).astype(np.float32) g = pgl.Graph(num_nodes=num_nodes, edges=edges, node_feat={ "h": feature }) g.tensor() def send_func(src_feat, dst_feat, edge_feat): return src_feat def recv_func(msg): return msg.reduce_sum(msg["h"]) msg = g.send(send_func, src_feat=g.node_feat) ret = g.recv(recv_func, msg)
图可以很方便的表示真实世界中事物之间的联系,但是事物的类别以及事物之间的联系多种多样,因此,在异构图中,我们需要对图网络中的节点类型以及边类型进行区分。PGL针对异构图包含多种节点类型和多种边类型的特点进行建模,可以描述不同类型之间的复杂联系。
在大规模的图网络学习中,通常需要多机图存储以及多机分布式训练。如下图所示,PGL提供一套大规模训练的解决方案,我们利用PaddleFleet(支持大规模分布式Embedding学习)作为我们参数服务器模块以及一套简易的分布式存储方案,可以轻松在MPI集群上搭建分布式大规模图学习方法。
下列是框架中部分已经实现的图网络模型,更多的模型在这里可以找到。详情请参考这里
上述模型包含图表示学习,图神经网络以及异构图三部分,而异构图里面也分图表示学习和图神经网络。
PGL依赖于:
PGL支持Python 3。
你可以简单的用pip进行安装。
pip install pgl
PGL由百度的NLP以及Paddle团队共同开发以及维护。
联系方式 E-mail: nlp-gnn[at]baidu.com
PGL uses Apache License 2.0.
文档 | 快速开始 | English
最新消息
一篇关于知识表示学习的论文被接收!!(2022.05.06)
PGL v2.2 2021.12.20
Graph4Rec: 我们发布了一个用于推荐系统的通用大规模分布式图表示学习工具包,详情请参考这里。
Graph4KG: 我们发布了一个用于大规模知识图谱表示学习的工具包,详情请参考这里。
GNNAutoScale: PGL现在支持GNNAutoScale框架了,这是一个用于图学习异构设备训练的工具包,详情请参考这里。
🔥 🔥 🔥 OGB-LSC KDD CUP 2021 冠军宣布!! (2021.06.17)
非常兴奋地宣布,我们PGL团队在 OGB-LSC KDD CUP 2021 的三个赛道中获得了两个冠军和一个亚军。官方排行榜可以参考这里.
MAG240M-LSC 赛道第一名: 代码和技术报告可以参考这里.
WikiKG90M-LSC 赛道第一名: 代码和技术报告可以参考这里.
PCQM4M-LSC 赛道第二名: 代码和技术报告可以参考这里.
两篇使用PGL的论文被接收!! (2021.06.17)
Paddle Graph Learning (PGL)是一个基于PaddlePaddle的高效易用的图学习框架
在最新发布的PGL中引入了异构图的支持,新增MetaPath采样支持异构图表示学习,新增异构图Message Passing机制支持基于消息传递的异构图算法,利用新增的异构图接口,能轻松搭建前沿的异构图学习算法。而且,在最新发布的PGL中,同时也增加了分布式图存储以及一些分布式图学习训练算法,例如,分布式deep walk和分布式graphsage。结合PaddlePaddle深度学习框架,我们的框架基本能够覆盖大部分的图网络应用,包括图表示学习以及图神经网络。
对比于一般的模型,图神经网络模型最大的优势在于它利用了节点与节点之间连接的信息。但是,如何通过代码来实现建模这些节点连接十分的麻烦。PGL采用与DGL相似的消息传递范式用于作为构建图神经网络的接口。用于只需要简单的编写
会把消息从源点发送到目标节点。然后,recv函数
负责将这些消息用汇聚函数
汇聚起来。
send还有recv函数就能够轻松的实现一个简单的GCN网络。如下图所示,首先,send函数被定义在节点之间的边上,用户自定义send函数用户只需要下面简单几行代码,就可以实现一个求和聚合函数了。
特色:易用性——原生支持异构图
图可以很方便的表示真实世界中事物之间的联系,但是事物的类别以及事物之间的联系多种多样,因此,在异构图中,我们需要对图网络中的节点类型以及边类型进行区分。PGL针对异构图包含多种节点类型和多种边类型的特点进行建模,可以描述不同类型之间的复杂联系。
支持异构图MetaPath walk采样
支持异构图Message Passing机制
特色:规模性——支持分布式图存储以及分布式学习算法
在大规模的图网络学习中,通常需要多机图存储以及多机分布式训练。如下图所示,PGL提供一套大规模训练的解决方案,我们利用PaddleFleet(支持大规模分布式Embedding学习)作为我们参数服务器模块以及一套简易的分布式存储方案,可以轻松在MPI集群上搭建分布式大规模图学习方法。
丰富性——覆盖业界大部分图学习网络
下列是框架中部分已经实现的图网络模型,更多的模型在这里可以找到。详情请参考这里
上述模型包含图表示学习,图神经网络以及异构图三部分,而异构图里面也分图表示学习和图神经网络。
依赖
PGL依赖于:
PGL支持Python 3。
安装
你可以简单的用pip进行安装。
团队
PGL由百度的NLP以及Paddle团队共同开发以及维护。
联系方式 E-mail: nlp-gnn[at]baidu.com
License
PGL uses Apache License 2.0.