写点什么

工业级深度学习应用进入瓶颈期,系统架构会成下一个突破口吗?

  • 2019-08-08
  • 本文字数:7121 字

    阅读完需:约 23 分钟

工业级深度学习应用进入瓶颈期,系统架构会成下一个突破口吗?

深度学习模型是当今人工智能研究的核心,以 2012 年 AlexNet 在图像识别领域的成功为里程碑,深度学习算法开始跨过应用的门槛,席卷各个计算机应用领域。在图像、语音、自然语言处理等方向上,深度学习都取得了令人瞩目的落地成果。但与此同时,深度学习也存在一定的局限性。近期有一些学者提出观点认为“深度学习不是人工智能的未来”,暂且不论这一观点正确与否,这至少说明,深度学习之后,我们还应该做一些其他的尝试。


对于互联网公司而言,如何从海量数据中建模用户的兴趣,为用户提供优质的个性化服务,已经成为改善用户体验、提升营收的关键要素。广告、推荐、搜索等互联网核心业务场景因此成为深度学习应用很好的试验场。但与图像、文本、语音等连续稠密数据不同,在广告、搜索、推荐等互联网核心应用中处理的普遍是高维稀疏的结构化数据。面对这类数据,简单地套用深度学习算法并不能达到很好的效果,如何更好地应用深度学习算法对这类数据进行问题建模、如何提供工业级的训练及推理能力、如何更好地打开算法的黑盒提供可解释性等等,都是目前深度学习学术研究与工业实践之间存在的鸿沟。


与此同时,由于深度学习在可推理和可解释性方面存在比较大的局限性,结合了图计算和深度学习的图神经网络(GNNs)成为近期学术界和工业界研究热度颇高的新方向之一。业界普遍认为,GNN 恰好可以弥补前面提到的深度学习无法解决的两个缺陷。近一年 GNN 在越来越多应用场景上取得了成功,但它也仍面临着许多挑战。


为了联合学术界和工业界深入探讨上述两大问题,阿里巴巴在今年的数据挖掘研究领域顶级年会 KDD 2019 上分别召开了以“面向高维稀疏数据的工业级深度学习应用实践”为主题和以“图神经网络研究及实际应用”为主题的研讨会。InfoQ 记者有幸采访到了这两场研讨会的发起人,阿里妈妈资深算法专家朱小强和蚂蚁金服人工智能部研究员宋乐,分别聊聊深度学习和 GNN 在大型工业级场景的应用和实践、目前面临的难点挑战,以及未来技术前进的可能方向。


宋乐老师在KDD现场


Workshop现场

工业级深度学习应用演进

在工业场景的高维稀疏数据上应用深度学习,除了模型的网络结构设计需要重新考虑,巨大的数据规模也对如何高效训练提出了挑战。针对高维稀疏数据应用深度学习问题,工业界先后推出了一系列工作。比如谷歌在 2016 年推出的 Wide&Deep 模型,将单输入层的 Wide 部分和经过多层感知机的 Deep 部分连接起来,一起输入最终的输出层。不仅让模型能够直接“记住”用户的大量历史信息,也能利用 DNN 表达能力强的特点,挖掘藏在特征后面的数据模式。同年,阿里巴巴研发了 DIN(Deep Interest Network)模型并随后对业界公开。DIN 将 Attention 机制融合到深度学习模型中,使模型能够根据候选商品的不同,在一个定长向量里面自适应地调整用户兴趣的表达,成为了个性化行为建模领域的里程碑式模型。2018 年,阿里巴巴又推出 DIEN(全称 Deep Interest Evolution Network),不仅是对 DIN 的进一步“进化”,还通过引入序列模型 AUGRU 模拟了用户兴趣随时间演化的过程。


作为广告、推荐、搜索业务核心的 CTR 预估模型借助深度学习得到了效果上的显著提升,成为几乎所有主流互联网公司的标准配置。作为推动工业级深度学习应用的先行者之一,阿里妈妈从 2015 年开始一系列探索,并在 2016 年尝试了第一代深度学习算法,在后续几年里,深度学习算法模型不断更新迭代,为阿里妈妈带来了大量红利。以阿里妈妈定向广告场景为例,深度学习算法直接带来的收入增长红利在 2018 年就已经超过百亿,今年这个数字可能还会翻番。当前,阿里妈妈还关注哪些问题?


这首先要从机器学习和深度学习在互联网行业核心业务应用实践的不同阶段说起,朱小强将其划分为两个阶段。


