所有文章 > 正文

ProNE: 快速的图嵌入表示

作者: 张杰

时间: 2019-08-06 15:37

文本中, 我们展示了ProNE——一个在大规模图数据上非常高效快速同时可扩展性强的图嵌入算法。

论文原文

ProNE 主要由展示在图1中的两个步骤组成。首先,它将图嵌入表示的问题化为稀疏矩阵分解问题,以高效地实现初始的结点的嵌入表示。接着,它借助高阶的Cheeger 不等式来调制图的谱空间,然后把第一步学到的嵌入表示在调整后的图上传播,从而达到将局域的平滑信息(localized smoothing information)和全局的聚类信息(global clustering information)融合进图嵌入表示中。

图1 ProNE 模型: 1) 稀疏矩阵分解产生快速的图嵌入作为模型的初始图嵌入表示;2)在谱空间对图做调制,并将初始的图嵌入在新图上传播,得到最终的图嵌入表示

谱传播作为图嵌入的提升方法

与其他流行的方法类似,例如DeepWalk 和LINE,通过稀疏矩阵分解学习的图嵌入表示一般仅能捕获局域的结构信息。为了进一步整合全局网络属性,例如社区结构,三角形结构,等等,我们提出可以通过根据高阶Cheeger 不等式对图结构进行谱空间的调制,使得调整后的图更加强调局域的平滑信息和全局的聚类信息,然后将上一节中训练得到的初始图嵌入在在新网络中传播,就可以很自然地整合了这些高阶的结构(通过传播,结点的图嵌入会共享到和它同属于一个高阶结构的点的嵌入信息)。因为整个传播过程的关键是先对图做谱空间的调制,所以我们将整个步骤命名为“谱传播”。

注意到谱传播策略是一种通用的将高阶的图信息进一步整合进图嵌入的方法,它一般不依赖所传播的初始图嵌入的具体训练方式。所以,谱传播可以用来提升现有的图嵌入算法(具体的讨论参见图2)。

图2 谱传播在Wiki 数据集上提升各个算法—ProDeepWalk, ProLINE, ProNode2vec, Pro-Grarep, ProHOPE 和ProNE

复杂度分析

算法的全部流程总结在算法1中。对于第一个步骤,快速的稀疏矩阵分解生成初始的图嵌入表示,主要的时间开销在小矩阵H 的SVD 和Y 的QR 分解上,故时间复杂度为O(|V|d2),另外,因为|D| ≪ |V|* |V|, 所以M 是稀疏矩阵,第一个步骤涉及到的是稀疏矩阵的乘法的复杂度是O(|E|)。综上,第一个步骤的时间复杂度是O(|V|d2 + |E|)。

而第二个步骤,谱传播进一步提升图嵌入的质量,主要涉及到的仍然是稀疏矩阵的乘法和最后的小矩阵的SVD 正交化(可选),故第二个步骤的算法复杂度是O(|V|d2 + k |E|)。

算法1

总结而言,算法ProNE 的复杂度为O(|V|d2 + k |E|), 所以算法非常高效。关于空间复杂度,由于算法ProNE 在计算过程中只涉及到稀疏矩阵和图嵌入矩阵的存储,所以空间复杂度是O(|V|d + |E|)。

并行性

注意到ProNE 的计算主要涉及到稀疏矩阵的乘法,randomized SVD 的内部的实现也涉及到稀疏矩阵的乘法,而稀疏矩阵的乘法目前我们使用的是单线程的,实验效果表明ProNE 在主要单线程的情况下已经有能力非常高效地处理大规模的图(对于稠密的小矩阵(属于R|V|*d 甚至可以进一步优化至Rd*d) 的SVD, 我们因为是调用Python 包,默认使用了多线程,但是实验上它们占用的时间相比单线程的时间,占比很小,而且这些步骤其实可以进一步优化,有些SVD 甚至并不一定是必须的,故我们仍然可以粗略地认为我们是单线程的)。

如果我们能使用现有的稀疏矩阵乘法的多线程并行化处理的技术[1,2],就可以实现算法的真正意义的多线程,理论上,它可能可以为我们当前主要是单线程的版本提供plog(p)_ 的加速(p 是线程数)[3]。

运行效率

我们比较了不同方法的运行效率,同时也展示了我们的算法ProNE 的可扩展性。注意到所有比较的基线算法的效率都已经使用20 个线程/进程加速了,而我们的模型ProNE 基本只使用了单个线程。

表1 数据集的统计量

