Skip to content

Attributed Biased Random Walks (ABRW) is an Attributed Network Embedding method

License

Notifications You must be signed in to change notification settings

houchengbin/ABRW

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Notice

For the future updates of ABRW method, please see https://github.com/houchengbin/OpenANE


ABRW: Attributed Biased Random Walks

ABRW is an Attributed Network/Graph Embedding (ANE) method, which takes network structural information and node attribute information as the input, and generates unified low-dim node embeddings for each node in the network as the output. The node embeddings can be then fed into various different downstream tasks e.g. node classification and link prediction. The off-the-shelf Machine Learning techniques and distance/similarity metrics can be easily applied in the downstream tasks, since the resulting node embeddings are just some isolated low-dim data points in Euclidean space.

by Chengbin HOU 2018 chengbin.hou10(AT)foxmail.com

For more details, please have a look at our paper https://arxiv.org/abs/1811.11728. And if you find ABRW or this framework is useful for your research, please consider citing it.

@article{hou2020RoSANE,
  title={RoSANE: Robust and Scalable Attributed Network Embedding for Sparse Networks},
  author={Hou, Chengbin and He, Shan and Tang, Ke},
  journal={Neurocomputing},
  year={2020},
  publisher={Elsevier},
  url={https://doi.org/10.1016/j.neucom.2020.05.080},
  doi={10.1016/j.neucom.2020.05.080},
}

Usages

Install necessary packages

pip install -r requirements.txt

Note: python 3.6 or above is required due to the new print() feature

Run ABRW method with default parameters

python src/main.py --method abrw

Try other methods

abrw; aane; tadw; attrpure; attrcomb; deepwalk; node2vec

Change parameters in each method

Please see main.py

Datasets

Default

Cora (a citation network)

Your own dataset?

FILE for structural information (each row):

adjlist: node_id1 node_id2 node_id3 -> (the edges between (id1, id2) and (id1, id3))

OR edgelist: node_id1 node_id2 weight(optional) -> one edge (id1, id2)

FILE for attribute information (each row):

node_id1 attr1 attr2 ... attrM

FILE for label (each row):

node_id1 label(s)

Acknowledgement

Thanks to Zeyu DONG for helpful discussions. And thanks to the excellent project, so that we can have a good starting point to carry on our project.

Releases

No releases published

Packages

No packages published

Languages