摘要
当前序列到序列(seq2seq)模型的挑战之一是处理长序列,例如文档摘要和文档级机器翻译任务中的序列。这些任务需要模型在字符级别以及句子和段落级别进行推理。我们设计和研究了一种新的基于分层注意力Transformer的体系结构(HAT),该结构在几个序列到序列任务上的性能均优于标准Transformers。尤其是,我们的模型在包括ArXiv,CNN/DM,SAMSum和AMI的四个摘要任务上均获得了最新的结果,并且我们进一步推动了PubMed R1和R2 SOTA。在WMT19 EN-DE文档翻译任务上,我们的模型比28 BLEU的文档级机器翻译基线要好得多。我们还通过可视化分层编码器-解码器的注意力来研究分层学习的内容。最后,我们研究仅使用编码器预训练的分层学习,并分析其在下游分类任务上的性能。
1.介绍
序列到序列(seq2seq)模型已成功用于各种自然语言处理(NLP)任务,包括文本摘要,机器翻译和问答。序列到序列模型通常由处理某些源序列的编码器和生成目标序列的解码器组成。最初,Sutskever et al. (2014) 使用循环神经网络作为机器翻译的编码器和解码器。Bahdanau et al. (2016) 引入了注意力机制,其中解码器计算编码器隐藏状态的分布,并使用它在每个解码步骤以不同的方式加权输入字符的隐藏状态。Vaswani et al. (2017) 然后引入了一种用于序列到序列建模的新体系结构—Transformer,该结构基于注意力机制,但是并行计算,可以进行更有效的训练。
上述结构在带来成功的同时,循环神经网络和基于Transformer的模型都对输入序列长度有所限制。当输入很长时,对于需要全面了解整个段落或文档的任务,学习性能将会降低。seq2seq模型学习的主要挑战之一是,解码器需要使用编码器的字符级别表示,以预测下一个字符,因此,它必须从较大的上下文中学习。
尝试解决长序列问题的一种常用方法是分层注意力。该方法主要在长序列分类任务上进行了研究。在该模型中,模型学习了一个文档表示形式,该文档表示形式用作分类器的输入。从那以后,许多成功的论文提出了使用分层注意力的方法(有关完整的详细信息,请参见第2节)。 尽管分层结构注意力已经成功地应用于分类任务,但是将其应用于大型文档序列以进行序列生成任务的潜力仍然是一个有趣且悬而未决的问题。
在本文中,我们提出了一种基于标准Transformer的分层注意力模型,该模型生成句子级别的表示形式,并将其与字符级别的表示形式结合起来,以提高长文档序列到序列任务的性能。我们的主要贡献包括:
- 我们设计了一个名为HAT(Hierachical Attention Transformer)的分层seq2seq注意力网络体系结构(请参见图1)。我们在Sectios 4和5中针对我们提出的模型对各种生成任务进行了广泛的实验,并在多个数据集上获得了最新的最新结果。
- 在第6节和第7节中,我们研究了体系结构生成的输出,以进一步了解分层注意力的好处,并将其与普通seq2seq Transformer模型生成的结果进行比较。此外,我们通过可视化分层编码器-解码器的注意力来分析解码器如何利用编码器的句子级别表示。
- 最后,我们将分层注意力应用于仅有编码器的体系结构,并在Book and Wiki语料库上对其进行预训练,类似于RoBERTa中使用的方法。我们在几个下游任务上微调了预训练模型,并在第7节中分析了性能。
2.背景
(1)Transformer models
当前,基于注意力的Transformer体系结构在许多NLP任务中都具有最好的性能。这主要是由于在对实际的下游任务进行微调之前,对语言模型进行了预训练的成功。预训练已以不同的方式应用于Transformer体系结构的不同变体,包括仅编码器预训练(BERT,RoBERTa,XLNet),仅解码器预训练(GPT),编码器-解码器预训练(T5,BART)和多语言预训练(MBART,RobertaXLM)。通过用来自预训练模型的参数进行初始化,分类和生成下游任务的性能均得到显着改善。要使用预训练模型,下游任务模型架构必须与预训练中使用的相同或相似。Transformer已成为NLP中最受欢迎的体系结构。但是,Transformer的一个缺点是,当输入序列较长时,注意力机制的性能可能会变差。
(2)Long document modeling
大型文档的理解和建模是一项长期的挑战,在实践中,这一挑战已变得越来越迫切。目前已经提出了许多方法来提高生成式摘要任务的性能,这些任务通常具有较长的源序列。最近的工作包括基于图的注意力神经网络,基于结构注意力模型和使用策略学习的解码器分解。 此外,Xu et al. (2020a) 提出了一种具有结构图的结构感知神经摘要模型,以捕获语篇单元之间的长期依赖性。Zhu et al. (2020) 在会议的轮次和角色上设计了一个层次结构,以提高会议摘要的性能。
(3)Hierarchical learning
分层学习已被许多研究人员提出,并已通过实验证明其在自然语言处理之外的许多不同任务中均有效,包括策略学习,视觉关系检测,部分感知人脸检测,视觉感知食物推荐,城市异常预测,网上银行欺诈检测和话语解析。在自然语言处理领域内,Yang et al. (2016) 提出了一个具有单词和句子级别的注意力机制的分层结构,用于文档分类。Xing et al. (2018) 设计了一个层次化的循环注意力网络来对上下文,单词重要性和话语重要性的层次结构进行建模。Gao et al. (2018) 表明,从癌症病理学报告中提取信息时,分层注意力网络的性能明显优于传统模型。Xu et al. (2020b) 提出了一种用于深度强化学习中基于文本的游戏的堆叠式注意力机制。Song et al. (2017) 设计了一个层次化的上下文注意力循环神经网络,以捕获地图查询会话之间的全局远程上下文依赖关系。Zhao et al. (2018) 通过构建基于有监督的层次化的注意力循环神经网络来检测句子中的事件。Han et al. (2018) 提出了一种用于远程监督关系抽取的分层注意力方案。(Miculicich et al., 2018) 将分层学习应用于翻译数据以进行文档级机器翻译。
在这项工作中,我们将分层学习应用于Transformer模型,以提高带有长文档(包括摘要和文档级机器翻译)的生成任务的性能。
3.模型
我们通过添加层次结构注意力以改进长文档的处理(图1),修改了标准序列到序列transformer体系结构。
我们使用12个编码器和解码器层,完全连接的前馈网络的尺寸为1024、4096的隐藏大小,在编码器和解码器中均使用16个注意力。与原始的Transformer不同,我们使用GELU激活而不是ReLU。
3.1 数据预处理
在预处理期间,我们将BOS字符插入每个源文档中每个句子的开头,如图1所示。我们只需通过标点符号或使用文档中存在的句子分段来简单地确定句子边界。在预训练过程中,通过将BOS字符用作分层模型的输入字符,分层注意力能受益于BOS字符的表示形式。
3.2 编码器
我们使用与Transformer中相同的编码器。该编码器将为每个输入字符生成一个嵌入。在这之后,我们添加一个额外的编码器层(图1中的粉红色块),该层仅涉及我们在数据预处理期间插入的BOS字符的嵌入。我们将此层称为分层编码器层,它为每个BOS字符生成另一级上下文表示,可以将其解释为句子级表示。我们发现,尽管可以使用多个层次层,但是单个层次层效果最好。
3.3 解码器
与Vaswani et al. (2017) 中相同,每个层首先对先前生成的字符执行自注意力,然后使用字符级的编码器层的输出,类似于普通的Transformer。另外,我们额外添加了一个注意力模块,该模块负责处理来自分层编码器层的BOS字符嵌入。