MCPcopy
hub / github.com/shenweichen/GraphEmbedding

github.com/shenweichen/GraphEmbedding @main sqlite

repository ↗ · DeepWiki ↗
108 symbols 419 edges 26 files 8 documented · 7%
README

GraphEmbedding

GitHub Issues CI status codecov Codacy Badge Disscussion

Method

Model Paper Note
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 install dependencies.
  2. Run one example script.
pip install -e .[tf]
python examples/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 graph

model = DeepWalk(G,walk_length=10,num_walks=80,workers=1)#init model
model.train(window_size=5,iter=3)# train model
embeddings = 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 graph

model = 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 model
embeddings = 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 graph

model = Node2Vec(G, walk_length = 10, num_walks = 80,p = 0.25, q = 4, workers = 1)#init model
model.train(window_size = 5, iter = 3)# train model
embeddings = 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 graph

model = SDNE(G,hidden_size=[256,128]) #init model
model.train(batch_size=3000,epochs=40,verbose=2)# train model
embeddings = 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 graph

model = Struc2Vec(G, 10, 80, workers=4, verbose=40, ) #init model
model.train(window_size = 5, iter = 3)# train model
embeddings = model.get_embeddings()# get embedding vectors

Core symbols most depended-on inside this repo

read_node_label
called by 12
ge/classify.py
alias_sample
called by 7
ge/alias.py
create_alias_table
called by 6
ge/alias.py
split_train_evaluate
called by 6
ge/classify.py
preprocess_nxgraph
called by 3
ge/utils.py
simulate_walks
called by 3
ge/walker.py
train
called by 3
ge/models/node2vec.py
get_embeddings
called by 3
ge/models/node2vec.py

Shape

Function 51
Method 48
Class 9

Languages

Python100%

Modules by API surface

ge/models/struc2vec.py19 symbols
ge/walker.py16 symbols
ge/models/sdne.py12 symbols
ge/models/line.py10 symbols
ge/classify.py9 symbols
ge/utils.py4 symbols
ge/models/node2vec.py4 symbols
ge/models/deepwalk.py4 symbols
examples/struc2vec_flight.py3 symbols
examples/sdne_wiki.py3 symbols
examples/node2vec_wiki.py3 symbols
examples/node2vec_flight.py3 symbols

For agents

$ claude mcp add GraphEmbedding \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact