当前位置: 首页 > article >正文

利用预训练检查点进行序列生成任务

摘要

大型神经模型的无监督预训练最近彻底改变了自然语言处理。通过从公开发布的检查点进行热启动,自然语言处理从业者在多个基准测试中推动了最先进的技术,同时节省了大量的计算时间。到目前为止,重点主要集中在自然语言理解任务上。在本文中,我们展示了预训练检查点在序列生成中的有效性。我们开发了一个基于Transformer的序列到序列模型,该模型与公开可用的预训练BERT、GPT-2和RoBERTa检查点兼容,并进行了广泛的实证研究,探讨了使用这些检查点初始化我们的模型(包括编码器和解码器)的效用。我们的模型在机器翻译、文本摘要、句子分割和句子融合方面取得了新的最先进成果。

1. 引言

无监督和自监督预训练方法,如ELMo(Peters等,2018)、ULMFiT(Howard和Ruder,2018),以及最近的BERT(Devlin等,2019)、GPT和GPT-2(Radford等,2018,2019)、XLNet(Yang等,2019)和RoBERTa(Liu等,2019),已经为许多广泛使用的自然语言理解(NLU)基准测试建立了质的新基线性能水平,包括一些最受欢迎的基准测试,如GLUE(Williams等,2018)和SQuAD(Rajpurkar等,2018)。

这种大规模转向使用在大量文本集合上预训练的大型架构的最吸引人的部分是,预训练的检查点以及推理代码是免费提供的。这节省了数百个TPU/GPU小时,因为从预训练检查点热启动模型通常需要数量级更少的微调步骤,同时提供显著的性能提升。更重要的是,从BERT(Devlin等,2019)等最先进模型引导的能力激励了社区大大加快开发更好且易于重用的NLU系统的进展。

虽然我们继续观察到越来越多的论文基于BERT和/或GPT模型报告了在Glue、SQuAD和其他类似基准测试上的令人鼓舞的改进,但很少有人关注使用这些预训练模型来热启动序列到序列(seq2seq)模型。有人认为,BERT使用的预训练目标不太适合需要解码文本的任务,例如机器翻译和摘要中的条件文本生成(Yang等,2019)。然而,尚不清楚在多大程度上使用这些在大量文本集合上预训练的大型模型可以有益于热启动序列到序列生成模型。

在本文中,我们开发了一个基于Transformer的序列到序列模型,该模型与公开可用的预训练BERT、GPT-2和RoBERTa检查点兼容。我们旨在为以下研究问题提供实证答案:利用公开可用的预训练检查点热启动序列生成模型的最佳方式是什么?例如,可以想象使用BERT检查点初始化编码器以更好地理解输入,并选择GPT-2模型作为解码器以更好地生成文本。本文的主要贡献之一是,我们严格实验了大量不同的设置,以结合BERT、GPT和RoBERTa预训练检查点来初始化我们的基于Transformer的模型。我们报告了三个经典的条件文本生成任务的结果,这些任务的复杂性逐渐增加:句子级融合(DiscoFuse,Geva等,2019)和分割(WikiSplit,Botha等,2018)),WMT14英↔德机器翻译使用最常见的评估集:newstest2014和newstest2016,以及使用三个数据集的抽象摘要:Gigaword(Napoles等,2012)、CNN和DailyMail(Hermann等,2015)以及BBC extreme(Narayan等,2018a)。

我们的模型报告了相对于随机初始化模型的显著改进,展示了利用无监督预训练模型的好处。更重要的是,这种简单策略在机器翻译、文本摘要、句子分割和句子融合方面取得了新的最先进成果。我们的结果还表明,预训练的编码器是序列生成任务的重要组成部分,并且这些任务通常受益于编码器和解码器之间的权重共享。总的来说,我们已经运行了300多个实验,花费了数千个TPU v3小时,以更好地适应这些预训练模型的文本生成的语言建模和理解能力。我们相信,自然语言处理研究人员和从业者在处理各种seq2seq任务时,将从我们的发现中获得可操作的见解。

查询我们的模型和各种基准测试预测的代码将可在https://github.com/google-research/google-research/tree/master/bertseq2seq 获取。

2. 模型和预训练检查点

BERT主要是为NLU任务的文本表示编码而开发的(仅编码器架构),而GPT-2(Radford等,2019)作为语言模型的仅解码器架构。我们的模型使用seq2seq架构,编码器和解码器均由Transformer层组成(Vaswani等,2017)。对于编码器,我们继承了BERT Transformer层的实现(Devlin等,2019),这与标准Transformer层(Vaswani等,2017)略有不同;BERT使用GELU激活(Hendrycks和Gimpel,2016)而不是标准的RELU。如果没有特别说明,解码器层的实现也与BERT实现相同,但有两个调整。首先,自注意力机制被屏蔽为仅查看左上下文。其次,我们添加了编码器-解码器注意力机制。

