报名参加CloudWeGo黑客松,奖金直推双丰收! 了解详情
写点什么

NLP 迎来了黄金时代

  • 2019-11-29
  • 本文字数:3363 字

    阅读完需:约 11 分钟

NLP迎来了黄金时代

时钟拨回到 20 年前。


那一年,我以机器翻译方向的博士毕业,到几家单位应聘。当年,毕业的博士还很少。因此,应聘单位对我似乎还是网开一面,这导致我经历的应聘过程都十分轻松短暂。几个单位基本只关心两个问题:第一,“你是博士?“,第二,“你会 C++吗?“ 当得到肯定的答复之后,对方就给了 offer。虽然这么容易拿到了 offer,但其实我并不开心,因为他们并不关心我的博士研究方向,也不关心我今后做什么。我自己很不甘心也觉得不太靠谱,毕竟在专业方向上做了这么多年,丢掉实在可惜,于是我拒绝了这些 offer,选择留在了研究所继续从事 NLP 相关的科研工作。


走到今天来看,我确实是幸运的:NLP 历尽低谷,终于迎来了大爆发的“黄金”时代!


NLP(自然语言处理,Natural Language Processing)是利用计算机对人类的语言文字进行处理。由于语言文字是人类交流沟通的最基本方式,因此 NLP 也是最典型的 AI 领域之一,被誉为“人工智能皇冠上的明珠”。几百年来,多少人为了摘得这颗“明珠”,付出了艰苦的努力。个人认为,和 AI 的发展类似,NLP 的发展也同样经历了如下的三个阶段:


第一个阶段的 NLP 主要基于规则。我读博士的那几年,现在看上去好像正好处于这个时代后期(这一点纯属不成熟的个人看法。不少人仍然在继续探索规则方法。规则方法在很多领域仍然具有很强的生命力)。通过人工或者自动半自动地收集规则,机器可以完成一系列 NLP 任务。以机器翻译为例,只要输入的新句子能够匹配上事先设定或得到的规则,并且假定这些规则是正确的话,系统可能会输出一条看似还不错的结果。但如果上述任一条件不满足的话,系统可能会输出让人不知所云的结果。而自然语言太过复杂,通过有限的规则来刻画,几乎是不可能的事情。因此,基于规则的方法可能在某个特定的小领域能够取得不错的结果,一旦推广到更宽泛的领域,效果往往很不理想。


第二个阶段的 NLP 主要基于统计,更明确地说,基于数据+统计机器学习方法。 进入二十一世纪,计算机硬件能力的快速提升和数据量的增长,使得数据驱动的方法悄然成为主流。很多基于统计机器学习的 NLP 方法其实早就在基于规则的年代被人提出,但一直到这个阶段才为人广为所知、广为人用。最著名的是 IBM 的统计机器翻译模型,该模型最早提出于 1990 年,然而十几年后才真正大放异彩。正是数据+算力驱动了这一变革过程。在这个阶段的 NLP 当中,人工特征工程+统计机器学习成了很多 NLP 任务的标配。 不论是搜索引擎还是统计机器翻译,都基本如此。然而,这些传统统计机器学习的方法的一个最大问题是特征工程,即好的特征需要人类不断的探索和努力,有时归结于灵感或者只是运气,让人无法捉摸。虽然有些特定任务中的人类特征总结得还相当不错,但是一旦换一个任务这些特征可能就完全无法使用。“找特征”成了基于统计的 NLP 任务的最主要工作。


第三个阶段的 NLP 主要是基于深度学习。 本质上说,深度学习也是一种统计机器学习方法,因此这个阶段本质上也是数据+统计机器学习。但是,深度学习已经在很多领域表现优异,其名头已经盖过传统的统计机器学习。因此,说这个阶段基于深度学习毫不为过。上一个阶段最让人头疼的就是特征问题,本质上就是 NLP 的对象(字、词、短语、句子、段落、篇章等)如何表示的问题。而深度学习的最大好处就是能够自动学到对象的表示,从而避免了人工特征工程的大工作量和难以保证的结果。为了学到对象的较好的表示,深度学习方法通常一方面采用深层的神经网络方法来学习,另一方面需要更大量的数据。因此,大量硬件的投入对于这个阶段来说通常也必不可少。


尽管存在可解释性差、运算代价巨大等问题,但深度学习 NLP 带来了大量 NLP 任务效果的提升。就以机器翻译为例,统计机器翻译已经在效果上较大幅度领先于早先的规则机器翻译系统,而基于深度神经网络的机器翻译又将效果再度提高了一个台阶。在很多其他 NLP 任务上,基于深度学习的方法也基本领先于传统方法。机器翻译和机器阅读等任务甚至都号称“超过了人类”。造成这种结果的基本原因就是深度学习这个“黑盒子”似乎找到了以往人类没有发现的好用的特征,这些特征独自或者和人类提出的特征结合能够发挥出更好的效果。


