Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Spectral Lifting (Graph to Hypergraph) #68

Open
wants to merge 4 commits into
base: main
Choose a base branch
from
Open

Conversation

AS-L-C
Copy link

@AS-L-C AS-L-C commented Jul 13, 2024

Spectral Lifting

This PR implements a new Graph ➡️ Hypergraph lifting method inspired by the spectral clustering algorithm proposed by Ng, Jordan, and Weiss (2002) [1], which leverages the graph's spectral properties.

We provide a formal definition of the spectral lifting method below, following the notation introduced by von Luxburg in [2].


Algorithm: Spectral Lifting (Graph ➡️ Hypergraph)


Input: Graph (weighted) adjacency matrix $W \in \mathbb{R}^{n \times n}$, where $n$ is the number of nodes

  • Compute the Laplacian matrix $L = D - W$, where D is the degree matrix.
  • Compute the normalized Laplacian $L_{\text{sym}} = D^{-1/2}LD^{-1/2}$.
  • Compute the first $k$ eigenvectors $u_1, \ldots, u_k$ of $L_{\text{sym}}$.
  • Let $U \in \mathbb{R}^{n \times k}$ be the matrix containing the vectors $u_1, \ldots, u_k$ as columns.
  • Form the matrix $T \in \mathbb{R}^{n \times k}$ from $U$ by normalizing the rows to norm 1, that is set $t_{ij} = \frac{u_{ij}}{(\sum_{c} u_{ic}^2)^{1/2}}$.
  • For $i = 1, \ldots, n$, let $y_i \in \mathbb{R}^k$ be the vector corresponding to the $i$-th row of $T$.
  • Cluster the points $(y_i)_{i=1, \ldots, n}$ into clusters $C_1, \ldots, C_k$ with a soft or hard clustering algorithm (e.g., k-means).
  • For $i=1,\ldots,k$ define $H_i$ as the hyperedge connecting all the points belonging to cluster $C_i$
  • Build the hypergraph incidence matrix $M$ of the hypergraph ${\it H}:=\{H_i\}_{{i=1, \ldots, k}}$.

Output: Hypergraph incidence matrix $M \in \mathbb{R}^{n \times k}$, where $k$ is the number of hyperedges


Notes

Note₁: the number of hyperedges $k$ can be automatically determined by using a heuristic based on the eigengaps (i.e., spectral gaps), which estimates the number of connected components in the original graph, or provided by the user.

Note₂: hyperedges with overlapping hypernodes can be obtained by using soft clustering methods, while some degree of randomness can be introduced by using non-deterministc clutering methods.


References

[1] Ng, Andrew, Michael Jordan, and Yair Weiss. "On spectral clustering: Analysis and an algorithm." Advances in neural information processing systems 14 (2001).
[2] Von Luxburg, Ulrike. "A tutorial on spectral clustering." Statistics and computing 17 (2007): 395-416.


Copy link

Check out this pull request on  ReviewNB

See visual diffs & provide feedback on Jupyter Notebooks.


Powered by ReviewNB

@AS-L-C AS-L-C changed the title Added spectral lifting Sectral Lifting Jul 13, 2024
@AS-L-C AS-L-C changed the title Sectral Lifting Sectral Lifting (Graph to Hypergraph) Jul 13, 2024
@AS-L-C AS-L-C changed the title Sectral Lifting (Graph to Hypergraph) Sectral Lifting (Graph to Hypergraph - Deterministic) Jul 13, 2024
@gbg141 gbg141 added challenge-icml-2024 award-category-2 Lifting to Combinatorial, Hypergraph or Graph Domain award-category-3 Feature-based Lifting (including those that simultaneously leverage the connectivity) labels Jul 13, 2024
@gbg141
Copy link
Member

gbg141 commented Jul 13, 2024

Hello @AS-L-C! 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:

  • 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 (Spectral Lifting (Graph to Hypergraph) #68)

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.

@gbg141 gbg141 changed the title Sectral Lifting (Graph to Hypergraph - Deterministic) Spectral Lifting (Graph to Hypergraph - Deterministic) Jul 13, 2024
@AS-L-C AS-L-C changed the title Spectral Lifting (Graph to Hypergraph - Deterministic) Spectral Lifting (Graph to Hypergraph) Jul 19, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
award-category-2 Lifting to Combinatorial, Hypergraph or Graph Domain award-category-3 Feature-based Lifting (including those that simultaneously leverage the connectivity)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants