Skip to content

Conversation

@dleko11
Copy link

@dleko11 dleko11 commented Nov 19, 2025

Co-authored-by: luka-benic luka121benic@gmail.com
Co-authored-by: dleko11 davidleko11@gmail.com

Checklist

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

Description

This PR introduces a complete on-disk data loading pipeline for transductive datasets, together with higher-order structure comparison utilities and integration with the memory profiling tools.

The goal is to enable scalable training on large graphs while preserving global topological information when using topological liftings.

Our solution is based on the Cluster-GCN algorithm proposed in Chiang et al., Cluster-GCN: An Efficient Algorithm for Training Deep and Large GNNs (KDD 2019). This approach is also used in PyTorch Geometric’s ClusterData implementation.


Key Contributions

1. Local Liftings Lose Global Structure

If liftings are applied inside each cluster independently, the following issues arise:

  • each cluster produces only local higher-order structures,
  • any structure that spans multiple clusters is lost,
  • when clusters are later collated during batching, their lifted structures remain disjoint,
  • the dataloader has no mechanism to merge these local liftings into a global, consistent structure.

In short: lifting before batching destroys global higher-order structure.


2. Our Solution: Batch First, Lift Second

We redesigned the transductive pipeline to preserve global topology:

  1. The Cluster-GCN loader samples several clusters per batch.
  2. These clusters are collated into a single induced subgraph.
  3. Liftings are applied to the collated batch, not to individual clusters.

This enables:

  • discovery of structures spanning multiple clusters if they co-occur in a batch,
  • randomized batching across epochs to progressively recover more global structure,
  • compatibility with both standard GNNs and higher-order models (hypergraphs, cell complexes, simplicial complexes).

We sweep two key parameters:

  • num_parts: number of METIS partitions,
  • batch_size: number of partitions grouped before lifting.

3. Structure Comparison Utilities

To quantify how much global information is preserved, we implement:

  • global lifting computation (golden structures),
  • batch-level lifting under Cluster-GCN sampling,
  • epoch-wise and cumulative recall metrics:

$$ \text{Recall}_1 = \frac{|G \cap C^{(1)}|}{|G|},\qquad \text{Recall}_n = \frac{ \left| G \cap \bigcup_{i=1}^n C^{(i)} \right| }{|G|}. $$

This allows us to rigorously evaluate how well the on-disk pipeline recovers global higher-order structures over time.


Testing & Validation

  • The new pipeline passes the existing pipeline and loader test suite.
  • Extensive experiments were run on the following datasets:
    • graph/cora
    • graph/pubmed
    • graph/reddit
  • Models used for testing:
    • graph/gcn
    • hypergraph/edgnn
    • cell/topotune
    • simplicial/topotune

Memory behavior was verified using the profiling utilities, and the recall/convergence experiments were reproduced using the new sweep scripts.

Details are available in the tutorial_on_disk_transductive_pipeline.ipynb notebook.

@review-notebook-app
Copy link

Check out this pull request on  ReviewNB

See visual diffs & provide feedback on Jupyter Notebooks.


Powered by ReviewNB

@dleko11
Copy link
Author

dleko11 commented Nov 21, 2025

Added unit tests; fixed minor path issues; improved tutorial.

@levtelyatnikov levtelyatnikov added the category-b1 Submission to TDL Challenge 2025: Mission B, Category 1. label Nov 24, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

category-b1 Submission to TDL Challenge 2025: Mission B, Category 1.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants