2020开年解读:NLP新范式凸显跨任务、跨语言能力,语音处理落地开花
2020年伊始,我们总结、展望了微软亚洲研究院在多个 AI 领域的突破与趋势,比如,更亲民的机器学习和更精巧的 AI 系统;数据洞察的获得变得更智能,AI 推进三维构建的发展;以及突破固化的计算机视觉和更具商用价值的 OCR 引擎。今天,我们将探索自然语言处理(Natural Language Processing,NLP)范式的新发展,以及微软亚洲研究院在语音识别与合成领域的创新成果。
NLP 在近两年基本形成了一套近乎完备的技术体系,包括了词嵌入、句子嵌入、编码-解码、注意力模型、Transformer,以及预训练模型等,促进了 NLP 在搜索、阅读理解、机器翻译、文本分类、问答、对话、聊天、信息抽取、文摘、文本生成等重要领域的应用,预示着自然语言处理进入了大规模工业化实施的时代。
与此同时,随着机器软硬件能力的提升,模型、算法的突破,语音合成、语音识别、语音增强也都有了突飞猛进的发展,如微软亚洲研究院的 FastSpeech、PHASEN,让机器语音越来越接近人类说话,进一步加速了相关语音产品的落地。
NLP 步入第四代范式:预训练+微调
自然语言处理范式是自然语言处理系统的工作模式,细数之下,已经历了三代变迁,如今即将进入第四代。
第一代 NLP 范式是出现在上世纪90年代前的“词典+规则”;第二代范式是2012年之前的“数据驱动+统计机器学习模型“;第三代范式是始于2012年的“端对端神经网络的深度学习模型”。2018年前后,研究人员的目光开始锁定在预训练+微调上,标志着 NLP 第四代范式的出现,这也代表着 NLP 未来发展的方向。
图1:NLP 范式的变迁
目前,主流的自然语言处理范式是以 BERT 为代表的“预训练+微调”的新自然语言处理研究和应用范式,其基本思想是将训练大而深的端对端的神经网络模型分为两步。首先在大规模文本数据上通过无监督(自监督)学习预训练大部分的参数,然后在具体的自然语言处理任务上添加与任务相关的神经网络,这些神经网络所包含的参数远远小于预训练模型的参数量,并可根据下游具体任务的标注数据进行微调。
由此,研究人员可以将通过预训练从大规模文本数据中学到的语言知识,迁移到下游的自然语言处理和生成任务模型的学习中。预训练语言模型在几乎所有自然语言的下游任务,不管是自然语言理解(NLU)还是自然语言生成(NLG)任务上都取得了优异的性能。预训练模型也从单语言预训练模型,扩展到多语言预训练模型和多模态预训练模型,并在相应的下游任务上都取得了优异的性能,进一步验证了预训练模型的强大。
预训练语言模型在 BERT 和 GPT 之后,2019年得到了蓬勃发展,几乎每个月都有新的预训练语言模型发布,并在研究和应用领域产生了很大的影响。概括来说,预训练模型有如下几个趋势:
首先,模型越来越大(参数越来越多),从 EMLo 的 93M 参数,到 BERT 的 340M 参数,以及到 GPT-2 的 1.5B 参数和 T5 的 11B 的参数。
其次,用于预训练模型的数据越来越大,从 BERT 中用到的 16G 文本数据,到 RoBERTa 里用到的 160G 文本数据,再到 T5 里面用到了 750G 的文本数据。
再次,预训练模型从最开始的主要面向自然语言理解任务,发展到支持自然语言生成任务,以及到最新的一个模型同时支持自然语言理解和自然语言生成任务,如 UniLM、T5 和 BART 等。
然而,由于目前的预训练模型越来越大,在实际的工程应用中很难经济有效、满足高并发和低响应速度进行在线部署,因而除了在具体任务上采用模型压缩或者知识蒸馏(Knowledge Distillation 也叫 Teacher-Student Learning)得到小(快)而好的模型,在训练中得到小而快的预训练语言模型,也是当前一个重要的研究热点。
图2:预训练模型的发展
NLP 新范式趋势一:UniLM 为代表的跨任务统一模型
2019年,微软亚洲研究院发布了最新的预训练语言模型的研究成果——统一预训练语言模型 UniLM(Unified Language Model Pre-training),该模型涵盖两大关键性技术创新:一是统一的预训练框架,使得同一个模型可以同时支持自然语言理解和自然语言生成任务,而之前大部分的预训练模型都主要针对自然语言理解任务;其二是创新地提出了部分自回归预训练范式,可以更高效地训练更好的自然语言预训练模型。
UniLM 的统一建模机制可以用一个模型同时支持不同的下游任务和预训练任务。自然语言处理的下游任务大致包含以下三类:
(1)自然语言理解(NLU)任务,如文本分类,问答,实体识别等;
(2)长文本生成任务,如新闻或者故事生成等;
(3)序列到序列生成任务,例如摘要生成,复述生成,对话生成,机器翻译等。
针对不同的下游任务可以设计相应的预处理任务,比如针对自然语言理解的双向语言模型,针对长文本生成的单向语言模型,以及针对序列到序列生成任务的序列到序列语言模型。这些不同的下游任务和预处理任务也对应不同的神经网络结构,比如用于自然语言理解的双向编码器,用于长文本生成的单向解码器,以及用于序列到序列生成的双向编码器和单向解码器,和其相应的注意力机制。
图3:自然语言处理的下游任务
UniLM 的网络结构是目前自然语言处理和预训练模型中广泛应用的多层 Transformer 网络,其核心是通过自注意力掩码(Self-attention masks)来控制文本中每个词的上下文,从而达到一个模型同时支持双向语言模型、单向语言模型和序列到序列语言模型预训练任务,以及使用同样的自注意力掩码。通过微调支持自然语言理解和自然语言生成的下游任务,由于训练前性质统一,所以变压器网络可以共享参数资源,使得学习的文本表示更通用,并且减轻了对所有单个任务的过度拟合。
图4:UniLM 的网络结构
UniLM 在一系列自然语言理解和生成任务中均取得了领先的实验结果,相关论文已发表于 NeurIPS 2019[1]。同时,2019年10月,统一预训练语言模型与机器阅读理解技术还荣获了第六届世界互联网大会“世界互联网领先科技成果”奖。为了与学术界和产业界的伙伴们一起,进一步推动自然语言理解和生成的发展与创新,微软亚洲研究院已将统一预训练语言模型 UniLM(v1)在 GitHub 上开源[1] ,供大家参考、使用。近期微软亚洲研究院还将发布 UniLM(v2),敬请期待。
图5:微软最新 NLP 研究获选第六届世界互联网大会“世界互联网领先科技成果”
NLP 新范式趋势二:跨语言预训练模型
预训练模型除了能够缓解跨任务中出现的低资源问题,还能够缓解跨语言中出现的低资源问题。具体来说,由于科研项目需求以及数据标注代价昂贵等原因,很多自然语言任务往往只在少数语言(例如英文)上存在足够的标注数据,而在其他语言上并没有或仅有少量的标注数据。如何能够利用特定任务在某种语言的标注数据上训练模型,并将学到的知识迁移到其他语言上去,也是一个亟待解决的课题。
跨语言预训练模型是缓解上述问题的有效手段。给定多种语言的单语语料和不同语言对之间的双语语料,跨语言预训练模型能够学习到不同语言之间的对应关系,并保证不同语言的向量表示都存在于同一个语义空间中。在此基础上,该类模型使用某种语言上充足的标注数据进行下游任务微调。由此产生的任务模型能够直接作用于其他语言的输入。如果该任务在其他语言上同样存在少量的标注数据,则可以通过继续微调获得更好的效果。
图6:跨语言预训练模型示意图
微软亚洲研究院提出的跨语言预训练模型 Unicoder[2],通过在预训练过程中引入五种不同的跨语言任务,能够学习得到很好的跨语言理解能力。
第一个预训练任务在共享模型参数和多语言词汇表的基础上,在不同语言输入序列上进行 Masked Language Model 任务。该任务能够保证将不同语言的向量表示映射到同一个语义空间。
第二个预训练任务将双语句对拼接成一个新的输入序列,并在该序列上进行 Masked Language Model 任务。通过显式引入双语对齐信息作为监督信号,Unicoder 能够更好地学习不同语言之间的对应关系,从而获得更好的跨语言理解能力。
第三个预训练任务的输入同样是一个双语句对。该任务首先对该句中每个源语言-目标语言单词对计算一个 attention score。然后,将每个源语言单词表示为全部目标语言单词向量表示的加权求和。最后,基于新生成的源语言表示序列,恢复原始的源语言序列。
第四个预训练任务的输入是两个不同语言的句子,训练目标是判定这两个句子是否互译。Unicoder 可以通过该任务学习得到不同语言在句子层面的对应关系。
第五个预训练任务的输入是一篇由多种语言句子构成的段落,并在此基础上进行 Masked Language Model 任务。
基于这五个跨语言预训练任务,Unicoder 能够学习到同一语义在不同语言中的对应关系,模糊不同语言之间的差异和边界,并由此获得进行跨语言下游任务模型训练的能力。Unicoder 的能力已在跨语言自然语言推理(Cross-lingual Natural Language Inference,简称 XNLI)任务的实验中得到验证。
自然语言推理任务(NLI)是判断两个输入句子之间的关系。输出共有三类,分别是“蕴含”、“矛盾”和“无关”。XNLI 进一步把自然语言推理任务扩展到多语言上。在 XNLI 中,只有英语有训练集,其他语言只有验证集和测试集。该任务主要考察模型能否将英语训练集上学习到的知识迁移到其他语言上去。通过引入更多跨语言预训练任务后,Unicoder 比 Multilingual BERT 和 XLM 有显著的性能提升,实验结果如下图:
图7:Unicoder 在 XNLI 数据集上的实验结果
预训练+微调已经成为深度学习时代人工智能研究的新范式。该类方法不仅使得多种 NLP 任务达到新高度,而且极大降低了 NLP 模型在实际场景中落地的门槛。从 UniLM 到 Unicoder,再到最近扩模态预训练模型 Unicoder-VL[3] 和 VL-BERT[4],微软亚洲研究院在该领域持续产出高质量的工作。这些工作将持续落地到微软的人工智能产品中。
微软亚洲研究院也将在预训练领域中探索更多的模型和方法,例如,基于自然语言和结构化语言的预训练模型、基于自然语言和视频的预训练模型、基于自然语言和语音的预训练模型等,以及如何加速、压缩和解释预训练模型。随着预训练模型研究的不断推进和发展,自然语言处理研究和涉及到自然语言处理的跨学科研究(即多模态学习)都将迈上一个全新的台阶。
语音智能落地开花:机器自然听、说的能力已逼近人类
语音信号处理是 NLP 应用的重要分支,其关键步骤有两个:一是识别,让机器会听,一是合成,教机器能说。过去十年,得益于人工智能与机器学习的突破、算法与硬/软件能力的进步,以及拥有既多样又大量的语音数据库,用以训练多参数的、大规模的语音识别与合成模型,使得语音处理技术获得飞跃性进展。
大型的深度神经网络模型大幅度改善了不特定说话人、带有口音、造句不规范、夹带噪声的语音识别。同时,利用类似方法训练的模型,合成语音也开始逼近真人的说话,在自然度、可懂度与目标说话人的相似度上,都达到了非常高的水平。
2019年,微软亚洲研究院在语音领域有三项创新性的突破成果:一为快速语音合成 FastSpeech,二为有效抑制噪声的语音增强技术 PHASEN,三为基于语义掩码的语音识别技术 SemanticMask。FastSpeech 对于微软在多路语音合成的产品服务,不论是微软 Azure 云计算还是 Surface 个人电脑等终端设备上的应用都极为重要;PHASEN 在高噪声的应用场景中,无论是增强语音、抑制噪声、提高语音识别正确率,还是保证微软企业视频服务 Microsoft Stream 的更好进行,都可谓是恰到好处的“及时雨”。而 SemanticMask 能够让端到端语音识别模型学习更好的语义和语言模型,从而降低端到端语音识别模型的错误率,进一步改进微软的语音识别服务质量。
FastSpeech:合成速度提升38倍,语调、语速、韵律更可控
端到端的神经网络改变了视频、音频以及其他诸多领域的信号处理方式,在文字转换语音合成上,也大幅度改善了合成语音的品质与自然度。端到端的神经网络的语音合成系统可以分成两个模块:一是文字输入在 Tacotron2 的声码器中产生高精度的梅尔语谱 (mel-spectrogram); 二是梅尔语谱再经 WaveNet 合成模型,合成高自然度、高品质的语音波形。
虽然用以上方法,品质可以得到提升,但有三个严重的缺点:速度太慢;系统不够稳定与鲁棒(以至于有些字词未被合成或是错误性地被重复合成);以及不容易自由和有效地直接控制合成语音的语调、语速以及韵律。
微软亚洲研究院的 FastSpeech[5] 消除了这三个痛点,它利用 Transformer 与前向(feedforward)算法,以并行的方式快速产生梅尔语谱图,同时可在编码器与解码器的教师模型(teacher model)预测音素的时长,合成时还有效地解决了对齐工作。在公共语音数据库上的实验表明,FastSpeech 将梅尔谱的产生速度加速了270 倍,最终的端到端合成速度加速了38 倍,对音素时长的预测与约束也几乎完全解决了原有的漏词或错误重复字词的问题。
FastSpeech 的系统图见图8,包括(a)前向 Transformer、(b) FFT、(c) 时长约束器、(d)时长预测器 。
图8:FastSpeech 网络架构
FastSpeech 在合成语音品质、合成语音速度(时延)与句子长短的相关性、漏词与错误性重复字词的比例,以及时长和时速的控制等方面的测试结果均证明了其有效性。
PHASEN:增强语音、抑制噪声
为了充分利用语音的谐波与相位的特性,微软亚洲研究院提出了 PHASEN 神经网络模型[6],有效地分离了背景噪声,从而增强语音。此模型有两个亮点:其一是相位与幅度在频域语音信号中,有彼此相依的关系,研究员们提出了双流模型结构,能够分别处理幅度与相位的信息,同时又设计了交叉通道,让语音数据库学习中相位与幅度相互矫正制约。其二是在全局频域中,在声带振动的语音中,谐波的相关性可以通过数层频域转换模块的双流结构神经网络习得。
如图9的 PHASEN 系统图所示,在频域中,幅度为正值实数,相位则为复数,在操作过程中,网路处理幅度处理为卷积操作,频域变换模块(FTB)以及双向之 LSTM(Long-Short Time Memory),而相位则为卷积网络。整个网络有三个双流块(Two Stream Block),每一个 TSB 结构相同,在其尾部有幅度与相位的交互操作。FTB 的采用是为了利用全局频域的相关性,尤其是谐波之间的相互信息来改善神经网络参数学习精度。
图9:PHASEN 系统图
PHASEN 在 AVSpeech + Audioset 数据集上,得到了客观的 1.7 dB 的 SDR(Speech-to-Distortion Ratio) 提升,超越了其他模型在同一数据集的表现。在 Voice Bank + DEMAND 数据集中,四个重要指标均大幅超过之前的方法。
SemanticMask: 学习语义、增强数据、提高端到端语音识别性能
随着端到端神经网络在机器翻译、语音生成等方面的进展,端到端的语音识别也达到了和传统方法可比的性能。不同于传统方法将语音识别任务分解为多个子任务(词汇模型,声学模型和语言模型),端到端的语音识别模型基于梅尔语谱作为输入,能够直接产生对应的自然语言文本,大大简化了模型的训练过程,从而越来越受到学术界和产业界的关注。
端到端语音识别的流行模型之一是基于注意力机制的序列到序列转换模型。然而由于该模型过于依赖注意力机制,从而过度关注声学特征而弱化了语言模型的信息,并有可能带来过拟合的问题。为了解决该问题,模型在推断时,往往需要额外的语言模型来进行联合解码,造成了额外的计算代价。受谱增强(SpecAugment)和预训练模型(BERT)的启发,微软亚洲研究院提出了一种新的数据增强技术:SemanticMask(基于语义的掩码技术)[7]。
如图10所示,研究员们首先基于训练数据训练一个 force-alignment 模型,并得到训练数据中每个词在梅尔谱序列中的边界。基于词的边界信息,在训练语音识别模型时,再随机的将某个词对应的梅尔谱整体进行掩码。由于该词对应的声学信息已经从输入中移除,模型在训练的过程中只能基于周围的信息来对该词进行预测,从而增强了语言模型的建模能力。不同于传统的谱增强方法,SemanticMask 并不是随机的对输入序列的某个片段进行掩码,而是按照词的边界将某个词的信息移除。通过此技术可以缓解端到端语音识别过拟合的问题,并让该模型具有更好的语言模型建模能力。
图10:SemanticMask 示例
SemanticMask 是一种普适的语音识别数据增强技术,研究员们将其与此前微软亚洲研究院所提出的基于 Transformer(70M参数)的端到端语音识别模型进行了结合,如图11所示,并在 Librispeech 960小时和 TedLium2 的数据集上进行了实验。实验表明,该技术可以显著提高基于 Transformer 的语音识别模型的表现。在公开数据集上也取得了业内最好的端到端语音识别的效果。
图11:基于 Transformer 的端到端语音识别模型
语音处理的未来:自然、可懂,更接近人类
多年的努力与研发成果加快了语音产品的落地服务。不过,在语音识别与合成中,虽然已经打通了许多技术瓶颈,但大语料、大模型机器学习的训练速度、识别系统的稳定性与识别速度、嘈杂的噪声环境、不合标准的发音、不合文法的语句识别,将是语音识别长期关注的重点。在合成方面,如何使合成的输出快速实时产生,同时又能保持高品质的自然度、可懂度、与目标说话人的相似度,也是微软亚洲研究院的研究重点。
与此同时,在全球化与国际化的趋势下,微软亚洲研究院也充分利用语音研究的成果,开启辅助智能与个性化的外语学习,如微软小英;并有效利用大语种、多说话人的数据库与神经网络巨大模型,以不同语言的语音与说话人生理构造的共性,弥补小语种识别与合成的模型训练与数据库的不足。
此外,语音识别、合成与机器翻译的密切结合,也将成为语音处理技术驱动的原动力。微软亚洲研究院在语音翻译领域目前已经做出了一些初步的研究成果,比如提出的 TCEN 模型[8]就能够显著的提高端到端语音翻译的质量。而真正做到无缝的、跨语言、跨说话人的识别、翻译、合成的端到端的对话系统,将成为驱动语音与翻译技术的新课题。