AliGraph:一个工业级的图神经网络平台

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: 2019年12月8日,神经网络和深度学习领域的顶会NeurIPS 在加拿大温哥华召开,阿里巴巴计算平台PAI团队和达摩院智能计算实验室开发的Aligraph在Expo Day 现场进行展示。

作者 | 阿里巴巴达摩院
1.jpg
2019年12月8日,神经网络和深度学习领域的顶会NeurIPS 在加拿大温哥华召开,阿里巴巴计算平台PAI团队和达摩院智能计算实验室开发的Aligraph在Expo Day 现场进行展示。

为什么专注于GNN

在大数据的背景下,利用高速计算机去发现数据中的规律似乎是最有效的手段。为了让机器计算的有目的性,需要将人的知识作为输入。我们先后经历了专家系统、经典机器学习、深度学习三个阶段,输入的知识由具体到抽象,由规则到特征再到模式,越来越宏观。相对来说,抽象的层次变高了,覆盖面变广了,但我们对底层的感知变弱了,模型的可解释程度变差了。深度学习的应用已经让我们看到了非常可观的价值,但其背后的可解释性工作进展缓慢,也因为如此,当我们用深度学习去解决涉及人身财产安全、法律等敏感问题时,只有数字效果不足以支撑这项技术的应用,我们更需要知道结果后面的原因。

Graph是知识的载体,其间的实体联系蕴含了很强的因果关系。重要的是,这是一种直观的、人们能够读懂的结构。把Graph作为知识支撑,利用深度学习的泛化技术,看上去是一个可行的方向,在某些问题上,离我们的可解释性目标更近了一步。各种深度学习相关的顶会在近年来的paper分布上,图神经网络(GNN)一直处于蓬勃态势。GNN提供了一种解决问题的思路,覆盖范围很广,很多搜索推荐类算法,都可以纳入到GNN范式,因此无论从未来技术储备,还是当下应用扩展的角度,GNN都是一个非常值得投入的方向。

AliGraph定位

相比CNN、RNN等成熟技术而言,GNN还处于探索阶段,Graph之于GNN,不如图像之于CNN、自然语言之于RNN那样理所当然。即便有Graph数据,如何使用GNN没有可遵循的固定模式,更没有沉淀下来的类似卷积一样的算子可直接调用。GNN的有效性需要更多的场景去验证,而每一个场景都需要开发者的深入理解,开发者有能力处理Graph数据和编写之上的深度学习模型。有了百花齐放的应用场景做铺垫,才有可能抽象出共性的GNN算子和算法,再将这些相对成熟的能力赋给使用者,GNN才会真正的推广开来。出于这些考虑,比起开发一个成熟算法供用户使用,平台当前阶段会更侧重提供API给开发者,让开发者有能力贴近自己的场景去实现GNN。

另一方面,工业场景中的Graph数据十分复杂,而且数据量巨大。平台不能脱离场景而独立存在,必须以业务为驱动,才最可能孵化出有实际价值的产品。以阿里巴巴的电商推荐场景为例,每天的产生的图数据多达几百TB,而且高度异构(多种类型的顶点、多种类型的边),顶点和边具有丰富的属性,诸如商品的名称、类目、价格区间,甚至是其关联的图像、视频等,这些属性以明文存在而非已经向量化好的结构化信息。以这样的数据为输入,如何高效的进行GNN训练是一个非常有挑战的问题。如果使用数据预处理、预训练等手段把Graph数据结构化、向量化,会耗费大量的计算资源、存储资源和人力成本。真正对GNN开发者友好的平台,应该是端到端的,在一套IDE里,用户既可以操作复杂的Graph数据,又可以将数据与深度神经网络对接,自由编写上层模型。平台提供简单灵活的接口,满足GNN高速发展所需的可扩展性与生态的兼容性,和针对复杂的分布式环境的大规模与稳定性。

技术栈

层次化架构

AliGraph涵盖了从原始图数据到GNN应用的整体链路,把GNN算法的探索成本降低到和传统深度学习算法同等水平。平台可以分层来看:数据层,引擎层,应用层。
2.jpg
数据层,支持大规模同构图、异构图、属性图。数据无需提前build好,平台提供API来简化数据解析和建图的过程。数据层接口易扩展,方便对接不同格式、不同介质的Graph数据。

