大规模图嵌入 示例_图嵌入框架GraphVite分析

4477a963c62797940402abfae101f11a.png

论文地址:Zhu Z, Xu S, Tang J, et al. GraphVite: A High-Performance CPU-GPU Hybrid System for Node Embedding[C]//The World Wide Web Conference. ACM, 2019: 2494-2504.

开源代码:https://github.com/DeepGraphLearning/graphvite

一、简介

GraphVite是一个通用的图嵌入系统/框架,主打多CPU多GPU快速/超大规模训练。这是一款单机框架,不支持分布式集群,主要是为没有分布式集群的用户打造。最大特点是速度快:与目前最快的框架相比,GraphVite在性能几乎没有任何牺牲的情况下,速度提高了约50倍(图1中以LINE算法作为对比)。其次,GraphVite在单机四卡上,最大可以训练一张6千万点,18亿边的图,训到收敛也只需要不到1天的时间。

e99216d9aee0685e5dd3edb69c030d1c.png
图1 不同框架速度对比

目前,GraphVite 已为 3 种任务提供了完整的训练和评估流程,包括:节点嵌入、知识图谱嵌入和图形 & 高维数据可视化。

7920b51338d599eb922c7ba3e753fdf3.png
图2 GraphVite三大任务

GraphVite内置了9个模型:图嵌入算法DeepWalk、LINE、Word2Vec,知识图谱算法TransE,DistMult,ComplEx 和 RotatE,高维数据可视化算法LargeVis。

二、设计思路

图嵌入算法通常包括两个阶段:网络增强和嵌入训练。网络增强阶段先对原始网络用随机游走产生增强网络,然后从增强网络中采样正边,这一阶段涉及到大量的随机访问,而CPU在随机访问上GPU性能好出太多,所以网络增强阶段应该放在CPU上进行。嵌入训练主要是通过上一阶段生成的样本训练节点嵌入。这一阶段主要的运算是矩阵计算,所以应该放在GPU上。

对于大多数现有算法,网络增强和嵌入训练两阶段是顺序进行的,而每个阶段是用多个CPU线程并行。如图3所示:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值