benchmarking-gnns
JMLR 2023 顶会论文:为图神经网络打造的系统化评测基准框架,涵盖9种GNN架构和5类任务
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
JMLR 2023 顶会论文:为图神经网络打造的系统化评测基准框架,涵盖9种GNN架构和5类任务
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
图1:Benchmarking GNNs 基准测试框架整体架构(来源:arXiv:2003.00982)
2019年前后,图神经网络(Graph Neural Networks,GNN)正处在爆发期。从学术论文到工业落地,各种 GNN 变体层出不穷——GCN、GAT、GIN、GraphSAGE……每个新架构都声称自己性能更好。但一个核心问题始终没有答案:这些 GNN 到底谁更强?在什么任务上强?在什么条件下强?
大多数论文的评测都在各自定义的数据集和实验设置下进行,结果很难直接对比。有的论文用 Cora/Citeseer/Pubmed 三个标准数据集,有的用蛋白质相互作用网络,有的用分子图——数据集不同、训练细节不同、超参数不同,想要客观评判 GNN 能力几乎不可能。这就是 Benchmarking GNNs 项目诞生的背景:为图神经网络建立一套系统化、可复现、公平公正的评测基准。
该项目由 Vijay Prakash Dwivedi(纽约大学)、Chaitanya K. Joshi、Anh Tuan Luu、Thomas Laurent、深度学习泰斗 Yoshua Bengio(Bengio 三兄弟之一)和 Xavier Bresson(多伦多大学)联合开发,论文发表于机器学习顶会 JMLR 2023,至今已被引用超过 2000 次,是图学习领域影响力最大的基准研究之一。
Benchmarking GNNs 采用模块化设计,将评测拆解为三个核心层次:
项目涵盖了图学习中最典型的 5 类任务:
评测覆盖了 9 种主流图神经网络架构:
| 架构 | 全称 | 核心特点 |
|---|---|---|
| GCN | Graph Convolutional Network | 谱域卷积的经典实现 |
| GAT | Graph Attention Network | 引入注意力机制 |
| GIN | Graph Isomorphism Network | 理论上可区分任意图结构 |
| GraphSAGE | Scalable Graph Representation Learning | 支持归纳式学习 |
| MoNet | Mixture Model Network | 空间域高斯混合核 |
| GatedGCN | Gated Graph Convolutional Network | 引入门控机制 |
| RingGNN | Ring GNN | 环结构聚合 |
| 3WLGNN | 3WL-GNN | 超越 Weisfeiler-Lehman 测试 |
| MLP | 多层感知器 | 无图结构信息的基线 |
其中 MLP 作为基线对照,目的是验证"图结构信息是否真正有用"——如果 MLP 效果和 GNN 持平,说明图结构在这个任务上不重要。
项目提供了从 10k 到 500k 参数量的多种训练配置,用于评估 GNN 在不同数据规模下的表现差异。作者还引入了 位置编码(Positional Encoding,PE) 机制,对比有/无 PE 对不同 GNN 能力的影响——这是后续 Transformer 时代图模型的重要伏笔。
项目基于 PyTorch 1.6.0 和 DGL(Deep Graph Library)0.6.1 构建。DGL 是亚马逊团队开源的图学习框架,提供了统一的 API 来操作不同类型的图神经网络底层计算图。项目的代码结构非常清晰:
layers/:7 种 GNN 层实现(GCN、GAT、GIN、GraphSAGE、MoNet、GatedGCN、RingGNN、3WL-GNN)nets/:10 种任务网络,每个任务对应一个子目录,定义该任务使用的 GNN 类型train/:统一的训练流程(metrics.py 负责评价指标,train_*.py 负责各任务训练逻辑)configs/:200+ 份 JSON 配置文件,覆盖所有(架构 × 数据集 × 参数量)组合data/:数据集下载脚本和预处理逻辑utils/:共享工具函数这种结构使得添加新的 GNN 架构或新数据集非常方便——只需在对应目录新增文件,无需修改核心训练逻辑。项目提供了详细的文档(docs/ 目录下 6 份 Markdown 文件),一步步指导用户如何添加新数据集和新的消息传递 GNN。
Benchmarking GNNs 的核心贡献不只是工具本身,更是通过系统性实验揭示的若干重要发现:
GatedGCN 是"全能选手"。 在大多数任务上,GatedGCN 表现出色,兼具表达能力和训练稳定性。相比之下,经典的 GCN 在许多任务上表现平庸——这让当时的很多"GCN刷榜"论文受到了质疑。
图结构的重要性取决于任务。 在分子图回归任务(ZINC、AQSOL)中,GNN 显著优于 MLP,验证了图结构信息的关键作用。但在某些简单的节点分类任务上,MLP 的差距并没有想象中大——这说明不是所有任务都需要复杂的图建模。
位置编码(PE)是一把双刃剑。 加入 PE 后,某些 GNN(如 GatedGCN)在需要区分同构子结构的任务上表现大幅提升,但在其他任务上反而可能带来过拟合风险。
3WL-GNN 的潜力被低估。 超越 Weisfeiler-Lehman 测试(1-WL)限制的 3WL-GNN 在一些复杂结构识别任务(如 PATTERN)上明显优于传统 GNN,但训练复杂度也更高。
作为研究工具,Benchmarking GNNs 的设计是成功的——它有完整的文档、详细的配置文件和 Jupyter Notebook 支持,方便研究者复现结果和扩展。但作为开源项目,它的部署门槛并不低:
不过,项目提供的 conda 环境文件(environment_gpu.yml / environment_cpu.yml)大幅简化了环境配置,用户只需一条 conda env create -f environment_gpu.yml 即可完成依赖安装。
项目发布后也引发了一些讨论:
这些问题在后继的 GNN 基准项目中逐步得到改进(如 OGB 基准套件),但 Benchmarking GNNs 作为先驱者的地位不可替代。
Benchmarking GNNs 的出现,标志着图神经网络研究从"百花齐放、难以比较"进入"系统化、可复现"的新阶段。它深刻影响了后续的 GNN 研究范式:
对于今天的 AI 研究者和工程师来说,Benchmarking GNNs 依然是理解图神经网络能力边界的重要参考——不是最好的工具,但是最有历史价值的工具之一。