All Projects → vuptran → Graph Representation Learning

vuptran / Graph Representation Learning

Licence: mit
Autoencoders for Link Prediction and Semi-Supervised Node Classification (DSAA 2018)

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Graph Representation Learning

Hypergcn
NeurIPS 2019: HyperGCN: A New Method of Training Graph Convolutional Networks on Hypergraphs
Stars: ✭ 80 (-59.8%)
Mutual labels:  semi-supervised-learning
Cleanlab
The standard package for machine learning with noisy labels, finding mislabeled data, and uncertainty quantification. Works with most datasets and models.
Stars: ✭ 2,526 (+1169.35%)
Mutual labels:  semi-supervised-learning
Accel Brain Code
The purpose of this repository is to make prototypes as case study in the context of proof of concept(PoC) and research and development(R&D) that I have written in my website. The main research topics are Auto-Encoders in relation to the representation learning, the statistical machine learning for energy-based models, adversarial generation networks(GANs), Deep Reinforcement Learning such as Deep Q-Networks, semi-supervised learning, and neural network language model for natural language processing.
Stars: ✭ 166 (-16.58%)
Mutual labels:  semi-supervised-learning
Virtual Adversarial Training
Pytorch implementation of Virtual Adversarial Training
Stars: ✭ 94 (-52.76%)
Mutual labels:  semi-supervised-learning
Adversarial text
Code for Adversarial Training Methods for Semi-Supervised Text Classification
Stars: ✭ 109 (-45.23%)
Mutual labels:  semi-supervised-learning
Uda
Unsupervised Data Augmentation (UDA)
Stars: ✭ 1,877 (+843.22%)
Mutual labels:  semi-supervised-learning
Grand
Source code and dataset of the NeurIPS 2020 paper "Graph Random Neural Network for Semi-Supervised Learning on Graphs"
Stars: ✭ 75 (-62.31%)
Mutual labels:  semi-supervised-learning
Vosk
VOSK Speech Recognition Toolkit
Stars: ✭ 182 (-8.54%)
Mutual labels:  semi-supervised-learning
Mixmatch Pytorch
Pytorch Implementation of the paper MixMatch: A Holistic Approach to Semi-Supervised Learning (https://arxiv.org/pdf/1905.02249.pdf)
Stars: ✭ 120 (-39.7%)
Mutual labels:  semi-supervised-learning
Deep Sad Pytorch
A PyTorch implementation of Deep SAD, a deep Semi-supervised Anomaly Detection method.
Stars: ✭ 152 (-23.62%)
Mutual labels:  semi-supervised-learning
Deepergnn
Official PyTorch implementation of "Towards Deeper Graph Neural Networks" [KDD2020]
Stars: ✭ 106 (-46.73%)
Mutual labels:  semi-supervised-learning
Ict
Code for reproducing ICT ( published in IJCAI 2019)
Stars: ✭ 107 (-46.23%)
Mutual labels:  semi-supervised-learning
Adversarial Semisupervised Semantic Segmentation
Pytorch Implementation of "Adversarial Learning For Semi-Supervised Semantic Segmentation" for ICLR 2018 Reproducibility Challenge
Stars: ✭ 147 (-26.13%)
Mutual labels:  semi-supervised-learning
Bible text gcn
Pytorch implementation of "Graph Convolutional Networks for Text Classification"
Stars: ✭ 90 (-54.77%)
Mutual labels:  semi-supervised-learning
Stylealign
[ICCV 2019]Aggregation via Separation: Boosting Facial Landmark Detector with Semi-Supervised Style Transition
Stars: ✭ 172 (-13.57%)
Mutual labels:  semi-supervised-learning
Dtc
Semi-supervised Medical Image Segmentation through Dual-task Consistency
Stars: ✭ 79 (-60.3%)
Mutual labels:  semi-supervised-learning
Snowball
Implementation with some extensions of the paper "Snowball: Extracting Relations from Large Plain-Text Collections" (Agichtein and Gravano, 2000)
Stars: ✭ 131 (-34.17%)
Mutual labels:  semi-supervised-learning
Graph Adversarial Learning
A curated collection of adversarial attack and defense on graph data.
Stars: ✭ 188 (-5.53%)
Mutual labels:  semi-supervised-learning
Cct
[CVPR 2020] Semi-Supervised Semantic Segmentation with Cross-Consistency Training.
Stars: ✭ 171 (-14.07%)
Mutual labels:  semi-supervised-learning
Weakly Supervised Panoptic Segmentation
Weakly- and Semi-Supervised Panoptic Segmentation (ECCV18)
Stars: ✭ 149 (-25.13%)
Mutual labels:  semi-supervised-learning

Multi-Task Graph Autoencoders

This is a Keras implementation of the symmetrical autoencoder architecture with parameter sharing for the tasks of link prediction and semi-supervised node classification, as described in the following:

Tran, Phi Vu. Learning to Make Predictions on Graphs with Autoencoders. Proceedings of the 5th IEEE International Conference on Data Science and Advanced Analytics (2018). Full oral paper.

Tran, Phi Vu. Multi-Task Graph Autoencoders. NIPS 2018 Workshop on Relational Representation Learning. Short poster paper.

schematic

Requirements

The code is tested on Ubuntu 16.04 with the following components:

Software

  • Python 2.7
  • Keras 2.0.6 using TensorFlow GPU 1.1.0 backend
  • CUDA 8.0 with CuDNN 5.1
  • NetworkX 1.11
  • NumPy 1.11
  • SciPy 0.17.0
  • Scikit-Learn 0.18.1

Hardware

  • Intel Xeon CPU with 32 cores
  • 64GB of system RAM
  • NVIDIA GeForce GTX TITAN X GPU with 12GB of VRAM

Datasets

Citation networks from Thomas Kipf and Max Welling. 2016. Semi-Supervised Classification with Graph Convolutional Networks:

  • Cora, Citeseer, Pubmed

Collaboration and social networks from Wang et al. 2016. Structural Deep Network Embedding:

  • Arxiv-GRQC, BlogCatalog

Miscellaneous networks from Aditya Krishna Menon and Charles Elkan. 2011. Link Prediction via Matrix Factorization:

  • Protein, Metabolic, Conflict, PowerGrid

For custom graph datasets, the following are required:

  • N x N adjacency matrix (N is the number of nodes) [required for link prediction],
  • N x F matrix of node features (F is the number of features per node) [optional for link prediction],
  • N x C matrix of one-hot label classes (C is the number of classes) [required for node classification].

For an example of how to prepare the input dataset, take a look at the load_citation_data() function in utils_gcn.py.

Usage

For training and evaluation, execute the following bash commands in the same directory where the code resides:

# Set the PYTHONPATH environment variable
$ export PYTHONPATH="/path/to/this/repo:$PYTHONPATH"

# Train the autoencoder model for network reconstruction
# using only latent features learned from local graph topology.
$ python train_reconstruction.py <dataset_str> <gpu_id>

# Train the autoencoder model for link prediction using
# only latent features learned from local graph topology.
$ python train_lp.py <dataset_str> <gpu_id>

# Train the autoencoder model for link prediction using
# both latent graph features and available explicit node features.
$ python train_lp_with_feats.py <dataset_str> <gpu_id>

# Train the autoencoder model for the multi-task
# learning of both link prediction and semi-supervised
# node classification, simultaneously.
$ python train_multitask_lpnc.py <dataset_str> <gpu_id>

The flag <dataset_str> refers to one of the following nine supported dataset strings: protein, metabolic, conflict, powergrid, cora, citeseer, pubmed, arxiv-grqc, blogcatalog. The flag <gpu_id> denotes the GPU device ID, 0 by default if only one GPU is available.

Citation

If you find this work useful, please cite the following:

@inproceedings{Tran-LoNGAE:2018,
  author={Tran, Phi Vu},
  title={Learning to Make Predictions on Graphs with Autoencoders},
  booktitle={5th IEEE International Conference on Data Science and Advanced Analytics},
  year={2018}
}
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].