请注意,如果模型是随机初始化的,我们发现BERT兼容的解码器和GPT-2兼容的解码器之间没有区别。大多数模型使用基本检查点,因此有12层,隐藏大小为768,过滤器大小为3072,以及12个注意力头。我们选择了性能最好的模型,并收集了使用更大的预训练检查点的数据。这些模型有24层,隐藏大小为1024,过滤器大小为4096,以及16个注意力头。

所有模型都使用Adam在目标任务上进行了微调,学习率为0.05。我们使用了40k步的线性学习率预热,通过隐藏大小的平方根进行归一化,以及平方根衰减。我们没有对这些超参数进行任何调整(除了§5)。批量大小和训练步骤数将针对每个任务单独报告。

BERT检查点 我们使用WordPiece(Wu等,2016)对文本进行标记化,以匹配BERT预训练词汇表。根据实验,我们使用以下公开可用的检查点之一:BERT-Base Cased、BERT-Base Uncased、BERT-Base Multilingual Cased(Devlin等,2019)。前两个检查点的词汇表大小约为30k个wordpieces,而多语言检查点的词汇表大小要大得多,约为110k。BERT还为最多512个位置训练了位置嵌入,这是所有实验中的最大输入和输出长度。

GPT-2检查点 我们使用SentencePieces(Kudo和Richardson,2018)对文本进行标记化,以匹配GPT-2预训练词汇表。请注意,虽然可用的检查点经常被称为117M,这表明参数数量相同,但我们在检查点中计算了125M个参数。这是他们训练的最小架构,层数、隐藏大小和过滤器大小与BERT-Base相当。该模型主要在英语数据上训练,但也包含一些外语。词汇表大小约为50k。虽然GPT-2有最多1024个位置的位置嵌入,但我们只使用前512个位置以使结果与BERT具有可比性。
在这里插入图片描述

RoBERTa检查点。RoBERTa(Liu等,2019)是使用PyTorch训练的,但我们发现学习到的参数与现有的TensorFlow BERT架构完全兼容,只需进行一些小的调整。RoBERTa中的词汇表处理与GPT-2中的SentencePiece标记化兼容。由于BERT和RoBERTa之间的概念差异很小,我们可能使用BERT作为超名词来指代本文中的两种预训练方法。

3 研究的模型变体

在本节中,我们描述了几种模型初始化的组合。表1中显示了可训练参数的总数、嵌入参数的数量以及从检查点初始化与随机初始化的参数数量。

RND2RND 一个所有权重随机初始化的Transformer编码器-解码器架构。

BERT2RND 一个BERT初始化的编码器与一个随机初始化的解码器配对。编码器和解码器共享从检查点初始化的嵌入矩阵。

RND2BERT 一个随机初始化的编码器与一个BERT初始化的解码器配对。为了执行自回归解码,我们将BERT的双向自注意力机制屏蔽为仅查看左上下文。

BERT2BERT 一个BERT初始化的编码器与一个BERT初始化的解码器配对。所有权重都从公开的BERT检查点初始化。唯一随机初始化的变量是编码器-解码器注意力。

BERTSHARE 类似于BERT2BERT,但编码器和解码器之间的参数是共享的。这大大减少了模型的内存占用(136M vs. 221M参数)。此外,我们实验了分层注意力机制(He等,2018),但在大多数任务上得到了几乎相同的结果。

ROBERTASHARE 与BERTSHARE相同,但共享的编码器和解码器使用公开的RoBERTa检查点初始化。

GPT 一个仅解码器的架构。我们将输入视为语言模型的调节前缀。解码器使用公开的GPT-2检查点热启动。与BERTSHARE和ROBERTASHARE类似,与编码器-解码器设置相比,该模型的内存占用更小(125M参数)。

RND2GPT 一个随机初始化的编码器与一个GPT-2兼容的解码器配对。我们使用公开的GPT-2检查点热启动解码器和嵌入矩阵。

BERT2GPT 一个BERT兼容的编码器与一个GPT-2兼容的解码器配对。我们使用两个独立的BERT和GPT-2公开检查点热启动双方。我们使用BERT词汇表作为输入,GPT-2词汇表作为输出。

