Skip to content

BorgwardtLab/WWL

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Wasserstein Weisfeiler-Lehman Graph Kernels

This repository contains the accompanying code for the NeurIPS 2019 paper Wasserstein Weisfeiler-Lehman Graph Kernels available here. The repository contains both the package that implements the graph kernels (in src) and scripts to reproduce some of the results of the paper (in experiments).

Dependencies

WWL relies on the following dependencies:

  • numpy
  • scikit-learn
  • POT
  • cython

Installation

The easiest way is to install WWL from the Python Package Index (PyPI) via

$ pip install Cython numpy 
$ pip install wwl

Usage

The WWL package contains functions to generate a n x n kernel matrix between a set of n graphs.

The API also allows the user to directly call the different steps described in the paper, namely:

  • generate the embeddings for the nodes of both discretely labelled and continuously attributed graphs,
  • compute the pairwise distance between a set of graphs

Please refer to the src README for detailed documentation.

Experiments

You can find some experiments in the experiments folder. These will allow you to reproduce results from the paper on 2 datasets.

Contributors

WWL is developed and maintained by members of the Machine Learning and Computational Biology Lab:

Citation

Please use the following BibTeX citation when using our method or comparing against it:

@InCollection{Togninalli19,
  author    = {Togninalli, Matteo and Ghisu, Elisabetta and Llinares-L{\'o}pez, Felipe and Rieck, Bastian and Borgwardt, Karsten},
  title     = {Wasserstein Weisfeiler--Lehman Graph Kernels},
  booktitle = {Advances in Neural Information Processing Systems~32~(NeurIPS)},
  year      = {2019},
  editor    = {Wallach, H. and Larochelle, H. and Beygelzimer, A. and d'Alch\'{e}{-}Buc, F. and Fox, E. and Garnett, R.},
  publisher = {Curran Associates, Inc.},
  pages     = {6436--6446},
}