一文了解阿里一站式图计算平台GraphScope

699 阅读10分钟

简介: 随着大数据的爆发,图数据的应用规模不断增长,现有的图计算系统仍然存在一定的局限。阿里巴巴拥有全球最大的商品知识图谱,在丰富的图场景和真实应用的驱动下,阿里巴巴达摩院智能计算实验室研发并开源了全球首个一站式超大规模分布式图计算平台GraphScope,并入选中国科学技术协会“科创中国”平台。本文简单简单介绍图计算的原理和应用及GraphScope的架构设计。

一、 什么是图计算

图数据对一组对象(顶点)及其关系(边)进行建模,可以直观、自然地表示现实世界中各种实体对象以及它们之间的关系。在大数据场景下,社交网络、交易数据、知识图谱、交通和通信网络、供应链和物流规划等都是典型的以图建模的例子。图 1 显示了阿里巴巴在电商场景下的图数据,其中有各种类型的顶点(消费者、卖家、物品和设备)和边(表示了购买、查看、评论等关系)。此外,每个顶点还有丰富的属性信息相关联。

image.png 图 1:阿里巴巴电商场景图数据示例

实际场景中的这种图数据通常包含数十亿个顶点和数万亿条边。除了规模大之外,这个图的持续更新速度也非常快,每秒可能有近百万的更新。随着近年来图数据应用规模的不断增长,探索图数据内部关系以及在图数据上的计算受到了越来越多的关注。根据图计算的不同目标,大致可以分为交互查询、图分析和基于图的机器学习三类任务。

1、 图的交互查询

图 2:左,金融反欺诈示例;右,图学习示例。

在图计算的应用中,业务通常需要以探索的方式来查看图数据,以进行一些问题的及时定位和分析某个深入的信息,如图 2 (左)中的(简化)图模型可被用于金融反欺诈(信用卡非法套现)检测。通过使用伪造的标识符,“犯罪分子”可以从银行获得短期信用(顶点 4)。他尝试通过商家(顶点3)的帮助,以虚假购买( 边 2->3)来兑现货币。一旦从银行(顶点4)收到付款(边 4->3),商家再通过其名下的多个帐户将钱(通过边 3->1 和 1->2)退还给“犯罪分子”。这种模式最终形成一个图上的闭环(2->3->1...->2)。真实场景中,图数据在线上的规模可能包含数十亿个顶点(例如,用户)和数千亿至万亿条边(例如,支付交易),并且整个欺诈过程可能涉及到许多实体之间包含各种约束的动态交易链,因此需要复杂的实时交互分析才能很好的识别。

2、 图分析

关于图分析计算的研究已经持续了数十年,产生了很多图分析的算法。典型的图分析算法包括经典图算法(例如,PageRank、最短路径和最大流),社区检测算法(例如,最大团/clique、联通量计算、Louvain 和标签传播),图挖掘算法(例如,频繁集挖掘和图的模式匹配)。由于图分析算法的多样性和分布式计算的复杂性,分布式图分析算法往往需要遵循一定的编程模型。当前的编程模型有点中心模型“Think-like-vertex”,基于矩阵的模型和基于子图的模型等。在这些模型下,涌现出各种图分析系统,如 Apache Giraph、Pregel、PowerGraph、Spark GraphX、GRAPE 等。

3、 基于图的机器学习

经典的 Graph Embedding 技术,例如 Node2Vec 和 LINE,已在各种机器学习场景中广泛使用。近年来提出的图神经网络(GNN),更是将图中的结构和属性信息与深度学习中的特征相结合。GNN 可以为图中的任何图结构(例如,顶点,边或整个图)学习低维表征,并且生成的表征可以被许多下游图相关的机器学习任务进行分类、链路预测、聚类等。图学习技术已被证明在许多与图相关的任务上具有令人信服的性能。与传统的机器学习任务不同,图学习任务涉及图和神经网络的相关操作(见图 2 右),图中的每个顶点都使用与图相关的操作来选择其邻居,并将其邻居的特征与神经网络操作进行聚合。

二 、图计算:下一代人工智能的基石

不仅仅是阿里巴巴,近年来图数据和计算技术一直是学术界和工业界的热点。特别是,在过去的十年中,图计算系统的性能已提高了 10~100 倍,并且系统仍在变得越来越高效,这使得通过图计算来加速AI和大数据任务成为了可能。实际上,由于图能十分自然地表达各种复杂类型的数据,并且可以为常见的机器学习模型提供抽象。与密集张量相比,图能提供更丰富的语义和更全面的优化功能。此外,图是稀疏高维数据的自然表达,并且图卷积网络(GCN)和图神经网络(GNN)中越来越多的研究证明,图计算是对机器学习的有效补充,在结果的可解释性、深层次推理因果等方面将扮演越来越重要的作用。

图 3:图计算在AI各个领域具有广阔的应用前景

可以预见,图计算将在下一代人工智能的各种应用中发挥重要作用,包括反欺诈,智能物流,城市大脑,生物信息学,公共安全,公共卫生,城市规划,反洗钱,基础设施,推荐系统,金融技术和供应链等领域。

三 、图计算现状

经过这些年的发展,已有针对各种图计算需求的多种系统和工具。例如在交互查询方面,有图数据库Neo4j、ArangoDB和OrientDB等、也有分布式系统和服务JanusGraph、Amazon Neptune和Azure Cosmos DB等;在图分析方面,有 Pregel、Apache Giraph、Spark GraphX、PowerGraph 等系统;在图学习上有 DGL、pytorch geometric 等。尽管如此,面对丰富的图数据和多样化的图场景,有效利用图计算增强业务效果依然面临着巨大的挑战:

  • 现实生活中的图计算场景多样,且通常非常复杂,涉及到多种类型的图计算。现有的系统主要是为特定类型的图计算任务设计的。因此,用户必须将复杂的任务分解为涉及许多系统的多个作业。在系统之间可能会产生大量例如集成、IO、格式转换、网络和存储方面的额外开销。
  • 难以开发大型图计算的应用。为了开发图计算的应用,用户通常使用简单易用的工具(例如 Python 中的 NetworkX 和 TinkerPop)在一台机器上从小规模图数据开始。但是,对于普通用户而言,扩展其单机解决方案到并行环境处理大规模图是极其困难的。现有的用于大规模图的分布式系统通常遵循不同的编程模型,并且缺乏单机库(例如 NetworkX)中丰富的即用算法/插件库。这使得分布式图计算的门槛过高。
  • 处理大图的规模和效率仍然有限。例如,由于游历模式的高度复杂性,现有的交互式图查询系统无法并行执行 Gremlin 查询。对于图分析系统,传统的点中心编程模型使图级别的现有优化技术不再可用。此外,许多现有系统也基本未在编译器级别上做过优化。

我们在现实图计算场景中常遇到的问题,总结一下可以概括为以下三点:

  • 图计算问题十分复杂,计算模式多样,解决方案碎片化。
  • 图计算学习难度强,成本大,门槛高。
  • 图的规模和数据量大,计算复杂,效率低。

为了解决以上的问题,我们设计并研发了一站式开源图计算系统:GraphScope。

四 、GraphScope 是什么

GraphScope 是阿里巴巴达摩院智能计算实验室研发并开源的一站式图计算平台。依托于阿里海量数据和丰富场景,与达摩院的高水平研究,GraphScope 致力于针对实际生产中图计算的上述挑战,提供一站式高效的解决方案。

GraphScope 提供 Python 客户端,能十分方便的对接上下游工作流,具有一站式、开发便捷、性能极致等特点。它具有高效的跨引擎内存管理,在业界首次支持 Gremlin 分布式编译优化,同时支持算法的自动并行化和支持自动增量化处理动态图更新,提供了企业级场景的极致性能。在阿里巴巴内部和外部的应用中,GraphScope 已经证明在多个关键互联网领域(如风控,电商推荐,广告,网络安全,知识图谱等)实现重要的业务新价值。

GraphScope 集合了达摩院的多项学术研究成果,其中的核心技术曾获得数据库领域顶级学术会议 SIGMOD2017 最佳论文奖、VLDB2017 最佳演示奖、VLDB2020 最佳论文提名奖、世界人工智能创新大赛SAIL奖。GraphScope 的交互查询引擎的论文也已被 NSDI 2021 录用,即将发表。还有其它围绕 GraphScope 的十多项研究成果发表在领域顶级的学术会议或期刊上,如 TODS、SIGMOD、VLDB、KDD 等。

五 、性能

GraphScope 不仅在易用性上一站式的解决了图计算问题,在性能上也达到极致,满足了企业级需求。我们使用 LDBC Benchmark 对 GraphScope 的性能进行了评估和对比测试。

如图 6 所示,在交互式查询测试 LDBC SNB Benchmark上,单节点部署的 GraphScope 与开源系统 JanusGraph 相比,多数查询快一个数量级以上;在分布式部署下,GraphScope 的交互式查询基本能达到线性加速的扩展性。

图 6:GraphScope 交互式查询性能

在图分析测试 LDBC GraphAnalytics Benchmark 上,GraphScope 与 PowerGraph 以及其他最新系统比较,几乎在所有算法和数据集的组合中居于领先水平。在某些算法和数据集上,跟其他平台比较最低也有五倍的性能优势。局部数据见下图。

图 7:GraphScope 图分析性能

关于实验的设定、重现和完整的性能比较可以参见交互式查询性能[3]和图分析性能[4]。

六 、拥抱开源

GraphScope 的白皮书、代码已经在 github.com/alibaba/gra… 开源[5],项目遵守 Apache License 2.0。欢迎大家 star、试用,参与到图计算中来。也欢迎大家贡献代码,一起打造业界最好的图计算系统。我们的目标是持续更新该项目,不断提升功能的完整性和系统的稳定性。

作者:开发者小助手_LS

本文部分节选自zhuanlan.zhihu.com/p/352026737