pyt-team / challenge-icml-2024

Official repository for the Topological Deep Learning Challenge 2024, organized by TAG-DS & PyT-Team and hosted by GRaM Workshop @ ICML 2024.
https://pyt-team.github.io/packs/challenge.html
MIT License
37 stars 48 forks source link

Path based lifting (Graph to Combinatorial) #43

Open SalvishGoomanee opened 2 months ago

SalvishGoomanee commented 2 months ago

In this submission, I implemented the algorithm develop in [1] which lifts a graph to a combinatorial complex. Let's just recap some basic concepts of algebraic topology.

Capture d’écran 2024-07-10 à 15 27 20

Capture d’écran 2024-07-10 à 15 28 17

Path based combinatorial complex

The lifting approach implemented here (other approaches can be found in the references listed) consists in constructing the 2-cells of the combinatorial complex following the identification of a given path in the input graph provided a set of source nodes. In particular, one identifies the nodes belonging to the same paths of a set length $k$ in the graph and that start with a node that belongs to the set of source nodes. Those are grouped together to form a rank-2 cell that is added to create a combinatorial complex.

The path-based combinatorial complex (CC) of $G$ denoted by $CC_P(G)$ (following the notation in [1]), consists of 0-cells, 1-cells, and 2-cells:

  1. 0-cells: The 0-cells of $CC_P(G)$ are the nodes of $G$.
  2. 1-cells: The 1-cells of $CC_P(G)$ are the edges of $G$.
  3. 2-cells: The 2-cells are determined by specific paths in $G$.

Construction of 2-cells:

This ensures that 2-cells are formed by sets of nodes that participate in specific paths in the graph, defined by the given source nodes and path length (see path_based_lift_CC method in the CombinatorialPathLifting class which follows from the development in [1].

The path based lift approach to lift graphs to combinatorial complexes (CC) is implemented in path_lifting.py and an example is provided in the notebook path_lifting.ipynb.


[1] Carrel, A. (2024). Combinatorial Complex Score-based Diffusion Modelling through Stochastic Differential Equations (PhD thesis).

[2] Hajij, M., Zamzmi, G., Papamarkou, T., Miolane, N., Guzmán-Sáenz, A., Ramamurthy, K. N., et al. (2022). Topological deep learning: Going beyond graph data.

[3] Papillon, M., Sanborn, S., Hajij, M., & Miolane, N. (2023). Architectures of Topological Deep Learning: A Survey on Topological Neural Networks.


review-notebook-app[bot] commented 2 months ago

Check out this pull request on  ReviewNB

See visual diffs & provide feedback on Jupyter Notebooks.


Powered by ReviewNB

gbg141 commented 2 months ago

Hello @SalvishGoomanee! Thank you for your submission. As we near the end of the challenge, I am collecting participant info for the purpose of selecting and announcing winners. Please email me (or have one member of your team email me) at guillermo_bernardez@ucsb.edu so I can share access to the voting form. In your email, please include:

Before July 12, make sure that your submission respects all Submission Requirements laid out on the challenge page. Any submission that fails to meet this criteria will be automatically disqualified.

SalvishGoomanee commented 2 months ago

Hello Guillermo,

Thanks you for your email.

Here are the details as requested:

First name: SALVSIH , Last name: GOOMANEE Title: Path based lifting (Graph to Combinatorial) Input domain: Graph Output domain: Path based Combinatorial Complex (Hypergraph) PR number: 43

Regards,

Salvish

Le 9 juil. 2024 à 19:50, Guillermo Bernárdez @.***> a écrit :

Hello @SalvishGoomanee https://github.com/SalvishGoomanee! Thank you for your submission. As we near the end of the challenge, I am collecting participant info for the purpose of selecting and announcing winners. Please email me (or have one member of your team email me) at @. @.> so I can share access to the voting form. In your email, please include:

your first and last name (as well as any other team members) the title of the method you implemented the input domain of the method you implemented the output domain of the method you implemented your pull request number (#43 https://github.com/pyt-team/challenge-icml-2024/pull/43) Before July 12, make sure that your submission respects all Submission Requirements laid out on the challenge page https://pyt-team.github.io/packs/challenge.html. Any submission that fails to meet this criteria will be automatically disqualified.

— Reply to this email directly, view it on GitHub https://github.com/pyt-team/challenge-icml-2024/pull/43#issuecomment-2218315758, or unsubscribe https://github.com/notifications/unsubscribe-auth/AOTHT6YKV2YGHN4YBSPWFODZLQPF5AVCNFSM6AAAAABKTIPBT6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDEMJYGMYTKNZVHA. You are receiving this because you were mentioned.