第一个阶段是从 2000 年到 2015 年,可以将它粗浅地定义为基于大规模机器学习的上一代技术体系。这个技术体系在最初的十年里,机器学习相关的技术研发还是凤毛麟角,只有一些简单的应用。后来的 5 年成为了机器学习技术在工业界发展的黄金时间,包括百度、谷歌等国内外巨头都是在这个时间段内开始大力推动并引领了机器学习技术的规模化落地。最初工业界试图应用机器学习技术来解决问题的时候,发现学术界推出的各种复杂的算法模型对于工业界并不适用,因为工业界的数据规模实在太大了,复杂的模型根本训练不起来。为了将这些算法模型落地,工业界付出了很大的代价,其中一个关键要素是大规模分布式机器学习架构,例如基于参数服务器(Parameter Server)的并行训练系统就是这个阶段的典型代表作。此外,这期间也伴随着大数据架构如 Hadoop、Spark 等的兴起,为机器学习技术在工业界的实际应用起到了重要推动力。


第二个阶段始于 2015 年年底 2016 年初,以广告、推荐和搜索为代表的互联网公司开始发现,新一轮爆发于学术界和传统 AI 领域(如语音、图像等)的深度学习浪潮,也给互联网技术带来了全新的机会。过去的大规模机器学习,模型本身相对来讲比较固化和简单,还是偏重以人工先验设计加工的数据模式为主,但这一代的深度学习技术带来了更彻底的变革。首先深度学习本身的模型容量更大、变化更丰富,可以针对具体的场景数据进行模型的自由定制;其次,模型的设计变得更加简单,基于标准化的深度学习训练框架可以非常容易地实现一个全新的算法模型并进行大规模的分布式训练,普通的算法工程师就能轻松完成这个过程。而在以前的大规模机器学习阶段,需要非常强大的专业团队花费大量时间才能定制式地研发出一个工业级可用的新模型算法;此外,当模型训练出来之后,现在已经有一个非常体系化的流水线来支持任意复杂算法模型快速部署到线上提供服务。这是这一代深度学习技术带来的巨大变革:算法结合算力的突破,从离线到在线、从数据到业务系统到背后整个算法体系,整个都串起来形成了一个体系化的 Pipeline。而且相比大规模机器学习时代,这个 Pipeline 的复杂性更高,但迭代进化的速度更快。


阿里妈妈研发团队在 2015 年年底开始进行工业级深度学习的探索,2016 年启动大规模深度学习框架以及算法的研发,到 2017 年的时候,阿里妈妈已经走在了深度学习的主航道上面,核心算法已经全部深度学习化,取得了显著的发展。这成为了业界的一个技术样本间。今天业界很多企业在看到了这条道路的可行性后,也纷纷跟随头部企业的脚步、开启了大规模的深度学习技术升级的浪潮。


然而,正因为跑得快些,阿里妈妈在大规模应用深度学习的过程中渐渐发现,工业级深度学习的发展已经到了第一阶段的瓶颈期

系统架构的不适配成为工业级深度学习应用新瓶颈

深度学习的技术爆发为互联网广告等行业带来了数十亿甚至百亿规模的营收提升,这是非常巨大的业务突破。但是,在朱小强看来,深度学习带来的提升并不是毫无代价的。深度学习的爆发就像超新星一样,突然一下子很亮,但非常快就会变成黑洞,变成黑洞之后,它会吞噬什么呢?朱小强认为,深度学习短短 2-3 年时间,就迅速地把工业界上一代十几年建立起来的整个体系存量,包括数据、系统、架构、算力等全部吃掉了。这就导致我们不得不面临这样一个问题:我们曾经引以为傲地认为是算力推动了这一轮 AI 的突破性发展,但今天,至少在工业级应用场景下,算力已经成为了阻力。其背后更深层次的原因,是由 GPU 带来的单点算力红利已经基本消失,相应地嵌入 GPU 算力的工业系统架构依然原地踏步、发展不适配。


朱小强告诉我们,如何重新设计过去这个持续了十几年的系统架构,是头部企业已经开始重点关注的问题。以广告场景举个例子,现有系统架构普遍遵循“匹配-召回-海选-粗排-精排-重排-策略机制”的链路体系,这个链路每一步都在考虑如何在算力约束下,尽可能地通过算法的手段去逼近最优效果、减少折损。然而,深度学习伴随的 GPU 算力升级,某种程度上已经可以打破这种体系。他认为,接下来工业级深度学习将进入 2.0 阶段,而这一阶段面临的问题本质上不是深度学习变了,也不是算力变了,算力不可能天天呈爆炸式发展,而会慢慢形成一个台阶并至少暂时停留一段时间。今天这个阶段面临的核心问题是,当前深度学习仍然跑在为上一代大规模机器学习模型需求而构建的那套系统架构之上。但过去的那套架构已经不太适合如今数据、算法和算力背后的需求。如今,算力和算法模型逐渐成为企业新的基础设施,如何面向业务场景的需求和数据的特性,对算力、算法和系统架构之间做协同设计(co-design),才是今天需要去思考的更彻底的一次变化。“这是全新的方法论”,朱小强强调。


那么系统架构的革新是否意味着要将原有架构彻底推倒重做,还是可以在原有系统上一点一点地微调?朱小强表示,工业级应用牵涉的业务众多,不可能一口气就将现有架构彻底推翻,而是会循序渐进地进行,但最终背后的理念一定是彻底重构。如今国内很多企业依然处于从机器学习到深度学习迁移应用的阶段,这其中最大的挑战在于路径依赖。要实现这一转变,既有的技术体系需要彻底转为深度学习体系,仅仅换个模型是行不通的。如果只是在已有的架构上进行微调,肯定是搞不定的。阿里妈妈为了在业务场景中全面应用深度学习,系统架构其实也经历了两三次重大重构。“当然不能一口气吃成胖子,但是可以先获取一部分红利,然后一个系统一个系统地看,再整体串起来,循序渐进地形成新的架构体系。”

下一代工业级深度学习需要工业界与学术界共同推进

工业级深度学习发展到今天,仅单独依赖工业界或者学术界、甚至仅依赖某几个头部公司或实验室来推动已经远远不够。“工业界擅长将成熟的技术落地,学术界擅长对问题的抽象、定义和基础性研究,但今天大量的问题和数据在工业界,工业界不同规模公司的奔跑速度和进度也差异很大。” 朱小强表示,这是今年牵头组织第一届“面向高维稀疏数据的工业级深度学习应用实践”workshop 的初衷。组委会包括来自阿里巴巴广告/推荐/搜索、阿里国际化业务 AE/Lazada 等多个核心技术团队,以及上交/伯克利等顶尖学术界团队,希望通过这个 workshop:


  1. 建立这个领域的通用认知。用学术化的方式,清晰地提出、并且定义这个领域的问题特性、难点,进一步建立标准数据集和问题,让工业界、学术界的同行们都能够站在统一的高度来认知;

  2. 建立一个超越独立公司或者实验室的交流载体,让业界处于不同发展阶段的同行们有一个高水平分享经验和踩坑教训的途径,打破技术封闭性,“不再是各个公司自己悄悄猫着研发、大量的低水平重复造轮子”,合力推动整个业界技术的前进。


workshop 传送门:https://dlp-kdd.github.io/

深度学习之上,GNN 崛起

除了传统的深度学习方法,图神经网络(GNN)在近两年也是公认的“AI 新贵”。由于图结构的强大表现力,用机器学习/深度学习方法分析图的研究越来越受重视。而图神经网络(GNN)由于较好的性能和可解释性,已经成为一种广泛应用的图分析方法,更有不少人将它看作“深度学习的新一代技术”。近一年来,学界和工业界陆续推出了 GNN 的相关框架和工具,进一步促进了这一领域的蓬勃发展。


GNN 提供了图表征学习(Graph representation learning)或图嵌入技术(Graph embedding)的框架,可以用于各种图数据上的监督,半监督及强化学习。GNN 将图上的元素,如节点,连接或者子图表达成为一个向量,而不同元素所对应的向量之间的距离保存了它们在原图上的相似关系。这样将拓扑关系表达为特征空间中的向量的做法,本质上是一种基于拓扑信息的特征提取过程,其结果是沟通了传统的图分析和各种传统机器学习或数据挖掘方法,在推荐系统、知识图谱构建及推理等领域都有许多应用。比如说,可以通过引入了图卷积操作构造了一个适用于图数据的半监督学习框架,用于提取更精确的特征表达或直接进行分类操作,并可以结合图像分割、视频理解、交通预测等许多领域开始探索其应用价值。无论对于图分析还是深度学习,GNN 都是一个极有价值的的演化。


GNN 的出现解决了传统深度学习方法难以应用到非规则形态数据上的痛点,大大扩展了神经网络的应用空间,并在一些问题上改进了模型的可解释性。对于许多建立在非规则形态数据基础之上的业务场景,诸如推荐、消歧、反欺诈等,GNN 都有极大的应用潜力。以蚂蚁金服为例,GNN 已经广泛部署于普惠金融业务的推荐和风控中。