ROBERTA2GPT 与BERT2GPT相同,但我们使用公开的RoBERTa检查点热启动编码器。RoBERTa使用GPT-2词汇表训练,因此我们可以将其用于输入和输出。请注意,虽然词汇表是共享的,但该模型仍然有两个嵌入矩阵,一个用于输入,一个用于输出。

BERT模型的预训练目标学习使用输入文本的双向表示来预测被屏蔽的标记(Devlin等,2019;Liu等,2019)。我们的解码器,即使使用BERT或RoBERTa检查点初始化,也始终以自回归方式生成输出文本,如Tranformers(Vaswani等,2017)和GPT-2(Radford等,2019)中所示。

我们主要在BERT、GPT-2和RoBERTa的12层检查点上进行了大部分实验,假设这些发现也适用于24层检查点。我们选择了BERTSHARE和ROBERTASHARE来报告使用24层公开预训练检查点的数据。

在这里插入图片描述

我们还实验了具有24层和345M参数的GPT设置,但由于没有取得更好的结果,因此将其排除在本文之外。

4 实验与结果

4.1 句子融合

句子融合是将多个句子合并为一个连贯句子的任务。我们使用DiscoFuse数据集(Geva等,2019)中的“平衡维基百科”部分进行实验,训练集中有450万条融合示例。评估集有5万条示例。由于评估集的规模较大,即使是微小的变化也具有统计显著性。因此,我们仅选择该数据集进行本文末尾描述的额外实验。

训练进行了30万步,全局批量大小为256。输入和输出填充到128的长度,覆盖了100%的训练、评估和测试数据。我们报告了SARI(Xu等,2016)和完全匹配准确率。结果见表2。
在这里插入图片描述

Geva等(2019)之前的最先进结果使用了Vaswani等(2017)的普通Transformer模型,只有7层。所有使用初始化编码器的模型都大幅优于基线,SARI得分为89.3,而基线为86.9(BERT2RND vs. RND2RND)。为了衡量在较小训练集上的效果,我们随机将训练数据子采样到10%和1%,即分别为45万和4.5万条训练示例。首先,我们注意到,即使在仅使用10%的训练数据时,也能达到与基线相当的性能(RND2RND vs. ROBERTASHARE)。其次,当仅使用1%的训练数据时,随机初始化参数较少的设置(BERT2BERT vs. BERT2RND)表现更好。表现最好的12层设置是ROBERTA2GPT,SARI得分为89.9,仅被24层设置的ROBERTASHARE超越,SARI得分为90.3。

4.2 分割与重述

句子融合的反向任务是分割与重述任务,该任务要求将长句重写为两个或更多连贯的短句(Narayan等,2017)。我们使用WikiSplit数据集(Botha等,2018),该数据集包含从维基百科编辑历史中提取的100万条句子分割示例,并遵循作者建议的训练/测试分割。训练进行了30万步,全局批量大小为256。输入和输出填充到128的长度,覆盖了100%的训练、评估和测试数据。与Botha等(2018)一样,我们报告了语料库级别的BLEU、完全匹配准确率和SARI得分。Botha等(2018)之前的最先进结果使用了带有复制机制的双向LSTM(Aharoni和Goldberg,2018)。与DiscoFuse任务类似,我们观察到初始化编码器对模型的提升最大(表3)。共享编码器-解码器设置的BERTSHARE优于所有其他设置。对于24层的较大模型,我们在10万步(约25个epoch)后观察到轻微的过拟合,因此提前停止了训练。BERTSHARE和ROBERTASHARE表现相当,并且都优于它们的12层对应模型。

4.3 机器翻译

我们在机器翻译中最常见的基准测试——WMT 2014 英语 ↔ \leftrightarrow 德语任务——上测试了我们的设置,使用了newstest2014和newstest2016评估集。我们使用与之前实验相同的超参数设置。我们将输入和输出长度限制为每个128个标记。我们使用了全局批量大小为256,并训练了30个epoch。解码时使用束搜索大小为4,句子长度惩罚的默认值设置为 α = 0.6 \alpha=0.6 α=0.6。我们报告了不区分大小写的BLEU-4分数。

在表4中,我们首先报告了原始Transformer模型(Vaswani等,2017)和我们的Transformer实现的基线分数,使用相同的超参数。在这两种情况下,我们使用6层的编码器和解码器,以及从WMT14训练集中提取的32k wordpiece词汇表。我们的实现获得了比原始实现略高的分数。

