Skip to content

Latest commit

 

History

History
45 lines (36 loc) · 2.42 KB

README.md

File metadata and controls

45 lines (36 loc) · 2.42 KB

SG-EDNE

This repository is to reproduce the results of our work "Robust Dynamic Network Embedding via Ensembles" at https://arxiv.org/pdf/2105.14557.pdf

Fig. The overview of proposed method. At each timestep, multiple base learners (e.g., here are three) achieve ensembles. The base learner follows a Skip-Gram embedding approach. Between consecutive timesteps, each base learner inherits its previous base learner obeying an incremental learning paradigm. To enhance the diversity among base learners, random walk with restart using different restart probability is adopted to capture different levels of local-global topology (around the affected nodes by changed edges). Embeddings from each base learner are concatenated and rescaled before downstream tasks.

If you find this work is useful, please consider the following citation.

@article{hou2021robust,
  title={Robust Dynamic Network Embedding via Ensembles},
  author={Hou, Chengbin and Fu, Guoji and Yang, Peng and He, Shan and Tang, Ke},
  journal={arXiv preprint arXiv:2105.14557},
  year={2021}
}

Install

conda create -n SG-EDNE python=3.8
source activate SG-EDNE 
pip install -r requirements.txt

Usage

cd SG-EDNE
bash bash/DNC-Email.sh

The above command is for testing SG-EDNE on DNC-Email for five dynamic networks and 10 runs in one go. All results are automatically stored under the bash folder. Have fun :)

Data

Due to the space limit, we only provide DNC-Email dataset. But you may download other datasets and preprocess them as described in the section IV-A in our paper. After that, just follow the similar approach as used in bash/DNC-Email.sh to test other datasets.

Concretely, the input dynamic network can be prepared as follows:

  1. Follow section IV-A in our paper to divide the edge streams into slices.
  2. Use Networkx to construct each snapshot based on the above slices.
  3. Create an empty dynamic network as a empty python list, called DynG.
  4. Append each snapshot to the dynamic network DynG in the chronological order.
  5. Adopt Pickle to store DynG as a .pkl file.

Please let us know if you have any questions.