这个阶段带来的一个重要变化是文本生成任务突然间成为可能。大量的自动写诗、自动写稿、自动写标题等算法系统纷涌而出,这是以往的阶段难以见到的。基于深度学习的 NLP 使得很多任务都可以抽象为编码-解码问题。表面的文本可以编码为内部的特征表示,而从特征表示又可以解码为表面的文本。这种极简抽象正好代表了 NLP 的两个任务,前者叫自然语言理解(Natural Language Understanding, NLU),后者叫自然语言生成(Natural Language Generation, NLG)。这种抽象使得很多原来没有太多办法的生成任务至少具有想象的可能。以自动摘要这一任务为例,尽管前人尝试了很多生成式摘要方法,但基本结论还是抽取式摘要方法更佳。有了深度学习之后,可以将原文编码为特征表示,然后再基于该表示生成一个更短的文本,从而得到生成式摘要。另一个任务是图文生成或文图生成,即可以根据图像来生成一篇文本,或者基于文本来生成图像,从而实现跨模态的处理。还有,如果不同语言的特征表示存在对齐的可能性(很多研究工作组都在尝试),多语言生成问题也会迎刃而解。


深度学习 NLP 带来的另一个重要变化是端到端模式的流行。 传统 NLP 任务大都基于流水线模式,即任务会逐层分解,通过多层模块之间的有序调用完成某个任务。比如传统的语音翻译过程一般为:先将输入语音转化为源文本,然后将源文本翻译成目标文本,最后将目标文本转换成语音进行输出。这种流水线方式每一个前面步骤的错误都有可能延续到后续模块,从而造成错误的级联效应。Google 于 2019 年给出了一种端到端的语音翻译方法,引起了学术界和工业界的广泛关注。从原理上来说,这种端到端的方法可以避免逐层错误传播的缺点,能够获得更好的效果。目前,很多学术机构和公司都在跟进这一具有革命性的方法。当然,端到端的模式已经在其他一些 NLP 任务中获得了较好的效果,这种直达任务的模式有可能会成为大多数 NLP 任务的新选择。


近年来深度学习 NLP 本身也出现了新变化,最典型的就是预训练+微调的任务处理方式变得十分流行。 预训练最早起源于图像处理领域,大家可以在 ImageNet 上训练出基本的模型,然后将该模型用于新任务中,而只需要对模型进行微调。这种思路也被引入到 NLP 任务中,出现了 ELMo、GPT2、BERT 等预训练模型。这种做法至少有两个好处。其一,新任务可以减少对数据的依赖,因为预训练模型是基于大量数据得到的,其中编码了大量重要信息。其二,减少了训练代价,新任务不需要从头训练。上述预训练模型取得了非常令人鼓舞的结果,很多模型在很多 NLP 任务中都取得了更好的结果。预训练模型的竞赛还一直在继续。


但基于深度学习的 NLP 方法也有很多不足。可解释性和运算代价大是这类方法的通用性问题,这里就不再展开论述。当然,也是因为可解释性问题的存在,NLP 中学到的特征表示到底表征的是什么东西目前还不太清楚,这使得深度学习 NLP 方法可控性不强。以文本生成为例,用深度学习生成人类可控的文本目前看还是个大难题。


不管如何,NLP 迎来了属于自己的黄金时代。


这个时代不仅仅有搜索、推荐、广告、信息流、社交网络等“老树开新花”的领域,也包括人机对话、机器阅读、自动写作等充满生命力的新兴领域。NLP 在内容相关的各种应用中都扮演着极其重要的角色。


NLP 技术的发展不能离开场景,场景和技术的有效结合才能充分发挥出 NLP 技术的能力。身在工业界,我每一天都为 NLP 技术和场景的各种可能组合激动不已。终于等到你,还好我没放弃!


作者介绍


王斌博士,小米人工智能实验室主任,NLP 首席科学家。中国中文信息学会理事,计算语言学、信息检索、社会媒体处理、语言与知识计算等专委会委员及《中文信息学报》编委,中国计算机学会中文信息处理专业委员会委员。加入小米之前,在中科院计算所、信工所从事自然语言处理和信息检索相关的科研工作,任中科院博导、研究员,中科院大学教授。发表学术论文近 150 篇,科研成果获得国家科技进步二等奖 2 项,省部级科技奖 3 项。是 SIGIR、CIKM、ACL、IJCAI、AAAI、WWW 等会议的程序委员会委员。


