NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

阿里开源 Euler:国内首个工业级图表征学习框架

  • 2019-01-19
  • 本文字数:4069 字

    阅读完需:约 13 分钟

阿里开源Euler:国内首个工业级图表征学习框架

先奉上开源地址:https://github.com/alibaba/euler

Euler 开源:用图表征学习解决深度学习瓶颈

Euler 是阿里巴巴旗下数字营销平台阿里妈妈自研的大规模分布式图表征学习框架,目前已经应用于阿里妈妈的各项业务中,包括检索匹配场景、CTR 预估场景、营销工具场景和反作弊场景等。


近年来,图神经网络和图表征学习成为一大热门研究领域,尤其在今年的 NeurIPS 上,图与表征学习论文数量众多,表现出很强势的上升势头和关注度,获得了来自学界的更多关注和探索。


为什么阿里妈妈会选择在图表征学习大热的背景下开源 Euler 呢?


阿里妈妈告诉 AI 前线记者,事实上早在 2016 年,也就是图表征学习还未受到热切关注之前,阿里妈妈就已经开始进行了图表征学习相关的探索,2017 年开始大规模应用,最终沉淀出首个工业级图表征学习框架 Euler。


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


但是,阿里妈妈在做技术探索的过程中发现,目前业界的一些图深度学习算法并不能在大规模异构数据上直接应用,业界并没有一个可以处理大规模复杂关系链接的图学习表示框架。出于业务需求,阿里妈妈在探索过程中逐渐沉淀出了 Euler。


阿里妈妈研发 Euler 的另一个原因,基于阿里妈妈的技术判断——图神经网络将端到端学习与归纳推理相结合,有望解决深度学习无法处理的关系推理、可解释性等一系列问题,对结构知识的表达、计算和组合泛化是实现具备 human-like AI 的关键,图神经网络有希望在这些方面形成突破,使得机器能力进一步提升,因此对图神经网络的深入应用有希望形成下一波技术红利。虽然图和表征学习虽然还处于早期发展阶段,但阿里妈妈判断未来它将是技术发展的一个非常大的赛道,在这个时间点开源,一是为了将其创新成果开放给业界,二是希望将这个主赛道的成果聚集起来,一起促进该领域的发展。

Euler 有哪些核心能力?

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


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


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


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


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


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


4)分层抽象与灵活扩展


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


###详解 Euler 内置算法实现


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


Euler 系统设计

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


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


Figure 1 Euler架构Overview

分布式图引擎

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


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


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


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

中间图操作算子

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


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


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


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


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

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

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

高层算法实现

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

Euler 应用实例

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


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


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


Figure 2 DeepMatch召回框架


Figure 3 离线训练流程


阿里妈妈专家表示,目前,图与表征的研究热点主要集中在四个方面:1)图的异构关系处理;2)动态图学习;3)面对大规模数据场景如何提高训练速度;4)新的图网络结构探索和组合,实现组合泛化。


阿里妈妈表示,因为该技术还处于发展的早期阶段,因此不可避免还具有一些局限性,比如训练速度还有很大提升空间。目前,Euler 在实际生产中能够支持百亿节点,千亿边,在一天之内完成训练部署和线上服务,处理规模在业界属于前列;另外,对于更加复杂的网络,如何有效学习表征以及和已有学习任务的结合,也有很大的探索空间。


据阿里妈妈透露,其还有可能开源一个相关数据集,不排除未来以组织相关比赛的方式让大家熟悉 Euler 的可能,而且阿里妈妈也将投入精力维护开源社区,包括将内部版本的迭代同步到开源社区,制作教程等。


公众号推荐:

跳进 AI 的奇妙世界,一起探索未来工作的新风貌!想要深入了解 AI 如何成为产业创新的新引擎?好奇哪些城市正成为 AI 人才的新磁场?《中国生成式 AI 开发者洞察 2024》由 InfoQ 研究中心精心打造,为你深度解锁生成式 AI 领域的最新开发者动态。无论你是资深研发者,还是对生成式 AI 充满好奇的新手,这份报告都是你不可错过的知识宝典。欢迎大家扫码关注「AI前线」公众号,回复「开发者洞察」领取。

2019-01-19 08:009016
用户头像

发布了 98 篇内容, 共 62.6 次阅读, 收获喜欢 285 次。

关注

评论

发布
暂无评论
发现更多内容

电商中的SPU与SKU

Java 程序员 后端

直呼内行!阿里大佬离职带出内网专属“高并发系统设计”学习笔记

Java 程序员 后端

看完这篇还不懂HashMap的扩容机制,那我要哭了~

Java 程序员 后端

硬核,学习 Java 的一点小建议(思维导图,建议收藏)

Java 程序员 后端

社招和校招有什么不同?阿里美团等大厂JAVA社招面经分享!

Java 程序员 后端

男默女泪!全网疯传的华为内部网络协议神仙笔记究竟有何魅力?

Java 程序员 后端

盘点那些进行“网络编程”必须要知道的基础知识!

Java 程序员 后端

知乎热问:国家何时整治程序员的高薪现象?太可怕了!

Java 程序员 后端

知道这些线程池底层源码的知识,你也能和面试官扯半小时

Java 程序员 后端

知道这些面试技巧,让你的测试求职少走弯路

Java 程序员 后端

盘点郭德纲那些“催人奋进”的经典语录 -- 致被我们浪费的时光

Java 程序员 后端

盘点阿里巴巴 34 个牛逼 GitHub 项目

Java 程序员 后端

看了这篇文章后,面试官再也不敢问你非结构化存储的原理了

Java 程序员 后端

看透了 Redis 源码之后,我总结出来的几点心得

Java 程序员 后端

用好这几个技巧,解决Maven-Jar包冲突易如反掌

Java 程序员 后端

用时17天完成4面阿里,已斩获offer,总结下个人面经心得体会

Java 程序员 后端

直播阿里远程面(钉钉部门),三面坐上“直通车

Java 程序员 后端

看完这套Java笔记,才明白笔者同时斩获7份大厂offer是有原因的!

Java 程序员 后端

玩转互联网公司面试!快手、爱奇艺、小红书等14家互联网企业面经分享!

Java 程序员 后端

看一遍就理解:动态规划详解

Java 程序员 后端

真香!面试题库泄漏,在Github一夜爆火的面试题库,被各大厂要求直接下架

Java 程序员 后端

硬核!SpringBoot连接MySQL数据库,十分钟啃透

Java 程序员 后端

看懂这篇文章就够了!什么是Redis缓存雪崩、缓存穿透和缓存击穿-五分钟统统搞定

Java 程序员 后端

看看AQS阻塞队列和条件队列

Java 程序员 后端

生产环境JVM内存溢出案例分析

Java 程序员 后端

疫情宅家4个月苦修,“不负年华“终斩阿里Java岗4面,分享下心路历程

Java 程序员 后端

硬核,这 3 款 IDE 插件让你的代码牢不可破

Java 程序员 后端

用 Java 爬美女图片,这个厉害了!

Java 程序员 后端

白嫖!白嫖!【尚学堂】高淇Java300集全套学习资料

Java 程序员 后端

看阿里P8用5个核心技术和200个案例带你解密阿里亿级流量核心架构

Java 程序员 后端

真是绝了!git标星19

Java 程序员 后端

阿里开源Euler:国内首个工业级图表征学习框架_AI&大模型_Debra_InfoQ精选文章