Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

阿里妈妈开源国内首个工业级的图深度学习框架Euler

今日,阿里妈妈宣布开源图深度学习框架 Euler。阿里妈妈表示,这是国内首个在核心业务大规模应用后开源的图深度学习框架。此次开源,Euler 内置了大量的算法供用户直接使用,相关代码已经可在 GitHub 上进行下载。

项目地址:https://github.com/alibaba/euler
1.   概述

过去几年随着数据规模和硬件计算力的迅速增长,深度学习技术在工业界被广泛应用并产生了巨大的技术红利。当前应用已经相对成熟,下一步的技术红利在哪里还在积极探索之中。图神经网络将端到端学习与归纳推理相结合,有望解决深度学习无法处理的关系推理、可解释性等一系列问题。对结构知识的表达、计算和组合泛化是实现具备 human-like AI 的关键,图神经网络有希望在这些方面形成突破,使得机器能力进一步提升,因此对图神经网络的深入应用有希望形成下一波技术红利。

图作为表达能力很强的通用的数据结构,可以用来刻画现实世界中的很多问题,例如社交场景的用户网络、电商场景的用户和商品网络、电信场景的通信网络、金融场景的交易网络和医疗场景的药物分子网络等等。相比文本、语音和图像领域的数据比较容易处理成欧式空间的 Grid-like 类型,适合现有的深度学习模型处理,图是一种非欧空间下的数据,并不能直接应用现有方法,需要专门设计的图神经网络系统。 

1.1Euler 的核心能力

1)大规模图的分布式学习

工业界的图往往具有数十亿节点和数百亿边,有些场景甚至可以到数百亿节点和数千亿边,在这样规模的图上单机训练是不可行的。Euler 支持图分割和高效稳定的分布式训练,可以轻松支撑数十亿点、数百亿边的计算规模。

2)支持复杂异构图的表征

工业界的图关系大都错综复杂,体现在节点异构、边关系异构,另外节点和边上可能有非常丰富的属性,这使得一些常见的图神经网络很难学到有效的表达。Euler 在图结构存储和图计算的抽象上均良好的支持异构点、异构边类型的操作,并支持丰富的异构属性,可以很容易的在图学习算法中进行异构图的表征学习

3)图学习与深度学习的结合

工业界有很多经典场景,例如搜索/推荐/广告场景,传统的深度学习方法有不错效果,如何把图学习和传统方法结合起来,进一步提升模型能力是很值得探索的。Euler 支持基于深度学习样本的 mini-batch 训练,把图表征直接输入到深度学习网络中联合训练。

4)分层抽象与灵活扩展

Euler 系统抽象为图引擎层、图操作算子层、算法实现层三个层次,可以快速地在高层扩展一个图学习算法。实际上,Euler 也内置了大量的算法实现供大家直接使用。

 1.2 Euler 内置的算法实现

考虑到框架的易用性,我们内置了多种知名算法以及几种我们内部的创新算法。所有实现,我们仔细进行了测试,保证了算法运行效率,且算法效果与原论文对齐。用户无需进行开发,注入数据到平台后,可以直接使用。我们内置的算法列表见下表。有关我们内部算法的详细信息请见 2.3 节。


算法类型

是否自研

特点

DeepWalk

随机游走

经典无偏的随机游走无监督算法。

Node2Vec

随机游走

利用可配置参数在游走时可倾向 BFS 或 DFS

LINE

其它

灵活利用 1 阶,2 阶邻居信息的无监督算法

GCN

邻居汇聚

CNN 操作类似推广到非欧空间的算法

GraphSAGE

邻居汇聚

GCN 改进,提出邻居采样,多种汇聚函数等

GAT

邻居汇聚

将 Attention 技术用于邻居汇聚

Scalable-GCN

邻居汇聚

加速 GCN 训练的一种方法

LsHNE

随机游走

异构图中随机游走,利用深度网络编码

LasGNN

邻居汇聚

半监督大规模异构图卷积网络学习方法

 2.  系统设计

Euler 系统整体可以分为三层:最底层的分布式图引擎,中间层图语义的算子,高层的图表示学习算法。

下边我们分开描述各个层次的核心功能。

Figure1 Euler 架构 Overview

2.1 分布式图引擎

