既能理解又能生成自然语言,微软提出统一预训练新模型UniLM

自然语言是人工智能正在攻克的一大难关,而微软的研究者最近发布了一种统一的预训练语言模型 UniLM,微软表示,该模型在机器阅读理解方面已经超越了人类水平。

在 10 月 20 号的世界互联网大会中,微软之前提出来的「统一预训练语言模型与机器阅读理解技术」荣获「世界互联网领先科技成果」奖,沈向洋博士在会上介绍了这一模型。

在机器之心的 SOTA 项目中,我们同样发现 UniLM 模型在很多自然语言理解、自然语言生成任务中有非常好的效果,并且在机器阅读理解等方面能获得当前最优的水平。为此,本文将介绍 UniLM 这项研究工作,该研究已经被接收为 NeurIPS 2019 论文。

  • 论文地址:https://arxiv.org/abs/1905.03197

  • 实现地址:https://github.com/microsoft/unilm 

这篇论文提出了一种新型的统一的预训练语言模型(UniLM),它既可以针对自然语言理解任务进行微调,也能用于自然语言生成任务。这个模型使用了三种类型的语言建模任务进行预训练:单向模型、双向模型、序列到序列预测模型。其统一建模的实现使用了共享的 Transformer 网络,并且还使用了特定的自注意掩码来控制预测条件所处的上下文。在 GLUE 基准以及 SQuAD 2.0 和 CoQA 问答任务上,UniLM 优于 BERT。

此外,UniLM 在五个自然语言生成数据集上成为了新的当前最佳,包括将 CNN/DailyMail 抽象式摘要 ROUGE-L 结果提升至 40.51(2.04 的绝对改善)、将 Gigaword 抽象式摘要 ROUGE-L 结果提升至 35.75(0.86 的绝对改善)、将 CoQA 生成式问答 F1 分数提升至 82.5(37.1 的绝对改善)、将 SQuAD 问题生成 BLEU-4 结果提升至 22.12(3.75 的绝对改善)、将 DSTC7 基于文档的对话响应生成 NIST-4 结果提升至 2.67(人类表现为 2.65)。

UniLM:统一的预训练语言模型

UniLM 是一种统一的预训练语言模型,既可应用于自然语言理解(NLU)任务,也能用于自然语言生成(NLG)任务。UniLM 是一种多层 Transformer 网络,在大量文本上进行过联合的预训练,并针对表 2 中所示的三种类型的无监督语言建模目标进行过优化。

表 2:UniLM 通过多个语言建模目标进行了联合预训练,并在训练中共享了同样的参数

类似于 BERT,预训练的 UniLM 可以进行微调(如有必要需添加额外的特定于任务的层),以适应不同类型的下游任务。但不同于主要用于 NLU 任务的 BERT,UniLM 可使用不同的自注意掩码进行配置,从而聚合用于不同类型的语言模型的上下文,因此 UniLM 可用于 NLU 和 NLG 任务。

新提出的 UniLM 主要有三大优势。第一,统一的预训练流程让单个 Transformer 语言模型能为不同类型的语言模型使用共享的参数和架构,从而减轻对分开训练和管理多个语言模型的需求。第二,这种参数共享能使得学习到的文本表征更通用,因为它们针对不同的语言建模目标(其中利用上下文的方式各不相同)进行了联合优化,这能缓解在任意单个语言模型任务上的过拟合。第三,除了在 NLU 任务上的应用,作为序列到序列语言模型使用的 UniLM 也使其能自然地用于 NLG 任务,比如抽象式摘要和问答。

技术详解

给定一个输入序列 x,UniLM 会获取每个 token 的基于上下文的向量表征。如图 1 所示,预训练会根据多种无监督语言建模目标优化共享的 Transformer 网络,这些目标为单向语言模型、双向语言模型、序列到序列语言模型。为了控制对所要预测的词 token 的上下文的读取,作者使用了不同的自注意掩码。换句话说,作者使用了掩码来控制在计算基于上下文的表征时 token 应该关注的上下文的量。UniLM 训练完成后,当用于下游任务时,我们可以使用特定于任务的数据来对其进行微调。

图 1:一的语言模型预训练的概况

输入表征

输入 x 是一个词序列,该序列要么是用于单向语言模型的一段文本,要么是用于双向和序列到序列语言模型的打包在一起的一对文本段。作者的做法是:总是在输入的起始处添加一个特殊的序列起点([SOS])token,在每一段的结尾处添加一个特殊的序列结束([EOS])token。[EOS] 不仅能在 NLU 任务中标记句子边界,还能在 NLG 任务中让模型学习中止解码过程的时间。这种输入表征方式与 BERT 的一样。

骨干网络:多层 Transformer 

输入向量 {x_i} 首先会被打包进 ,然后使用一个 L 层的 Transformer 将其编码成在不同抽象层面上的上下文表征。在每个 Transformer 模块中,使用了多个自注意头来聚合前一层的输出向量。对于第 l 个 Transformer 层,自注意头 AI 的输出的计算方式为:

预训练目标 

