Graph-based joint model with Nonignorable Missingness (GNM)
This is a Keras implementation of the GNM model in paper ’Graph-Based Semi-Supervised Learning with Nonignorable Nonresponses‘ by Fan Zhou et al (NeurIPS 2019).
Acknowledgements
This GNM model supports the architecture of
Graph Convolution Network (Thomas N. Kipf, Max Welling ICLR 2017), Semi-Supervised Classification with Graph Convolutional Networks,
Graph Attention Networks (Veličković et al., ICLR 2018): Graph Attention Networks
We build our pipeline based on Keras Graph Attention Network and Keras Graph Convolution Network.
You should cite these papers if you use any of this code for your research:
@article{kipf2016semi,
title={Semi-supervised classification with graph convolutional networks},
author={Kipf, Thomas N and Welling, Max},
journal={arXiv preprint arXiv:1609.02907},
year={2016}
}
@article{
velickovic2018graph,
title="{Graph Attention Networks}",
author={Veli{\v{c}}kovi{\'{c}}, Petar and Cucurull, Guillem and Casanova, Arantxa and Romero, Adriana and Li{\`{o}}, Pietro and Bengio, Yoshua},
journal={International Conference on Learning Representations},
year={2018},
url={https://openreview.net/forum?id=rJXMpikCZ},
note={Accepted as poster},
}
I copied the code in utils.py
almost verbatim from this repo by Thomas Kipf and add some new codes such as evaluation model prediction performance split training/validation/test data.
Disclaimer
I do not own any rights to the datasets distributed with this code, but they are publicly available at the following links:
- CORA: https://relational.fit.cvut.cz/dataset/CORA
- PubMed: https://catalog.data.gov/dataset/pubmed
- CiteSeer: http://csxstatic.ist.psu.edu/about/data
Replicating experiments
To replicate the simple setup of the real analysis in the paper, just run:
$ python sim_cora_GCN.py
and
$ python sim_cora_GAT.py
for the Cora dataset with ‘lambda = 2’ or
$ python sim_citeseer_GAT.py
and
$ python sim_citeseer_GCN.py
for the Citeseer dataset.
To replicate the complicated setup of the real analysis in the paper, you may try
$ python real_cora.py