为了支持我们的业务,我们不仅面临超大规模图存储与计算的挑战,还需要处理由多种不同类型的点,边及其属性构成异构图的复杂性。我们的分布式图引擎针对海量图存储,分布式并行图计算及异构图进行了优化设计,确保了工业场景下的有效应用。

  • 首先为了存储超大规模图(数十亿点,数百亿边),Euler 必须突破单机的限制,从而采用了分布式的存储架构。在图加载时,整张图在引擎内部被切分为多个子图,每个计算节点被分配 1 个或几个子图进行加载。

  • 为了充分利用各个计算节点的能力,在进行图的操作时,顶层操作被分解为多个对子图的操作由各个节点并行执行。这样随着更多节点的加入,我们可以得到更好的服务能力。其次,我们引入了多 replica 的支持。从而用户可以灵活平衡 shard 与 replica 的数量,取得更佳的服务能力。最后,我们针对图表示学习优化了底层的图存储数据结构与操作算法,单机的图操作性能获得了数倍的提升。

  • 多种不同类型的边,点与属性所组成的异构图,对很多复杂的业务场景必不可少。为了支持异构图计算能力,底层存储按照不同的节点与边的类型分别组织。这样我们可以高效支持异构的图操作。 

2.2 中间图操作算子

由于图学习算法的多样性以及业务的复杂性,固定的某几种甚至几十种算法实现无法满足客户的所有需求。所以在 Euler 设计中,我们围绕底层系统的核心能力着重设计了灵活强大的图操作算子,且所有算子均支持异构图操作语义。用户可以利用它来快速搭建自己的算法变体,满足独特的业务需求。

首先,Euler 分布式图引擎提供了 C++ 的 API 来提供所有图操作。基于这个 API,我们可以方便的基于某个深度学习框架添加图操作的算子,从而利用 Euler C++ 接口访问底层图引擎的能力。我们支持广泛使用的深度学习框架,比如阿里巴巴的 X-DeepLearning 与流行的 TensorFlow。后继我们也会考虑支持其它的深度学习框架,比如 PyTorch。

利用灵活的图操作算子,机器学习框架可以在每个 mini-batch 与 Euler 交互,动态扩充与组织训练样本。这样,Euler 不仅支持传统的以图为中心的学习模式,且可以把图学习的能力注入传统的学习任务,实现端到端训练。

按照功能分类,我们的核心系统提供的 API 可以分类如下:

  • 全局带权采样点和边的能力。主要用于 mini-batch 样本的随机生成以及 Negative Sampling。

  • 基于给定节点的邻居操作。这个是图计算的核心能力包括邻居带权采样,取 Top 权重的邻居等。

  • 点 / 边的属性查找。这个能力使得算法可以使用更丰富的特征,而不仅限于点 / 边的 ID 特征。

2.3 高层算法实现

如 1.2 节所述,除了 LINE 算法以外,我们实现的算法可以分为随机游走与邻居汇聚两大类算法。有关外部算法的详细信息,请参见 1.2 节提供的论文链接。下面我们详细介绍内部的三个创新算法,相关论文的链接我们会在 github 上给出。

  • Scalable-GCN

它是一种高效的 GCN 训练算法。GCN 以及更一般的 Graph Neural Network (GNN) 类的方法由于能有效的提取图结构信息,在许多任务上均取得了超过以往方法的效果。但是 GCN 的模型会引入巨大的计算量,导致模型的训练时间不可接受。Scalable-GCN 在保证优秀效果的前提下,把 mini-batch GCN 的计算复杂度从层数的指数函数压到线性。这使得在阿里妈妈的海量数据下应用三层 GCN 成为可能,广告匹配的效果获得了显著提升。 

  • LsHNE

LsHNE 是我们结合阿里妈妈搜索广告场景创新地提出一种无监督的大规模异构网络 embedding 学习方法。区别于 DeepWalk 类算法,LsHNE 的特点包括:a) 采用深度神经网络学习表达,可以有效融合 Attribute 信息;b) 考虑 embedding 表示的距离敏感需求,提出两个负采样原则:分布一致性原则和弱相关性原则;c) 支持异构网络。 

  • LasGNN

LasGNN 是一种半监督的大规模异构图卷积神经网络学习方法, 它有效融合了图结构知识信息和海量用户行为信息,大幅提升了模型精度,是工业界广告场景下首次应用半监督图方法。该方法有多处创新,例如将 metapath 的思想应用于图卷积网络中,并提出了 metapathGCN 模型,有效解决了异构网络的卷积问题;提出了 metapathSAGE 模型,在模型中我们设计高效的邻居采样的方法,使得大规模的多层邻居卷积成为可能。

3.  应用实例

Euler 平台已经在阿里妈妈搜索广告的多个场景下广泛实用,并取得了出色的业务效果,例如检索匹配场景、CTR 预估场景、营销工具场景和反作弊场景等。我们以匹配场景的为例来看下 Euler 的应用。

