图机器学习调研洞察:PyG与DGL

本文涉及的产品
实时数仓Hologres,5000CU*H 100GB 3个月
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
实时计算 Flink 版,5000CU*H 3个月
简介: 图神经网络(GNN)是人工智能领域的研究热点,广泛应用于社交网络、电商推荐、欺诈检测等。主流开源图学习引擎如DGL、PyG、GraphScope等在性能和社区活跃度上各有优劣。基于ogbn-products数据集的测试显示,DGL性能最优、内存占用最低,PyG次之。在AI for Science领域,PyG应用更广泛,尤其在小分子和晶体结构预测中表现突出。DGL采用Graph Centric方式,保留图结构;PyG则采用Tensor Centric方式,适合小图场景。

图神经网络(Graph Neural Networks,GNN)是人工智能领域最火热的课题之一,近年来,越来越多的研究机构和企业投入大量精力研究图神经网络,推出了自己的图学习引擎,并将其广泛应用在社交网络、电商推荐、欺诈检测、知识图谱等领域。目前,主流的开源图学习引擎有DGL,PyG,GraphScope,Angel,PGL等,其基本信息如下:

可以看出,DGL和PyG支持的算法数量最多,且社区活跃度很高,充分反映了它们在图学习领域的受欢迎程度。

除此之外,一款优秀的图学习引擎,其应该具备强悍的训练和推理性能,针对此,我们基于ogbn-products数据集(点规模2449029,边规模61859140,无向同构图,训练集:验证集:测试集=98:1:1,10个epoch,CPU训练)和GCN算法,对上述图学习引擎进行了性能对比测试,测试结果如下:

综合上述测试结果可以看出,DGL性能最好、内存占用最低,PyG和GraphScope表现次之,Angel和PGL表现最差。

图在化学材料领域可以很好的模拟成原子,而边则是原子间的相互作用,相较于传统的神经网络对于原子位置等有更为自然的定义。DGL与PyG在AI for Science领域被广泛的应用在从小分子到大分子的各个尺度的性质预测和模拟之中。

根据综述中列举的情况,我们在生物制药与材料化学场合进行了一个统计。在AI4Sci领域内,PyG相对DGL的应用更多,在2019年发布之后,基本能够占据40-50%的份额。而在细分领域中,小分子包括晶体等领域使用较多,蛋白质的性质结构预测中应用较少。

具体从实现方式来看,PyG和DGL存在如下不同:

  • DGL将每个图转变为DGLGraph,消息传递也是已DGLGraph为中心进行的。通过定义Message Function和Reduce function对DGLGraph中的边和节点进行操作,然后通过DGLgraph的send、recv及updata_all等方法进行更新。

  • PyG将每个图储存在一个Data中,但是消息传递是基于MessagePassing基类进行的,与Data或者Batch并无直接联系,通过在网络中重写message passing的forward,message,aggregate和update等方法实现自定义的消息传递过程,Propagete方法会自动调用这些方法完成数据的更新。

值得指出的是,PyG与DGL分别代表了两种不同的图机器学习计算框架。一种是以DGL、PGL为代表的Graph Centirc方式,图上的传播运算和就地运算都在图本身实现和完成,保留了图结构,能支持更为复杂的采样等操作。另一种是以PyG为代表的Tensor Centirc方式(Euler、AliGraph也采用这种方式):

  • 图网络forward时,将图表达为三个Tensor
  • edge_index: Tensor, shape:[2, num_edges], 2为src与dst节点ID,num_edges为边个数
  • node_feat : Tensor, shape:[num_edges, num_node_feat], 节点特征
  • edge_feat : Tensor, shape:[num_edges, num_edge_feat], 边特征
  • MessagePassing定义为一种Layer,Message, Reduce等成员函数在Layer中定义

这种方式的缺点是图结构被打开,不够直观,并且图信息被拆成多个Tensor限制了图表达能力。

根据Zhou Y等人做的实验来看,当节点和边的数量较小时,PyG的性能相对更好,而当节点和边的数量较大时,DGL相对PyG有一定的性能优势。

PyG与DGL的架构图如下所示,对于大图性能优势的初步探讨如下。PyG切分成小图之后时串行运行的,而DGL可以并行处理;PyG是基于动态图的,会重复建图,DGL支持动态和静态图,可以避免重复建图的耗时;DGL底层基于CUDA实现,支持PT,TF等AI框架,PyG基于PT,不支持TF等其他框架;PyG底层用到COO,没有用到CSR,DGL两者都支持,之前在CPU上测试结果表明CSR相比COO是有性能提速的。

参考文献

[1] Zhou Y, Song Y, Leng J, et al. AdaptGear: Accelerating GNN Training via Adaptive Subgraph-Level Kernels on GPUs[C]//Proceedings of the 20th ACM International Conference on Computing Frontiers. 2023: 52-62.

