Track: Track1; Team name: howyadoin; Model: SheafAN#322
Open
dario-loi wants to merge 11 commits into
Open
Conversation
|
Check out this pull request on See visual diffs & provide feedback on Jupyter Notebooks. Powered by ReviewNB |
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 1 — Graph Neural Networks (GNNs)
Team Name
howyadoin
Model
Sheaf Attention Networks (SheafAN)
Status
Ready for review
Summary
This PR contributes a TopoBench-native implementation of Sheaf Attention
Networks (SheafAN) by Barbero et al. (NeurIPS 2022 Workshop on Symmetry
and Geometry in Neural Representations), a generalisation of GAT to
cellular sheaves. Each edge carries both a GAT-style scalar attention
coefficient and a learned
d x drestriction map (orthogonal by default);the per-layer update is the attention-weighted sheaf-adjacency message
pass from equation (5) of the paper, with an optional residual variant
(equation 6 / Res-SheafAN) toggled via the
residualflag.The implementation reuses NSD's sheaf-learner, orthogonal parameterization
and sparse index plumbing where possible, and adds three new pieces
under
nsd_utils/: a GAT-style attention module, sheaf-adjacencybuilders (one per restriction-map family), and three inductive SheafAN
models mirroring NSD's diag / bundle / general variants. The bundle
variant with O(d) restriction maps is the paper-faithful setting and is
the default in the Hydra config.
Implementation
per-direction attention coefficients with identity self-loops
(
topobench/nn/backbones/graph/nsd_utils/adjacency_builders.py).source neighbours, mirroring
torch_geometric.nn.GATConv'shead/dim flexibility (
nsd_utils/san_attention.py).— with optional Res-SheafAN residual update
(
nsd_utils/inductive_attention_models.py).SANEncoderwrapper plugged into the TBModel pipeline, mirroringNSDEncoder's public API (topobench/nn/backbones/graph/san.py).configs/model/graph/san.yaml) referencingSANEncoderwith paper-style defaults(
sheaf_type=bundle,d=3,num_heads=4).adjacency builders and residual mode (70 tests,
test/nn/backbones/graph/test_san.py); coverage on the four newfiles is 100% / 100% / 100% / 98% (well above the 93%
threshold).
graph/sanadded totest/pipeline/test_pipeline.pyso theend-to-end pipeline is exercised in CI.
2026_tdl_challenge/run_evaluation.ipynb)pointed at
graph/sanand run end-to-end over the fullGraphUniverse grid (12 settings × 3 seeds × 2 experiments = 72
runs); the auto-generated
results.jsonis included.Reference
Barbero, Bodnar, Sáez de Ocáriz Borde, Liò, "Sheaf Attention Networks,"
NeurIPS 2022 Workshop on Symmetry and Geometry in Neural Representations
(Extended Abstract Track).