| 导语
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应用到复杂网络领域 |
请点击“阅读原文”,更多惊喜等你发掘!