Paper · 2021-06-10 · cs.LG, cs.AI
Adversarial Graph Augmentation to Improve Graph Contrastive Learning
AD-GCL trains a GIN encoder to match each graph with an edge-dropped copy, while a learned GNN augmenter gives per-edge drop probabilities and tries to make the copies differ, with a penalty on the drop ratio. Author-reported: up to 14% gain unsupervised, 6% transfer and 3% semi-supervised over GCL baselines on 18 benchmarks.
Contrastive learningGraph neural networkData augmentationInformation bottleneckgraph-representation-learningself-supervised-learninggraph-contrastive-learningdata-augmentationmolecules
arXivPDFCodeMarkdown15 min read
AI-compiled by claude-haiku-5-5 on 2026-10-24, not yet reviewed by a human. Every claim cites its source; check it when a detail matters.
In plain words
Graph contrastive learning trains a graph neural network without labels. It teaches the network that two altered copies of the same graph are one graph. Usually people choose the alterations by hand, for example deleting random edges. This paper lets the network learn them instead. A second network, the augmenter, learns which edges to drop, and it is pushed to make the copies as different as possible. A penalty stops it from dropping too many edges. The main encoder keeps learning to match each graph with its altered copy, so it must rely on the parts of the graph that survive the alteration.
The paper argues that encoders trained this way keep less of the redundant detail that can hurt downstream tasks. It reports gains over hand-chosen augmentation on molecule and social-network benchmarks. These numbers are the authors' own.
TL;DR
AD-GCL is a min-max contrastive method. An encoder maximises an InfoNCE agreement between each graph and a copy with soft-dropped edges, while a GNN augmenter minimises the same agreement and pays a penalty on the expected drop ratio. The paper gives a theoretical link to graph information bottleneck §3.1. It reports gains on 18 datasets under unsupervised, transfer and semi-supervised protocols §5. Use it if you want a learnable edge-drop augmentation for GIN-style molecular or graph-level pretraining, and check the pitfalls, since the code differs from the paper in several places.
Problem
Graph contrastive learning (GCL) depends on hand-designed augmentations, and their choice strongly affects downstream results. The paper says the usual options either use domain knowledge or require extensive evaluation of combinations §1. Maximising mutual information between a graph and its representation can also keep redundant features that do not help the task. It can even hurt, as a motivating experiment shows: an encoder trained on random labels still keeps one-to-one graph identity but generalises worse §3.1 fig. 2 app. G. The information bottleneck principle addresses this, but it needs downstream labels, which self-supervised training lacks §1 §3.1.
Method
The paper defines a min-max objective over an augmentation family. The encoder f maximises the mutual information between a graph and its augmented copy. The augmentation T minimises the same quantity eq. 6 §3.1:
\min_{T \in \mathcal{T}} \max_{f} I(f(G); f(t(G))), \quad t(G) \sim T(G) eq. 6
The instantiation in §3.2 uses edge dropping. Each edge e has a drop probability ω_e, computed from node embeddings of a GNN augmenter with K layers eq. 1 and a small MLP over the two endpoints eq. 7. The final objective adds a penalty λ_reg times the mean drop probability per graph eq. 8. The encoder and the augmenter are updated alternately alg. 1.
Procedure, following alg. 1 and §3.2:
- Encode each graph with the GIN encoder f, then project it with the 2-layer projection head g §3.2.
- Run the augmenter GNN on the graph and compute per-edge logits eq. 7. The paper states the drop probability as ω_e; the code applies a sigmoid to the logit to obtain the keep weight test_minmax_ogbg.py.
- Relax the Bernoulli keep variable with the Gumbel-max trick, so the sample is differentiable §3.2. The relaxed keep value is p_e = Sigmoid((log δ − log(1 − δ) + ω_e) / τ) with δ ~ Uniform(0, 1), and τ → 0 makes it nearly binary. The paper gives no numeric τ.
- Encode the augmented graph with the same encoder, using the relaxed values p_e §3.2.
- Compute the InfoNCE estimate over the minibatch with cosine similarity eq. 9 §3.2.
- Penalise the augmenter by the mean drop probability per graph eq. 8.
- Update the augmenter by gradient ascent on the NCE loss minus λ_reg times the penalty. Then update the encoder and projection head by gradient descent on the NCE loss alg. 1 eq. 8.
Estimator for the mutual information in step 5 eq. 9:
\hat{I} = \frac{1}{m} \sum_{i=1}^{m} \log \frac{\exp(sim(z_{i,1}, z_{i,2}))} {\sum_{i' \neq i} \exp(sim(z_{i,1}, z_{i',2}))} eq. 9
Here z_{i,1} = g(f(G_i)) and z_{i,2} = g(f(t(G_i))), sim is cosine similarity, and m is the minibatch size §3.2. The training loss in alg. 1 is the negative of this estimate, averaged over the minibatch.
Pseudocode for one minibatch step, following alg. 1 and §3.2. The wording is ours. The paper does not give the code's exact symmetric loss, which is covered under Paper vs code.
# One AD-GCL minibatch step [alg. 1] [§3.2]
# Input: graphs (minibatch of G); encoder f; projection head g;
# augmenter T; regularisation strength lam
# Output: gradient for the augmenter (ascent), gradients for f and g
def ad_gcl_step(graphs, encoder, head, augmenter, lam):
# Drop logit omega_e for every edge [eq. 7]
omega = augmenter(graphs) # (num_edges,)
# Relaxed keep weight p_e in (0, 1), Gumbel-max [§3.2]
keep = relaxed_keep(omega)
# Augmented graph: edges are weighted, not removed [§3.2]
anchors = head(encoder(graphs))
views = head(encoder(graphs, edge_weight=keep))
# Mean drop probability per graph, averaged over the batch [eq. 8]
reg = mean_drop_per_graph(omega, graphs)
# InfoNCE over the minibatch [eq. 9]
nce = info_nce_loss(anchors, views)
# Augmenter: ascend on nce - lam * reg [alg. 1] [eq. 8]
augmenter_grad = grad(nce - lam * reg, augmenter.params)
# Encoder and head: descend on nce, keep weights detached
# [alg. 1] [code: test_minmax_ogbg.py#L156]
encoder_grad = grad(nce, encoder.params + head.params)
return augmenter_grad, encoder_gradKey equations, in the paper's numbering:
- GNN message passing and graph pooling eq. 1 eq. 2.
- InfoMax objective, the basis of GCL eq. 3.
- Information bottleneck form for graphs, GIB eq. 4.
- GDA-based GCL with two fixed augmentations eq. 5.
- AD-GCL with a learned augmentation family eq. 6.
- Edge keep weights from the augmenter eq. 7.
- Final regularised objective, with λ_reg eq. 8.
- InfoNCE estimator eq. 9.
Theorem 1 §3.1 gives two bounds on the optimal pair (f, T) under assumptions: f is as powerful as the 1-WL test, and the graph space is countable. The first bounds the information kept about G that is irrelevant to Y. The second lower bounds the information about Y. The proof is in app. B.
Hyperparameters
Values for the unsupervised setting unless noted. The first column lists what the paper states. Gaps are marked "not stated".
| Name | Value | Where | Notes |
|---|---|---|---|
| Encoder | GIN | §5.1 app. G | Code uses GINE with AtomEncoder and BondEncoder for molecules molecule_encoder.py |
| GNN layers (encoder) | 5 | app. G | |
| Pooling | add (sum) | app. G | |
| Skip connections | none | app. G | |
| Embedding dim | OGB 300; ZINC-10K 100; TU 32 | app. G | |
| Dropout | 0.5 | app. G | Code default is 0.0; see Paper vs code |
| Batch size | OGB 32; ZINC-10K 64; TU 32 | app. G | Code default for OGB is 64 |
| Optimiser | Adam | app. G | |
| Learning rate, encoder and augmenter | 0.001 for both | app. G | Asymmetric rates were unstable per the paper |
| Epochs | chosen from {20, 50, 80, 100, 150} on validation | app. G | |
| λ_reg, AD-GCL-FIX | 5 | §5.1 app. G | Used for all datasets, unsupervised |
| λ_reg, AD-GCL-OPT | tuned from {0.1, 0.3, 0.5, 1.0, 2.0, 5.0, 10.0} on validation | §5.1 app. F | Chosen values per dataset in app. F |
| λ_reg, transfer | 5 fixed | app. G | |
| λ_reg, semi-supervised | 5 fixed | app. G | |
| Projection head g | 2-layer MLP, hidden and output sizes not stated | §3.2 | Paper cites SimCLR for the design; code uses hidden size equal to emb dim test_minmax_ogbg.py |
| Augmenter | GNN with K layers, then MLP over endpoint embeddings | §3.2 | K not stated; code uses 5 test_minmax_ogbg.py |
| Augmenter MLP hidden size | not stated | §3.2 | Code default 64 test_minmax_ogbg.py |
| Gumbel temperature τ | τ → 0 in the text, numeric value not stated | §3.2 | Code uses 1.0 test_minmax_ogbg.py |
| NCE temperature | not stated | eq. 9 | Eq. 9 has no temperature; code uses 0.2 ginfominmax.py |
| Downstream linear L2 grid | {0.001, 0.01, 0.1, 1, 10, 100, 1000} | app. G | Ridge for regression, logistic for classification, sklearn |
| Runs | 10 seeds (unsupervised) | app. G | Semi-supervised caption says 5 runs tab. 3 |
| Transfer pre-train data | ZINC 2M (chemistry); PPI-306K (biology) | tab. 2 | |
| Transfer protocol | fine-tune after pre-train, as in the cited transfer work | app. G | Baseline numbers copied from prior papers |
| Semi-supervised protocol | 10% labels, fine-tune with GraphCL defaults | app. G | Encoder is GCN here §5.4 |
Optimal λ_reg per dataset for AD-GCL-OPT is listed in app. F (not repeated here).
Results
Author-reported. Setup: GIN encoder, unsupervised pretraining on each dataset, then a linear probe, with the protocol in §5.1 and app. G. Std over 10 runs. The paper marks differences of at least 0.5 std in bold and of at least 2 std with a star tab. 1; the markings are not reproduced here.
Unsupervised, TU datasets (classification accuracy %) tab. 1 top:
| Method | NCI1 | PROTEINS | MUTAG | DD | COLLAB | RDT-B | RDT-M5K | IMDB-B | IMDB-M |
|---|---|---|---|---|---|---|---|---|---|
| F-GIN (supervised) | 78.27 ± 1.35 | 72.39 ± 2.76 | 90.41 ± 4.61 | 74.87 ± 3.56 | 74.82 ± 0.92 | 86.79 ± 2.04 | 53.28 ± 3.17 | 71.83 ± 1.93 | 48.46 ± 2.31 |
| RU-GIN | 62.98 ± 0.10 | 69.03 ± 0.33 | 87.61 ± 0.39 | 74.22 ± 0.30 | 63.08 ± 0.10 | 58.97 ± 0.13 | 27.52 ± 0.61 | 51.86 ± 0.33 | 32.81 ± 0.57 |
| InfoGraph | 68.13 ± 0.59 | 72.57 ± 0.65 | 87.71 ± 1.77 | 75.23 ± 0.39 | 70.35 ± 0.64 | 78.79 ± 2.14 | 51.11 ± 0.55 | 71.11 ± 0.88 | 48.66 ± 0.67 |
| GraphCL | 68.54 ± 0.55 | 72.86 ± 1.01 | 88.29 ± 1.31 | 74.70 ± 0.70 | 71.26 ± 0.55 | 82.63 ± 0.99 | 53.05 ± 0.40 | 70.80 ± 0.77 | 48.49 ± 0.63 |
| NAD-GCL-FIX (ablation) | 69.23 ± 0.60 | 72.81 ± 0.71 | 88.58 ± 1.58 | 74.55 ± 0.55 | 71.56 ± 0.58 | 83.41 ± 0.66 | 52.72 ± 0.71 | 70.94 ± 0.77 | 48.33 ± 0.47 |
| NAD-GCL-OPT (ablation) | 69.30 ± 0.32 | 73.18 ± 0.71 | 89.05 ± 1.06 | 74.55 ± 0.55 | 72.04 ± 0.67 | 83.74 ± 0.76 | 53.43 ± 0.26 | 71.94 ± 0.59 | 49.01 ± 0.93 |
| AD-GCL-FIX | 69.67 ± 0.51 | 73.59 ± 0.65 | 89.25 ± 1.45 | 74.49 ± 0.52 | 73.32 ± 0.61 | 85.52 ± 0.79 | 53.00 ± 0.82 | 71.57 ± 1.01 | 49.04 ± 0.53 |
| AD-GCL-OPT | 69.67 ± 0.51 | 73.81 ± 0.46 | 89.70 ± 1.03 | 75.10 ± 0.39 | 73.32 ± 0.61 | 85.52 ± 0.79 | 54.93 ± 0.43 | 72.33 ± 0.56 | 49.89 ± 0.66 |
Unsupervised, OGB and ZINC-10K (RMSE and MAE lower is better; ROC-AUC % higher is better) tab. 1 bottom:
| Method | molesol | mollipo | molfreesolv | ZINC-10K | molbace | molbbbp | molclintox | moltox21 | molsider |
|---|---|---|---|---|---|---|---|---|---|
| Metric | RMSE ↓ | RMSE ↓ | RMSE ↓ | MAE ↓ | ROC-AUC ↑ | ROC-AUC ↑ | ROC-AUC ↑ | ROC-AUC ↑ | ROC-AUC ↑ |
| F-GIN (supervised) | 1.173 ± 0.057 | 0.757 ± 0.018 | 2.755 ± 0.349 | 0.254 ± 0.005 | 72.97 ± 4.00 | 68.17 ± 1.48 | 88.14 ± 2.51 | 74.91 ± 0.51 | 57.60 ± 1.40 |
| RU-GIN | 1.706 ± 0.180 | 1.075 ± 0.022 | 7.526 ± 2.119 | 0.809 ± 0.022 | 75.07 ± 2.23 | 64.48 ± 2.46 | 72.29 ± 4.15 | 71.53 ± 0.74 | 62.29 ± 1.12 |
| InfoGraph | 1.344 ± 0.178 | 1.005 ± 0.023 | 10.005 ± 4.819 | 0.890 ± 0.017 | 74.74 ± 3.64 | 66.33 ± 2.79 | 64.50 ± 5.32 | 69.74 ± 0.57 | 60.54 ± 0.90 |
| GraphCL | 1.272 ± 0.089 | 0.910 ± 0.016 | 7.679 ± 2.748 | 0.627 ± 0.013 | 74.32 ± 2.70 | 68.22 ± 1.89 | 74.92 ± 4.42 | 72.40 ± 1.01 | 61.76 ± 1.11 |
| NAD-GCL-FIX (ablation) | 1.392 ± 0.065 | 0.952 ± 0.024 | 5.840 ± 0.877 | 0.609 ± 0.010 | 73.60 ± 2.73 | 66.12 ± 1.80 | 73.32 ± 3.66 | 71.65 ± 0.94 | 60.41 ± 1.48 |
| NAD-GCL-OPT (ablation) | 1.242 ± 0.096 | 0.897 ± 0.022 | 5.840 ± 0.877 | 0.609 ± 0.010 | 73.69 ± 3.67 | 67.70 ± 1.78 | 74.40 ± 4.92 | 71.65 ± 0.94 | 61.14 ± 1.43 |
| AD-GCL-FIX | 1.217 ± 0.087 | 0.842 ± 0.028 | 5.150 ± 0.624 | 0.578 ± 0.012 | 76.37 ± 2.03 | 68.24 ± 1.47 | 80.77 ± 3.92 | 71.42 ± 0.73 | 63.19 ± 0.95 |
| AD-GCL-OPT | 1.136 ± 0.050 | 0.812 ± 0.020 | 4.145 ± 0.369 | 0.544 ± 0.004 | 77.27 ± 2.56 | 69.54 ± 1.92 | 80.77 ± 3.92 | 72.92 ± 0.86 | 63.19 ± 0.95 |
The paper's claims from these tables §5.1:
- Relative to InfoGraph and GraphCL on TU, AD-GCL is significantly better on 5 of 8 and 6 of 8 datasets.
- AD-GCL-FIX and AD-GCL-OPT give similar results; the paper reads this as robustness to λ_reg §5.1.
- The paper says AD-GCL beats the non-adversarial ablation NAD-GCL on every dataset §5.1. The table has one exception to the FIX-vs-FIX comparison: NAD-GCL-OPT (53.43) beats AD-GCL-FIX (53.00) on RDT-M5K tab. 1.
Regularisation analysis fig. 3: a large λ_reg gives a small expected drop ratio. For classification, λ_reg from 0.1 to 10 gives drop ratios from about 80% down to under 10%, and performance is insensitive to λ_reg §5.2. For regression, a small λ_reg, meaning a larger drop ratio, performs better app. F.
Transfer learning, chemistry and biology tab. 2 (mean ROC-AUC %, 10 runs):
| Pre-train | Method | BBBP | Tox21 | SIDER | ClinTox | BACE | HIV | MUV | ToxCast | PPI |
|---|---|---|---|---|---|---|---|---|---|---|
| ZINC 2M / PPI-306K | No pre-train | 65.8 ± 4.5 | 74.0 ± 0.8 | 57.3 ± 1.6 | 58.0 ± 4.4 | 70.1 ± 5.4 | 75.3 ± 1.9 | 71.8 ± 2.5 | 63.4 ± 0.6 | 64.8 ± 1.0 |
| EdgePred | 67.3 ± 2.4 | 76.0 ± 0.6 | 60.4 ± 0.7 | 64.1 ± 3.7 | 79.9 ± 0.9 | 76.3 ± 1.0 | 74.1 ± 2.1 | 64.1 ± 0.6 | 65.7 ± 1.3 | |
| AttrMasking | 64.3 ± 2.8 | 76.7 ± 0.4 | 61.0 ± 0.7 | 71.8 ± 4.1 | 79.3 ± 1.6 | 77.2 ± 1.1 | 74.7 ± 1.4 | 64.2 ± 0.5 | 65.2 ± 1.6 | |
| ContextPred | 68.0 ± 2.0 | 75.7 ± 0.7 | 60.9 ± 0.6 | 65.9 ± 3.8 | 79.6 ± 1.2 | 77.3 ± 1.0 | 75.8 ± 1.7 | 63.9 ± 0.6 | 64.4 ± 1.3 | |
| InfoGraph | 68.8 ± 0.8 | 75.3 ± 0.5 | 58.4 ± 0.8 | 69.9 ± 3.0 | 75.9 ± 1.6 | 76.0 ± 0.7 | 75.3 ± 2.5 | 62.7 ± 0.4 | 64.1 ± 1.5 | |
| GraphCL | 69.68 ± 0.67 | 73.87 ± 0.66 | 60.53 ± 0.88 | 75.99 ± 2.65 | 75.38 ± 1.44 | 78.47 ± 1.22 | 69.8 ± 2.66 | 62.40 ± 0.57 | 67.88 ± 0.85 | |
| AD-GCL-FIX | 70.01 ± 1.07 | 76.54 ± 0.82 | 63.28 ± 0.79 | 79.78 ± 3.52 | 78.51 ± 0.80 | 78.28 ± 0.97 | 72.30 ± 1.61 | 63.07 ± 0.72 | 68.83 ± 1.26 | |
| Paper's rank of AD-GCL-FIX | 1 | 2 | 1 | 1 | 4 | 2 | 5 | 5 | 1 |
The paper reports a mean rank of 2.4 across the nine datasets for AD-GCL-FIX and says it significantly beats baselines on 3 of 9 §5.3.
Semi-supervised, TU, 10% labels (10-fold accuracy %, mean ± std) tab. 3:
| Method | NCI1 | PROTEINS | DD | COLLAB | RDT-B | RDT-M5K |
|---|---|---|---|---|---|---|
| No pre-train | 73.72 ± 0.24 | 70.40 ± 1.54 | 73.56 ± 0.41 | 73.71 ± 0.27 | 86.63 ± 0.27 | 51.33 ± 0.44 |
| SS-GCN-A | 73.59 ± 0.32 | 70.29 ± 0.64 | 74.30 ± 0.81 | 74.19 ± 0.13 | 87.74 ± 0.39 | 52.01 ± 0.20 |
| GAE | 74.36 ± 0.24 | 70.51 ± 0.17 | 74.54 ± 0.68 | 75.09 ± 0.19 | 87.69 ± 0.40 | 53.58 ± 0.13 |
| InfoGraph | 74.86 ± 0.26 | 72.27 ± 0.40 | 75.78 ± 0.34 | 73.76 ± 0.29 | 88.66 ± 0.95 | 53.61 ± 0.31 |
| GraphCL | 74.63 ± 0.25 | 74.17 ± 0.34 | 76.17 ± 1.37 | 74.23 ± 0.21 | 89.11 ± 0.19 | 52.55 ± 0.45 |
| AD-GCL-FIX | 75.18 ± 0.31 | 73.96 ± 0.47 | 77.91 ± 0.73 | 75.82 ± 0.26 | 90.10 ± 0.15 | 53.49 ± 0.28 |
The paper reports a mean rank of 1.5 for AD-GCL-FIX across the six datasets §5.4.
Headline numbers from the abstract: up to 14% gain in the unsupervised setting, 6% in transfer and 3% in semi-supervised learning, against state-of-the-art GCL methods, over 18 datasets [abstract].
Paper vs code
Code: github.com/susheels/adgcl, MIT
license, copyright 2021 susheel suresh, at commit
2605ef8f980934c28d545f2556af5cc6ff48ed18. The repository is linked from the
paper's abstract; its owner is the first author. Discrepancies, each with both
citations:
- Dropout. Paper uses 0.5 app. G. The code's default is 0.0 for molecule encoders and TU molecule_encoder.py test_minmax_ogbg.py. The repository has no per-dataset config, so which value produced the reported numbers cannot be checked here.
- OGB batch size. Paper uses 32 app. G. The OGB script defaults to 64 test_minmax_ogbg.py.
- Edge dropping is soft. Paper describes edges as removed when p_e = 0 §3.2. The code keeps every edge and multiplies each message by the relaxed keep weight gine_conv.py test_minmax_ogbg.py.
- Regulariser source. Paper penalises the augmenter's drop probability ω_e eq. 8. The code penalises 1 minus the sampled, Gumbel-noised keep value per edge, averaged per graph test_minmax_ogbg.py.
- Relaxation temperature and noise. Paper states only that τ goes to 0 §3.2. The code uses τ = 1.0 and uniform noise with bias 1e-4 test_minmax_ogbg.py.
- NCE loss. Paper's eq. 9 is one-directional and has no temperature. The code's loss uses temperature 0.2 and averages the two directions (symmetric), by default ginfominmax.py ginfominmax.py.
- Augmenter. Paper specifies a K-layer GNN, with K not stated §3.2. The code uses a separate 5-layer encoder of the same type and a 64-unit MLP test_minmax_ogbg.py test_minmax_ogbg.py.
- Augmenter step uses eval mode. The code runs the encoder in eval mode while updating the augmenter, then switches to train mode for the encoder update test_minmax_ogbg.py test_minmax_ogbg.py. Paper does not say.
- ZINC λ default. The ZINC script defaults λ_reg to 0.0
test_minmax_zinc.py, while the paper's FIX setting is 5 §5.1.
Set
--reg_lambdaexplicitly when reproducing ZINC. - Algorithm 1 typo. The paper's Algorithm 1 assigns z_{1,n} twice, and the second assignment should be z_{2,n} alg. 1. The code's two branches are distinct test_minmax_ogbg.py.
- Encoder. Paper says GIN §5.1. Molecule experiments use GINE with bond embeddings molecule_encoder.py.
- Environment. README pins Python 3.8.8, PyTorch 1.8.1, PyTorch Geometric 1.7.0 README.md. Not tested on other versions.
Pitfalls
- Learnable augmentation is a min-max loop. Each minibatch makes an augmenter step and an encoder step. The augmenter is driven by the NCE loss and a penalty, so λ_reg controls the drop ratio. For classification the paper reports expected drop ratios from about 80% (λ_reg = 0.1) down to under 10% (λ_reg = 10) §5.2 fig. 3.
- λ_reg is a hyperparameter, and the paper's choice of it is not blind. AD-GCL-OPT tunes λ_reg on validation data, which the paper marks as using "weak information from the downstream task" §5.1. AD-GCL-FIX uses λ=5 and claims no downstream information. Check which setting a comparison uses.
- Protocol gap with original baselines. The paper evaluates all methods with linear probes. InfoGraph and GraphCL report results with a non-linear SVM. The paper says the SVM makes random untrained GIN look much better and therefore uses linear probes §5.1. Do not compare the paper's TU numbers directly with the original InfoGraph and GraphCL papers.
- Transfer and semi-supervised baselines are copied. Those baseline numbers come from prior papers, not from re-runs app. G. Only the AD-GCL rows were run here.
- Seed count is inconsistent. Unsupervised results are over 10 seeds app. G. The semi-supervised table caption says 5 runs tab. 3.
- Extra cost per step. Each minibatch runs the encoder on original and augmented graphs in both the augmenter update and the encoder update, and the augmenter has its own GNN test_minmax_ogbg.py. The paper reports about 14.4 minutes for AD-GCL on COLLAB on one GPU, against 3.2 hours for JOAO app. H. Timing for other datasets is not stated.
- Theorem assumptions. Theorem 1 is stated for the optimal pair (f, T) under a countable graph space and a 1-WL-powerful encoder §3.1 app. B. The paper uses it as motivation; it does not give guarantees for a trained GNN.
- Edge dropping may not match the task. The paper says edge dropping was chosen as a proof of concept, and that other search spaces may do better and are left for future work §3.2 §5.1. For regression, the paper says the edge-drop family may not be the most apt one app. F.
- Algorithm and loss sign. Eq. 9 is an estimate of mutual information (higher is more correlated). Algorithm 1 uses the negated form as a loss. An implementation that mixes these signs will update the augmenter in the wrong direction.
Lineage
- Builds on: InfoMax-based graph contrastive learning, including InfoGraph and GraphCL §1 §5.1. Information bottleneck for graphs, GIB, with the cited GNN variants §1 §3.1. Gumbel-max relaxation and a related edge-mask parameterisation for GNN explanations §3.2.
- Compared against: RU-GIN, InfoGraph, GraphCL, the non-adversarial ablation NAD-GCL (which the paper builds itself), and a fully supervised GIN anchor §5.1. JOAO is compared in app. H. Transfer baselines are EdgePred, AttrMasking, ContextPred and InfoGraph §5.3. Semi-supervised baselines are GAE, SS-GCN-A, InfoGraph and GraphCL §5.4.
- Superseded by: not known from content in this wiki.
Source and license
Adapted from “Adversarial Graph Augmentation to Improve Graph Contrastive Learning” by Susheel Suresh, Pan Li, Cong Hao, Jennifer Neville (arXiv:2106.05819), used under CC BY 4.0. Changes: condensed and restructured for implementation, with tables, equations and algorithms taken from the paper and its code, each cited to its source. Not affiliated with or endorsed by the authors. Code citations refer to https://github.com/susheels/adgcl at commit 2605ef8f9809 (MIT). Any quoted code is shown under that license.