广告匹配的任务是给定用户搜索请求,匹配模块通过理解用户意图,快速准确地从海量广告中找到高质量的小规模候选广告集,输送给下游的排序模块进行排序。

我们首先使用一些传统的挖掘算法,从用户行为日志、内容属性等维度挖掘出 Query(查询词), Item(商品) 和 Ad(广告) 的多种关系,然后利用 Euler 平台的 LsHNE 方法学习图中节点的 embedding,这里节点 embedding 后的空间距离刻画了原来图中的关系,对于在线过来的请求通过计算用户查询词向量、前置行为中节点向量和广告节点向量之间的距离进行高效的向量化最近邻检索,可以快速匹配到符合用户意图的广告。图 2 展示了 LsHNE 方法的离线和在线流程。具体图 3 展示了样本构造和网络结构示意。

Figure2 DeepMatch 召回框架

Figure 3 离线训练流程

工程阿里妈妈开源图神经网络框架分布式计算
3
相关数据
深度学习技术

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

权重技术

线性模型中特征的系数,或深度网络中的边。训练线性模型的目标是确定每个特征的理想权重。如果权重为 0,则相应的特征对模型来说没有任何贡献。

机器学习技术

机器学习是人工智能的一个分支,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

TensorFlow技术

TensorFlow是一个开源软件库,用于各种感知和语言理解任务的机器学习。目前被50个团队用于研究和生产许多Google商业产品,如语音识别、Gmail、Google 相册和搜索,其中许多产品曾使用过其前任软件DistBelief。

表征学习技术

在机器学习领域,表征学习(或特征学习)是一种将原始数据转换成为能够被机器学习有效开发的一种技术的集合。在特征学习算法出现之前,机器学习研究人员需要利用手动特征工程(manual feature learning)等技术从原始数据的领域知识(domain knowledge)建立特征,然后再部署相关的机器学习算法。虽然手动特征工程对于应用机器学习很有效,但它同时也是很困难、很昂贵、很耗时、并依赖于强大专业知识。特征学习弥补了这一点,它使得机器不仅能学习到数据的特征,并能利用这些特征来完成一个具体的任务。

卷积神经网络技术

卷积神经网路(Convolutional Neural Network, CNN)是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现。卷积神经网路由一个或多个卷积层和顶端的全连通层(对应经典的神经网路)组成,同时也包括关联权重和池化层(pooling layer)。这一结构使得卷积神经网路能够利用输入数据的二维结构。与其他深度学习结构相比,卷积神经网路在图像和语音识别方面能够给出更好的结果。这一模型也可以使用反向传播算法进行训练。相比较其他深度、前馈神经网路,卷积神经网路需要考量的参数更少,使之成为一种颇具吸引力的深度学习结构。 卷积网络是一种专门用于处理具有已知的、网格状拓扑的数据的神经网络。例如时间序列数据,它可以被认为是以一定时间间隔采样的一维网格,又如图像数据,其可以被认为是二维像素网格。

归纳推理技术

归纳法或归纳推理(Inductive reasoning),有时叫做归纳逻辑,是论证的前提支持结论但不确保结论的推理过程。它基于对特殊的代表(token)的有限观察,把性质或关系归结到类型;或基于对反复再现的现象的模式(pattern)的有限观察,公式表达规律。例如,使用归纳法在如下特殊的命题中: 冰是冷的。 弹子球在击打球杆的时候移动。 推断出普遍的命题如: 所有冰都是冷的。 所有弹子球都在击打球杆的时候移动。

查询技术

一般来说,查询是询问的一种形式。它在不同的学科里涵义有所不同。在信息检索领域,查询指的是数据库和信息系统对信息检索的精确要求

图神经网络技术

图网络即可以在社交网络或其它基于图形数据上运行的一般深度学习架构,它是一种基于图结构的广义神经网络。图网络一般是将底层图形作为计算图,并通过在整张图上传递、转换和聚合节点特征信息,从而学习神经网络基元以生成单节点嵌入向量。生成的节点嵌入向量可作为任何可微预测层的输入,并用于节点分类或预测节点之间的连接,完整的模型可以通过端到端的方式训练。

深度神经网络技术

深度神经网络(DNN)是深度学习的一种框架,它是一种具备至少一个隐层的神经网络。与浅层神经网络类似,深度神经网络也能够为复杂非线性系统提供建模,但多出的层次为模型提供了更高的抽象层次,因而提高了模型的能力。

阿里巴巴机构

阿里巴巴网络技术有限公司(简称:阿里巴巴集团)是以曾担任英语教师的马云为首的18人于1999年在浙江杭州创立的公司。

https://www.alibabagroup.com/
推荐文章
暂无评论
暂无评论~