Here we describe the model implementation of each method as belows:

# DGL version
pip install dgl==0.4.3
# DGL cuda version
pip install dgl-cu101==0.4.3


# implementation of EGI
# details: two encoder included, GIN and GraphSAGE
# discriminator, GNNDiscLayer is the main component
models/subgi.py 


# re-implemented batch training version of DGI
models/dgi.py

# re-implemented structure_pretrain with the same GIN/GraphSAGE ad EGI
models/structure_pretrain.py 

# re-implemented mask/context pretrain with the same GIN/GraphSAGE ad EGI
models/pretrain_masking_gin.py 
models/pretrain_contextpred_gin.py 



Below, we list the data path. Due to the space limit, we can not attach the YAGO network used. We will release it publicly later. 

# airport edge list
data/$airport-aiports.edgelist

# airport label list
data/labels-$airport-aiports.edgelist

# 40 barabasi-small and forest-fire graphs
data/barabasi_small_graphs_full.pkl
data/forest_fire_graphs_full.pkl


# Example running command for using node-degrees on airport dataset
# check data_src and data_id for transfer learning options in run_airport.py

python run_airport.py --file-path=data/brazil-airports.edgelist --label-path=data/labels-brazil-airports.txt --n-dgi-epochs=100  --n-hidden=32 --self-loop --gpu=3 --n-layers=1 --dgi-lr=0.01 --model-id=2


# Computer the EGI gap term
# from edgelist
python compute_bound_filepath.py --args.file-path=data/europe-aiports.edgelist --args.label-path=data/usa-aiports.edgelist
# from pickle file for synthetic experiment
python compute_bound_pickle.py --args.file-path=data/barabasi_small_graphs_full.pkl --args.label-path=data/forest_fire_graphs_full.pkl