表1汇报了ProNE 和其他3 个比较快且扩展性强的基线算法—DeepWalk, LINE 和node2vec 的运行时间(包括IO 时间和计算时间)。基于矩阵分解的方法比这些参与比较的方法要慢得多。比如,GrapRep 的时间复杂度是O(|V|3), 所以它在稍微大一些的图上的应用也受限,比如在拥有一百万结点的Youtube 图上。

运行时间的结果表明,在PPI 和Wiki 这些相对小的图上(1,000 个结点量级的图),ProNE 只需要10 秒以内便完成了训练,而最快的基线算法LINE 则比我们的算法慢至少14 倍,而DeepWalk 和node2vec 则慢了100 倍。我们算法的效率优势在BlogCatalog 和DBLP 等中等规模的图上(10,000 个结点量级的图) 和在Youtube 等相对更大规模的图(1,000,000 个结点量级的图) 上, 也有类似的表现。特别地,ProNE 可以只使用1 个CPU 内核就能在11 分钟内完成对Youtube等百万量级的图的嵌入表示的学习,然而,在使用20 个线程的情况下,LINE需要耗费100 分钟,DeepWalk 需要耗费19 个小时,而node2vec 则需要耗费数天。总结的说,基本单线程的ProNE 模型大概比20 线程的LINE, DeepWalk 和node2vec 等模型快上10–400 倍,而由于复杂度的优势,和基于矩阵分解的图嵌入方法相比,这种时间效率和空间效率的优势会更加明显。

精度效果对比

我们在表2中总结了模型在多标签的图结点的分类任务上的预测精度效果。因为空间的限制,我们在表中只展示了Micro-F1 作为精度指标的结果,只汇报了我们模型的标准差(σ),但是我们的以下的结论对Macro-F1 等其他精度指标也同样适用。另外,对于我们的模型ProNE, 我们也汇报了第一步稀疏矩阵分解(sparse matrix factorization, SMF) 产生的初始图嵌入的效果, 由此来分别体现模型的两个步骤对精度的贡献。最后,在Youtube 数据集上,node2vec 无法在5 天内完成训练,GraRep 等其他基于矩阵分解的算法也由于内存溢出的问题(内存需求超过1T)无法进行计算。

表2 多标签结点分类的Micro-F1 (%)

我们观察到,ProNE 在5 个数据集上一致性地表现了比基线算法更好的效果, 这显示了模型在嵌入表示的质量(精度效果)上的优势。值得注意的是,我们模型的第一步通过简单的稀疏矩阵分解产生的初始的快速图嵌入(ProNE(SMF)) 和现有的主流的图嵌入方法的精度效果相当,有时甚至更好。在模型的谱传播步骤的进一步加持下, ProNE 因为同时刻画了局域的平滑性质(local structure smoothing)和全局的聚类信息(global clustering information),产生了最好的精度效果。

总结

在这个工作中,我们提出了ProNE——一个在大规模图结构数据上快速可扩展的图嵌入算法。首先,ProNE 将图嵌入表示的问题化为稀疏矩阵分解问题,以高效地实现初始的结点的嵌入表示,从而刻画结点的分布相似度。然后,它借助高阶的Cheeger 不等式来调制图的谱空间,把第一步学到的嵌入表示在调整后的图上传播,从而达到将局域的平滑信息和全局的聚类信息融合进图嵌入表示中。

ProNE 在运行效率和精度效果上都比现在流行的基线算法,比如DeepWalk, LINE, node2vec, GraRep 和HOPE,都要更优秀。值得注意的是,主体单线程的ProNE 模型比20 个线程加速的基线算法们快上大约10—400 倍。

参考文献:

[1] Buluç A, Gilbert J R. Parallel sparse matrix-matrix multiplication and indexing: Implementation and experiments[J]. SIAM Journal on Scientific Computing, 2012, 34(4): C170–C191.

[2] Smith S, Ravindran N, Sidiropoulos ND, et al. Splatt: Efficient and parallel sparse tensor-matrix multiplication[C]//IPDPS. [S.l.]: IEEE, 2015: 61–70.

[3] Manzini G. Sparse matrix vector multiplication on distributed architectures: Lower bounds and average complexity results[J]. Information Processing Letters, 1994, 50(5): 231–238.

[关于转载]:本文为“AMiner”官网文章。转载本文请联系原作者获取授权,转载仅限全文转载并保留文章标题及内容,不得删改、添加内容绕开原创保护,且文章开头必须注明:转自“AMiner”官网。谢谢您的合作。

二维码 扫码微信阅读
推荐阅读 更多