node2vec
node2vec copied to clipboard
Is it possible to run node2vec on multi graphs ?
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:
-
In theory, can we train node2vec for multi graphs, then use embedding for another (not trained) graph? What is possible solution?
-
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
have you found the answer? I have the same question.
@A2Amir sorry but i dropped this approach. Let wait for the others :(
Please share with me your approach.