[NLP&论文]Text Summarization with Pretrained Encoders论文翻译

1、介绍算法

本文主要提供了一个基于bert的篇章级编码器,可以编码一篇文章并获取每一句话的表征。为了提取句子,咱们的提取模型是创建在编码器的顶层,经过叠加一些句间Transformer层来获取篇章级特征。而抽象模型提出了一个编码器-解码器结构,结合相同的预训练bert编码器(使用随机初始化的Transformer解码器)。论文设计了一个新的训练流程,可以分开编码器和解码器的优化步骤来适应编码器和解码器,由于前者是预训练的,然后者必须从头训练。框架

本文的贡献主要有三点:函数

  • 证实了篇章级编码对于摘要任务的重要性。目前有各类各样的技术用来加强摘要性能,包括复制机制(copying mechanisms)、加强学习、多交互编码器(multiple communicating encoders)。咱们使用最小需求的模型、没有使用任何其余的机制就获取了更好地结果。性能

  • 咱们展现了在抽取和抽象的设置下有效利用预训练模型进行摘要的方法;咱们但愿在模型与训练中的任何改进都能更好地进行摘要的特征抽取。学习

  • 提出的模型能够作提升摘要新能的基石,也能够做为测试新方案的baseline测试

2、背景优化

一、抽取摘要编码

抽取摘要系统经过识别(和子链接)一篇文章中最重要的句子进行摘要。神经模型将提取摘要视做句子分类问题:一个神经编码器建立了一个句子表征,一个分类器预测这个句子是否应该被选作摘要。spa

二、抽象摘要设计

抽象式摘要的神经方法将这个任务概念化为seq2seq问题,seq2seq将编码器将一篇文章中的一个句子映射为一系列tokens,如在原始文章中x=[x1,...,xn],转变为一个句子的连续表征z=[z1,...,zn],而解码器会token-by-token的生成目标摘要y=[y1,...,ym],使用自回归(auto-regressive)方法,所以模型化条件几率:p(y1,...,ym|x1,...,xn)

三、模型结构

以下图所示,左图为原始bert图,右侧为应用于摘要的bert结构图,命名为bertSum,能够看出,右图主要有两个变化:

①每一句话都使用[CLS]开头,以[SEP]结尾,而原始bert只在最开始的时候有一个[CLS],而且用[SEP]来分割句子。

②是segment embedding,原始bert由于有NSP训练过程所以使用E_A,E_B表示两句话,而bertSum因为输入的是篇章,所以使用E_A,E_B,E_A,E_B,...等来表征不一样语句,如输入是x=[x1,x2,x3,x4,x5,x6],则seg_emb=[A,B,A,B,A,B]

3、微调bert

一、提取式摘要

令d表示一篇文章,d=[sent1,sent2,...,sent_m],其中sent_i表示文章d中的第i句话。向量t_i,是顶层中第i个[CLS]标志的用于表征第i句话sent_i的向量。

为了提取摘要,在bert的输出上叠加一些句间Transformer层来获取篇章级特征。

最终的输出层是一个sigmoid分类器。

咱们经过最顶层(第L层)的Transformer来获取sent_i的向量,实验时,咱们经过设置L=1,2,3层Transformer来进行测试,发现当L=2时,即有2层Transformer时性能最好,最终命名该模型为BERTSUMEXT。

模型的损失函数是预测值y_i和标签y_i的二分类熵值。句间Transformer层会联合微调BertSum。

咱们使用adam优化器(beta1=0.9,beta2=0.999)。

学习率按照warming-up安排(warmup=10000).

lr = 2e^{−3} · min (step^{−0.5}, step · warmup^{−1.5})

二、抽象式摘要

使用标准的编码器-解码器框架来进行抽象式摘要。编码器是与训练的BERTSUM,而解码器是一个6层的随机初始化的Transformer层。能够想象的在编码器和解码器之间会有一个不匹配现象,由于编码器是预训练的而解码器必须从头训练。这会致使微调不稳定,好比说编码器是过拟合而解码器是欠拟合的,反之亦然。

本文提出了一个新的微调手段,是将编码器和解码器的优化器分开设计。

咱们使用两个adam优化器,其中编码器的优化器使用参数以下:beta1=0.9,beta2=0.999,而解码器的则不一样,使用不一样的warmup-steps和学习率以下:

这样作的依据是:假设与训练的编码器应该使用更小的学习率和更平滑的decay进行微调(以便于编码器可使用更精确地梯度进行训练而解码器能够变得稳定)。该模型命名为BERTSUMABS.

另外,咱们提出了一个两阶段微调方法,第一阶段是在提取式摘要任务上微调编码器,而后在抽象式摘要任务上进行微调。该模型命名为BERTSUMEXTABS.

4、实验细节

一、数据:CNN/DailyMail,NYT,XSum

二、提取式摘要:

  • 在3 GPUs(GTX 1080 Ti)上训练50000步,每两步进行一次梯度累积。

  • 保存和评估模型的checkpoints,是在验证集上每1000步进行一次。

  • 使用验证集上的评估损失,咱们选取损失最低的3个checkpoints,而后报告测试集上的平均结果。

  • 咱们使用贪心算法来获取每篇文章的最佳的摘要来训练提取模型。这个算法生成一个最佳的包含多个句子的摘要,相对于标签的摘要来讲它能获取最高的rouge-2分数。

  • 当进行预测时,咱们使用这个模型获取每一个句子的得分,并从高到低排序,而后选取最顶层的3个句子做为摘要。

  • 在句子选择的过程当中,咱们使用三元组块来减小冗余。在给出摘要S和候选句子c的状况下,若是c和S之间存在三元组重叠,则跳过c。这一直觉性的选择相似于MMR(Maximal Marginal Relevance),咱们但愿可以最小化候选的句子和已经选择做为摘要的句子之间的类似性。

三、抽象式摘要:

  • 在全部的抽象的模型中,咱们在全部的线性层前应用dropout(probability=0.1),标签滑动且滑动因子=0.1。

  • Transformer的解码器有768个隐藏神经元,全部前馈层的隐藏size=2048.

  • 全部的模型训练200000步,在4块GPU上(GTX 1080 Ti),每5步进行一次梯度累积。

  • 每2500步进行一次模型保存和评估(在验证集上)

  • 选择验证集上评估损失最低的3个模型参数应用在测试集上并报告其平均结果。

  • 在解码阶段咱们使用beam search(size=5),而后为了进行长度惩罚,在验证集上解码时从0.6到1之间调整alpha

  • 咱们解码直到最后一个句子token都被处理而后重复三元组被组成块。 

相关文章
相关标签/搜索