Graph Neural Networks in TensorFlow and Keras with Spektral

Daniele Grattarola, C. Alippi

Main figure for Graph Neural Networks in TensorFlow and Keras with Spektral

Abstract

In this paper we present Spektral, an open-source Python library for building graph neural networks with TensorFlow and the Keras application programming interface. Spektral implements a large set of methods for deep learning on graphs, including message-passing and pooling operators, as well as utilities for processing graphs and loading popular benchmark datasets. The purpose of this library is to provide the essential building blocks for creating graph neural networks, focusing on the guiding principles of user-friendliness and quick prototyping on which Keras is based. Spektral is, therefore, suitable for absolute beginners and expert deep learning practitioners alike. In this work, we present an overview of Spektral's features and report the performance of the methods implemented by the library in scenarios of node classification, graph classification, and graph regression.

Benchmark Results

Tested on 2 datasets

Tables show presented results in global context (best 3 papers + GCN + MLP).

TU Dortmund

#ModelAccuracy ↑Paper
1
MSH-GNN
0.9910 ±0.0030
2
ID-GNN+BEC
0.9830 ±0.0360
3
SupCosine
0.9830 ±0.0250
39
GIN
0.9330 ±0.0290
239
DiffPool
actual #239 vs paper #505 266 places worse
0.8940 ±0.0460
best reported
actual #239 vs paper #505 266 places worse
paper 0.8350 ±0.0970

Difference within reported uncertainty; not counted as underperformance.

paper 0.8350 ±0.0970 Δ at pub 0.0150 Δ today 0.0590
403
MLP
0.8660 ±0.0495
583
MinCut
0.8140 ±0.1070
This paper
623
SAGPool
actual #623 vs paper #652 29 places worse
0.7986 ±0.0236
best reported
actual #623 vs paper #652 29 places worse
paper 0.7850 ±0.0830

Difference within reported uncertainty; not counted as underperformance.

paper 0.7850 ±0.0830 Δ today 0.0136
641
Top-k
0.7920 ±0.0800
This paper
748
Flat
0.7250 ±0.1400
This paper
#ModelAccuracy ↑Paper
1
WL-MLP
0.9954
2
GIN
0.9934
3
GCN
0.9727
5
DiffPool
actual #5 vs paper #470 465 places worse
0.9210 ±0.0260
best reported
actual #5 vs paper #470 465 places worse
paper 0.7110 ±0.0300
paper 0.7110 ±0.0300 Δ today 0.2100
131
GraphSAGE
0.8200 ±0.0100
221
MinCut
actual #221 vs paper #424 203 places worse
0.8010 ±0.0260
best reported
actual #221 vs paper #424 203 places worse
paper 0.7440 ±0.0190
paper 0.7440 ±0.0190 Δ today 0.0570
259
SAGPool
actual #259 vs paper #490 231 places worse
0.7910 ±0.0300
best reported
actual #259 vs paper #490 231 places worse
paper 0.6940 ±0.0840

Difference within reported uncertainty; not counted as underperformance.

paper 0.6940 ±0.0840 Δ today 0.0970
345
Flat
0.7730 ±0.0260
This paper
457
Top-k
actual #457 vs paper #459 2 places worse
0.7260 ±0.0310
best reported
actual #457 vs paper #459 2 places worse
paper 0.7200 ±0.0300

Difference within reported uncertainty; not counted as underperformance.

paper 0.7200 ±0.0300 Δ today 0.0060
SOTA performance (not significantly different from the best) Baseline / comparison (this paper) Global context (other papers) Best today — OK at publication; today's leaderboard best is elsewhere