表4的中间部分报告了使用BERT和GPT-2预训练检查点的各种初始化方案的结果。请注意,这里所有模型的编码器和解码器都有12层。对于BERT模型,我们使用BERT-Base Multilingual Cased检查点来初始化编码器或解码器或两者,因为该任务涉及一种非英语语言。该检查点已在108种语言上进行了预训练,使用了多语言维基百科转储,词汇量为110k wordpieces。首先,我们观察到使用BERT检查点初始化模型在编码器侧最为有益;我们的观察与Yang等(2019)一致。此外,使用BERT检查点初始化的模型获得了显著提升:与未初始化的RND2RND设置相比,BERT2RND在newstest2014上En → \to De得分高出+4分,De → \to En得分高出+3.6分。与WikiSplit和DiscoFuse任务相反,共享编码器和解码器变量并没有带来额外的提升。这很可能是因为a)模型容量在机器翻译中是一个重要因素,b)编码器和解码器必须处理不同的语法和词汇。

基于GPT的模型(RND2GPT、GPT和BERT2GPT)表现并不理想,尤其是当GPT用作解码器且目标语言为德语时。这是因为GPT模型配备了英语词汇表,并且主要在英语文本上进行预训练。因此,我们在En→De设置下以灰色字体报告GPT的分数。

定制的BERT检查点:在这个实验中,我们没有包含RoBERTa,因为公开的检查点仅适用于英语。相反,我们训练了自己的检查点。我们还观察到,我们实现的基线Transformer以及未使用初始化的RND2RND设置在newstest2014上的表现比表4顶部报告的Transformer基线(使用6层和32k wordpiece词汇表)要弱。我们推测这些差异可能是由于使用了从维基百科转储中训练的110k wordpiece词汇表,该词汇表旨在处理104种语言,但对于WMT14数据来说并不理想,导致结果较差。为了验证这一推测,我们进行了以下实验:我们使用从WMT14英↔德训练集中提取的32k wordpiece词汇表(与表4顶部使用的相同),并以与多语言BERT检查点相同的方式在维基百科转储的英语和德语子集上预训练了一个BERT模型。我们用这个检查点初始化了表现最好的设置,即BERT2RND和BERTSHARE(表4的第三部分)。

在这里插入图片描述

这在newstest2014上进一步带来了+0.5(英↔德)和+0.8(德↔英)的BLEU提升,在newstest2016上分别提升了+1.1和+0.7,从而在具有挑战性的WMT14任务中表现非常强劲。使用更大模型的实验(最后一部分)显示,BLEU分数进一步提升了多达+1.1分。

Edunov等(2018)报告了在通过大量反向翻译句子对增强训练集时获得更好结果的情况。据我们所知,在仅利用WMT14平行数据的方法中,我们的结果在newstest2014和newstest2016上均达到了最先进的水平。

4.4 抽象摘要生成

文档摘要生成的任务是生成文档的简短版本,同时保留其重要信息内容。我们在三个不同特性的摘要生成数据集上评估了我们的设置:Gigaword(Napoles等,2012)、CNN/DailyMail(Hermann等,2015)和BBC extreme(Narayan等,2018a)。Gigaword数据集专注于抽象句子摘要生成,共有380万条句子-摘要训练对。另外两个数据集专注于单文档摘要生成:CNN/DailyMail数据集包含28.7万条文档-摘要对,而BBC数据集包含20.4万条文档-摘要对。CNN/DailyMail的摘要以要点形式呈现,表现出高度的抽取性,要求模型学习从源文档中复制内容。而BBC摘要则是极端的,因为文档被总结为单句摘要。这些摘要表现出高度的抽象性,自动生成它们需要文档级别的推理、抽象和改写能力。

在所有三个数据集中,我们没有对实体进行匿名化处理。我们使用了CNN/DailyMail和BBC数据集的原始大小写版本。对于Gigaword,我们使用了小写版本以匹配公开可用的小写测试集的要求。

在这里插入图片描述

在训练过程中,输入文档被截断为512个标记(CNN/DailyMail和BBC)和128个标记(Gigaword)。同样,摘要的长度被限制为128个标记(CNN/DailyMail)、64个标记(BBC)和32个标记(Gigaword)。我们使用了全局批量大小为128条文档-摘要对(CNN/DailyMail和BBC)和256条文档-摘要对(Gigaword)。根据训练数据的大小,我们调整了训练步数。模型分别在Gigaword、CNN/DailyMail和BBC摘要数据集上训练了50万、30万和20万步。在所有情况下,我们使用了标准的公开测试集;这些测试集分别包含1951条实例(Gigaword)、11490条实例(CNN/DailyMail)和11334条实例(BBC)。我们报告了ROUGE F1分数(Lin和Hovy,2003);特别是,我们在表5中报告了ROUGE-1和ROUGE-2(用于信息量)以及ROUGE-L(用于流畅性)。

