1 Introduction
-
We give motivation for spectral filters that combine a zero-impulse part and an inverse part to overcome the issues related with large eigengaps. In order to make our approach computationally efficient, we add a high-pass part and employ low-rank approximations to the pseudoinverse by computing a small number of eigenvalues of the graph Laplacian.
-
We propose a Graph Convolutional Network architecture with a three-dimensional filter function space that represents learning our filter parameters in training. We discuss computational aspects such as asymptotic cost and parameter influence.
-
We consider two examples for applications where beneficial dense graphs can be constructed. We discuss how the intrinsic structure of these graphs can be exploited to speed up our setup.
-
We showcase the performance of our method in various experiments, comparing it to recent popular GNNs.
1.1 Related work
1.1.1 Graph neural networks
1.1.2 GNN techniques for dense graphs
1.1.3 Semi-supervised classification on hypergraphs
1.1.4 Inverse Laplacians in data science
1.2 Problem setting and terminology
1.2.1 Convolution on graphs
1.2.2 Absence of loops
2 Proposed architecture
2.1 Pseudoinverse spectral filter functions
2.2 Low-rank approach
2.3 Pseudoinverse filters in graph convolutional networks
2.4 Computational aspects
2.4.1 Setup
2.4.2 Asymptotic cost of layer operations
2.4.3 Choice of rank
3 Fast setup in special cases
3.1 Three-dimensional point clouds
3.2 Hypergraphs for categorical data
3.2.1 The hypergraph Laplacian operator
3.2.2 Efficient techniques for the special case
4 Experimental results
4.1 Network architecture and training setup
4.2 Baselines
-
GCN (Kipf and Welling 2017), using the implementation from PyTorch Geometric.
-
GraphSAGE (Hamilton et al. 2017), using the implementation from PyTorch Geometric with mean aggregation. We do not use neighbor sampling since that is designed for node batches in large datasets and it did not improve the results in any of our tests.
-
ARMA (Bianchi et al. 2019), using the implementation from PyTorch Geometric with parameters \(K=3\) and \(T=2\).
4.3 Semi-supervised point classification in 3D point clouds
Name | Nodes | Classes | Label rate | Diameter | Eigengap \(\lambda _1\) | |
---|---|---|---|---|---|---|
\(\sigma =10\) | \(\sigma =100\) | |||||
Oakland 1 | 36 932 | 5 | 1.35 % | 112.1 | 0.084 | 0.929 |
Oakland 2 | 91 515 | 5 | 0.55 % | 126.9 | 0.002 | 0.872 |
fastadj
Python implementation5 of the NFFT-based fast summation scheme (Alfke et al. 2018) with default parameters, combined with the Krylov-Schur algorithm with tolerance \(10^{-3}\). These settings are chosen to give fast, rough approximations of the eigenvalues because we found that higher quality did not have any influence on the PinvGCN results.Method | \(\sigma \) | Oakland 1 | Oakland 2 | |||
---|---|---|---|---|---|---|
Time | Accuracy (± SD) | Time | Accuracy (± SD) | |||
10-NN | GCN | 10 | 4.23 s | 58.16 % (± 4.39) | 5.93 s | 68.70 % (± 18.28) |
100 | 4.24 s | 58.42 % (± 4.10) | 5.91 s | 68.64 % (± 3.28) | ||
GraphSAGE | – | 2.61 s | 56.22 % (± 5.57) | 3.50 s | 71.32 % (± 4.26) | |
GDC | – | 112.08 s | 48.61 % (± 8.50) | 1160.33 s | 63.25 % (± 25.15) | |
ARMA | 100 | 29.23 s | 49.63 % (± 2.55) | 451.49 s | 64.29 % (± 4.41) | |
100-NN | GCN | 10 | 17.99 s | 35.44 % (± 11.87) | 44.04 s | 66.47 % (± 20.54) |
100 | 17.67 s | 54.17 % (± 6.49) | 43.66 s | 70.89 % (± 3.27) | ||
GraphSAGE | – | 6.63 s | 59.34 % (± 4.94) | 13.76 s | 70.55 % (± 3.98) | |
GDC | – | 3446.95 s | 37.84 % (± 5.09) | Out of memory | ||
ARMA | 100 | 76.02 s | 56.04 % (± 4.51) | |||
PinvGCN, \(r=10\) | 10 | 6.70 s | 84.64 % (± 4.56) | 14.86 s | 74.26 % (± 6.39) | |
100 | 5.79 s | 92.58 % (± 1.42) | 10.82 s | 93.25 % (± 1.02) | ||
PinvGCN, \(r=30\) | 10 | 11.02 s | 81.58 % (± 4.64) | 24.62 s | 74.18 % (± 6.61) | |
100 | 11.08 s | 93.13 % (± 1.68) | 24.03 s | 94.91 % (± 0.93) | ||
PinvGCN, \(r=100\) | 10 | 29.80 s | 81.70 % (± 5.02) | 69.54 s | 73.29 % (± 6.18) | |
100 | 28.93 s | 93.50 % (± 1.83) | 67.70 s | 95.38 % (± 0.90) |
4.4 Hypergraph datasets from categorical attributes
Name | n | |E| | Classes | \(\lambda _1\) |
---|---|---|---|---|
Mushroom | 8 124 | 112 | 2 | 0.67 |
Covertype45 | 12 240 | 104 | 2 | 0.58 |
Covertype67 | 37 877 | 125 | 2 | 0.59 |
Method | Mushroom | ||||
---|---|---|---|---|---|
Runtime | Accuracy (± SD) | ||||
Sparsifiedgraph | GCN | 2.93 s | 91.46 % (± 2.99) | ||
GraphSAGE | 2.61 s | 92.23 % (± 3.71) | |||
GDC | 31.98 s | 92.24 % (± 3.17) | |||
ARMA | 8.16 s | 92.36 % (± 3.19) | |||
HGNN* | 0.61 s | 83.38 % (± 11.23) | |||
FastHyperGCN | 2.93 s | 76.13 % (± 16.38) | |||
PinvGCN, \(r=|E|-1\) | 3.22 s | 91.38 % (± 3.92) | |||
PinvGCN without high-pass | 2.77 s | 91.58 % (± 3.33) |
Method | Covertype45 | Covertype67 | |||
---|---|---|---|---|---|
Runtime | Accuracy (± SD) | Runtime | Accuracy (± SD) | ||
Sparsified graph | GCN | 1.49 s | 96.68 % (± 2.43) | 2.80 s | 90.01 % (± 2.63) |
GraphSAGE | 1.30 s | 97.80 % (± 1.76) | 3.14 s | 92.91 % (± 2.33) | |
GDC | 138.49 s | 98.16 % (± 1.76) | 417.18 s | 94.20 % (± 2.72) | |
ARMA | 9.79 s | 96.96 % (± 3.39) | 30.39 s | 93.53 % (± 2.56) | |
HGNN* | 0.62 s | 94.83 % (± 15.75) | 1.09 s | 91.07 % (± 10.78) | |
FastHyperGCN | 3.51 s | 89.81 % (± 8.72) | 9.00 s | 80.57 % (± 13.30) | |
PinvGCN, \(r=|E|-1\) | 3.33 s | 99.58 % (± 0.71) | 3.55 s | 96.33 % (± 1.41) | |
PinvGCN without high-pass | 2.71 s | 99.56 % (± 0.81) | 3.02 s | 96.27 % (± 1.43) |
4.5 Limitations: sparse graph datasets
Method | Citeseer | Cora | Pubmed |
---|---|---|---|
Number of nodes n | 3327 | 2708 | 19717 |
Number of connected components k | 438 | 78 | 1 |
Eigengap \(\lambda _k\) | 0.0013 | 0.0036 | 0.0095 |
GCN (as reported in Kipf and Welling 2017) | 70.3 % | 81.5 % | 79.0 % |
PinvGCN, rank 50 | 61.14 % | 70.79 % | 70.76 % |
PinvGCN, rank 200 | 60.90 % | 71.15 % | 71.53 % |
PinvGCN, rank 500 | 61.62 % | 71.41 % | 71.58 % |
PinvGCN, rank 500, best regularization | 68.33 % | 82.34 % | 78.26 % |
Dataset | Rank | Part 1 | Part 2 | Part 3 |
---|---|---|---|---|
(zero-impulse) | (pseudoinverse) | (high-pass) | ||
Oakland 1, \(\sigma =100\) | 100 | 0.085 | 0.488 | 0.193 |
Oakland 2, \(\sigma =100\) | 0.247 | 0.464 | 0.191 | |
Mushroom | 0.075 | 0.137 | 0.046 | |
Covertype45 |
\(|E|-1\)
| 0.053 | 0.112 | 0.013 |
Covertype67 | 0.034 | 0.114 | 0.009 |