宋乐还列举了两个比较有趣的新应用:


  • 一个是 GNN 在知识图谱上推理的应用。知识图谱是蚂蚁金服非常重要的研发方向之一,借助知识图谱可以把中国所有注册企业都联系起来,图谱里每个节点可能就是一个注册的商家,这个节点数量可能会达到几千万。这些商家之间可能有一些是供应商关系,有一些是同行竞争对手的关系,有一些可能是存在法律诉讼的关系。如果想根据这个图来做一些预测和推测,用于普惠金融业务的推荐和风控,就可以借助 GNN。

  • 另一个是动态图的应用。本质上,所有金融交易问题都是动态的,谁在什么时间买了什么东西,都是有一个对应的时间戳的,随着新的交易发生、新的账号产生,整个图应该是在不断变化的。如何把时间和图的结构一起考虑进去做表征,这个也是比较有挑战性的前沿问题。目前蚂蚁金服正在贷款准入模型中尝试应用动态图。


除此之外,据宋乐保守估计,GNN 目前至少已在阿里巴巴数十个业务场景落地。不过这只是 GNN 发展乐观的一面。


从业界整体落地情况来看,GNN 仍然处于发展初期。从 2018 年 10 月,由 DeepMind、谷歌大脑、麻省理工等近 30 名学者联名在 ArXiv 上传的论文《Relational inductive biases, deep learning, and graph networks》将 GNN 相关工作推到一个新的高度以来,GNN 火热发展还未到一年,很多本质问题尚未突破。与工业级深度学习应用面临的问题类似,GNN 要真正做到在工业界大规模落地,在底层系统架构方面仍需要做大量工作。

如何大规模落地 GNN 仍面临挑战

在宋乐看来,目前 GNN 在工业界大规模落地面临的挑战主要在于大规模图网络的训练和线上更新预测两方面。未来互联网公司只要涉及 GNN 相关应用工作,几乎都逃不开大规模图网络。


首先,工业级业务场景,尤其是互联网公司的业务场景,图网络规模通常都很大,至少包含亿级,甚至是十亿级、百亿级的图节点和边。要计算这么大规模的图神经网络,通常一台机器是无法达到想要的效果的,这时就需要一个专门的分布式图计算平台。如果没有一个平台能够支撑 GNN 所需的海量计算,就很难把 GNN 做好。但目前就业界来说,GNN 平台的进展仍然比较慢。还没有哪个企业能够推出一个足够好的开源 GNN 平台,并且能自信地表示可以很好地支持亿级节点的图网络。


在对 GNN 模型进行训练时,算法需要与分布式图存储平台进行高效交互,这也是非常有挑战性的一项工作。在模型训练时,算法需要不断随机查询节点、节点的邻居和邻居的邻居,取出数据放到内存中做深度学习模型的前向 Inference 和后向的回传,这在大规模图上其实是很难做好的。对于 GNN 平台来说,做深度学习以及和数据库打交道这两个环节常常是导致速度慢最大的瓶颈。在过去两年,蚂蚁金服在分布式图存储这个方向上做了很多努力,目前已经开发出了一个高效的分布式图存储平台,以及可以跟这个图存储平台比较高效地交互的图训练平台。从数据上看,原来需要几天时间的亿级图网络训练已经可以缩短到一个小时以内。


大规模图神经网络在线上的预测也是难点之一。GNN 的 Embedding 并非实时的,以金融交易场景为例,每次出现一笔新的交易,图网络就会多一条边,图就会发生变化,如果想做好实时预测,就需要用最新的边根据这个 GNN 的参数,算出它的表征来进行预测。但是通常在线上环境中,要在非常短的响应时间内构一个图,把 GNN 计算好非常困难,特别是在交易量很大的情况下,通常都存在一定的滞后。如何让 GNN 能够在线上高效地直接做这个运算,这个挑战还没有完全解决,需要和底层的系统架构做一些合作。


