Skip to content

Track: Track2; Team name: MISN_AY; Model: Bi-SCNN#387

Open
yusufm423 wants to merge 2 commits into
geometric-intelligence:mainfrom
yusufm423:challenge/biscnn
Open

Track: Track2; Team name: MISN_AY; Model: Bi-SCNN#387
yusufm423 wants to merge 2 commits into
geometric-intelligence:mainfrom
yusufm423:challenge/biscnn

Conversation

@yusufm423

Copy link
Copy Markdown

Checklist

  • My pull request has a clear and explanatory title.
  • My pull request passes the Linting test.
  • I added appropriate unit tests and made sure the code passes all unit tests.
  • My PR follows PEP8 guidelines.
  • My code is properly documented using NumPy documentation conventions.
  • I linked to papers, issues, and PRs that are relevant to this PR.

Description

This PR adds Bi-SCNN as a Track 2 simplicial neural network submission for the TDL Challenge 2026 using:

model=simplicial/biscnn

Bi-SCNN was introduced in:

Binarized Simplicial Convolutional Neural Networks
Yi Yan and Ercan E. Kuruoglu
https://arxiv.org/abs/2405.04098

Motivation

Bi-SCNN extends simplicial convolutional neural networks with a weighted binary-sign propagation mechanism.

The model operates on simplicial complexes and processes node-, edge-, and face-level signals through lower, upper, and harmonic Hodge components. Its main objective is to reduce the computational and memory cost of simplicial feature propagation while retaining information from higher-order structures.

The implementation follows the paper's layer equations and preserves the distinction between:

  • binary-sign feature propagation;
  • full-precision trainable weight matrices; and
  • magnitude values obtained through row-wise L1 normalization.

The sign operation is approximated using hard tanh, as described in the paper, so that the model can be trained using ordinary gradient-based optimization.

What is contributed

Added the Bi-SCNN backbone:

topobench/nn/backbones/simplicial/biscnn.py

Added the Hydra configuration:

configs/model/simplicial/biscnn.yaml

Added unit tests:

test/nn/backbones/simplicial/test_biscnn.py

Added pipeline coverage:

test/pipeline/test_pipeline.py

Updated the official challenge evaluation notebook for:

simplicial/biscnn

Added the generated challenge results:

2026_tdl_challenge/outputs/biscnn/results.json

TopoBench integration

Bi-SCNN follows the TopoBench simplicial-backbone interface and accepts:

forward(x_all, laplacian_all, incidence_all=None)

where x_all contains node-, edge-, and face-level features and laplacian_all contains the corresponding lower and upper Hodge operators.

It returns a tuple of rank-specific embeddings:

(node_embeddings, edge_embeddings, face_embeddings)

with output shapes:

[num_nodes, hidden_channels_0]
[num_edges, hidden_channels_1]
[num_faces, hidden_channels_2]

The implementation reuses the existing:

  • AllCellFeatureEncoder;
  • SCCNNWrapper; and
  • PropagateSignalDown readout.

Implementation details

For each simplicial rank, the backbone applies separate trainable matrices to the available:

  • lower-Hodge component;
  • upper-Hodge component; and
  • harmonic or identity component.

The implementation follows the weighted binary-sign construction described in the paper:

  1. Compute the full-precision simplicial convolution preactivation.
  2. Compute a row-wise magnitude using the mean absolute feature value.
  3. Approximate the sign path using hard tanh.
  4. Propagate the binary-sign output through intermediate layers.
  5. Accumulate the magnitude terms outside the binary path.
  6. Multiply the accumulated magnitude with the final binary-sign representation.

Trainable matrices remain full precision; only feature propagation follows the binary-sign path.

Testing

The unit tests cover:

  • model initialization;
  • hard-tanh sign approximation;
  • row-wise L1 normalization;
  • full-precision trainable weights;
  • magnitude and binary output paths;
  • node-, edge-, and face-level output shapes;
  • dense and sparse Hodge operators;
  • two-dimensional and higher-order simplicial complexes;
  • invalid architecture arguments;
  • malformed Laplacian inputs; and
  • gradient flow.

The pipeline test also runs simplicial/biscnn end to end on graph/MUTAG.

Evaluation

The official challenge notebook was run across:

  • 2 tasks;
  • 12 GraphUniverse settings per task;
  • 3 seeds: 42, 43, and 44;
  • 72 total runs.

Summary of the best in-distribution results:

Task Metric Best result
Community detection Accuracy, higher is better ~0.6301
Triangle counting MSE per structural triangle, lower is better ~0.00197

The best community-detection result was obtained for:

h_hi__d_hi__pl_hi, seed=44

The best normalized triangle-counting result was obtained for:

h_lo__d_hi__pl_hi, seed=43

The complete per-setting, per-seed, and OOD results are stored in:

2026_tdl_challenge/outputs/biscnn/results.json

Reproduction

pytest test/nn/backbones/simplicial/test_biscnn.py -v
pytest test/pipeline/test_pipeline.py -v
python -m topobench model=simplicial/biscnn dataset=graph/MUTAG
heatmap_triangle_mse_over_triangles heatmap_community_detection_accuracy

@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

@levtelyatnikov levtelyatnikov added the track-2-tnn 2026 Topological Deep Learning Challenge -- Track 2 TNNs label Jul 17, 2026
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