Skip to content

Track: Track2; Team name: Francesco Orsi; Model: AirTNN - #394

Open
orsif84 wants to merge 3 commits into
geometric-intelligence:mainfrom
orsif84:submission/airtnn
Open

Track: Track2; Team name: Francesco Orsi; Model: AirTNN#394
orsif84 wants to merge 3 commits into
geometric-intelligence:mainfrom
orsif84:submission/airtnn

Conversation

@orsif84

@orsif84 orsif84 commented Jul 22, 2026

Copy link
Copy Markdown

Title (exact format):

Track: Track2; Team name: Francesco Orsi; Model: AirTNN (Topological Neural Networks over the Air)

Label: track-2-tnn · Registration form: filled separately for this PR.


Correctness

Faithful to Fiorellino, Battiloro, Di Lorenzo, Topological Neural Networks over the AirarXiv:2502.10070. Every construct of the paper maps to an explicit location in topobench/nn/backbones/cell/airtnn.py:

Paper Construct Code
Eq. (2)–(3) cell-complex FIR filter / TNN (ideal-channel limit) AirTF.forward L126 with air_enabled=False; reduction asserted by test_ideal_reduction_matches_eq2
Sec. 2 lower/upper neighbourhood patterns S^(d), S^(u) _pattern L26 (off-diagonal support of the provided operators)
Eq. (4)–(5) per-hop AWGN AirTF._air_shift L94 (variance from snr_db, relative to current signal power — documented instantiation)
Eq. (8)–(9) air shift operators (Rayleigh gains on the pattern) AirTF._air_shift L94 (inverse-CDF Rayleigh, scale delta, i.i.d. per link)
Eq. (10)–(11) p-fold noisy shifts, resampled per transmission AirTF.forward loop L126
Eq. (12) AirTF shift-and-sum AirTF.forward L126
Eq. (13)–(14) filter banks W_p^(d), W_p^(u) + nonlinearity γ AirTF.__init__ L80; γ = relu at L221
Sec. 3 channel active in training and inference stochastic in both modes by construction

Documented instantiation choices (allowed as "modifications to respect computational requirements"): binary connectivity from the provided down/up Laplacian patterns; per-hop AWGN variance fixed by SNR relative to current signal power.

Code quality

Mirrors the sibling cell backbone/wrapper (CCCN) integration pattern exactly; ruff clean under the repository configuration; auto-discovered by the Exports managers (no __init__.py edits).

Benchmark on GraphUniverse

  • results.json from the official notebook with MODEL_CONFIG = "cell/airtnn": committed (2026_tdl_challenge/outputs/airtnn_par_v1/results.json; 12 GraphUniverse configurations × 3 seeds × 2 tasks, in-distribution and out-of-distribution).
  • End-to-end pipeline verified on the official challenge dataset: test_pipeline.py with graphuniverse_inductive_triangle1 passed (generation → cell lifting → hydra instantiation → Lightning training → checkpoint).
  • Config exposes delta, snr_db, filter_order, air_enabled — the ideal-channel TNN baseline is a one-flag variant, per the guidelines' "separate configuration files for each variant" if desired.
  • Companion notebook 2026_tdl_challenge/companion/airtnn/airtnn_robustness_companion.ipynb (committed in this PR, with sealed evidence airtnn_robustness.json / .png alongside): on real GraphUniverse, ideal-channel R² ≈ 0.67 on node triangle-degree; channel robustness saturates (≈0.04 step when the channel turns on, then no detectable SNR sensitivity 20→0 dB; 94% retained at 10 dB). Two pre-specified guesses failed and are reported as such (non-monotone SNR curve; δ-axis trend read as an optimization-conditioning effect, noise-compatible).

Documentation & tests

test/nn/backbones/cell/test_airtnn.py: 8 tests passed against the real repo — faithfulness reduction, stochasticity + seeded reproducibility, P=0 pointwise limit, gradient flow through air shifts, pattern handling (sparse and edge-index), wrapper. Coverage: backbone 100%, wrapper 100%. Pipeline test filled (MODELS = ["cell/airtnn"]).

Where the cell lifting sits: a capacity-controlled comparison

This model was benchmarked alongside a simplicial network (MPSN, submitted separately) and a plain GCN baseline under a parameter-matched protocol, because at the library-default width the three differ by up to 36× in trainable parameters (MPSN 389,211; AirTNN 65,326; GCN 10,817) and any raw comparison is confounded. All three were re-run across four matched parameter budgets on triangle counting (3 models × 4 budgets × 12 configurations × 3 seeds = 432 runs), with per-budget widths calibrated from real checkpoints to within ±10% of target.

Mean normalized triangle-counting error (lower is better):

Budget MPSN (simplicial) AirTNN (cell) GCN (graph)
~10k 0.075 0.506 0.866
~30k 0.063 0.500 0.876
~65k 0.054 0.457 0.881
~130k 0.043 0.491 0.887

Read honestly, this places the cell lifting in the middle and says something specific about why. AirTNN beats the plain graph baseline at every budget (≈1.8× lower error), so the cell lifting does buy real representational power over message passing on the graph alone. It is in turn beaten by the simplicial model at every budget — which is the expected ordering on this particular task: triangle counting is exactly the target that a simplicial lifting represents explicitly as 2-simplices, whereas the cell complex used here reaches it only indirectly. The gap is a statement about task–lifting alignment, not about implementation quality.

On the community-detection task AirTNN is the weakest of the three (mean accuracy 0.401 vs GCN 0.458 and MPSN 0.439), degrading sharply in the heterophilic–dense regime. We report this as-is; it is off-target for a model whose stated design goal is robustness of topological message passing under a noisy wireless channel, which is what the companion robustness study measures.

Team

Francesco Orsi — same team as the MPSN submission (multiple submissions per the guidelines; registered separately).

  • Draft (staking priority) — will finalize before Aug 1 AoE.

Implements AirTNN in the cell domain with over-the-air channel modelling,
Hydra config, unit tests (including a deterministic ideal-channel reduction
test), and results.json from the official GraphUniverse evaluation notebook.
@orsif84

orsif84 commented Jul 22, 2026

Copy link
Copy Markdown
Author

Could you please label with track-2-tnn this submission? Thanks!

@review-notebook-app

Copy link
Copy Markdown

Check out this pull request on  ReviewNB

See visual diffs & provide feedback on Jupyter Notebooks.


Powered by ReviewNB

@gbg141 gbg141 added the track-2-tnn 2026 Topological Deep Learning Challenge -- Track 2 TNNs label Jul 26, 2026
@orsif84
orsif84 marked this pull request as ready for review July 30, 2026 12:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

track-2-tnn 2026 Topological Deep Learning Challenge -- Track 2 TNNs

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants