Learning - Node embeddings

Node embeddings are real-valued representations of nodes that capture the node’s neighborhood (and beyond).

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
     from py3plex.core import multinet
     from py3plex.wrappers import train_node2vec_embedding
     from py3plex.visualization.embedding_visualization import embedding_visualization
     from py3plex.visualization.embedding_visualization import embedding_tools
     import json

     ## load network in GML
     multilayer_network = multinet.multi_layer_network().load_network("../datasets/imdb_gml.gml",directed=True,input_type="gml")

     # save this network as edgelist for node2vec
     multilayer_network.save_network("../datasets/test.edgelist")

     ## call a specific embedding binary --- this is not limited to n2v
     train_node2vec_embedding.call_node2vec_binary("../datasets/test.edgelist","../datasets/test_embedding.emb",binary="../bin/node2vec",weighted=False)

     ## preprocess and check embedding
     multilayer_network.load_embedding("../datasets/test_embedding.emb")

     ## visualize embedding
     embedding_visualization.visualize_embedding(multilayer_network)

     ## output embedded coordinates as JSON
     output_json = embedding_tools.get_2d_coordinates_tsne(multilayer_network,output_format="json")

     with open('../datasets/embedding_coordinates.json', 'w') as outfile:
             json.dump(output_json, outfile)
_images/embedding.png