有什么方法可以使Node2Vec更快?

时间:2020-02-18 07:55:02

标签: graph parallel-processing embedding

我有一个具有480k节点和34M边的图。我想在此图上使用Node2Vec创建节点嵌入。但是,它甚至无法计算转移概率。我正在使用32核和120 GB RAM的Google Cloud Machine。基础结构不是问题,问题在于node2vec pip库中的函数_precompute_probabilities不并行。它仅使用一个线程来计算转换概率。有没有办法使之并行,或者它们是否是Node2Vec的任何其他并行版本?

2 个答案:

答案 0 :(得分:1)

我找到了一个图形库Graph2Vec,它使用CSR矩阵来生成遍历,而不是在内存中从一个节点跳到另一个节点。它比Node2Vec快得多。

链接:https://www.singlelunch.com/2019/08/01/700x-faster-node2vec-models-fastest-random-walks-on-a-graph/

Github:https://github.com/VHRanger/graph2vec

此外,您可以参考此问题并尝试提到的库: https://github.com/aditya-grover/node2vec/issues/10

答案 1 :(得分:1)

我尝试使用“ temp_folder”属性来https://github.com/eliorc/node2vec。以为我不觉得它快得多,所以我最终使用了CSR矩阵版本。 哦...是你自己,谁回答了这个问题? :) 很高兴知道,谢谢您的提示