Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ZhuangCY/DGCN
Dual Graph Convolution Networks
https://github.com/ZhuangCY/DGCN
Last synced: 3 months ago
JSON representation
Dual Graph Convolution Networks
- Host: GitHub
- URL: https://github.com/ZhuangCY/DGCN
- Owner: ZhuangCY
- Created: 2017-10-27T08:09:44.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2018-12-20T02:58:56.000Z (almost 6 years ago)
- Last Synced: 2024-06-29T09:35:56.988Z (5 months ago)
- Language: Python
- Homepage:
- Size: 6.84 MB
- Stars: 94
- Watchers: 4
- Forks: 22
- Open Issues: 2
-
Metadata Files:
- Readme: readme.md
Awesome Lists containing this project
README
# DGCN
## Introduction
This is a Theano implementation of DGCN, a Dual Graph Convolutional Networks method for graph-based semi-supervised classification proposed in the following paper:
[Dual Graph Convolutional Networks for Graph-Based Semi-Supervised Classification](https://www.researchgate.net/publication/324514333_Dual_Graph_Convolutional_Networks_for_Graph-Based_Semi-Supervised_Classification).
Chenyi Zhuang, Qiang Ma.
WWW 2018.Please cite our paper if you use this code in your own work.
## Requirements
* python 2.7
* theano
* networkx
* scipy
* Lasagne## Run the demo
```bash
python Test.py [dataset]
```[dataset] could be strings: "citeseer", "cora", and "pubmed".
## Models
The DGCN model is mainly implemented in `Model.py`. In `layers.py`, the dense layer, diffusion layer and dropout function are defined. In `LossCalculation.py`, the loss calculation functions and evaluation metric function (i.e., accuracy) are defined. In `utilities.py`, the random walk functions and temporal weight function are defined.
## Prepare the raw data
In order to run the code on your own dataset, you need to prepare:
* an n by n adjacency matrix (n is the number of nodes),
* an n by k feature matrix (k is the number of features per node), and
* an n by c binary label matrix (c is the number of classes).Please refer to our paper and the files `DataPreparation.py` and `utilities.py` for detailed data pre-processing information.
For testing, the "citeseer", "cora", and "pubmed" datasets are available in the directory `data`. Due to the file size limitation, for the "nell_full" dataset, you could find at [http://www.cs.cmu.edu/~zhiliny/data/nell_data.tar.gz](http://www.cs.cmu.edu/~zhiliny/data/nell_data.tar.gz) or [our pre-processed version](https://www.dropbox.com/s/bxrvf1syyuzmcqq/DGCN.zip?dl=0).
Since we used the exactly same datasets for testing, for detailed information about these four datasets, you may refer to the [Planetoid repository](https://github.com/kimiyoung/planetoid)
## Related work
Our work is inspired by the following papers:
* Thomas N. Kipf, Max Welling, [Semi-Supervised Classification with Graph Convolutional Networks.](http://arxiv.org/abs/1609.02907)
* David I Shuman, Sunil K. Narang, Pascal Frossard, Antonio Ortega, Pierre Vandergheynst, [The Emerging Field of Signal Processing on Graphs: Extending High-Dimensional Data Analysis to Networks and Other Irregular Domains.](https://arxiv.org/abs/1211.0053)The testing datasets were provided by:
* Zhilin Yang, William W. Cohen, Ruslan Salakhutdinov, [Revisiting Semi-Supervised Learning with Graph Embeddings.](https://arxiv.org/abs/1603.08861)