当前位置:主页 > 400981富贵论坛 >

400981富贵论坛

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

发布日期:2019-10-30 06:39   来源:未知   阅读:

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

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

  【新智元导读】腾讯开源自研机器学习框架Angel,在稀疏数据高维模型的训练上具有独特优势,擅长推荐模型和图网络模型相关领域。本文带来详细技术解读,来新智元 AI 朋友圈与大咖一起讨论吧~

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

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

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

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

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

  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采取不同的容错方法。对于图神经网络与图表示学习,可以稍微的容忍它出现一些错误。但图挖掘算法,可能错误容忍度比较低,需要一些高的容错。

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

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

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

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

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

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

Power by DedeCms