新浪新闻客户端

从语义表示到图学习:在机器理解人类语言之路上,百度有哪些新突破?

从语义表示到图学习:在机器理解人类语言之路上,百度有哪些新突破?
2019年07月22日 10:42 新浪网 作者 InfoQ

  2019 年 3 月,百度开源语义表示预训练模型 ERNIE,在多项中文 NLP 任务上表现出色,效果超越更早之前惊艳业界的 BERT。语义计算技术极大地提升了百度内部诸多产品的应用效果,百度 NLP 资深研发工程师冯仕堃在ArchSummit 全球架构师峰会(深圳站) 2019发表了以《从表示到匹配的语义计算之旅》为主题的演讲,重点介绍了百度在语义表示和语义匹配两个重点方向上的研究进展。演讲结束后,InfoQ 记者在大会现场对冯仕堃老师进行了专访,进一步探讨语义表示和匹配技术的难点,以及百度在图学习技术上的研究情况和下一步规划。

  下文整理自 InfoQ 与冯仕堃老师的对话实录。

  InfoQ:能否请您用简单的一句话解释一下什么是语义计算?

  冯仕堃:语义计算的任务是研究如何利用计算机对人类语言的语义进行表示、分析和计算,使机器具备语义理解能力。它是自然语言理解最基础、最核心的底层技术之一,在搜索、推荐、广告等多个场景都发挥着重要作用。

  InfoQ:目前业界对于语义计算研究的重点包括哪些细分方向?这些研究方向的难点是什么?

  冯仕堃:目前比较重要的一个方向是语义表示,从 2018 年开始,特别是 Google 发布 BERT 模型之后,语义表示技术就引起了比较大的关注,很多公司都投入了大量精力进行研究。此外,语义匹配、语义解析、多模态语义计算等也是里面重要的细分方向。

  研究的难点主要是人类语言复杂性带来的,人类语言存在大量歧义,多义,句子无限表述等问题,比如苹果这个词有可能代表手机,也有可能指的是水果。这时候需要基于上下文的语义去表示这个词。

  InfoQ:您认为最近两年来,语义计算取得的最重要的突破或成果有哪些(不局限于百度)?这些成果对自然语言理解领域整体发展产生了什么影响?

  冯仕堃:语义表示这块比较重要的突破包括 2018 年 ELMo 和谷歌的 BERT,还有 OpenAI 的 GPT、百度的 ERNIE,以及今年 CMU 和谷歌大脑联合发布的 XLNet。这些研究其实都是在解决一个问题,就是 Language Modle(语言模型)。为什么 BERT 比 ELMo 效果更好?因为 BERT 用了更深的神经网络,比如说 Transformer 会比 LSTM 更深。更深的网络会带来算力上的问题,Google 投入了很大的计算资源以及一些比 ElMo 更大规模的语料进行训练,使预训练模型的效果进一步提升。而 GPT 则是另外一个方向,它的侧重点是生成,最近 GPT 2.0 用了更深的 48 层网络,以及更大的语料去训练,使得模型具有一定的生成能力。XLNet 是为了弥补 BERT 中存在的预训练和 Fine-Tune 不一致的问题,加上了一个全排列的 Language Model,从而取得更好的效果。

  这些突破给自然语言理解领域带来了新的研究方向,当前一个比较好的自然语言理解的解决方案变成了预训练 Pre-Train 加上 Fine-Tune 的方式,只要有一家公司发布了预训练模型,其他人就可以把这个模型拿过来再自己的场景 Fine-Tune 一下就可以了。实际上对自然语言处理技术领域的研发模式,都有可能带来深刻的影响。过去是一个领域分别做,互相有一些技术借鉴,但本质上做翻译、做问答、做阅读理解等等的人都是各自一个圈子,从底层到应用完整开展。但未来有可能底层都可以用一套统一的预训练模型,各个技术方向只是在这个模型基础上做 Fine-Tune 的工作。同时技术领域之间的壁垒被打破,底层语义表示技术进展可以共享,推动技术到应用的转化过程大大缩短。

  InfoQ:上半年百度开源了语义表示模型 ERNIE,在多项中文 NLP 任务上表现出色,甚至超越了之前非常火爆的 BERT。百度研发 ERNIE 技术的初衷是什么?为了解决什么痛点?

  冯仕堃:ERNIE 相对 BERT 的创新点在于知识的引入。在百度内部有很多知识的积累,我们的初衷是怎么把知识融入到更多预训练模型里面去。比如我们在一些实体上的知识,好比什么是哪个地方的首都之类的问题,我们会把这些作为一个知识嵌入到 ERNIE 模型里做预训练,还会将一些类似对话知识、篇章知识结构等引入到我们的模型中,这种机制可以使得模型效果进一步提升。当然,虽然 ERNIE 已经取得了一些可观的进展,但知识的引入工作本身还是比较初步的,我们还在开展很多深入的研究,很快还会有新的突破发表出来。

  InfoQ:ERNIE 对于计算力的需求有多大?您在演讲中提到后来为了落地又研发了 ERNIE-Tiny 技术,它与 ERNIE 的区别是什么?

  冯仕堃:整个 ERNIE 模型训练的时候其实是很耗时的,对于 ERNIE-base 模型,它是一个 12 层深度的 Transformer 模型,对于只有 CPU 场景的工业环境,ERNIE 上线是很困难的,因为无法满足 QPS 的要求。这也是为什么后来百度又展开了 ERNIE-Tiny 研发工作的原因,百度在模型裁剪、压缩、量化、萃取、结构搜索等方面都做了一些尝试,通过这些方式来缓解计算力和耗时问题,加快工业级应用。

  目前 ERNIE-Tiny 主要在百度内部使用,在效果得到充分验证之后,会考虑开源。

  InfoQ:随着近两年 ELMo、BERT、GPT 2.0 等模型的发布,有人认为 NLP 领域已经进入了“大力出奇迹”的时代。即依靠强大的算力建立起预训练模型,在很多方面帮助自然语言提升了各项能力或解决了一些问题。您怎么看待算力和自然语言下一步发展之间的关系?

  冯仕堃:关于这一点我看过一些相关报道,在 AlphaZero 刚出来的时候南大周志华老师发表过关于类似问题的讨论:是不是只要算力就可以了,不再需要算法了?我比较赞同周志华老师的一个观点:算法是基础,算力起的是促进作用,这其实也是一个鸡生蛋蛋生鸡的问题。我更认为两者之间是不可或缺的,谁也离不开谁,二者联合起来才会促进 AI 的进一步发展。

  未来算力和算法还是会呈现交替上升的关系。当业界研究出更复杂的模型,算力跟不上,有些公司就会去研究更快的架构或者更快的硬件来支持。但这种交替关系其实是相对于不同的公司来说的,有些公司可能算力资源没那么多,那么算力就成为瓶颈;有些公司算力资源很多,算法可能会成为瓶颈,业内这块没有一个比较好的统一。

  InfoQ:您在演讲中也提到了图学习技术,图神经网络 GNN 是最近 AI 领域受关注度非常高的话题,请您详细介绍一下百度在图学习技术研究上主要做了哪些工作?

  冯仕堃:我这边主要负责的是图学习框架 PGL(Paddle Graph Learning)这块的一些工作,目前我们已经随着 PaddlePaddle 1.5 版本发布了 PGL 框架,它主要定位于一个图学习的框架。这个框架目前集成了 Graph Embedding 和图神经网络两大类算法,对应的底层技术就是 Walk based 和 Message Passing based 两大类计算范式。目前我们优化的效果是比竞品更快的。

  InfoQ:PGL 的推出是为了解决什么问题?为什么不能用原有的 PaddlePaddle 框架做图学习?

  冯仕堃:目前 GCN 网络,或说 GNN 网络的核心主要是基于 Message Passing(消息传递)机制来进行 Tensor 之间的游走。现有的深度学习框架直接支持图计算都有不足,所以才会有很多单独的图学习开源模块。目前基于 Paddle 研发 PGL 图学习框架能够很好利用 Paddle 的 LoD Tensor 优势,相对于竞品有更高的性能。

  InfoQ:现在业界已经有不少针对图神经网络的新框架,未来会是一个怎样的趋势?

  冯仕堃:每个深度学习框架应该至少会有一个对应的图学习框架。比如说 DGL 是基于 PyTorch 的,还有 PyG 也是基于 PyTorch 的,阿里的 Euler 是基于 Tensorflow 的,百度的 PGL 就是基于 PaddlePaddle 的。

  这些新的图框架其实是立足于原来的深度学习框架的,它们可以利用这些深度学习框架提供的 DNN 建模能力。比如说 PGL 立足于 PaddlePaddle,它是基于 Paddle 进行了 Walk based 和 Message Passing based 的改造,使得我们去写图网络会更方便一些。PaddlePaddle 是一个整体的大框架,PGL 则是在 Paddle 的上层做一些工具层面的集成,定义一些比较好的 OP、算子等,使写图网络过程变得更加友好。

  InfoQ:PGL 做了哪些改进工作以更好地迎合图学习的需求?

  冯仕堃:我们发现在已有图学习框架中(如 DGL),Message Passing 进行消息聚合的时候,采取的是串行的方式,速度很慢。我们可以利用 Paddle 原生的 LoD Tensor,就是 Level of detail Tensor,来支持变长的桶。就好像文本一样,文本的 Batch 可能这个聚块有三个词、下个聚块有五个词,如果想把它们组成一个 Batch,这在 Paddle 很容易实现,因为 LoD Tensor 会标记第一句话里面有三个词、第二句话有五个词。如果是在 TensorFlow 这种环境下面做 Batch,它会加 Padding,比如说第一句话会加两个 Padding 配到五个词。但是在图这个领域,不可能给入度不同的点加 Padding,因为入度的方差会很大,比如说某些度可能就几万,有些度可能就几个,不可能将几个度的图加上几万个 Padding,这样就会很慢。但是如果采取 LoD Tensor 的方式,我们把它看成一个整体,用 Sequence 函数就可以并行地把聚合函数做出来,这样能够得到比较大的速度的提升。此外,PGL 未来也会集成更多更好用的功能,如分布式支持、异构图构建等功能,使得 PGL 能够更好地迎合图学习的需求。

  InfoQ:图学习技术对 NLP 领域未来的发展将发挥什么样的作用?

  冯仕堃:NLP 领域在知识图谱、推荐网络、句法结构、关系推理等诸多场景都会用到图,因此图学习技术将会极大地促进 NLP 的发展。

  InfoQ:结合百度的实际经验,图神经网络 / 图学习技术的研究和落地应用存在哪些难点?有哪些对应的解决办法?

  冯仕堃:第一个难点在于规模,在工业级应用场景中,当节点数达到几亿甚至百亿级别规模的时候,怎么训练、部署,都有很大的挑战。

  另外,图是复杂异构的,节点和节点之间可能是不同类型的,边和边之间也有不同类型,怎么根据类型的不同去处理异构图,这也是一个难点。

  异构这块,我们会有一些特殊的手段去标记它,我们会根据类型处理,这块在我们框架上面会有所体现。

  而在规模问题上,我们近期也会发布针对大规模图的图学习框架,就是分布式的 PGL,我们会把基于 Paddle 的大规模 Embedding 的技术嵌入到我们的框架中,使得它可以比较自然地支持巨图的训练。

  InfoQ:您怎么看接下来图神经网络 / 图学习的发展,它会成为未来主流的方向吗?

  冯仕堃:从业界的论文发表数来看,图学习相关的论文是呈指数增长的,工业界的应用需求也是极其旺盛的,同时结合图本身的理论优势,图学习的发展将会是未来的一个重点方向,更多的资源也会往这方面倾斜。

  采访嘉宾介绍:

  冯仕堃,百度 NLP 资深研发工程师,毕业于中国科学院自动化所。长期深耕语义计算、模型压缩、图神经网络等领域的研发工作,并领导相关工作在百度搜索、信息流等核心产品应用落地。擅长自然语言处理、机器学习、信息检索等技术,拥有多项技术专利。

特别声明:以上文章内容仅代表作者本人观点,不代表新浪网观点或立场。如有关于作品内容、版权或其它问题请于作品发表后的30日内与新浪网联系。
百度神经网络
权利保护声明页/Notice to Right Holders

举报邮箱:jubao@vip.sina.com

Copyright © 1996-2024 SINA Corporation

All Rights Reserved 新浪公司 版权所有