文档理解:所有基于BERT编码器的设置(即BERT2RND、BERTSHARE、ROBERTASHARE和BERT2BERT)均大幅优于基线RND2RND。仅初始化解码器的RND2BERT设置的改进较小。这些结果总体上验证了在编码器-解码器框架中,文档表示对摘要生成的重要性。特别是在BBC极端摘要生成任务中,这四个模型相比RND2RND设置在ROUGE-L上平均提升了6.85分。我们的结果表明,具有更好文档表示的模型在生成需要文档级别推理和抽象的极端摘要方面表现更好。对于CNN/DailyMail数据集中的抽取式要点,这些模型相比RND2RND基线在ROUGE-L上提升了3.53分。对于输入为单句的Gigaword数据集,改进较小(ROUGE-L平均提升1.02分)。共享编码器和解码器参数的BERTSHARE设置在三个数据集上均优于BERT2BERT。在BBC数据集上的增益大于Gigaword和CNN/DailyMail数据集。这可能是因为BBC摘要句子的分布与文档中的句子分布相似,而Gigaword标题和CNN/DailyMail要点则不一定如此。ROBERTASHARE在CNN/DailyMail和BBC数据集上表现优于BERTSHARE。在Gigaword数据集上,ROBERTASHARE与BERTSHARE表现相当,该任务是对句子进行摘要生成。

使用GPT检查点的摘要生成:GPT(仅解码器)在生成CNN/DailyMail抽取式摘要方面表现优于RND2GPT、BERT2GPT或ROBERTA2GPT(编码器-解码器模型),但在生成BBC抽象摘要方面表现较差。编码器-解码器架构中,输入文档被单独建模,比仅解码器架构(输入文档作为语言模型的条件前缀)更适合文档级别的抽象。使用不同检查点初始化(例如,BERT2GPT中使用BERT初始化编码器,GPT初始化解码器)对文档摘要生成效果不佳;在BBC数据集上,BERT2GPT和ROBERTA2GPT表现不如RND2GPT;在CNN/DailyMail数据集上,BERT2GPT表现不如RND2GPT。然而,在拥有380万训练实例的Gigaword数据集上,BERT2GPT和ROBERTA2GPT表现优于RND2GPT。

ROBERTASHARE表现最佳,在Gigaword数据集上与当前最先进的MASS模型(Song等,2019)表现相当。MASS模型具有从头开始预训练编码器-解码器注意力的优势,而我们提出的模型使用公开可用的预训练检查点,并仅在目标任务上进行微调。目前尚不清楚MASS模型中用于句子生成的掩码序列到序列预训练目标如何对文档摘要等任务有益。我们提出的模型提供了一种通用的替代方案,可以轻松适应各种文本生成任务。ROBERTASHARE设置创造了新的最先进水平,在BBC极端摘要任务上大幅优于所有现有基线。在CNN/DailyMail数据集上,最佳模型优于Pointer Generator网络(See等,2017)和预训练的单解码器模型TransformerLM(Khandelwal等,2019)。然而,我们的模型在BottomUp系统(Gehrmann等,2018)和UniLM模型(Dong等,2019)之后稍显落后。BottomUp系统具有用于内容选择的任务特定模块以及复制机制(Gu等,2016),而UniLM模型使用BERT-Large预训练,支持双向、单向和序列到序列语言建模目标。UniLM模型还通过额外的抽取式摘要目标进行微调,以预测文档中的相关句子;这一目标可能有助于生成CNN/DailyMail的抽取式摘要。

5 消融研究讨论

结合不同检查点:将BERT和GPT-2结合到单一模型(BERT2GPT)中效果不佳,通常表现不如随机初始化的基线。这可能是由于模型需要学习两种不同的词汇表。这一论点得到了在MT德→英任务中BERT2GPT设置表现良好的支持。对于该任务,词汇表设置有利于这一特定任务,意味着无论如何都需要学习两种词汇表,且输出是英语,而GPT-2正是在英语上训练的。由于RoBERTa和GPT-2共享相同的词汇表,将两者结合到单一模型(ROBERTA2GPT)中在多个任务上表现出色,但并未超过在编码器和解码器中使用RoBERTa的设置。