相关文章
|
7月前
|
机器学习/深度学习 PyTorch TensorFlow
机器学习框架调研
机器学习框架调研
55 1
|
7月前
|
机器学习/深度学习 供应链 算法
区块链与机器学习:未来科技交叉口的深度洞察
随着科技进步,区块链与机器学习成为焦点技术。区块链以去中心化和安全性革新金融、供应链等领域;机器学习通过算法促进各行业创新。二者结合,区块链提供可靠数据支持机器学习,而机器学习优化区块链性能。应用场景包括金融信用评估、供应链管理、医疗健康及智能合约等。面对数据隐私保护、算法优化等挑战,需跨学科合作并完善政策法规。展望未来,技术突破、产业应用拓展及跨学科人才培养将推动这一领域向前发展。
631 3
|
7月前
|
机器学习/深度学习 算法 搜索推荐
基于机器学习的用户行为分析:深入洞察与精准决策
【8月更文挑战第3天】基于机器学习的用户行为分析为企业提供了深入了解用户需求、优化产品设计和制定精准营销策略的有力工具。随着人工智能和大数据技术的不断发展,用户行为分析将更加智能化和个性化。未来,我们可以期待更加高效、精准的机器学习算法和模型的出现,以及更多创新性的应用场景的拓展。同时,也需要关注数据隐私和安全性问题,确保用户数据的安全和合规使用。
|
SQL 机器学习/深度学习 数据挖掘
【翻译】开源机器学习流水线工具调研(MLOps)(下)
实施数据科学项目不是一件简单的任务。至少,数据分析工作流程必须定期运行,以产生最新的结果。比如,一份上周数据的报告,或者由于概念发生变化而重新训练机器学习模型。在某些情况下,这类工作流的输出需要作为API公开,例如,一个经过训练的机器学习模型,通过点击REST端点来生成预测结果。 这就需要开发实践允许工作流(也称为pipeline)是可重现、可重复,并且可以很容易地部署。近年来,涌现了大量开源工作流管理工具。由于有太多的选择,团队很难选择最适合他们需求的工具,本文回顾了13种开源工作流管理工具。
|
SQL 机器学习/深度学习 Kubernetes
【翻译】开源机器学习流水线工具调研(MLOps)(中)
实施数据科学项目不是一件简单的任务。至少,数据分析工作流程必须定期运行,以产生最新的结果。比如,一份上周数据的报告,或者由于概念发生变化而重新训练机器学习模型。在某些情况下,这类工作流的输出需要作为API公开,例如,一个经过训练的机器学习模型,通过点击REST端点来生成预测结果。 这就需要开发实践允许工作流(也称为pipeline)是可重现、可重复,并且可以很容易地部署。近年来,涌现了大量开源工作流管理工具。由于有太多的选择,团队很难选择最适合他们需求的工具,本文回顾了13种开源工作流管理工具。
|
机器学习/深度学习 SQL Kubernetes
【翻译】开源机器学习流水线工具调研(MLOps)(上)
实施数据科学项目不是一件简单的任务。至少,数据分析工作流程必须定期运行,以产生最新的结果。比如,一份上周数据的报告,或者由于概念发生变化而重新训练机器学习模型。在某些情况下,这类工作流的输出需要作为API公开,例如,一个经过训练的机器学习模型,通过点击REST端点来生成预测结果。 这就需要开发实践允许工作流(也称为pipeline)是可重现、可重复,并且可以很容易地部署。近年来,涌现了大量开源工作流管理工具。由于有太多的选择,团队很难选择最适合他们需求的工具,本文回顾了13种开源工作流管理工具。
|
机器学习/深度学习 Cloud Native 算法
机器学习PAI有奖调研获奖名单
感谢大家参与机器学习PAI有奖调研活动,在这些留言中有很多是对产品建设、技术优化有重大帮助的内容,我们特别为这些开发者准备了PAI定制t恤,礼品会在2020年10月13日发出,请获奖用户留意查收。
897 0
机器学习PAI有奖调研获奖名单
|
4月前
|
机器学习/深度学习 算法 数据挖掘
K-means聚类算法是机器学习中常用的一种聚类方法,通过将数据集划分为K个簇来简化数据结构
K-means聚类算法是机器学习中常用的一种聚类方法,通过将数据集划分为K个簇来简化数据结构。本文介绍了K-means算法的基本原理,包括初始化、数据点分配与簇中心更新等步骤,以及如何在Python中实现该算法,最后讨论了其优缺点及应用场景。
235 6
|
21天前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于机器学习的人脸识别算法matlab仿真,对比GRNN,PNN,DNN以及BP四种网络
本项目展示了人脸识别算法的运行效果(无水印),基于MATLAB2022A开发。核心程序包含详细中文注释及操作视频。理论部分介绍了广义回归神经网络(GRNN)、概率神经网络(PNN)、深度神经网络(DNN)和反向传播(BP)神经网络在人脸识别中的应用,涵盖各算法的结构特点与性能比较。
|
17天前
|
人工智能 编解码 算法
使用 PAI-DSW x Free Prompt Editing图像编辑算法,开发个人AIGC绘图小助理
使用 PAI-DSW x Free Prompt Editing图像编辑算法,开发个人AIGC绘图小助理