Skip to content

dihuang0220/GraphEnsembleLearning

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 

Repository files navigation

GraphEnsembleLearning

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.

Implemented Methods

GraphEnsembleLearning consists of the combination of several graph embedding models as following:

Dependencies

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.

Install

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

Usage

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

Cite

@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}
}

About

Graph Representation Ensemble Learning

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages