阿里开源大规模分布式图学习框架:专为Graph嵌入,无缝对接TF/PyTorch

电子说

1.3w人已加入

描述

阿里妈妈开源大规模分布式图表征学习框架Euler,面向工业级用户和高级研究者,结合TF/XDL/PyTorch等深度学习基础工具,支持超大规模复杂异构图的模型训练。

阿里妈妈宣布开源大规模分布式的图表示学习框架Euler,Euler内置DeepWalk、Node2Vec等业界常见的Graph Embedding算法,以及3种阿里妈妈自研创新算法,可以支持数十亿点和数百亿边的复杂异构图上进行模型训练。

日前,Euler开源框架开发团队的几位成员接受了新智元的采访。

在采访中,他们对Euler框架与现在流行的TensorFlow和PyTorch框架的一些区别做了阐述,比如“图”这一概念在定义和指代对象上的区别。并指出了Euler框架主要面向的两类目标用户。

需要指出,在TensorFlow和PyTorch中,图(graph)指的是把程序执行流程分解成为一个有向无环图,图中每个节点代表一个需要执行的操作,边代表各个操作的依赖关系。

在Euler中,图(graph)指的是用户的业务数据可以表达成复杂的异构图,用户希望基于图进行Graph Embedding,并进一步进行节点分类,边预测,图分类等任务。

Euler针对两类用户:

拥有海量复杂工业级图数据的用户,用Euler可以快速训练,拿到业务效果。

属于高校或者企业里边的研究实验室用户,他们利用Euler灵活的图操作算子可以快速进行算法创新与定制。

概述

过去几年随着数据规模和硬件计算力的迅速增长,深度学习技术在工业界被广泛应用并产生了巨大的技术红利。当前应用已经相对成熟,下一步的技术红利在哪里还在积极探索之中。图神经网络将端到端学习与归纳推理相结合,有望解决深度学习无法处理的关系推理、可解释性等一系列问题。

对结构知识的表达、计算和组合泛化是实现具备human-like AI的关键,图神经网络有希望在这些方面形成突破,使得机器能力进一步提升,因此对图神经网络的深入应用有希望形成下一波技术红利。

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

1.1 Euler的核心能力

大规模图的分布式学习

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

支持复杂异构图的表征

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

图学习与深度学习的结合

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

分层抽象与灵活扩展

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

1.2  Euler内置的算法实现

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

pytorch


系统设计

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

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

pytorch

图1 Euler架构总览

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节提供的论文链接。下面我们详细介绍内部的三个创新算法。

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模型,在模型中我们设计高效的邻居采样的方法,使得大规模的多层邻居卷积成为可能。

应用实例

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

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

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

pytorch

图2 DeepMatch召回框架

pytorch

图3 离线训练流程

开源信息

Euler已在Github开源,开源地址如下:

https://github.com/alibaba/euler

Euler开源框架受访人信息

李金辉(花名见独)

资深技术专家,阿里妈妈工程平台技术负责人

北京理工大学模式识别专业硕士毕业,现任阿里妈妈-工程平台的技术负责人,定义了阿里妈妈最新一代广告工程平台AdOS,过往一直从事广告和搜索系统架构领域的技术研发和管理工作,在大数据计算,广告引擎,搜索引擎和机器学习系统的技术方向上具备10年以上经验,还曾担任淘宝搜索引擎的核心架构师,阿里云弹性云计算产品线的产品主管。

朱晓宇 (花名赤空)

阿里妈妈研究员/资深总监

负责阿里搜索直通车算法与工程技术,带领团队打造中国规模最大的商业广告平台,帮助数百万电商商家建立数字化智能化的电商营销解决方案

张迪(花名乐迪)

资深技术专家,阿里妈妈大数据计算与机器学习平台的工程架构负责人

2010年上海交大硕士毕业后加入阿里巴巴,先后参与研发了淘宝新一代搜索引擎内核、神马搜索大规模网页处理系统、阿里妈妈大数据与机器学习平台。现在其团队负责阿里妈妈全域数据仓库、离线实时数据处理、深度学习建模等平台的研发建设,支撑着阿里巴巴搜索广告、精准定向广告、品牌广告等众多核心业务场景。

林伟(花名杨焜)

阿里巴巴高级算法专家、阿里妈妈搜索广告匹配和创意算法负责人

2009年北京航空航天大学硕士毕业后加入腾讯搜搜,从事搜索研发。2011年加入阿里巴巴,先后参与阿里推荐算法ETREC、定向广告大规模兴趣点算法UIT++、搜索广告近年来一系列创新的匹配算法、Euler图深度学习算法和平台等。在WWW、WSDM等顶级会议发表过多篇论文。现在其团队负责阿里妈妈图深度学习算法、搜索广告Query分析算法、相关性算法、匹配算法、创意算法和粗排算法等众多核心业务场景。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分