node2vec icon indicating copy to clipboard operation
node2vec copied to clipboard

Is it possible to run node2vec on multi graphs ?

Open astrung opened this issue 4 years ago • 3 comments

As explained confirmation from all node2vec papers, this algorithm is designed for 1 graph. It create specific embedding for each graph, so it is not possible for training node2vec model on a graph, then use trained model for another graphs. In other words, if i have 2 graphs G and H, i need 2 embedding models:

G_node2vec = Node2Vec(G)
G_model =  G_node2vec.fit()
H_node2vec = Node2Vec(H)
H_model =  H_node2vec.fit()

Then we have a new graph J. Because this graph share some characteristics with graph G and H, i want to use node2vec embedding model from both model G and H to get embedding on J without training a new node2vec model for graph J. I have 2 questions:

  1. In theory, can we train node2vec for multi graphs, then use embedding for another (not trained) graph? What is possible solution?

  2. I am thinking about a solution: Disjoin all training graphs into a graph then create node2vec model on union graph, then use this model to predict non-trained graph. Is it correct ?

    union_graph = disjoint_union(G, H) union_node2vec = Node2Vec(union_graph) union_model = union_node2vec.fit() embedded_J = union_model.predict(J)

If you have any other approaches please share your ideas. I have just started in graph theory and algorithms 2 months ago

astrung avatar Oct 13 '20 05:10 astrung

have you found the answer? I have the same question.

A2Amir avatar Aug 04 '22 12:08 A2Amir

@A2Amir sorry but i dropped this approach. Let wait for the others :(

astrung avatar Aug 05 '22 01:08 astrung

Please share with me your approach.

A2Amir avatar Aug 17 '22 13:08 A2Amir