调整基于GPT-2的模型:我们惊讶地发现,使用GPT-2检查点的设置表现相对较差,尽管它是在大规模语料库上训练的语言模型;我们的直觉是GPT-2初始化的解码器应该是强大的自然语言生成器。为了确保这不是由于超参数选择不当,我们在DiscoFuse数据集上调整了基于GPT-2的设置(RND2GPT、GPT、BERT2GPT)的学习率、预热步数和优化器(∈ {Adam, Adafactor})。自然,这使我们得到了略高的分数,但并未达到表明之前设置次优的程度。具体来说,BERT2GPT的SARI得分为88.8(之前为88.4),GPT为88.1(之前为88.0),RND2GPT为87.7(之前为86.5)。

仅初始化嵌入:我们希望研究非上下文化的BERT和GPT-2嵌入的影响。这意味着我们仅使用嵌入矩阵初始化Transformer模型。这种设置的优势在于我们可以自由选择模型架构和大小,并适应特定任务。我们发现与完全随机初始化的模型RND2RND相比几乎没有改进。具体来说,使用BERT嵌入的SARI得分为87.1,使用GPT-2嵌入的SARI得分为87.0,而RND2RND基线为86.9。当仅使用10%的训练数据进行训练时,我们观察到略微更高的改进,最多可达2个百分点。

仅初始化层参数:与上一段相反,我们希望研究除了词嵌入矩阵之外的所有参数的初始化效果。嵌入矩阵仅占所有可学习参数的10-31%,有时公开检查点提供的词汇表可能对某些任务并非最优。在这些情况下,重新定义词汇表同时仍然利用检查点将是有益的。首先,我们从热启动变量中移除嵌入矩阵,观察到使用BERTSHARE设置的分数下降了1.7分,使用GPT设置的分数下降了11分(表6)。后者的下降可能是由于GPT-2模型的大词汇表现在保持随机初始化。然后,我们使用DiscoFuse训练数据训练了一个新的包含16k标记的BPE模型(Kudo和Richardson,2018;Sennrich等,2016)。我们观察到BERTSHARE几乎没有变化,这表明BERT词汇表已经对DiscoFuse任务是最优的。然而,GPT使用这个更小的词汇表后显示出显著改进,但仍然落后于完全初始化的设置。最后,我们尝试了一种更敏感的模型训练方式,即在10万步内固定所有热启动变量。在这个预训练阶段,我们只训练新的词嵌入。预训练结束后,我们再对整个模型进行30万步的微调。这种训练方案使BERTSHARE设置的分数提高了0.5分,但总体上仍然远远落后于完全初始化的设置。对于GPT,这种训练方案未能产生令人满意的训练曲线。

在这里插入图片描述

初始化部分层参数:受到使用24层模型结果的启发,我们希望研究是否可以使用这些24层中的一部分。为了适应更大的隐藏层大小(1024 vs. 768)和过滤器大小(4096 vs. 3072),我们限制自己仅使用10层和该模型的嵌入矩阵。该模型的参数仍然多于基础模型(BERT2BERT为324M vs. 221M,BERTSHARE为198M vs. 136M),但可以使用相同的批量大小进行训练,并且训练时间相当(每1000次迭代3分钟)。作为初步实验,我们使用大型BERT检查点的前10层来初始化BERTSHARE设置。这使我们在DiscoFuse任务上获得了88.2的SARI分数,而使用基础检查点的分数为89.3,仅使用嵌入的分数为87.0(参见“仅初始化嵌入”部分)。然后,我们在评估集上使用CMA-ES(Hansen,2016)进行超参数搜索,以找到最佳的层子集。最佳设置使用了以下层:9、10、13-18、23、24,并实现了89.1的SARI分数。虽然这比使用前10层有显著改进,但该设置仍然被基础BERT模型超越。

6 抽象摘要生成的分析

最后,我们对这些模型的文本生成能力进行了定性分析。我们特别关注极端摘要生成任务,该任务评估模型在文档级别推理和抽象方面的能力。我们评估了随机初始化模型(RND2RND)以及使用GPT检查点(RND2GPT)、BERT检查点(BERTSHARE)和RoBERTa检查点(ROBERTASHARE)初始化的表现最佳模型生成的摘要。我们还将人工标注的黄金摘要(GOLD)纳入了评估范围。结果如表7所示。

在这里插入图片描述

摘要质量的人工评估:该研究在亚马逊Mechanical Turk平台上进行,使用了最佳-最差评分法(Best-Worst Scaling),这是一种比成对比较更省力的替代方法(Louviere和Woodworth,1991;Louviere等,2015)。参与者被展示一篇文档以及从五个系统(四个模型和黄金摘要)中随机选择的两个系统生成的摘要,并被要求根据信息量(摘要是否准确且简洁地捕捉了文档中的重要信息?)和流畅性(摘要是否以规范的英语书写?)决定哪个摘要更好。我们从XSum测试集中随机选择了40篇文档。每对比较收集了三名不同参与者的判断。摘要的顺序在每篇文档中随机排列,文档的顺序在每位参与者中随机排列。系统的得分计算为其被选为最佳的次数百分比减去被选为最差的次数百分比。得分范围从-1(最差)到1(最佳)。图1展示了我们用于人工评估的部分样本预测。

参与者认为ROBERTASHARE生成的摘要在整体质量上表现最佳;BERTSHARE生成的摘要紧随其后。我们进一步对所有模型进行了成对比较,以评估系统差异是否具有统计显著性。
在这里插入图片描述

我们未观察到RND2RND与RND2GPT、RND2RND与BERTSHARE以及ROBERTASHARE与黄金摘要之间的显著差异。其他所有差异均具有统计显著性。

摘要长度与重复:所有模型生成的摘要长度相当;RND2RND生成摘要的平均长度为20.90,RND2GPT为21.49,BERTSHARE为20.71,ROBERTASHARE为21.70。ROBERTASHARE生成的摘要在长度上最接近黄金摘要(21.70 vs 24.61)。

最后,我们估算了至少重复一次稀有词或内容词的摘要百分比。我们从模型生成和参考摘要中剔除了500个最常见的词,其余词被视为稀有词或内容词。BERTSHARE和ROBERTASHARE生成的摘要在重复方面优于RND2RND,但比RND2GPT生成的摘要重复更多。图1中的示例用橙色标记了冗余的重复部分。

总体而言,BERTSHARE和ROBERTASHARE生成的摘要在自动评估(基于ROUGE)和人工评估(基于摘要质量)方面均明显优于RND2GPT生成的摘要;但这些模型仍有改进空间(Dong等,2019;Song等,2019;Lewis等,2019)。

7 相关工作

表示学习:从2013年左右开始,像word2vec(Mikolov等,2013)或GloVe(Pennington等,2014)这样的词嵌入变得流行,因为它们易于在原始文本上以无监督方式进行训练,并且作为特征使用时可以改进多个下游任务。这些词嵌入对词的上下文不敏感。在2018年之前,已经有工作尝试对这些嵌入进行上下文化,主要是为了处理同义词(例如Huang等,2012;Rothe和Schütze,2015),但直到2018年,使用大型深度神经网络和无监督训练方案训练上下文化嵌入才变得流行。虽然ELMo(Peters等,2018)和ULMFiT(Howard和Ruder,2018)基于LSTM(Hochreiter和Schmidhuber,1997),但BERT和GPT基于Transformer架构(Vaswani等,2017)。该架构在多个NLP任务上优于LSTM,因此我们专注于这两种预训练模型。每个输入标记的上下文化嵌入由最后一层编码器的相应输出给出。

预训练模型:这些模型也可以被视为预训练模型(Dai和Le,2015),然后在下游任务上进行微调。这是我们在本文中采用的概念视角。Erhan等(2010)研究了为什么无监督预训练有助于深度学习。虽然无监督预训练策略与本文中使用的不同,但我们预计这些发现仍然成立。他们表明,无监督预训练不仅仅是获得良好的初始边际分布的一种方式,传统的正则化技术无法达到与无监督预训练相同的性能,并且无监督预训练的效果不会随着更多训练数据而消失。Wang等(2019a)对预训练进行了广泛研究。该研究比较了单句分类、句子对分类、序列到序列和语言建模任务的预训练,并测量了对GLUE的影响。主要结果支持使用语言建模。Peters等(2019)探讨了是在特定任务上微调整个模型还是将学习到的表示用作特征(即冻结预训练模型)更可取。他们的结果表明,微调与特征提取的相对性能取决于预训练任务与目标任务之间的相似性。Wang等(2019b)提出了一种结合两者的方法,首先在冻结BERT参数的情况下训练模型,然后对整个模型进行微调。这是我们在“仅初始化层参数”研究中使用的训练方案。