引擎层,包含Graph Engine和Tensor Engine。Graph Engine又可分为逻辑对象层与算子层。逻辑对象层,描述的是把原始数据加载到系统后展现给用户的形态是什么。每一个对象实体都会提供相关的语义接口,比如对于一个Graph对象而言,可以获取图的拓扑信息、异构程度、点边数量等。对于用户而言,实际使用中只需要声明一个逻辑对象并指定其数据源即可。

3.jpg


算子层,在逻辑对象之上可以进行的计算操作。比如对于Graph对象而言,支持各种Sampler算子,用于对上层GNN算法提供输入。算子层具有很强的扩展性,以满足场景多样化对算子种类的需求。目前,内置支持的算子围绕GNN算法及生态展开,包括图查询、图采样、负采样、KNN等。

4.jpg

Tensor Engine指深度学习引擎,如TensorFlow、PyTorch,或者其他支持Python接口的Library。GraphEngine的输出为格式对齐的NumPy对象,可无缝与深度学习引擎对接。GNN开发者可自由编写Graph之上的NN逻辑,并可与业务需求相结合,组成一个深度网络模型进行端到端训练。

应用层,强调与业务端到端结合,而非把Graph Embedding的结果割裂开使用。经场景打磨的成熟算法,也会沉淀到应用层,以算法组件的形式提供给用户。

一体化实现

由GCN框架引申,典型的GNN编程范式可概括如下,系统是为了高效支持该范式而设计。
5.jpg
其中,向量化和聚合操作可以利用深度学习引擎的表达能力,因此,为实现上述计算模式,主要在于图相关的操作以及这些操作如何与深度学习引擎对接。我们将技术栈细化成如下图所示,其中Storage、Sampler、Operator是系统要解决的主要问题。信息自底向上在层与层之间前向传播,梯度则自顶向下更新每一层的参数,整个GNN应用在一张深度网络里描述。Storage层的Graph对象是逻辑存储,在其之下有一层抽象的文件接口,可适配多种数据源,这是系统具备可迁移性的前提。Sampler提供丰富的算子,且可独立扩展,不依赖系统框架,满足多样化的需求。Operator进行图语义操作的封装,把性能优化、数据对接隐藏在简洁的接口之下。
6.jpg

高效图引擎

再具体的,图引擎是连接图数据与深度学习框架的桥梁,保证数据传递的高效与稳定。这里的图操作是面向GNN的,和一般意义的图计算有很大区别。Graph Engine是一个分布式服务,具有高性能和高可用的特点,支持百亿级边的异构图在2分钟以内完成构建、十毫秒级按batch多跳跨机采样,支持从失败中状态无损的failover。Graph Engine内部深度优化了RPC过程,实现了数据零拷贝,并且Server间的连接是线程级的,在最大化带宽利用率的同时,每个线程可独立无锁的处理请求。这也是系统性能优异的主要原因。此外,我们通过有效的Cache、去中心化等手段来加速采样和负采样,性能具有明显提升。
7.jpg

算子可扩展

为支持GNN的快速发展需求,系统允许算子自由扩展。系统框架包括用户接口、分布式运行时、分布式存储,3大部分。通过用户接口调用某个算子,算子读取数据并完成分布式计算。我们把分布式运行时和存储的接口进行提炼,将编程接口控制在安全范围内,用户可以基于这些接口开发一个自定义的算子。自定义算子可以统一注册到用户接口上,无需新增用户API。具体的,每种Operator都是一个分布式算子,计算所需的数据会分布在Service的各个Server上,我们抽象了Map()和Reduce()语义,Map()用于把计算请求拆分并转发到对应的Server上,保证数据和计算colocate从而避免数据搬迁的代价,Reduce()则把每个Server的结果进行整合。Operator还需实现Process(),用于本地计算,数据序列化、分布式通信等则无需关心。
8.jpg

取得成果

系统

数据种类:支持同构图、异构图、属性图,有向图、无向图,可方便与任意分布式文件系统对接。

数据规模:支持千亿级边、十亿级顶点的超大规模图(原始存储TB级)。

算子种类:支持几十种可与深度学习相结合的图查询、采样算子,支持向量检索,支持算子按需自定义。

性能指标:支持分钟级超大规模图构建,毫秒级多跳异构图采样,毫秒级大规模向量检索。

用户接口:纯Python接口,与TensorFlow构成一体化IDE,开发成本相比一般TF模型无异。

算法

