/curvature-filtrations

Curvature Filtrations for Graph Generative Model Evaluation

Primary LanguagePythonBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

cfggme: Curvature Filtrations Graph Generative Model Evaluation

arXiv GitHub contributors GitHub

This is the official repository for the NeurIPS 2023 paper: Curvature Filtrations for Graph Generative Model Evaluation.

We provide a new method for comparing graph distributions that does not rely on Maximal Mean Discrepancy (MMD), which has been shown to have some drawbacks. Our method combines discrete curvature on graphs and persistent homology to build expressive descriptors of sets of graphs that are robust, stable, expressive and support statistical tests. When using our measures in practice, we highly reccomend selecting a filtration based on Ollivier Ricci curvature.

Please consider citing our work!

@misc{southern2023curvature,
      title={Curvature Filtrations for Graph Generative Model Evaluation}, 
      author={Joshua Southern and Jeremy Wayland and Michael Bronstein and Bastian Rieck},
      year={2023},
      eprint={2301.12906},
      archivePrefix={arXiv},
      primaryClass={cs.LG}
}

Dependencies

Dependencies are managed using poetry. To setup the environment, please run poetry install from the main directory (assuming the user already has installed poetry).

Running CFGGME

The example.py shows an example of how we generate a distance between two distributions of graphs. We assume that each distribution of graphs is stored as a list of networkx graphs. To use our code for comparing your own distributions of graphs, it is as easy as substituting the two lists with your own lists of graphs.

The sr.py file recreates the strongly regular graph experiments shown in the paper.