Do We Need Anisotropic Graph Neural Networks?
Shyam A. Tailor, Felix L. Opolka, Pietro Liò, Nicholas D. Lane
Code Available — Be the first to reproduce this paper.
ReproduceCode
- github.com/pyg-team/pytorch_geometricOfficialIn paperpytorch★ 23,591
- github.com/shyam196/egcOfficialIn paperpytorch★ 33
Abstract
Common wisdom in the graph neural network (GNN) community dictates that anisotropic models -- in which messages sent between nodes are a function of both the source and target node -- are required to achieve state-of-the-art performance. Benchmarks to date have demonstrated that these models perform better than comparable isotropic models -- where messages are a function of the source node only. In this work we provide empirical evidence challenging this narrative: we propose an isotropic GNN, which we call Efficient Graph Convolution (EGC), that consistently outperforms comparable anisotropic models, including the popular GAT or PNA architectures by using spatially-varying adaptive filters. In addition to raising important questions for the GNN community, our work has significant real-world implications for efficiency. EGC achieves higher model accuracy, with lower memory consumption and latency, along with characteristics suited to accelerator implementation, while being a drop-in replacement for existing architectures. As an isotropic model, it requires memory proportional to the number of vertices in the graph (O(V)); in contrast, anisotropic models require memory proportional to the number of edges (O(E)). We demonstrate that EGC outperforms existing approaches across 6 large and diverse benchmark datasets, and conclude by discussing questions that our work raise for the community going forward. Code and pretrained models for our experiments are provided at https://github.com/shyam196/egc.
Tasks
Benchmark Results
| Dataset | Model | Metric | Claimed | Verified | Status |
|---|---|---|---|---|---|
| ogbg-code2 | MPNN-Max (No Edge Features) | Number of params | 10,971,506 | — | Unverified |
| ogbg-code2 | EGC-S (No Edge Features) | Number of params | 11,156,530 | — | Unverified |
| ogbg-code2 | EGC-M (No Edge Features) | Number of params | 10,986,002 | — | Unverified |
| ogbg-code2 | PNA (No Edge Features) | Number of params | 10,992,050 | — | Unverified |
| ogbg-molhiv | EGC-M (No Edge Features) | Number of params | 317,265 | — | Unverified |
| ogbg-molhiv | EGC-S (No Edge Features) | Number of params | 317,013 | — | Unverified |