序列生成的预训练:Ramachandran等(2017)首次对序列到序列学习进行了预训练。他们使用语言模型预训练RNN序列到序列模型的编码器和解码器。他们的方法将newstest2014的BLEU分数提高了3分,CNN/Dailymail的ROUGE-L分数也提高了3分。然而,他们在newstest2014英→德任务上的BLEU分数为24.7(本文为30.6),CNN/Dailymail的ROUGE-L分数为29.4(本文为36.33),这也显示了Transformer模型以及BERT的掩码语言模型目标的优越性。MASS(Song等,2019)是一种受BERT启发的序列到序列模型预训练方法。这种方法的一个优势是,与我们的设置(GPT除外)相比,编码器-解码器注意力机制也被预训练。这种方法的缺点是预训练模型是任务特定的,不如BERT或GPT-2那样通用。UniLM(Dong等,2019)还统一了双向、单向和序列到序列语言建模。截至撰写本文时,尚无公开的检查点可用。我们在表5中与他们的结果进行了比较。为了解决编码器-解码器注意力未预训练的问题,Khandelwal等(2019)预训练了一个单一的Transformer语言模型,该模型编码源文本并生成目标文本。这种设置与我们的GPT设置相匹配。Conneau和Lample(2019)使用因果语言建模(如GPT)、掩码语言建模(如BERT)和一种称为翻译语言建模的新目标进行预训练,以改进跨语言预训练。

利用公开检查点:BERT已被用于各种NLP任务,例如SQuAD数据集上的问答(Rajpurkar等,2018)。它还在GLUE基准测试(Williams等,2018)和基于常识的推理(SWAG,Zellers等,2018)上取得了新的最先进成果。所有这些任务都是分类或回归的形式。Liu(2019)对BERT进行了微调以用于抽取式摘要生成。

Tenney等(2019)对BERT模型的不同层进行了分析。他们发现经典的NLP管道以预期的顺序出现。在我们“初始化部分层参数”实验的背景下,这意味着DiscoFuse任务从预训练的POS、成分、依赖和语义角色信息中获益最多。Jawahar等(2019)的一项类似研究发现,BERT在较低层捕获短语级信息,在中间层捕获语言信息,底部是表面特征,中间是句法特征,顶部是语义特征。

GPT也在自然语言推理任务上进行了评估。在GPT-2的扩展版本中,该模型在更一般的自然语言处理任务上进行了评估,例如机器翻译、阅读理解、摘要生成和语言建模。GPT-2在多个语言建模数据集上取得了新的最先进成果。在其他任务上,GPT-2优于一些无监督基线,但仍远落后于有监督或任务特定的方法。

在我们完成大部分实验后,XLNet(Yang等,2019)发布,这是一种基于Transformer XL(Dai等,2019)的自回归预训练方法。XLNet在多个NLP任务上取得了新的最先进成果。我们将其公开检查点的实验留待未来工作。

8 结论

我们对利用预训练检查点进行序列生成进行了广泛研究。我们的研究结果表明,预训练的编码器是一个关键部分。大多数任务还受益于编码器和解码器之间的权重共享,这进一步减少了内存占用。虽然将BERT和GPT-2结合到单一模型中通常表现不如随机初始化的基线,但将RoBERTa和GPT-2结合取得了强劲的结果,并显示了共享词汇表的重要性。训练特定语言的BERT模型也比使用多语言版本提高了性能。


http://www.kler.cn/a/515778.html

相关文章:

  • 土壤墒情中土壤 pH 值的监测方法与意义
  • JavaScript笔记APIs篇01——DOM获取与属性操作
  • DDD实战课 笔记
  • 华为OD机试真题---战场索敌
  • Android OpenGL(六) 纹理
  • excel导入数据处理前端
  • 如何实现网页不用刷新也能更新
  • 微前端qiankun的部署
  • Java中Set集合的面试试题及答案解析
  • idea plugin插件开发——入门级教程(IntelliJ IDEA Plugin)
  • Ansible fetch模块详解:轻松从远程主机抓取文件
  • git如何设置pull的时候有些文件不pull
  • GitCode 助力 AutoTable:共创 MyBatis 生态的自动表格管理新篇章
  • 常见的RocketMQ面试题及其简要答案
  • Ubuntu系统更改IP,保姆级教程
  • 【Redis】在Java中以及Spring环境下操作Redis
  • 快速搭建深度学习环境(Linux:miniconda+pytorch+jupyter notebook)
  • java开发之文件上传
  • 202112 青少年软件编程等级考试C/C++ 二级真题答案及解析(电子学会)
  • uiautomator2教程
  • Flink Gauss CDC:深度剖析存量与增量同步的创新设计
  • 自定义UITableViewCell
  • 小米Vela操作系统开源:AIoT时代的全新引擎
  • 《安富莱嵌入式周报》第349期:VSCode正式支持Matlab调试,DIY录音室级麦克风,开源流体吊坠,物联网在军工领域的应用,Unicode字符压缩解压
  • 网络协议入门:OSI模型与TCP/IP栈
  • 深度学习系列75:sql大模型工具vanna