Skip to content

Implementation and experiments of graph embedding algorithms.

License

Notifications You must be signed in to change notification settings

ARASC/GraphEmbedding

Repository files navigation

GraphEmbedding

Method

ModelPaperNote
DeepWalk[KDD 2014]DeepWalk: Online Learning of Social Representations【Graph Embedding】DeepWalk:算法原理,实现和应用
LINE[WWW 2015]LINE: Large-scale Information Network Embedding【Graph Embedding】LINE:算法原理,实现和应用
Node2Vec[KDD 2016]node2vec: Scalable Feature Learning for Networks【Graph Embedding】Node2Vec:算法原理,实现和应用
SDNE[KDD 2016]Structural Deep Network Embedding【Graph Embedding】SDNE:算法原理,实现和应用
Struc2Vec[KDD 2017]struc2vec: Learning Node Representations from Structural Identity【Graph Embedding】Struc2Vec:算法原理,实现和应用

How to run examples

  1. clone the repo and make sure you have installed tensorflow or tensorflow-gpu on your local machine.
  2. run following commands
python setup.py install cd examples python deepwalk_wiki.py

DisscussionGroup & Related Projects

公众号:浅梦的学习笔记

微信:deepctrbot

Usage

The design and implementation follows simple principles(graph in,embedding out) as much as possible.

Input format

we use networkxto create graphs.The input of networkx graph is as follows: node1 node2 <edge_weight>

DeepWalk

G=nx.read_edgelist('../data/wiki/Wiki_edgelist.txt',create_using=nx.DiGraph(),nodetype=None,data=[('weight',int)])# Read graphmodel=DeepWalk(G,walk_length=10,num_walks=80,workers=1)#init modelmodel.train(window_size=5,iter=3)# train modelembeddings=model.get_embeddings()# get embedding vectors

LINE

G=nx.read_edgelist('../data/wiki/Wiki_edgelist.txt',create_using=nx.DiGraph(),nodetype=None,data=[('weight',int)])#read graphmodel=LINE(G,embedding_size=128,order='second') #init model,order can be ['first','second','all']model.train(batch_size=1024,epochs=50,verbose=2)# train modelembeddings=model.get_embeddings()# get embedding vectors

Node2Vec

G=nx.read_edgelist('../data/wiki/Wiki_edgelist.txt', create_using=nx.DiGraph(), nodetype=None, data= [('weight', int)])#read graphmodel=Node2Vec(G, walk_length=10, num_walks=80,p=0.25, q=4, workers=1)#init modelmodel.train(window_size=5, iter=3)# train modelembeddings=model.get_embeddings()# get embedding vectors

SDNE

G=nx.read_edgelist('../data/wiki/Wiki_edgelist.txt',create_using=nx.DiGraph(),nodetype=None,data=[('weight',int)])#read graphmodel=SDNE(G,hidden_size=[256,128]) #init modelmodel.train(batch_size=3000,epochs=40,verbose=2)# train modelembeddings=model.get_embeddings()# get embedding vectors

Struc2Vec

G=nx.read_edgelist('../data/flight/brazil-airports.edgelist',create_using=nx.DiGraph(),nodetype=None,data=[('weight',int)])#read graphmodel=model=Struc2Vec(G, 10, 80, workers=4, verbose=40, ) #init modelmodel.train(window_size=5, iter=3)# train modelembeddings=model.get_embeddings()# get embedding vectors

About

Implementation and experiments of graph embedding algorithms.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python100.0%