Representation learning on graphs has been gaining attention due to its wide applicability in predicting missing links, and classifying and recommending nodes. Most embedding methods aim to preserve certain properties of the original graph in the low dimensional space. However, real world graphs have a combination of several properties which are difficult to characterize and capture by a single approach. In this work, we introduce the problem of graph representation ensemble learning and provide a first of its kind framework to aggregate multiple graph embedding methods efficiently.
GraphEnsembleLearning
is a Python package which provides a framework to combine multiple graph embedding approaches for comprehensive graph embedding learning. A paper showcasing the results and analysis using GraphEnsembleLearning
on multi-label node classification task with four real graphs can be found via Graph Representation Ensemble Learning.
GraphEnsembleLearning consists of the combination of several graph embedding models as following:
- Laplacian Eigenmaps
- Locally Linear Embedding
- Graph Factorization
- Higher-Order Proximity preserved Embedding (HOPE)
- Structural Deep Network Embedding (SDNE)
- node2vec
GraphEnsembleLearning
is tested to work on Python 3.6
The required dependencies are: Numpy >= 1.12.0, SciPy >= 0.19.0, Networkx >= 2.1, Scikit-learn >= 0.18.1.
To run SDNE, GEM requires Theano >= 0.9.0 and Keras = 2.0.2.
To use GraphEnsembleLearning
, the following package is required to install.
GEM-Benchmark is a Python package which offers a general framework to benchmark graph embedding methods. Please go to its github page for more installation details. To install this library in your home directory, use:
git clone https://github.com/palash1992/GEM-Benchmark.git
pip3 install -r requirements.txt --user
To install it for all users on Unix/Linux:
git clone https://github.com/palash1992/GEM-Benchmark.git
sudo pip3 install -r requirements.txt
To install GraphEnsembleLearning
, use:
git clone https://github.com/dihuang0220/GraphEnsembleLearning.git
To genenerate the motivating example graphs and plot graphs.
cd Graph_Ensemble
python3 motivation.py
To run Graph Ensemble Learning on graphs.
cd Graph_Ensemble
python3 graph_ensemble.py -exp baseline -data ppi
To get F1 score for each class in node classification
cd Graph_Ensemble
python3 minority_class.py -data ppi
@ARTICLE{2019arXiv190902811G,
author = {{Goyal}, Palash and {Huang}, Di and {Rokka Chhetri}, Sujit and
{Canedo}, Arquimedes and {Shree}, Jaya and {Patterson}, Evan},
title = "{Graph Representation Ensemble Learning}",
journal = {arXiv e-prints},
keywords = {Computer Science - Social and Information Networks, Computer Science - Machine Learning, Statistics - Machine Learning},
year = "2019",
month = "Sep",
eid = {arXiv:1909.02811},
pages = {arXiv:1909.02811},
archivePrefix = {arXiv},
eprint = {1909.02811},
primaryClass = {cs.SI},
adsurl = {https://ui.adsabs.harvard.edu/abs/2019arXiv190902811G},
adsnote = {Provided by the SAO/NASA Astrophysics Data System}
}