微信邦 发表于 2020-5-15 19:34:14

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



页: [1]
查看完整版本: Angel 3.1:高性能图计算的三体艺术