已支持业界主流的GraphEmbedding算法,包括:DeepWalk、Node2Vec、GraphSAGE、GATNE等。多种自研算法正在计划公开,已发表的相关paper参考如下。

  • Representation Learning for Attributed Multiplex Heterogeneous Network.KDD, 2019.
  • Is a Single Vector Enough? Exploring Node Polysemy for Network Embedding.KDD, 2019.
  • Towards Knowledge-Based Personalized Product Description Generation inE-commerce. KDD, 2019.
  • Sequential Scenario-Specific Meta Learner for Online Recommendation. KDD,2019.
  • AliGraph: A Comprehensive Graph Neural Network Platform. VLDB, 2019.
  • Large Scale Evolving Graphs with Burst Detection. IJCAI, 2019.
  • Hierarchical Representation Learning for Bipartite Graphs. IJCAI, 2019.
  • Cognitive Graph for Multi-Hop Reading Comprehension at Scale. ACL, 2019.
  • Bayes EMbedding (BEM): Refining Representation by Integrating KnowledgeGraphs and Behavior-specific Networks. CIKM 2019.
  • Towards Knowledge-Based Recommender Dialog System. EMNLP, 2019.
  • Learning Disentangled Representations for Recommendation. NeurIPS, 2019.

业务

在阿里巴巴集团内,已覆盖淘宝推荐、淘宝搜索、新零售、网络安全(反恐、垃圾或异常检测、反作弊)、线上支付、优酷、阿里健康等相关业务。典型场景效果如下:

手机淘宝首页猜你喜欢,云主题推荐(每天5500w PV)

相比其他系统实现的GE模型,在百亿级边、十亿级顶点规模的用户-商品二部构图上,AliGraph的实现能使单任务节省300TB存储、万CPU时算力,训练时间缩短2/3,CTR提升12%。

安全相关,反恐、垃圾检测、异常识别等5个场景

单天三十亿级边、亿级顶点的异构图,训练时间缩短1/2,模型覆盖准确率提升6%-41%不等。

此外,AliGraph已在阿里云公共云平台发布,我们会保持持续更新,希望看到GNN为更多的场景带去更优的解决方案,也希望更多的研究者愿意投入到这个方向。

结语

本文对AliGraph平台做了概况介绍,在传递我们背后思考的同时,希望给更多GNN方向的研究者带去便利,也希望感兴趣的同学加入我们,共同打造GNN的影响力并落地到实际应用。

阿里云未来将与更多的企业联合,书写智能制造新篇章。

《Elasticsearch 中国开发者调查报告》
探索开发者的现状和未来

为了解Elasticsearch 中国开发者群体,结合1186位开发者的调研数据和18位社区专家的深度访谈,Elastic 技术社区、阿里巴巴 Elasticsearch 技术团队和阿里云开发者社区联合发布了《Elasticsearch 中国开发者调查报告》。免费下载,抢先一步读懂这个“族群”吧。

2012年,Elasticsearch 首个版本发布,经过7年多的发展,Elastic系列开源项目的热度持续升温,Elastic 技术社区的用户量和开发者群体逐步壮大,也在不断进化。那么,这个群体是谁?他们在怎样使用 Elastic Stack ?他们又将如何进阶成长?

为了洞察这个独特开发者群体的发展、技术应用现状,以及整个行业的发展趋势,Elastic 技术社区、阿里巴巴 Elasticsearch 技术团队和阿里云开发者社区联合首发《Elasticsearch 中国开发者调查报告》。

本次报告从开发者的职业路径、Elasticsearch 的技术演进、技术社区的发展等三个维度,描绘了开发者群体的轮廓和成长路径。

