Track: Track2; Team name: howyadoin; Model: CTNN - #405
Open
dario-loi wants to merge 1 commit into
Open
Conversation
|
Check out this pull request on See visual diffs & provide feedback on Jupyter Notebooks. Powered by ReviewNB |
Author
|
To faithfully reproduce the paper, I'd need to set Unfortunately I cannot tune gradient clipping just from the model's YAML, so I won't do that for fear of invalidating the submission. If you tell me that introducing an override for |
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.
Track
Track 2 — Topological Neural Networks (TNNs)
Team Name
howyadoin
Model
Copresheaf Topological Neural Network (CTNN)
Status
Ready for review
Summary
This PR contributes a TopoBench-native implementation of Copresheaf
Topological Neural Networks (CTNN) by Hajij et al. (NeurIPS 2025). A CTNN
gives every cell of a combinatorial complex its own feature space (a stalk)
and every directed neighbour relation
y -> xa learnable transport maprho_{y->x}: F(y) -> F(x). Messages are carried into the receiver's framebefore aggregation, which makes propagation direction-aware; a cellular
sheaf glues data through a shared edge stalk instead and is therefore
symmetric.
Implementation
attention over one neighborhood, the Definition 10 layer, and the
stacked model (
topobench/nn/backbones/simplicial/ctnn.py).HeadwiseLinear) so transport is evaluatedindependently per attention head, as Table 18 specifies, rather than
sharing weights the way
torch.nn.Linearwould.configs/model/simplicial/ctnn.yaml(SheafFC, the map ofAppendix H.5) plus
ctnn_spd.yamlandctnn_diag.yamlfor the twoother entries of the catalogue the paper applies to topological
domains.
attention is row-stochastic per receiver and head, the aggregated
message matches a dense per-pair reference for Eq. (7) and (12),
otimesis summation, SheafFC starts at the identity, SheafSPD haseigenvalues at least one, the diagonal map gates into
(0, 1),transport is directional (
rho_{y->x} != rho_{x->y}^T), and everyregistered parameter receives gradient. 44 tests in
test/nn/backbones/simplicial/test_ctnn.py, including an overfit checkand degenerate complexes with no 2-cells and no 1-cells.
test/pipeline/test_pipeline.pyso CIexercises each transport map end to end.
docs/api/).(12 settings × 3 seeds × 2 experiments = 72 runs); the auto-generated
results.jsonis included. The grid was run withsimplicial/ctnn_diag,with diagonal transport maps. More expressive variants are available, but led to
severe overfitting on the small GraphUniverse datasets.
Notes on faithfulness
Three conventions the paper leaves open, we collect our assumptions here and
reiterate them in the docstrings:
pequals the stalk width, the setting Table 18 assumeswhen it sizes transport as
W in R^{2d x d^2}.betaruns once per layer over the combined message, followingDefinition 10 and the layer displayed in Appendix H.5. Algorithm 1 instead
writes two sequential updates, one after self-attention and one after
cross-attention, which makes the result depend on the order the
neighborhoods happen to be listed in.
writes none; the cost accounting under Table 19 charges an
O(n d^2)stepto "combine head outputs", and the full-width
betathat immediatelyfollows mixes heads instead.
Two deliberate deviations from Appendix H.5, both flagged inline in the
configs:
0 <-> 0adjacency through 2-cells(
2-up_adjacency-0here). GraphUniverse graphs have average degree 1-5, sotriangle-adjacency is nearly empty and would silence the
0 <- 0path onmost nodes; the configs use
up_adjacency-0instead.d = 4(channels=64,heads=16), which is what the paperuses for its classification tasks (Section 6.3, Appendix H.3.1, H.4). The
d = 16of Section 6.1 and Appendix H.5 is for physics regression, andbecause SheafFC transport carries
W in R^{2d x d^2}per head it puts 59%of the backbone's weights in the transport maps at that width, which
overfits GraphUniverse.
One TopoBench integration detail: Definition 7 builds the
copresheaf neighborhood matrix by replacing each nonzero of the binary
matrix with a map, so the stored scalar carries no information beyond being
nonzero. The zeros have to be filtered by value rather than read off the
sparsity pattern, because TopoBench materialises
up_adjacency-rstraightfrom toponetx, which stores an explicit zero on the diagonal; reading
indices()alone would treat those as a self-loopy = xon every cell.test_stored_zeros_are_not_neighbourspins this down.We have turned dropout to 0.5 to combat overfitting,achieving results that outmatch those of the average submission to the challenge. We speculate that with further regularization, the model could achieve even better results.
Reference
Hajij, Bastian, Osentoski, Kabaria, Davenport, Dawood, Cherukuri,
Kocheemoolayil, Shahmansouri, Lew, Papamarkou, Birdal, "Copresheaf Topological
Neural Networks: A Generalized Deep Learning Framework," NeurIPS 2025.