Propagate, Then Sharpen: Post-Hoc Refinement of Frozen Node Classifiers
Organizations: Department of Informatics, University of Bergen · Norwegian Research Centre (NORCE)
Abstract
We study post-hoc refinement of frozen node classifiers: given only the graph and class distributions predicted by a frozen model, can we improve accuracy without access to node features, model parameters, or gradients? APPNP answers this by propagating logits with a restart towards the initial predictions, minimizing the anchored Dirichlet energy. Instead, we consider the Potts energy, and decompose it into a Dirichlet term, which penalizes disagreement between neighbouring nodes, and a Gini term, which penalizes indecision within each node. This decomposition motivates Propagate, Then Sharpen (PtS), which alternates between propagation of class probabilities and node-wise, mass-preserving sharpening, with only one additional hyperparameter selected using labelled validation nodes. Across nine homophilic graphs, with a frozen MLP backbone, PtS improves mean test accuracy over independently tuned APPNP by percentage points on clean inputs and under severe Gaussian feature corruption. Gains over APPNP become smaller, but remain positive with frozen GCN and GraphSAGE backbones. Sharpening also removes most of the accuracy loss of deep propagation: on clean inputs without restart, accuracy falls by points between and propagation steps under PtS, compared with for APPNP.
Figures & tables
| Dataset | (MLP) | APPNP | PtS | PtS APPNP | (MLP) | APPNP | PtS | PtS APPNP |
|---|---|---|---|---|---|---|---|---|
| WikiCS | 72.67 | 77.78 | 78.42 | +0.64 0.50 | 46.36 | 67.97 | 72.15 | +4.18 1.75 |
| Cora-TAPE | 60.51 | 76.16 | 79.74 | +3.58 1.23 | 43.82 | 68.16 | 72.30 | +4.13 1.99 |
| PubMed-TAPE | 81.59 | 84.35 | 85.18 | +0.83 0.64 | 64.56 | 78.87 | 80.73 | +1.86 1.44 |
| TAPE-Arxiv23 | 67.59 | 69.53 | 69.72 | +0.19 0.10 | 28.56 | 35.63 | 38.91 | +3.29 0.26 |
| ogbn-arxiv | 55.95 | 66.10 | 66.56 | +0.46 0.51 | 22.65 | 33.86 | 40.62 | +6.76 1.73 |
| Method | Sharpening | Accuracy |
|---|---|---|
| PPR-Prob | 59.15 | |
| PtS | Selected | 60.24 |
| Reaction OFF | 54.93 |
| Frozen backbone | ||
|---|---|---|
| MLP | +1.71 | +3.90 |
| GCN | +0.41 | +0.88 |
| GraphSAGE | +0.47 | +1.23 |
Appendix figures & tables18 assets
Supplementary material from the paper’s appendix.
Appendix
| Dataset | Nodes | Edges | Features | Classes | |
| WikiCS | 11,701 | 215,603 | 300 | 10 | 0.65 |
| Cora-TAPE | 2,708 | 5,278 | 768 | 7 | 0.81 |
| PubMed-TAPE | 19,717 | 44,324 | 768 | 3 | 0.80 |
| TAPE-Arxiv23 | 46,198 | 38,863 | 300 | 40 | 0.64 |
| ogbn-arxiv | 169,343 | 1,157,799 | 128 | 40 | 0.65 |
| ogbn-products | 2,449,029 | 61,859,012 | 100 | 47 | 0.81 |
| Dataset | MLP | GCN | GraphSAGE | Conv. layers width | ||
| WikiCS | 300 | 10 | 146,442 | 80,138 | 159,498 | |
| Cora-TAPE | 768 | 7 | 265,479 | 199,175 | 397,575 | |
| PubMed-TAPE | 768 | 3 | 264,451 | 198,147 | 395,523 | |
| TAPE-Arxiv23 | 300 | 40 | 154,152 | 87,848 | 174,888 | |
| ogbn-arxiv | 128 | 40 | 110,120 | 110,120 | 218,664 | |
| ogbn-products | 100 | 47 | 104,751 | 36,015 | 71,215 |
| Method | Search | Budget |
|---|---|---|
| APPNP / PPR | , | 250 |
| PtS | Same, or | 250 |
| LAME-Graph | , or | 250 |
| Graph-TV | or (25 log-spaced values), fixed | |
| C&S | 250 | |
| C&S-PtS | Same, plus the PtS reaction search | 250 |
| Dataset | off (%) | |||||||
|---|---|---|---|---|---|---|---|---|
| WikiCS | 0 | 2 | 2 | 3 | 0.11 | 0.09 | 4.11 | 7 |
| 0.5 | 2 | 2 | 4 | 0.08 | 0.06 | 6.40 | 8 | |
| 1 | 2 | 3 | 4 | 0.04 | 0.04 | 6.96 | 3 | |
| 1.5 | 2 | 2 | 6 | 0.03 | 0.03 | 12.86 | 0 | |
| 2 | 2 | 3 | 8 | 0.02 | 0.00 | 34.68 | 0 | |
| Cora-TAPE | 0 | 3 | 6 | 54 | 0.06 | 0.13 | 2.24 | 0 |
| Dataset | APPNP | PPR-Prob | LAME-Graph | Graph-TV | PtS | |
|---|---|---|---|---|---|---|
| WikiCS | 46.36 | 67.97 | 68.98 | 67.80 | 65.10 | 72.15 |
| Cora-TAPE | 43.82 | 68.16 | 70.47 | 63.94 | 68.72 | 72.30 |
| PubMed-TAPE | 64.56 | 78.87 | 80.22 | 73.87 | 79.64 | 80.73 |
| TAPE-Arxiv23 | 28.56 | 35.63 | 38.26 | 35.26 | 36.54 | 38.91 |
| ogbn-arxiv | 22.65 | 33.86 | 40.43 | 40.38 | 35.25 | 40.62 |
| ogbn-products | 22.46 | 28.54 | 27.24 | 27.47 | – | 27.33 |
| Dataset | APPNP | PPR-Prob | LAME-Graph | Graph-TV | PtS | |
|---|---|---|---|---|---|---|
| WikiCS | 72.67 | 77.78 | 78.24 | 78.18 | 78.18 | 78.42 |
| Cora-TAPE | 60.51 | 76.16 | 78.42 | 76.78 | 76.82 | 79.74 |
| PubMed-TAPE | 81.59 | 84.35 | 84.96 | 85.05 | 85.11 | 85.18 |
| TAPE-Arxiv23 | 67.59 | 69.53 | 69.68 | 69.82 | 69.81 | 69.72 |
| ogbn-arxiv | 55.95 | 66.10 | 65.96 | 67.53 | 65.80 | 66.56 |
| ogbn-products | 59.58 | 70.58 | 71.32 | 71.40 | – | 72.17 |
| Dataset | APPNP | PPR-Prob | PtS | Reaction OFF | PPR APPNP | PtS PPR |
|---|---|---|---|---|---|---|
| WikiCS | 67.97 | 68.98 | 72.15 | 53.81 | +1.01 1.59 | +3.17 0.91 |
| Cora-TAPE | 68.16 | 70.47 | 72.30 | 64.83 | +2.31 1.90 | +1.83 0.65 |
| PubMed-TAPE | 78.87 | 80.22 | 80.73 | 76.80 | +1.35 1.25 | +0.51 0.27 |
| TAPE-Arxiv23 | 35.63 | 38.26 | 38.91 | 36.90 | +2.64 0.28 | +0.65 0.37 |
| ogbn-arxiv | 33.86 | 40.43 | 40.62 | 39.95 | +6.57 1.71 | +0.18 0.22 |
| ogbn-products | 28.54 | 27.24 | 27.33 | 27.33 | -1.30 0.22 | +0.09 0.15 |
| Clean ( ) | Noisy ( ) | |||||||
| Dataset | APPNP | PtS | APPNP | PtS | ||||
| WikiCS | 79.08 | 79.05 | 79.40 | +0.35 0.21 | 76.73 | 76.91 | 77.68 | +0.77 0.30 |
| Cora-TAPE | 81.96 | 82.37 | 83.10 | +0.73 0.49 | 76.20 | 78.34 | 79.94 | +1.60 0.61 |
| PubMed-TAPE | 85.77 | 85.74 | 85.81 | +0.06 0.05 | 80.41 | 82.27 | 82.73 | +0.46 0.17 |
| TAPE-Arxiv23 | 69.28 | 69.26 | 69.26 | -0.00 0.02 | 43.43 | 44.04 | 44.33 | +0.29 0.11 |
| ogbn-arxiv | 71.83 | 71.90 | 72.48 | +0.58 0.28 | 62.73 | 64.66 | 64.78 | +0.12 0.33 |
| Clean ( ) | Noisy ( ) | |||||||
| Dataset | APPNP | PtS | APPNP | PtS | ||||
| WikiCS | 78.72 | 79.08 | 79.41 | +0.33 0.18 | 71.06 | 75.12 | 76.38 | +1.27 0.43 |
| Cora-TAPE | 73.54 | 74.76 | 75.96 | +1.20 1.17 | 68.18 | 70.89 | 72.69 | +1.80 0.95 |
| PubMed-TAPE | 84.10 | 84.47 | 84.80 | +0.33 0.18 | 72.26 | 78.63 | 80.04 | +1.41 0.77 |
| TAPE-Arxiv23 | 70.04 | 70.20 | 70.35 | +0.15 0.09 | 39.67 | 41.59 | 43.09 | +1.50 0.44 |
| ogbn-arxiv | 71.85 | 72.17 | 72.43 | +0.26 0.06 | 50.00 | 55.30 | 57.44 | +2.14 0.94 |
| Dataset | C&S 0 | C&S-PtS 0 | C&S 2 | C&S-PtS 2 | Gain (pp) |
|---|---|---|---|---|---|
| WikiCS | 76.90 | 78.82 | 70.06 | 75.43 | +5.38 0.85 |
| Cora-TAPE | 87.38 | 87.23 | 86.18 | 86.00 | -0.17 0.20 |
| PubMed-TAPE | 86.97 | 86.98 | 84.44 | 84.44 | 0.00 0.05 |
| TAPE-Arxiv23 | 70.32 | 70.31 | 45.54 | 45.55 | +0.02 0.04 |
| ogbn-arxiv | 70.91 | 71.00 | 68.35 | 68.61 | +0.26 0.30 |
| ogbn-products | 77.97 | 78.67 | 75.08 | 76.73 | +1.65 0.53 |
| Dataset | Method | |||||
|---|---|---|---|---|---|---|
| WikiCS | APPNP | 77.78 | 77.12 | 75.33 | 72.19 | 67.97 |
| PPR-Prob | 78.24 | 77.48 | 75.69 | 73.09 | 68.98 | |
| PtS | 78.42 | 77.61 | 76.14 | 74.38 | 72.15 | |
| Cora-TAPE | APPNP | 76.16 | 75.60 | 73.87 | 71.43 | 68.16 |
| PPR-Prob | 78.42 | 77.92 | 76.28 | 73.52 | 70.47 | |
| PtS | 79.74 | 78.95 | 77.32 | 75.21 | 72.30 |
| Dataset | Method | |||||
|---|---|---|---|---|---|---|
| WikiCS | C&S | 76.90 | 75.64 | 73.14 | 71.19 | 70.06 |
| C&S-PtS | 78.82 | 78.27 | 77.32 | 76.31 | 75.43 | |
| Cora-TAPE | C&S | 87.38 | 87.14 | 86.81 | 86.54 | 86.18 |
| C&S-PtS | 87.23 | 87.05 | 86.66 | 86.42 | 86.00 | |
| PubMed-TAPE | C&S | 86.97 | 86.39 | 85.48 | 84.89 | 84.44 |
| C&S-PtS | 86.98 | 86.38 | 85.48 | 84.88 | 84.44 |
| Dataset | PtS-rn | PtS | ||
| Clean ( ) | ||||
| WikiCS | 78.24 | 78.42 | ||
| Cora-TAPE | 79.15 | 79.74 | ||
| PubMed-TAPE | 85.12 | 85.18 | ||
| TAPE-Arxiv23 | 69.75 | 69.72 | ||
| ogbn-arxiv | 67.45 | 66.56 | ||
| Curve | ||||||||
|---|---|---|---|---|---|---|---|---|
| , (no restart) | ||||||||
| frozen | 67.5 | 67.5 | 67.5 | 67.5 | 67.5 | 67.5 | 67.5 | 67.5 |
| APPNP | 74.5 | 74.3 | 73.4 | 70.7 | 64.8 | 58.2 | 50.2 | 40.5 |
| Logit-Sharp | 74.5 | 74.9 | 74.7 | 74.3 | 72.7 | 68.0 | 60.7 | 52.9 |
| PPR-Prob | 75.1 | 75.8 | 75.2 | 73.3 | 68.5 | 61.4 | 53.7 | 44.6 |
| PtS | 75.1 | 75.8 | 75.8 | 75.3 | 74.4 | 73.5 | 71.9 | 70.6 |
| Node stratum | Bucket | PtS APPNP ( ) | PtS APPNP ( ) |
|---|---|---|---|
| Local homophily | 0-.2 | -1.29 | -1.75 |
| .2-.4 | -0.51 | -0.35 | |
| .4-.6 | +1.88 | +4.83 | |
| .6-.8 | +3.69 | +9.12 | |
| .8-1 | +1.90 | +5.76 | |
| isolated | +0.00 | +0.00 |
| MLP | Per step (ms) | (ms) | PtS/APPNP | ||||||
| Dataset | Device | fwd (ms) | APPNP | PPR-Prob | PtS | APPNP | PPR-Prob | PtS | per step |
| WikiCS | CPU | 23.0 | 1.00 | 2.02 | 4.72 | 100 | 202 | 472 | 4.7 |
| Cora-TAPE | CPU | 5.4 | 0.09 | 0.44 | 1.31 | 8.8 | 43.6 | 131 | 14.9 |
| PubMed-TAPE | CPU | 59.0 | 0.18 | 0.90 | 3.08 | 17.7 | 89.8 | 308 | 17.4 |
| TAPE-Arxiv23 | CPU | 87.6 | 5.45 | 12.1 | 30.7 | 545 | 1,211 | 3,068 | 5.6 |
| ogbn-arxiv | A100 | 9.9 | 0.90 | 1.69 | 3.85 | 90.0 | 169 | 385 | 4.3 |
| Method | raw NLL | scaled NLL | raw ECE | scaled ECE | acc. drift (pp) | ||
|---|---|---|---|---|---|---|---|
| 0 | Frozen | 1.34 | 1.226 | 1.132 | 0.088 | 0.040 | 0 |
| APPNP | 0.84 | 0.983 | 0.907 | 0.129 | 0.037 | 0 | |
| PtS | 2.11 | 1.591 | 0.932 | 0.158 | 0.050 | 0 | |
| 2 | Frozen | 3.55 | 3.514 | 2.112 | 0.302 | 0.047 | 0 |
| APPNP | 1.47 | 2.108 | 1.752 | 0.178 | 0.075 | 0 | |
| PtS | 2.92 | 3.088 | 1.692 | 0.254 | 0.093 | 0 |