Chaining 2-FWL GNNs for Combinatorial Graph Alignment
Organizations: INRIA - Ecole Normale Supérieure PSL Research University
Abstract
For the combinatorial graph alignment problem (GAP), finding the node correspondence that maximizes the number of common edges (nce) between two unlabeled graphs, the classical Frank-Wolfe heuristic FAQ remains a strong baseline once it is properly initialized, while existing GNN approaches struggle in the purely structural setting. We introduce a chaining procedure: a sequence of Folklore-type (2-FWL) GNNs in which each network is trained with cross-entropy after decoding the previous network's similarity matrix and ranking nodes by their current alignment quality. This non-differentiable ranking step injects discrete combinatorial feedback at every stage; at inference, we iterate the final network and keep the candidate with highest observed nce. On sparse Erdos-Renyi graphs at noise level 0.25, chained FGNNs used to initialize FAQ reach 85% accuracy versus 13% for FAQ initialized from the convex relaxation, and essentially 0% for prior GNN methods. On correlated regular graphs, where MPNNs with constant features produce identical node embeddings (1-WL fails to refine) and FAQ's convex initialization is degenerate, chaining is the only method among those we evaluate, including Gromov-Wasserstein solvers, that recovers a non-trivial alignment. On three real-world benchmarks (yeast PPI, coauthorship, and road networks), recent comparisons underestimate FAQ by initializing it from a uniform doubly stochastic matrix; initialized from the convex relaxation it already surpasses prior reported numbers, and dataset-specific chained FGNNs further improve on this strengthened baseline. Code and pretrained chains available at: https://github.com/mlelarge/chaining-gnn-graph-alignment.
Figures & tables
| type of graphs | sparse | dense | regular | |
| Baselines | 17.3 | 24.4 | 2.9 | |
| (non-neural) | 67.1 | 53 | 27 | |
| Baselines | FGNN Proj | 17.8 | 23.6 | 6.7 |
| (neural) | FGNN FAQ | 71.1 | 47 | 54 |
| chaining | ChFGNN Proj | 95.8 | 44 | 67.1 |
| chaining | ChFGNN FAQ | 98.8 | 77.4 | 81.8 |
| Sparse Erdős-Rényi, average degree ( ) | ||||||||
|---|---|---|---|---|---|---|---|---|
| 0 | 0.05 | 0.1 | 0.15 | 0.2 | 0.25 | 0.3 | 0.35 | |
| 0.98/997 | 0.97/950 | 0.90/853 | 0.59/499 | 0.23/195 | 0.09/130 | 0.04/115 | 0.02/112 | |
| 0.98/997 | 0.98/950 | 0.96/898 | 0.95/847 | 0.73/723 | 0.13/504 | 0.04/487 | 0.02/485 | |
| FGNN Proj | 0.98/997 | 0.94/ 925 | 0.74/674 | 0.44/365 | 0.23/193 | 0.12/134 | 0.06/114 | 0.03/103 |
| FGNN FAQ | 0.98/997 | 0.98/950 | 0.96/898 | 0.95/847 | 0.81/755 | 0.24/535 | 0.07/494 | 0.03/485 |
| ChFGNN Proj | 0.98/997 | 0.98/950 | 0.96/898 | 0.94/845 | 0.91/790 | 0.82/ 720 | 0.49/549 | 0.08/367 |
| 0 | 0.05 | 0.1 | 0.15 | 0.2 | 0.25 | |
| SAGE- FAQ | 0.98/997 | 0.97/946 | 0.13/497 | 0.05/477 | 0.02/474 | 0.01/473 |
| ChSAGE- FAQ | 0.98/997 | 0.97/951 | 0.69/756 | 0.11/494 | 0.04/476 | 0.02/475 |
| GIN- FAQ | 0.98/997 | 0.98/951 | 0.93/ 879 | 0.25/538 | 0.04/478 | 0.02/477 |
| ChGIN- FAQ | 0.98/997 | 0.98/951 | 0.95/889 | 0.34/575 | 0.06/483 | 0.03/477 |
| GAT- FAQ | 0.98/997 | 0.97/951 | 0.79/805 | 0.14/503 | 0.04/479 | 0.02/478 |
| ChGAT- FAQ | 0.98/997 | 0.97/951 | 0.96/893 | 0.92/ 833 | 0.24/537 | 0.05/486 |
| Method | yeast25LC | ca-netscience | inf-euroroad | |||
|---|---|---|---|---|---|---|
| Noise | 5% | 10% | 10% | 20% | 10% | 20% |
| 0.50/7660 | 0.45/7245 | 0.65/822 | 0.46/687 | 0.56/1170 | 0.11/940 | |
| ChFGNN-ER4 | 0.48/7693 | 0.42/7297 | 0.64/818 | 0.44/688 | 0.40/1111 | 0.08/ 970 |
| ChFGNN | 0.54/7732 | 0.51/ 7404 | 0.65/824 | 0.57/ 724 | 0.64/ 1213 | 0.15/ 963 |
Appendix figures & tables27 assets
Supplementary material from the paper’s appendix.
Appendix
| name | average | number | used for comparison | sizes of |
| degree | of nodes | with | train/val | |
| Bernoulli | 70 | 150 | [ Lyzinski et al., 2015 ] | 2000/200 |
| Sparse Erdős-Rényi (ER 4) | 4 | 500 | MPNN [ Yu et al., 2023 ] | 200/100 |
| Dense Erdős-Rényi (ER 80) | 80 | 500 | MPNN [ Yu et al., 2023 ] | 200/100 |
| Large Erdős-Rényi | 3 | 1000 | Bayesian message passing | 200/100 |
| [ Muratori and Semerjian, 2024 ] |
| Dataset | # Nodes | # Edges | Avg. Degree | size train/valid |
|---|---|---|---|---|
| Yeast PPI [ Vijayan and Milenkovic, 2018 ] | 1,004 | 8,323 | 16.58 | 20/20 |
| ca-netscience [ Newman, 2006 ] | 379 | 914 | 4.82 | 200/20 |
| inf-euroroad [ Šubelj and Bajec, 2011 ] | 1,174 | 1,417 | 2.41 | 20/5 |
| Dataset | Degree spread | Clustering | Twins | Acc. ceiling | Swap edges |
|---|---|---|---|---|---|
| graph / ER | graph / ER | ||||
| Yeast PPI | 1.12 / 0.24 | 0.65 / 0.02 | 24% | 0.85 | 57% |
| ca-netscience | 0.81 / 0.45 | 0.74 / 0.01 | 48% | 0.71 | 83% |
| inf-euroroad | 0.49 / 0.64 | 0.02 / 0.002 | 4% | 0.98 | 77% |
| Datasets | FUGAL | ChFGNN | |
|---|---|---|---|
| ER sparse (noise ) | 560 | 898 | 899 |
| ER sparse (noise ) | 396 | 723 | 800 |
| ER dense (noise ) | 17968 | 17968 | 17968 |
| ER dense (noise ) | 5853 | 15972 | 15876 |
| Regular (noise ) | 131 | 425 | 2059 |
| Sparse Erdős-Rényi, average degree ( pairs per cell) | ||||||||
|---|---|---|---|---|---|---|---|---|
| 0 | 0.05 | 0.1 | 0.15 | 0.2 | 0.25 | 0.3 | 0.35 | |
| 0.98/994 | 0.98/944 | 0.91/849 | 0.58/482 | 0.22/195 | 0.088/131 | 0.040/117 | 0.020/117 | |
| 0.98/994 | 0.97/945 | 0.97/895 | 0.94/841 | 0.64/683 | 0.12/499 | 0.037/484 | 0.015/481 | |
| BAPG | 0.98/994 | 0.89/893 | 0.71/772 | 0.35/624 | 0.13/548 | 0.062/528 | 0.020/520 | 0.009/520 |
| FGWAlign | 0.98/994 | 0.88/886 | 0.70/767 | 0.34/618 | 0.13/546 | 0.062/528 | 0.021/520 | 0.010/520 |
| ChFGNN Proj | 0.98/994 | 0.98/945 | 0.97/894 | 0.95/840 | 0.91/783 | 0.85/722 | 0.40/451 | 0.035/261 |
| Sparse, average degree 4 | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Fraction of Seeds | 0% | 2% | 4% | 6% | 8% | 10% | 12% | 14% | 16% | 18% | 20% |
| SeedGNN | 0.3 | 15.1 | 47.4 | 82.8 | 96.0 | 96.6 | 97.0 | 97.6 | 97.6 | 97.6 | 97.6 |
| PGM | 0.2 | 2.3 | 6.1 | 16.3 | 31.6 | 54.5 | 73.3 | 79.2 | 86.3 | 88.9 | 92.7 |
| SGM | 0.3 | 3.6 | 8.9 | 13.8 | 22.3 | 36.3 | 54.5 | 67.3 | 84.4 | 89.6 | 91.6 |
| MGCN | 0.1 | 2.0 | 4.0 | 6.7 | 8.4 | 11.1 | 12.4 | 14.0 | 16.3 | 18.9 | 20.5 |
| Dense, average degree 80 | |||||||||||
| Method | sparse ( ) | dense ( ) | regular ( ) |
|---|---|---|---|
| BAPG | 7 | 3 | |
| FGWAlign | – | – | |
| – | – | – | |
| ChFGNN FAQ (full chain, CPU only) | – | – |
| ER 4 - noise | 0.15 | 0.2 | 0.25 | 0.3 | 0.35 |
|---|---|---|---|---|---|
| 15.6 | 31.4 | 25.8 | 24.2 | 25.6 | |
| ChFGNN FAQ | 4.1 | 6.5 | 8.3 | 15.1 | 19.7 |
| degree-normalized score | random order | ||||
|---|---|---|---|---|---|
| raw (trained) | at inference | retrained | at inference | retrained | |
| 0.15 | 0.951 | 0.941 | 0.952 | 0.914 | 0.947 |
| 0.20 | 0.928 | 0.751 | 0.924 | 0.346 | 0.802 |
| 0.25 | 0.884 | 0.272 | 0.840 | 0.092 | 0.331 |
| 0.30 | 0.440 | 0.081 | 0.465 | 0.040 | 0.097 |
| 0.35 | 0.033 | 0.023 | 0.033 | 0.017 | 0.027 |
| stage | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| raw score | .09 | .18 | .30 | .43 | .55 | .66 | .73 | .77 | .80 | .82 | .83 | .84 | .85 | .86 | .87 |
| degree-normalized | .09 | .17 | .27 | .37 | .49 | .59 | .66 | .71 | .74 | .76 | .77 | .79 | .80 | .81 | .81 |
| random order | .09 | .12 | .13 | .15 | .16 | .18 | .18 | .19 | .20 | .21 | .23 | .23 | .25 | .26 | .27 |
| stage | acc@ | correction (bottom half, wrong at ) | retention (top half, correct at ) |
|---|---|---|---|
| 0.12 | 0.14 (1019/7123) | 0.92 | |
| 0.23 | 0.25 (1698/6937) | 0.97 | |
| 0.40 | 0.33 (2147/6506) | 0.99 | |
| 0.58 | 0.35 (1883/5422) | 1.00 | |
| 0.79 | 0.27 (815/2991) | 1.00 | |
| 0.88 | 0.11 (182/1671) | 1.00 |
| noise | 0.4 | 0.45 | 0.5 | 0.55 | 0.6 | 0.65 | 0.7 | |
|---|---|---|---|---|---|---|---|---|
| acc | 0.3428 | 0.1956 | 0.1209 | 0.0815 | 0.0552 | 0.0411 | 0.0309 | |
| acc | 1.0 | 0.9954 | 0.9531 | 0.6910 | 0.2621 | 0.0959 | 0.0225 | |
| nce | 3147.7 | 3000.0 | 2960.2 | 2945.8 | 2942.0 | 2942.4 | 2933.6 | |
| nce | 4737.8 | 4622.8 | 4462.2 | 4056.1 | 3564.9 | 3408.0 | 3352.8 | |
| training 0.5 | acc ChFGNN Proj | 0.9994 | 0.9962 | 0.9639 | 0.7842 | 0.3400 | 0.1442 | 0.0737 |
| acc ChFGNN FAQ | 1.0 | 1.0 | 1.0 | 0.9915 | 0.8949 | 0.5105 | 0.1267 |
| Noise | 0.15 | 0.2 | 0.25 | 0.3 | 0.35 |
|---|---|---|---|---|---|
| L+1=2 | 0.28 (+0.02) | 0.15 (+0.02) | 0.08 (+0.01) | 0.04 (+0.01) | 0.02 (+0.00) |
| L+1=6 | 0.59 (+0.01) | 0.43 (+0.06) | 0.21 (+0.11) | 0.07 (+0.05) | 0.03 (+0.01) |
| L+1=10 | 0.85 (+0.01) | 0.72 (+0.06) | 0.43 (+0.13) | 0.11 (+0.19) | 0.04 (+0.03) |
| L+1=14 | 0.91 (+0.00) | 0.86 (+0.01) | 0.57 (+0.13) | 0.16 (+0.21) | 0.04 (+0.04) |
| L+1=16 | 0.92 (+0.00) | 0.88 (+0.01) | 0.61 (+0.12) | 0.19 (+0.26) | 0.04 (+0.04) |
| #loop | 15 | 23 | 88 | 91 | 73 |
| ER 4 ( acc ) | noise | 0 | 0.05 | 0.1 | 0.15 | 0.2 | 0.25 | 0.3 | 0.35 |
|---|---|---|---|---|---|---|---|---|---|
| Baselines | 98.0 | 97.3 | 90.3 | 59.3 | 23.3 | 9.1 | 4.0 | 2.0 | |
| 98.0 | 97.5 | 96.3 | 94.6 | 72.9 | 13.0 | 3.7 | 1.7 | ||
| training 0.05 | ChFGNN Proj | 97.9 | 97.3 | 94.3 | 67.1 | 12.5 | 6.72 | 3.70 | 2.13 |
| ChFGNN FAQ | 97.9 | 97.5 | 96.2 | 72.9 | 43.5 | 10.8 | 4.04 | 1.69 | |
| training 0.10 | ChFGNN Proj | 97.9 | 97.5 | 96.1 | 91.6 | 35.4 | 7.24 | 4.03 | 2.36 |
| ChFGNN FAQ | 97.9 | 97.5 | 96.4 | 94.0 | 38.6 | 12.3 | 4.73 | 1.91 |
| ER 4 ( nce ) | noise | 0 | 0.05 | 0.1 | 0.15 | 0.2 | 0.25 | 0.3 | 0.35 |
|---|---|---|---|---|---|---|---|---|---|
| Baselines | 997 | 950 | 853 | 499 | 195 | 130 | 115 | 112 | |
| 997 | 950 | 898 | 847 | 723 | 504 | 487 | 485 | ||
| training 0.05 | ChFGNN Proj | 997 | 950 | 885 | 630 | 116 | 95 | 87 | 83 |
| ChFGNN FAQ | 997 | 950 | 898 | 761 | 607 | 495 | 485 | 481 | |
| training 0.10 | ChFGNN Proj | 997 | 950 | 897 | 828 | 370 | 99 | 90 | 86 |
| ChFGNN FAQ | 997 | 950 | 899 | 845 | 606 | 501 | 487 | 483 |
| ER 80 ( acc ) | noise | 0 | 0.05 | 0.1 | 0.15 | 0.2 | 0.25 | 0.3 | 0.35 |
|---|---|---|---|---|---|---|---|---|---|
| Baselines | 60.8 | 14.3 | 4.3 | 1.8 | 1.1 | ||||
| 21.2 | 0.9 | 0.5 | |||||||
| training 0.05 | ChFGNN Proj | 99.8 | 16.0 | 5.95 | 2.76 | 1.77 | 1.01 | ||
| ChFGNN FAQ | 54.4 | 1.16 | 0.72 | 0.47 | |||||
| training 0.10 | ChFGNN Proj | 88.9 | 7.49 | 3.47 | 1.99 | 1.16 | |||
| ChFGNN FAQ | 89.0 | 80.0 | 6.58 | 0.85 | 0.52 |
| ER 80 ( nce ) | noise | 0 | 0.05 | 0.1 | 0.15 | 0.2 | 0.25 | 0.3 | 0.35 |
|---|---|---|---|---|---|---|---|---|---|
| Baselines | 19964 | 18987 | 17966 | 8700 | 3888 | 3646 | 3633 | 3624 | |
| 19964 | 18987 | 17968 | 16990 | 15972 | 7922 | 6272 | 6276 | ||
| training 0.05 | ChFGNN Proj | 19964 | 18987 | 17941 | 3794 | 3457 | 3421 | 3429 | 3411 |
| ChFGNN FAQ | 19964 | 18987 | 17968 | 16990 | 11408 | 6244 | 6252 | 6253 | |
| training 0.10 | ChFGNN Proj | 19964 | 18987 | 17968 | 15479 | 3522 | 3459 | 3453 | 3449 |
| ChFGNN FAQ | 19964 | 18987 | 17968 | 15811 | 13935 | 6681 | 6251 | 6257 |
Graph Matching
Graph matching finds correspondences between nodes and edges to compare, align, or locate related structures in graphs.
See all 38 papersTowards Effective and Efficient Graph Alignment without Supervision
local representation, global alignment'' paradigm, and present a new global representation and alignment'' paradigm to resolve the mismatch between the two phases in the alignment process. We then propose Global representation and optimal transport-based Alignment (GlobAlign), and its variant, GlobAlign-E, for better Efficiency. Our methods are equipped with the global attention mechanism and a hierarchical cross-graph transport cost, able to capture long-range and implicit node dependencies beyond the local graph structure. Furthermore, GlobAlign-E successfully closes the time complexity gap between representative embedding and OT-based methods, reducing OT's cubic complexity to quadratic terms. Through extensive experiments, our methods demonstrate superior performance, with up to a 20% accuracy improvement over the best competitor. Meanwhile, GlobAlign-E achieves the best efficiency, with an order of magnitude speedup against existing OT-based methods.