专栏首页新智元腾讯开源全栈机器学习平台 Angel 3.0,支持三大类型图计算算法

腾讯开源全栈机器学习平台 Angel 3.0,支持三大类型图计算算法

AI WORLD 2019 世界人工智能峰会精彩重放!

10 月 18 日,2019 中关村论坛平行论坛 ——AI WORLD 2019 世界人工智能峰会在北京启幕。新智元杨静、科大讯飞胡郁、微软王永东、华为王成录、英特尔宋继强、旷视及智源学者孙剑、滴滴叶杰平、AWS 张峥、依图颜水成、地平线黄畅、autowise.ai 黄超等重磅嘉宾中关村论剑,重启充满创新活力的 AI 未来。峰会现场,新智元揭晓 AI Era 创新大奖,并重磅发布 AI 开放创新平台和献礼新书《智周万物:人工智能改变中国》。回放链接:

【腾讯科技】

客户端:https://view.inews.qq.com/a/TEC2019101600718500

PC 端:http://v.qq.com/live/p/topic/74606/preview.html

【海淀融媒】

https://m.toutiaoimg.cn/i6748195040323062540

【新浪科技】

http://video.sina.com.cn/l/p/1728577.html 新智元报道

来源:腾讯大数据团队

【新智元导读】腾讯开源自研机器学习框架Angel,在稀疏数据高维模型的训练上具有独特优势,擅长推荐模型和图网络模型相关领域。

腾讯大数据推动了腾讯从Oracle数据库到自研大数据平台的迁移, 如今已能实现秒级的采集、监控和报表;开源自研机器学习框架Angel,它由腾讯与北京大学联合研发,兼顾了工业界的高可用性和学术界的创新性。

作为面向机器学习的第三代高性能计算平台,腾讯Angel在稀疏数据高维模型的训练上具有独特优势,擅长推荐模型和图网络模型相关领域。当前业界主流的大规模图计算系统主要有Facebook的Big Graph、Power graph、Data bricks的 Spark GraphX等,但这些系统并不都支持图挖掘、图表示学习、图神经网络的三大类型算法。

近日,腾讯大数据团队分享了Angel在图计算领域应用。

Angel:https://github.com/Angel-ML/angel

Angel专注图计算场景

图(Graph)是一个表达能力非常强的结构, 几乎无处不在。图计算就是研究在大规模图数据下,如何高效计算,存储和管理图数据。如微信、QQ是社交网络的图,支付是红包网络、面对面网络、转帐网络等支付网络的图。图计算在QQ上的典型应用则是好友推荐,依据共同好友个数进行判断,共同好友越多,更有可能成为好友。

目前业界的大规模图计算系统主要有Facebook的Big Graph, Power graph, Data bricks的 Spark GraphX, Gemini, 以及阿里的Euler,但这些系统并不都支持三大类型算法,例如图挖掘、图表示学习、图神经网络。

在此行业背景之下,专注于复杂图计算场景的腾讯Angel应运而生。Angel是腾讯开源的大规模分布式机器学习平台,专注于稀疏数据高维模型的训练。从性能上来看,Angel优于现有图计算系统,能够支持十亿级节点、千亿级边的传统图挖掘算法,以及百亿边的图神经网络算法需求。Angel可运行于多任务集群以及公有云环境,具备高效容错恢复机制,能够进行端到端的训练,新算法容易支持,同时,Angel能够支持图挖掘、图表示、图神经网络算法,具备图学习的能力。

Angel的PS是针对高维稀疏模型设计的, 而大图是非常高维、有多达十亿的节点,也是稀疏的, 因此PS架构也适合处理图数据。图算法有多种类型,如图挖掘算法、图表示学习、图神经网络。由于Angel的PS有自定义接口, 可以灵活地应对这几类算法,整个平台不需要改动,只要实现所需接口即可。关于可靠性问题,Angel从一开始就是针对共享集群、公有云环境设计的, 并与Spark的结合. Spark也具有很强的稳定性。易用性主要指与上下游是否完整配套。Spark On Angel可以与大数据处理结合,PyTorch On Angel可以跟深度学习结合,将把大数据计算、深度学习统一起来,用户不用借助第三方平台就能完成整个流程, 易用性好。

Angel可以运行在Yarn/Kubernetes环境上,它上面现在支持三类算法

  • 图挖掘: PageRank、Kcore、Closeness,共同好友、三角结构、社团发现、其他;
  • 图神经网络: GCN、GraphSage、DGI等神经网络算法;
  • 图表示学习: LINE、Node2Vec算法。

Angel的架构,最上面是一个参数服务器,下面分别是PyTorch on Angel和Spark on Angel。图计算前期有繁锁的预处理,用户偏好Spark或者GraphX。Angel将PS和Spark结合,整合Spark大数据能力和PS服务器能力,统一了图计算流程。PyTorch on Angel是为图神经网络而设计的,运行在Spark on Angel之上。图神经网络最近发展迅速, 但大规模的图神经网络会遇到大数据问题,也会遇到机器学习问题. 将Angel和PyTorch结合起来,就可以同时应对大数据与机器学习问题. 右边是PyTorch on Angel的架构。上面是所支持的算法,包括GCN、GraphSage、R-GCN和一些无监督算法。

