zpeng27 / GMI

Graph Representation Learning via Graphical Mutual Information Maximization

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

GMI (Graphical Mutual Information)

Graph Representation Learning via Graphical Mutual Information Maximization (Peng Z, Huang W, Luo M, et al., WWW 2020): https://arxiv.org/abs/2002.01169

image

Overview

Note that we propose two variants of GMI in the paper, the one is GMI-mean, and the other is GMI-adaptive. Since GMI-mean often outperforms GMI-adaptive (see the experiments in the paper), here we give a PyTorch implementation of GMI-mean. To make GMI more practical, we provide an alternative solution to compute FMI. Such a solution still ensures the effectiveness of GMI and improves the efficiency greatly. The repository is organized as follows:

  • data/ includes three benchmark datasets;
  • models/ contains the implementation of the GMI pipeline (gmi.py) and the logistic regression classifier (logreg.py);
  • layers/ contains the implementation of a standard GCN layer (gcn.py), the bilinear discriminator (discriminator.py), and the mean-pooling operator (avgneighbor.py);
  • utils/ contains the necessary processing tool (process.py).

To better understand the code, we recommend that you could read the code of DGI/Petar (https://arxiv.org/abs/1809.10341) in advance. Besides, you could further optimize the code based on your own needs. We display it in an easy-to-read form.

Requirements

  • PyTorch 1.2.0
  • Python 3.6

Usage

python execute.py

Cite

Please cite our paper if you make advantage of GMI in your research:

@inproceedings{
peng2020graph,
title="{Graph Representation Learning via Graphical Mutual Information Maximization}",
author={Peng, Zhen and Huang, Wenbing and Luo, Minnan and Zheng, Qinghua and Rong, Yu and Xu, Tingyang and Huang, Junzhou},
booktitle={Proceedings of The Web Conference},
year={2020},
doi={https://doi.org/10.1145/3366423.3380112},
}

About

Graph Representation Learning via Graphical Mutual Information Maximization

License:MIT License


Languages

Language:Python 100.0%