Home

Awesome

struc2vec

This repository provides a reference implementation of struc2vec as described in the paper:<br>

struc2vec: Learning Node Representations from Structural Identity.<br> Leonardo F. R. Ribeiro, Pedro H. P. Saverese, Daniel R. Figueiredo.<br> Knowledge Discovery and Data Mining, SigKDD, 2017.<br>

The struc2vec algorithm learns continuous representations for nodes in any graph. struc2vec captures structural equivalence between nodes.

Before to execute struc2vec, it is necessary to install the following packages: <br/> pip install futures <br/> pip install fastdtw <br/> pip install gensim

Update

Python 3 version: https://github.com/sebkaz/struc2vec/tree/master

Basic Usage

Example

To run struc2vec on Mirrored Zachary's karate club network, execute the following command from the project home directory:<br/> python src/main.py --input graph/karate-mirrored.edgelist --output emb/karate-mirrored.emb

Options

To activate optimization 1, use the following option: --OPT1 true <br/> To activate optimization 2: --OPT2 true <br/> To activate optimization 3: --OPT3 true <br/>

To run struc2vec on Barbell network, using all optimizations, execute the following command from the project home directory: <br/> python src/main.py --input graph/barbell.edgelist --output emb/barbell.emb --num-walks 20 --walk-length 80 --window-size 5 --dimensions 2 --OPT1 True --OPT2 True --OPT3 True --until-layer 6

You can check out the other options available to use with struc2vec using:<br/> python src/main.py --help

Input

The supported input format is an edgelist:

node1_id_int node2_id_int
	

Output

The output file has n+1 lines for a graph with n vertices. The first line has the following format:

num_of_nodes dim_of_representation

The next n lines are as follows:

node_id dim1 dim2 ... dimd

where dim1, ... , dimd is the d-dimensional representation learned by struc2vec.

Miscellaneous

Please send any questions you might have about the code and/or the algorithm to leonardofribeiro@gmail.com.

Note: This is only a reference implementation of the framework struc2vec.