从平台的易用性角度考虑。图计算任务的执行流程复杂,通常包括数据预处理, 如去除重复边、过滤异常点,图划分等。在某些场景下还会计算节点的特征、计算结点或边的权重/测度,如PageRank。另一些场景需要对图做拼接、生成等。最后才是图神经网络的训练。在做图神经网络训练时,训练只是其中很小的一部分,需要在上下游花费比较多的精力。其他图计算引擎,只是关心图计算这一个核心步骤; 而Angel将整个流程整合在一套系统里,一个任务把这个事情都做完,避免这些任务之间衔接的开销,也不用中间结果落地。这是Angel跟大数据生态、深度学习生态结合带来的好处。

从可靠性的角度,图算法对错误的容忍度较低,不应该发生错误。但因为节点多,维度高, 大规模图计算容错成本很高。Spark有一套容错机制,任务如果挂掉,可以重起。Angel PS也有一套容错机制,即写checkpoint。在图算法里,不同的数据结构的使用或访问方式不一样,有些数据是不变的, 如图结构, 但有些数据会改变, 比如模型、消息。对于不同的数据,Angel采取不同的容错方法。对于图神经网络与图表示学习,可以稍微的容忍它出现一些错误。但图挖掘算法,可能错误容忍度比较低,需要一些高的容错。

Angel 中的图计算算法

图算法比较多,先将这些算法分类,每一类采取不同的优化方式去实现和优化。

第一类是三角结构类,数三角形。这类算法是暴力算法, 没有捷径可走。例如共同好友就是三角结构。基于三角结构可以实现一系列算法, 如Cluster Rank, Clustering coefficient, Ego Network.

第二类算法是连通分量,有WCC和SCC。这类算法核心的思想是要做图的折叠或者图的压缩。这类算法有一定的捷径可走,发现连通结点后,就可以进行合并,迭代时图在会不断变小,就可以加快迭代速度。

第三类算法是节点的排序。比如PageRank、KCore、Closeness,这类算法的迭代轮数较多,可能好几百轮。有一些方法加速它,主要有两种,一种是有没有办法让它的迭代变得少一点,另一种是有没有办法让它每一轮迭代越来越快。

第四类算法是图表示学习的算法, 也是没有捷径可走, 主要考虑一些图的划分策略。像GNN,也归为一类

最后一类算法是图神经网络。图有很多节点,每个节点都有自己的特征。经过一层层的图卷积,每个节点上的特征就输出一个表示,再经过一层图卷积,又输出另外一层表示,不断的改变图每一个节点的表示,最后根据任务类型需求,对每一个节点的表示把它都加起来,再做softmax,对全图做分类。对任何两个节点,算他们俩俩相交,计算它们的概率,预测它们俩是不是有边。它的核心是一个图,一层卷积,两层卷积,然后输出。图神经网络的问题是图数据规模比较大,需要做深度学习。

Angel 图计算性能

效果对比,跟GraphX做了对比,也与其他系统做过对比。

PageRank性能是GraphX的8倍左右

(数据集:8亿节点120亿网络;机器配置:E5-2680v4*2/16G*16/4T*12/10GE*2)

图神经网络/图表示学习性能对比:

(数据集:8亿节点120亿网络;机器配置:E5-2680v4*2/16G*16/4T*12/10GE*2)

雅虎有一篇论文,按照论文实现了一遍,性能不好,优化后性能大概提升了5-6倍。图神经网络,用Angel,跟阿里的Euler系统对比,在比较小的网络,(1亿边),性能差距还是比较大的,如果在100亿的图,因为它消耗的资源比较多,就没有跑出来,Angel每一轮都跑出来了。

本文分享自微信公众号 - 新智元(AI_era)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-10-19

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • pmbok笔记 第八章——项目质量管理

    yeedomliu
  • 通俗易懂设计模式解析——享元模式

      今天我们继续讲述设计模式,今天提及的是享元模式,享——共享。之前不是出现了一系列共享的东西吗?为啥呀,还不就是有些东西每个人都需要,但是每个人都去买一个又...

    小世界的野孩子
  • 一文理清 Go 引用的常见疑惑

    之所以要谈它,一方面是之前的我也有些概念混乱,想梳理下,另一方面是因为很多人对引用都有疑问。我经常会看到与引用有关的问题。

    波罗学
  • 怎么快速插入 100 条数据,用时最短

    问:为何对同一个表的插入多线程会比单线程快?同一时间对一个表的写操作不应该是独占的吗?

    Java技术栈
  • Hadoop架构体系

    官方文档组织的非常清晰,主要由以下四个组件组成:HDFS、map-reduce、yarn、hadoop-common。

    加米谷大数据
  • 部分常用算法分析总结

    来源:https://book.douban.com/subject/26979890/

    嘘、小点声
  • UIRecorder之PC端录制与回放自动化

    UI Recorder是一款零成本的整体自动化测试解决方案,一次自测等于多次测试,测一个浏览器等于测多个浏览器!

    用户6367961
  • 【THE LAST TIME】彻底吃透 JavaScript 执行机制

    首先我们需要声明下,JavaScript 的执行和运行是两个不同概念的,执行,一般依赖于环境,比如 node、浏览器、Ringo 等, JavaScript 在...

    Nealyang
  • MySQL数据库(良心资料)

    我们所说的数据库泛指“关系型数据库管理系统(RDBMS-Relational database management system)”,即“数据库服务器”。

    阮键
  • 关于校园网账号爆破的讲解

    如果感觉安装python麻烦的话可以安装anaconda,用jupyter notebook调试挺方便,具体安装使用可以百度。

    巴法

扫码关注云+社区

领取腾讯云代金券