Track: Track2; Team name: Francesco Orsi; Model: AirTNN - #394
Open
orsif84 wants to merge 3 commits into
Open
Conversation
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.
Author
|
Could you please label with track-2-tnn this submission? Thanks! |
|
Check out this pull request on See visual diffs & provide feedback on Jupyter Notebooks. Powered by ReviewNB |
orsif84
marked this pull request as ready for review
July 30, 2026 12:31
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Title (exact format):
Label:
track-2-tnn· Registration form: filled separately for this PR.Correctness
Faithful to Fiorellino, Battiloro, Di Lorenzo, Topological Neural Networks over the Air — arXiv:2502.10070. Every construct of the paper maps to an explicit location in
topobench/nn/backbones/cell/airtnn.py:AirTF.forwardL126 withair_enabled=False; reduction asserted bytest_ideal_reduction_matches_eq2S^(d),S^(u)_patternL26 (off-diagonal support of the provided operators)AirTF._air_shiftL94 (variance fromsnr_db, relative to current signal power — documented instantiation)AirTF._air_shiftL94 (inverse-CDF Rayleigh, scaledelta, i.i.d. per link)AirTF.forwardloop L126AirTF.forwardL126W_p^(d),W_p^(u)+ nonlinearity γAirTF.__init__L80; γ = relu at L221Documented 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;
ruffclean under the repository configuration; auto-discovered by the Exports managers (no__init__.pyedits).Benchmark on GraphUniverse
results.jsonfrom the official notebook withMODEL_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).test_pipeline.pywithgraphuniverse_inductive_triangle→ 1 passed (generation → cell lifting → hydra instantiation → Lightning training → checkpoint).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.2026_tdl_challenge/companion/airtnn/airtnn_robustness_companion.ipynb(committed in this PR, with sealed evidenceairtnn_robustness.json/.pngalongside): 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):
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).