宋乐坦言,即使没有 GNN,图计算本身在工业界就是一个比较困难的问题。因为图和图像、文本有所不同,图的每个节点连接的邻居个数可能不一样、节点类型不一样、边的类型不一样,就制造了很多不规则的运算,每个节点需要运算的程度不一样。而计算机特别适合规则运算,却天生不适合不规则运算,图的计算就属于不规则运算,以前传统的图算法也有各种各样的研究,但都不能很好地解决问题,再加上 GNN 引入了深度学习这一层,导致复杂度陡增,难度就更大了。因此,如何在很短的时间内得到 GNN 的训练结果和预测结果,都存在很大的挑战。如果这一问题能够得到解决,使 GNN 的训练和预测都做到足够快,那么算法工程师在建模的时候,就可以很快地尝试 GNN 的效果以及各种不同网络结构下 GNN 的效果,进一步修改提高 GNN 的结果。


不管在学术界还是工业界,目前这都还是一个比较前沿的问题,同时这也是当前 GNN 领域的瓶颈之一。虽然 Google、Facebook 等业内大公司都在推动 GNN 平台的开发工作,但目前还没有一个能够真正做好大规模分布式图网络计算的主流开源平台。

采访嘉宾介绍

宋乐,蚂蚁金服人工智能部首席工程师,佐治亚理工大学终身副教授 机器学习中心副主任,国际机器学习协会董事会成员,主要研究领域为大规模机器学习、深度学习,以及机器学习跨学科领域研究(如社交网络分析、神经科学等)。曾获机器学习顶会 NeurIPS 及 ICML、AISTATS 最佳论文奖,担任 IEEE PAMI 副主编及多个机器学习顶会领域主席。


朱小强,花名怀人,阿里资深算法专家,现任阿里妈妈深度学习算法平台负责人、兼任定向广告 &信息流广告排序技术团队负责人。他主持了三代核心算法架构(大规模、深度端到端、深度实时化)的设计和落地,驱动了深度学习对阿里广告技术的全面变革与创新,领导了阿里开源深度学习框架 X-DeepLearning 从 0 到 1 的自研、从 1 到开源演进的全过程,在 KDD、AAAI、SIGIR 等顶级会议上发表过 DIN/DIEN/ESMM 等多篇有影响力的工业实战论文,是 workshop DLP-KDD 2019 的发起人和联合主席。


2019-08-08 08:003024
用户头像
蔡芳芳 InfoQ主编

发布了 801 篇内容, 共 557.8 次阅读, 收获喜欢 2791 次。

关注

评论

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

架构师训练营 1 期 - 第二周总结(vaik)

行之

架构师训练营第二周学习总结

薛凯

作业-2020-09-27

芝麻酱

架构训练营 - 第 2周课后作业 - 学习总结

Pudding

架构师训练营 - 第 2 周课后作业(1 期)

Pudding

MySQL是如何实现可重复读的?

超超不会飞

MySQL

[架构师训练营第1期]第二周学习总结

猫切切切切切

极客大学架构师训练营

第二周课后练习

薛凯

华为:与全球180万云与计算开发者共成长,共创行业新价值

华为云开发者联盟

架构师训练营—第二周学习总结

Geek_shu1988

第 2 周 作业

Pyr0man1ac

面向对象设计原则----接口分离原则(ISP)

张荣召

第二周

等燕归

从四个问题透析Linux下C++编译&链接

华为云开发者联盟

c++ Linux 编程

案例分析--反应式编程框架Flower的设计

张荣召

OOA-OOD:面向对象分析/设计练习

张荣召

金融科技推进数字金融“新基建”,着力建设三种类型数字金融基础设施

CECBC

金融 科技 科技革命

国内首个区块链村正式落地:数字经济的裂变之路

CECBC

区块链 数字经济

架构师训练营 Week2 作业 2【学习总结】

lucian

极客大学架构师训练营

架构师训练营第二周作业

文智

极客大学架构师训练营

第二周总结

等燕归

#第二周作业

vitaminc

架构师训练营第二周心得

CmHuang

graylog日志分析系统上手教程

MySQL从删库到跑路

Apache Linux 运维 日志分析 实时 Web 日志分析器

为什么区块链巨头企业一定会诞生在中国的原因分析

CECBC

区块链 科技

架构师训练营—第二周作业

Geek_shu1988

架构师训练营 Week2 作业 1

lucian

极客大学架构师训练营

面向对象设计原则----单一职责原则(SRP)

张荣召

Java中的遍历(遍历集合或数组的几种方式)

keaper

Java List 遍历

深入理解JVM垃圾回收算法 - 标记整理算法

Skye

标记整理 双指针算法 Lisp2 引线整理算法

第二周学习框架设计总结

三板斧

极客大学架构师训练营

工业级深度学习应用进入瓶颈期,系统架构会成下一个突破口吗?_AI&大模型_蔡芳芳_InfoQ精选文章