| 导语

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应用到复杂网络领域

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

文章来源于腾讯云开发者社区,点击查看原文