Angel 3.1:高性能图计算的三体艺术

2020-05-16 02:40:29 浏览数 (1)

| 导语

Angel是腾讯首个AI开源项目,2019年在基金会的孵化过程中,完成了3.0版本的发布,并于同年在基金会顺利毕业。作为面向机器学习的第三代高性能计算平台,Angel提供了全栈的机器学习能力,并致力于解决高维稀疏大模型训练及大规模图数据分析的问题。

我们看到在万物互连的复杂网络世界,现实中许多问题也可以抽象成图来表达,而金融支付、安全风控、推荐广告、知识图谱等业务积累了大量的图数据,亟需借助传统图挖掘、图表示学习和图神经网络等图分析技术,从海量关系结构的数据中挖掘丰富的信息,以弥补单点分析的不足和提升业务效果。因此,在3.1.0版本中,Angel加强了自身的图计算能力。

主要新特性如下:

1.实现了高性能、高可靠、易用的大规模分布式图计算框架Angel Graph,可以高效地对海量图结构数据进行挖掘分析处理。

2.提供了一系列开箱即用的图算法,包括传统图挖掘、图表示学习以及图神经网络算法,这些算法可以通过简单的配置调用直接应用到生产环境中。

3.提供了用于图操作的基本算子抽象,包括图的构建、对顶点和边的操作、图的信息获取以及采样等基础算子。

4.PyTorch on Angel框架支持在GPU设备运行,可以利用硬件来加快计算密集型的图算法。

Angel Graph吸收了Angel参数服务器以及Spark、PyTorch优势,依托大数据生态,使得传统图计算、图表示学习和图神经网络“三位一体”,实现了高性能、高可靠、易用的大规模分布式图计算框架。其核心能力如下:

1.复杂异构网络。工业界的图数据组成复杂多样,数据规模往往具有十亿级顶点、百亿甚至千亿级边。Angel Graph通过Spark On Angel或Pytorch进行分布式训练,可以轻松支持十亿级顶点、千亿级边的大规模图计算。

2.端到端的图计算。工业界的大数据生态多为Spark、Hadoop。Angel Graph基于Spark On Angel的架构,可以无缝衔接Spark,以便利用Spark 的ETL能力,支持端到端的图学习。

3.传统图挖掘。支持十亿级顶点、千亿级边的传统图算法,如PageRank、Kcore分析节点重要性,Louvain进行社区发现等。提供对顶点的测度分析和丰富的图特征,以便应用到机器学习或推荐风控等业务模型中。

4.图表示学习。支持十亿级顶点,千亿级边的Graph Embedding算法,如LINE、Word2Vec等。

5.图神经网络。支持十亿级顶点,数百亿边的图神经网络算法,利用顶点或边上丰富的属性信息进行深度学习。

我们在大规模真实的数据集对比Graphx和Angel Graph的多个算法性能,在资源是其1/3情况下,性能仍有一个数量级的优势。

图1 性能对比,DS1(10亿顶点,百亿边),DS2(20亿顶点,千亿边)

Angel Graph内置数十种常用图算法,并且在内部业务中进行了充分测试,保证了算法的运行效率和正确性。用户使用时无需过多调整,便可快速使用。算法列表如下:

算法名称

算法类型

说明

PageRank

节点重要性计算

经典的传统图算法

Hindex

节点重要性计算

混合量化指标,参考H指数

Kcore

节点特征

提取网络中关键子结构

Louvain

社区发现

通过优化模块度指标达到社区划分的目的

Closeness

接近中心性

度量顶点在图中的中心程度

CommonFriends

共同好友计算

计算两个顶点的共同好友数

TriangleCountingUndirected

三角计数

计算每个顶点所在的三角结构个数

LPA

标签传播

一种社区发现或传播算法

ConnectedComponents

弱连通分量

挖掘图的弱连通分量

LINE

表示学习

可利用1阶,2阶邻居信息进行表示学习

Word2Vec

表示学习

一种经典的表征学习算法

GraphSage

图神经网络算法

通过聚合节点邻居的特征进行表示学习

GCN

图神经网络算法

类似CNN操作,并应用到图非欧空间的算法

DGI

图神经网络算法

DIM应用到复杂网络领域

请点击“阅读原文”,更多惊喜等你发掘!

0 人点赞