延伸阅读:


《小米 NLP 首席科学家王斌:NLP 在落地、商业化方面进展慢是假象》


2019-11-29 08:0020919
用户头像
刘燕 InfoQ高级技术编辑

发布了 1112 篇内容, 共 555.7 次阅读, 收获喜欢 1978 次。

关注

评论 6 条评论

发布
用户头像
不错
2019-12-15 19:51
回复
用户头像
2019-12-09 11:35
回复
用户头像
你只讨论学术我非常赞同对NLP的现状分析,但是商业面抛开成本来谈NLP解决方案的,我只能认为是居心叵测。不要让NLP再来一次五代机灾难,至少别在中国搞成灾难。
2019-12-09 09:14
回复
用户头像
有幸加入王老师团队,又学到很多!
2019-12-06 11:23
回复
用户头像
王老师深入浅出,梳理了NLP技术的历史沿革,赞~
2019-12-06 09:56
回复
用户头像
大佬讲的很好
2019-12-03 12:13
回复
没有更多了
发现更多内容

什么是目标关键词?

源字节1号

前端开发 后端开发 SEO优化 网站开发

Apache SeaTunnel (Incubating) 2.1.0 发布,内核重构、全面支持 Flink

Apache SeaTunnel

大数据 大数据平台 apache 社区 Apache SeaTunnel #开源项目

IT运维工具难用吗?有没有简单易操作的?

行云管家

运维 IT运维

iOS开发面试的43道最新面试题,让你稳拿大厂offer!

iOSer

ios iOS面试 ios开发 iOS面试题

多场景推进 服务网格在联通的落地实践(下)

百度开发者中心

“后疫情时代”支付厂商发力B端已成共识,市场规模破3千亿!

易观分析

产业支付

玩转OpenMLDB社区,四张角色卡待解锁

第四范式开发者社区

人工智能 数据库 开源 贡献者 特征平台

使用APICloud AVM多端框架开发仿微信通讯录功能

YonBuilder低代码开发平台

前端开发 APP开发 APICloud 多端开发 avm.js

设计一个 SaaS 系统需要考虑的4个关键点

Im胡子

系统架构 SaaS SaaS设计 SaaS系统架构

Redis 缓存击穿(失效)、缓存穿透、缓存雪崩怎么解决?

码哥字节

Redis 核心技术与实战 Redis 热点key 缓存服务 3月月更

APICloud App开发教程之云修复功能

YonBuilder低代码开发平台

APP开发 APICloud 热更新

电路模型和电路定律 (Ⅲ)

謓泽

3月月更

春招进行时!当代大学生求职行为大赏

易观分析

求职 招聘 春招

深度解读「无影云电脑远程办公解决方案」

阿里云弹性计算

远程办公 无影云电脑

两会“数字经济”高频出位,博睿数据为企业数字转型提供有力引擎

博睿数据

阿里巴巴云原生大数据运维平台 SREWorks 正式开源

阿里云大数据AI技术

大数据 自动化运维 大规模网络运维

如何理解基础服务和通用服务

Im胡子

基础服务 通用服务 基础服务边界

焕然一新的 Vue 3 中文文档来了

CRMEB

前端培训之常见算法分享

@零度

前端算法

MongoDB与亚马逊云科技扩大全球合作

MongoDB中文社区

mongodb

产品帮助中心对SaaS行业的作用

小炮

SaaS平台 帮助中心

DPU芯片头部企业云豹智能加入龙蜥社区,共同推动新一代数据中心基础设施蓬勃发展

OpenAnolis小助手

云计算 开源 芯片 龙蜥社区

建木小故事

Jianmu

开源 后端 持续集成 建木CI

ModStartCMS Laravel9 模块化建站系统 v3.5.0 多图字段支持,系统优化升级

ModStart开源

架构实战营模块八消息队列mysql数据库设计

刘洋

架构实战营 #架构实战营 「架构实战营」

基于Laravel模块化极速开发框架 免费开源CMS

ModStart开源

保姆级SpringBoot+Vue图片上传到阿里云OSS教程

沉默王二

Spring Boot

java培训Redis高频面试考点

@零度

Java redis

美国法院最新判决:未经 OSI 许可的开源是「假开源」!

腾源会

开源 腾源会

中国版Postman:Apifox

Liam

程序员 Jmeter Postman API swagger

IT运维工具难用吗?有没有简单易操作的?

行云管家

云计算 运维 IT运维

NLP迎来了黄金时代_AI&大模型_王斌_InfoQ精选文章