作者使用了四个为不同语言建模目标设计的完形填空任务来预训练 UniLM。在完形填空任务中,作者会用特殊 token [MASK] 来替代输入中随机选择的某些 WordPiece token。然后,将通过 Transformer 网络计算得到的对应的输出向量输入一个 softmax 分类器,预测被掩盖的 token。UniLM 的参数的学习目标是最小化用预测 token 和原始 token 计算得到的交叉熵损失。需要说明,由于使用的是完形填空任务,所以可以为所有语言模型(无论是单向还是双向)都使用同样的训练流程。

预训练设置 

整体的训练目标是不同类型的语言模型目标的和。具体来说,作者为一个训练批次所设置的时间如下:1/3 的时间使用双向 LM 目标,1/3 的时间使用序列到序列 LM 目标,从左到右和从右到左的语言模型目标的采样比例都是 1/6。为了公平地比较,UniLM 的模型架构遵照了 BERT_LARGE 的架构。

针对下游 NLU 和 NLG 任务进行微调 

对于 NLU 任务,作者将 UniLM 微调为类似于 BERT 的双向 Transformer 编码器。以文本分类为例,作者使用 [SOS] 的编码向量作为输入的编码,表示为,然后将其输入一个随机初始化的 softmax 分类器(即特定于任务的输出层),其中类别概率的计算方式为 ,其中 是参数矩阵,C 是类别数量。 

对于 NLG 任务,以序列到序列任务为例。微调过程类似于使用自注意掩码进行预训练。令 S1 和 S2 分别表示源序列和目标序列。作者将它们与特殊 token 打包在一起,构建出输入「[SOS] S1 [EOS] S2 [EOS]」。该模型的微调是通过随机掩盖目标序列中一定比例的 token,并学习恢复被掩盖的词。其训练目标是基于上下文最大化被掩盖 token 的似然度。

实验 

作者在 NLU(即 GLUE 基准和抽取式问答)和 NLG(即抽象式摘要、问题生成、生成式问答和对话响应生成)任务上执行了实验。

抽象式摘要 

作者重点关注了抽象式摘要,这是一种生成任务,其中的摘要并不限于复用输入文本中的短语或句子。作者使用了 CNN/DailyMail 数据集和 Gigaword 的非匿名化版本来进行模型微调和评估。

 表 3 在 CNN/DailyMail 上比较了 UniLM 与基准和几种当前最佳的模型。

表 3:在 CNN/DailyMail 摘要任务上的评估结果。上半部分的模型是抽取式系统,这里列出以供参考;下半部分的模型是抽象式模型。 

表 4 给出了在不同规模(10K 和 3.8M)的 Gigaword 上的模型评估结果。Transformer 和 OpenNMT 都实现了标准的注意式序列到序列模型。

表 4:在 Gigaword 抽象式摘要任务上的结果

 问答(QA) 

这个任务是回答给定文本篇章的问题。问答任务有两种设置。一种是抽取式问答,其假定答案是该篇章中的一段文本。另一种是生成式问答,其需要即时生成答案。抽取式问答可以构建成一个 NLU 任务,目标是预测篇章中答案范围的起止位置。作者针对该任务将预训练的 UniLM 模型微调成了一个双向编码器。生成式问答可为输入的问题和篇章生成形式自由的答案,这是一种 NLG 任务。 

作者在 Stanford Question Answering Dataset(SQuAD)2.0 以及 Conversational Question Answering(CoQA)数据集上进行了实验。

表 5:在 SQuAD 开发集上的抽取式问答结果

表 6:在 CoQA 开发集上的抽取式问答结果

表 7:在 CoQA 开发集上的生成式问答结果 

问题生成 

作者还在答案感知型问题生成任务上执行了实验。给定一个输入段落和一个答案范围,该任务的目标是生成一个询问该答案的问题。

表 8:在 SQuAD 上的问题生成结果。MTR 表示 METEOR,RG 表示 ROUGE。不同分组的结果使用了不同的数据分割方式。

表 9:基于 UniLM 的问题生成能提升在 SQuAD 开发集上的问答结果

响应生成 

作者还在基于文档的对话响应生成任务上对 UniLM 进行了评估。给定一段多轮对话历史,并将网络文档作为知识源,系统需要生成适合对话并且能反映网络文档内容的自然语言响应。

表 10:响应生成结果。Div-1 和 Div-2 分别表示 unigram 和 bigram 的多样性。

GLUE 基准

作者还在 GLUE 基准上对 UniLM 进行了评估。 

表 11 给出了从 GLUE 基准的评估服务器得到的测试结果。结果表明,UniLM 在 GLUE 任务上的表现与 BERT_LARGE 相当。

表 11:使用 GLUE 评估服务器得到的 GLUE 测试集结果

总结 

实验结果表明,UniLM 在 GLUE 基准以及两个问答数据集上与 BERT 表现相当。此外,UniLM 在五个 NLG 数据集上优于之前最佳模型,即:CNN/DailyMail 和 Gigaword 抽象式摘要、SQuAD 问题生成、CoQA 生成式问答、DSTC7 对话响应生成。

入门GLUE排行榜UniLM预训练模型微软
2
暂无评论
暂无评论~