相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
相关文章
|
机器学习/深度学习 传感器 编解码
一文详解视觉Transformer在CV中的现状、趋势和未来方向(分类/检测/分割/多传感器融合)(中)
本综述根据三个基本的CV任务和不同的数据流类型,全面调查了100多种不同的视觉Transformer,并提出了一种分类法,根据其动机、结构和应用场景来组织代表性方法。由于它们在训练设置和专用视觉任务上的差异,论文还评估并比较了不同配置下的所有现有视觉Transformer。此外,论文还揭示了一系列重要但尚未开发的方面,这些方面可能使此类视觉Transformer能够从众多架构中脱颖而出,例如,松散的高级语义嵌入,以弥合视觉Transformer与序列式之间的差距。最后,提出了未来有前景的研究方向。
一文详解视觉Transformer在CV中的现状、趋势和未来方向(分类/检测/分割/多传感器融合)(中)
|
机器学习/深度学习 算法 存储
一文读懂大规模图神经网络平台AliGraph
2019阿里云峰会·上海开发者大会于7月24日盛大开幕,本次峰会与未来世界的开发者们分享开源大数据、IT基础设施云化、数据库、云原生、物联网等领域的技术干货, 共同探讨前沿科技趋势。本文整理自开源大数据专场中阿里巴巴资深技术专家李永先生的精彩演讲,将为大家分享AliGraph:大规模图神经网络平台。
8155 0
|
2月前
|
机器学习/深度学习 计算机视觉
YOLOv8改进 | 细节涨点篇 | UNetv2提出的一种SDI多层次特征融合模块(分割高效涨点)
YOLOv8改进 | 细节涨点篇 | UNetv2提出的一种SDI多层次特征融合模块(分割高效涨点)
130 2
|
3月前
|
机器学习/深度学习 存储 算法
基于多模态融合与图神经网络的用户精准感知系统研究
基于多模态融合与图神经网络的用户精准感知系统研究
60 0
|
传感器 机器学习/深度学习 编解码
自动驾驶 | 毫米波雷达视觉融合方案综述(数据级/决策级/特征级融合)
自动驾驶在复杂场景下的目标检测任务至关重要,而毫米波雷达和视觉融合是确保障碍物精准检测的主流解决方案。本论文详细介绍了基于毫米波雷达和视觉融合的障碍物检测方法,从任务介绍、评估标准和数据集三方面展开。
自动驾驶 | 毫米波雷达视觉融合方案综述(数据级/决策级/特征级融合)
|
11月前
|
机器学习/深度学习 计算机视觉
牛啊,几乎涵盖了图神经网络所有操作
牛啊,几乎涵盖了图神经网络所有操作
|
机器学习/深度学习 自然语言处理 资源调度
机器学习实战系列[一]:工业蒸汽量预测(最新版本下篇)含特征优化模型融合等
在进行归回模型训练涉及主流ML模型:决策树、随机森林,lightgbm等;在模型验证方面:讲解了相关评估指标以及交叉验证等;同时用lgb对特征进行优化;最后进行基于stacking方式模型融合。
|
传感器 机器学习/深度学习 编解码
2022最新综述!一文详解自动驾驶中的多模态融合感知算法(数据级/特征级/目标级)
多模态传感器融合意味着信息互补、稳定和安全,长期以来都是自动驾驶感知的重要一环。然而信息利用的不充分、原始数据的噪声及各个传感器间的错位(如时间戳不同步),这些因素都导致融合性能一直受限。本文全面调研了现有多模态自动驾驶感知算法,传感器包括LiDAR和相机,聚焦于目标检测和语义分割,分析超过50篇文献。同传统融合算法分类方法不同,本文从融合阶段的不同将该领域分类两大类、四小类。此外,本文分析了当前领域存在的问题,对未来的研究方向提供参考。
2022最新综述!一文详解自动驾驶中的多模态融合感知算法(数据级/特征级/目标级)
|
机器学习/深度学习 传感器 编解码
一文详解视觉Transformer在CV中的现状、趋势和未来方向(分类/检测/分割/多传感器融合)(上)
本综述根据三个基本的CV任务和不同的数据流类型,全面调查了100多种不同的视觉Transformer,并提出了一种分类法,根据其动机、结构和应用场景来组织代表性方法。由于它们在训练设置和专用视觉任务上的差异,论文还评估并比较了不同配置下的所有现有视觉Transformer。此外,论文还揭示了一系列重要但尚未开发的方面,这些方面可能使此类视觉Transformer能够从众多架构中脱颖而出,例如,松散的高级语义嵌入,以弥合视觉Transformer与序列式之间的差距。最后,提出了未来有前景的研究方向。
一文详解视觉Transformer在CV中的现状、趋势和未来方向(分类/检测/分割/多传感器融合)(上)
|
机器学习/深度学习 传感器 编解码
一文详解视觉Transformer在CV中的现状、趋势和未来方向(分类/检测/分割/多传感器融合)(下)
本综述根据三个基本的CV任务和不同的数据流类型,全面调查了100多种不同的视觉Transformer,并提出了一种分类法,根据其动机、结构和应用场景来组织代表性方法。由于它们在训练设置和专用视觉任务上的差异,论文还评估并比较了不同配置下的所有现有视觉Transformer。此外,论文还揭示了一系列重要但尚未开发的方面,这些方面可能使此类视觉Transformer能够从众多架构中脱颖而出,例如,松散的高级语义嵌入,以弥合视觉Transformer与序列式之间的差距。最后,提出了未来有前景的研究方向。
一文详解视觉Transformer在CV中的现状、趋势和未来方向(分类/检测/分割/多传感器融合)(下)