论文笔记 -《ERNIE-GEN: An Enhanced Multi-Flow Pre-training and Fine-tuning Framework for Natural...》

论文链接:https://arxiv.org/abs/2001.11314

1 摘要

  目前自然语言生成的预训工作对于下游任务的偏差问题关注不够。 为了解决这个问题,我们提出了一个增强的多流序列来排列预训练和微调框架 ERNIE-GEN,它通过生成机制和噪声感知生成方法来弥补训练和推理之间的差异。 为了使代更接近人类的书写模式,该框架引入了一个跨越代流,训练模型连续预测语义完整跨度,而不是逐字预测。ERNIE-GEN与现有的预训练方法不同,它将多粒度目标采样结合到预训练数据中,增强了编解码器之间的相关性。 实验结果表明,ERNIE-GEN 在一系列语言生成任务中,包括抽象概括(Gigaword 和 cnn / dailymail)、问题生成(SQuAD)、对话生成(Persona-Chat)和生成问题回答(CoQA) ,只需要很少的预训练训练数据和参数就可以获得最先进的结果。

2 引言

  自监督表征模型,如 GPT [ Radford 等人,2018] ,BERT [ Devlin 等人,2019]和 XLNet [ Yang 等人,2019b ]在自然语言理解(NLU)方面取得了显著的进步。 自然语言生成(NLG)不同于纯编码预训练(BERT)和纯解码预训练(GPT) ,它依赖于序列生成框架(seq2seq) ,该框架由双向编码器和单向解码器组成。 目前 NLG 的预训练工作,如 MASS [ Song 等人,2019]和 UNILM [ Dong 等人,2019]主要集中在不同的自我监督任务的联合预训练编码器和解码器。 然而,这些文章很少关注预训练和fine-tining时的偏差问题[ Ranzato 等人,2016] ,这是teacher-forcing训练的一个主要缺点。 这个问题是由于在训练过程中使用了真实词,错误词不会往下积累。但是在推理时,生成词无论是否正确地预先切分,都将用于推理下一个词,这样的话,错误就会逐渐累积。
  为了缓解这个问题,我们提出了 ERNIE-GEN,一个先进的多流 seq2seq 训练框架,它基于 Transformer 精心设计的多流注意架构[ Vaswani et al. 2017] ,如图2所示。ERNIE-GEN将一种新颖的充填生成机制和一种噪声感知的生成方法融入到预训练和微调中,通过4.3中的实验证明了这种方法的有效性。

填充式生成。 在训练时,我们不使用最后一个真实词,推理时,我们同样不使用最后一个生成的词,而是在某一个位置插入人工符号[ ATTN ],希望[ ATTN ]能够在训练和推理的每个步骤中收集历史语境表征,从而将模型的注意力从最后一个词转移到所有以前的表征上,从而减轻以前错误对后续生成的负面影响,如图1(b)所示。

噪声感知生成。 我们通过随机替换词汇表中的任意词汇来破坏输入目标序列。 这种设置,尽管其简单,证明是一种有效的方式,使模型能够意识到训练中的错误,以便模型能够发现错误,并在推理过程中消化它们。

  此外,鉴于人类写作中的实体、短语和句子是以连贯的方式组织起来的,我们将一个跨越式的生成任务作为新一代流程引入到 ERNIE-GEN 中,以训练该模型来连续地预测语义完整的跨度,而不是像传统的 seq2seq 模型那样逐字逐句地预测。 这项任务是通过填充生成机制与基于填充的逐字生成流程并行实现的,以促进预训练中的收敛,如图1b 所示。

  此外,如图1(c-d)所示,最近像 UNILM 和 MASS 这样的 NLG 预训练工程只抽取单个连续片段作为目标序列。 然而,鉴于相邻片段通常是语义相关的,这种采样方法在长文本(通常是512个单词)的预训练时,折中了编码器和解码器之间的相关性。 ERNIE-GEN 采用多粒度目标片段采样策略,强制解码器更多地依赖编码器表示而不是先前生成的字,从而增强了编码器和解码器之间的相关性,如图1e 所示。

  根据实际经验,ERNIE-GEN 是特别有效的,并在一系列 NLG 任务上达到最先进的结果,包括抽象的摘要(Gigaword 和 CN-N/ DailyMail) ,问题生成(SQuAD) ,对话生成(Persona-Chat)和生成问题回答(CoQA) ,利用更少量的预训练数据和参数。

2 相关工作

3 提出的架构

  ERNER-GEN 基于生成机制,采用多流注意体系结构,并行地对模型进行逐字、逐段生成任务的训练。 在本节中,我们根据图2所示的训练过程描述 ERNIE-GEN。
在这里插入图片描述

3.1 多粒度目标片段

  给定一个源序列 S [ s1,… ,sn ] ,我们首先用概率 Pi 从一个分布集 p { P1,… ,Pl}中抽取一个长度分布 Pi,然后根据 Pi 迭代地选择各种片段,直到片段预算用完(例如 s 的25%)。 我们将 Sji表示为长度分布为 Pi的 第j个片段。 然后将取样的片段从 S 中移除并缝合在一起形成 目标句子序列T = { T1,… ,Tk} = { S1i,… ,Ski }。 在去除采样片段后,我们将 s ′表示为左源序列。ERNIE-GEN 通过预测分段目标序列 T 和最小化负对数概率来进行预训练:
在这里插入图片描述

其中目标序列 T 按每个片段的位置排序,其中

    在这里插入图片描述
  通过初步试验,我们设置了一个超参数0.25,表示所有片段的长度与源序列 S 的长度之比。此外,我们还将概率分别为0.4和0.6的两个单形分布 P { U(1,4) ,U(4,32)}引入样本片段,以便从不同的角度来学习表示。 一方面,短片段有利于词汇间语义关系的学习,另一方面,长片段有助于句子级表达式的记忆。

3.2 噪声感知生成器

  为了训练一个能够检测错误预测并减轻其对后面词影响的生成模型,我们用一个词被随机替换的过程来破坏真实序列 T,并将破坏的 T 表示为 T ′。 在预训练和微调过程中分别存在 pp 和 ff 两个超参数,分别表示噪声率。

3.3 架构: 多流注意力

在这里插入图片描述
在这里插入图片描述
  在形式上,给定源序列 S [ s1,… ,sn ] ,目标序列 T [ t1,… ,tm ]和与 T 长度相同的人工符号序列 A [[ ATTN ]1,… ,[ ATTN ]m ] ,我们按如下方式引入基于共享参数Transformer的 seq2seq 网络:

在这里插入图片描述
  其中 q,k,v 表示在多头注意操作中的查询、键和值[ Vaswani et al. ,2017]。 si(l)和ti(l)表示encoder和decoder第 l 层的第i个token向量表示。对编码器和解码器分别采用多头注意,[.]表示拼接运算。 在这项工作中,我们将上述过程称为上下文流。

逐字生成流程:基于填充生成机制,这个流程使用了一个插入的[ ATTN ]
符号逐字收集历史表示(见图1b)。 为了方便这个过程,我们将所有插入的[ ATTN ]放在一起,如图3b 所示。 具体而言,逐字生成流更新如下:
在这里插入图片描述
其中对于插入的符号序列A, a il表示 l层的第i个token向量表示

逐段生成流: 与逐字生成流不同的是,逐段流使用[ ATTN ]连续预测完整跨度,如图3c 所示。 在形式上,给定一个跨度边界列表 B = [b1,… ,bk] ,我们按以下方式进行逐段生成流:
在这里插入图片描述
其中 j ∈[ bi,bi+1] ,aj(l)表示第i片段的第(j-bi) 向量表示。

  本质上,该模型被训练为在相同的历史上下文[S,t<bi]下预测整个跨度 t<bi: bi+1。与随机抽样范围相反,我们更喜欢包含语义信息和知识的抽样片段。 特别地,我们考虑以下两个步骤连续在 T中取样跨度:

  • 首先,我们使用 T-test来计算所有的二元和三元 t-statistic分数。这个计算基于一个假设H0:随机跨度的n个随机单词W = [w1,… ,wn]的概率为:

        在这里插入图片描述

不能是一个统计 n-gram。 T-statistic分数由

        在这里插入图片描述

计算,其中 p (w)表示统计概率和标准差σ,而 N 则表示在训练数据中出现的 n-gram。根据T-statistic分数,我们过滤出前200,000个bigrams,前50,000个trigrams和所有的 unigrams 来构建一个特定的跨度词汇,这就是 Vspan

  • 其次,我们按顺序搜索 trigram、 bigram 和 unigram,从当前单词开始,直到在Vspan检索到一个 span (n-gram,n ≤3)。

多流注意力:为了集成逐字生成流和跨度生成流,我们通过利用多流注意力架构,将它们与共享上下文流并行应用,如图3a 所示。 多流注意力计算如下:
在这里插入图片描述
  其中 X 表示 S 和 T ′的拼接,AW,AS 是分别输入到逐段生成流和跨越生成流的人工符号序列。 如图3d 所示,注意力遮掩矩阵 M 通过修改注意力权重 W = softmax (QKT/ √ dk + M)来确定query和key是否可以相互关注[ Vaswani et al. 2017]。 具体来说,M
被分配为:

在这里插入图片描述

在训练过程中,我们加入了逐字生成流和逐段生成流的损失,并用一个系数:

在这里插入图片描述

其中 Ywordspan 表示生成的两个序数,L (.)表示交叉熵损失函数。 具体来说,我们在预训练和微调中 λ 分别设置了0.5和1.0。

3.4 填充解码

  在解码过程中,由于目标序列 T 是未知的,因此在解码过程中不需要事先准备一个人工的符号序列 A,而是逐步插入[ ATTN ]来收集历史上下文的表示。 同时,为了提高效率,我们需要在每个步骤的推断之后删除所插入的[ ATTN ] ,如图4所示。
在这里插入图片描述

4 实验

  在这一部分,我们比较了 ERNIE-GEN 和业界相关的工作,并进行了几个消融实验,以评估所提出的方法的表现。

4.1 预训练细节

  类似于 BERT 和 UNILM,ERNIE-GEN 是基于英语 Wikipedia和 BookCorpus [ Zhu 等人,2015] ,共计16GB。 输入序列采用小写格式并被截断最大长度为512。 我们分别用 BERTBASE 和 BERTLARGE 初始化了一个基本模型 ERNIE-GENBASE (L=12,H=768,A=12,总参数110M)和一个大型模型 ERNIE-GEN large (l24,h1024,a16,总参数340M)。 具体来说,使用Adam 优化器(β1 = 0.9, β2 = 0.999, ε = 10−9 )。 通过前4000步预热和线性衰减scheduling,学习率为5e-5。 预训练噪声率 pp=0.05。 批次是按照最大token=24576来设计的。 在 PaddlePaddle platforms3和 Nvidia Tesla V100 GPU 上进行了训练前实验。 我们分别为 ERNIE-GENBASE 和 ERNIE-GENLARGE 使用了32块 GPU 卡和64块 GPU 卡。 凭借float16混合精确训练,训练 ERNIE-GENBASE 需要近4天,训练ERNIE-GENLARGE需要近7天,总共训练了450000步。

4.2 微调下游工作

  摘要的目的是生成流畅、简洁的摘要,而不需要从输入文章中抽取子序列。 我们在 Gigaword 数据集[ Rush 等人,2015]和 CNN / DailyMail 数据集[ Hermann 等人,2015]上执行实验。 Gigaword 数据集包括从 Gigaword 语料库中提取的380万篇文章,而 CNN / DailyMail 数据集包括来自 CNN 和《每日邮报》的93k 篇文章和220k 篇文章。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
  表2显示了 Gigaword 上的两个不同scale(10K 和3.8M)的结果,表1显示了微调设置。 在低资源任务(Gigaword 10k)中,ERNIE-GENBASE 比 UNILMLARGE 在 ROUGE-L 中增加了 + 0.79个点,而 ERNIE-GENLARGE 比 UNILMLARGE增加了 + 1.94个 ROUGE-L。 在完整的 Gigaword 数据集上,ERNIE-GENLARGE 创建了最先进的结果,超越了各种各样的方法。 具体来说,ERNIE-GENBASE 仅使用16G 训练数据和110M 参数,优于使用 C4(750G)训练的PEGASUSLARGE(568M)。 与此同时,有趣的是,随着模型规模的扩大,低资源任务的收益似乎更加显著。

  表3显示了 CNN / DailyMail 上的性能。 对于类似数量的训练前数据和参数,ERNIE-GENBASE 比 MASS 的 ROUGE-L 分数高出0.67分。 与 UNILMLARGE相比,ERNIE-GENLARGE获得了 + 0.73的 ROUGE-L 分数。 同时,尽管前期训练的数据和参数很少,我们的大型模型 ERNIE-GENLARGE在 ROUGE-L 上也取得了最先进的结果,在 ROUGE-1和 ROUGE-2上也取得了可比的性能。

  问题生成就是根据给定的输入段和相应的答案生成问题。 我们在SQuAD1.1的数据集上进行评估[ Rajpurkar 等人,2016]
在这里插入图片描述
在这里插入图片描述
  问题生成任务(称为SQuAD QG) :随后 UNILM,我们重新分发原来的数据集到一个新的训练集和测试集与原来的开发集不变。 我们还进行了反向开发<–>测试分裂的实验,[赵等人,2018]指出。

  具体来说,输入源序列是输入段落和答案文本的连接,而目标序列是一个给定的问题。 我们用表1所示的设置微调 ERNIE-GEN。 在表4中,我们提出了 ERNIE-GEN 的结果和几个以前的工作。 同样,ERNIE-GEN 优于 UNILM,并且通过给出 + 1.82 BLEU-4分数,在问题生成方面取得了最先进的成绩。

  生成性问题回答 / 对话在多话轮会话由于复杂的背景知识和多种多样的话语,使其极具挑战性。 我们在 Persona-Chat 数据集[ Zhang et al. ,2018]上进行了一个实验,根据给定的多回合谈话和人物个人资料生成响应。 表5显示,ERNIE-GEN 在生成对话方面优于目前的特定任务的预训练模型。 除此之外,我们还在 CoQA 数据集上做了一个实验,为输入的问题和对话生成自由格式的答案。 与表6中列出的早期模型相比,我们的生成式问答模型比 + 2.0 f1分数的早期模型工作得更好。
在这里插入图片描述

4.3 消融研究

  为了更好地理解每种生成方法的重要性,我们进行了以下两个方面的实验:

  • 针对下游任务的偏差,填充生成机制及噪声感知生成方法的稳健性。

  • 逐段生成任务的有效性和完整的 ERNIE-GEN 模型。
    在这里插入图片描述
    在这里插入图片描述

  在表8中,我们比较了两个 ERNIE-GENBASE 变体,它们是经过预先训练的,具有典型的生成机制和充填生成机制,并逐字生成。 第1-3行显示,没有噪声真实文本,填充生成明显优于传统的生成任务。 此外,这两个变种在fine-tuning时通过噪声生成方法得到了显著改善。 同时有趣的是,填充式生成更多地受益于噪声处理过程,这表明填充式生成在解码过程中对错误产生的鲁棒性。 具体来说,图5a 显示了在 Gigaword10k 和 SQuAD QG 上选择不同的噪声率 pf 的结果,表明适当的噪声实质上有利于训练,并减轻了训练-推理的差异。

  为了进一步分析带有噪声的填充式生成机制的优点,我们分别计算了1,000个样本的最后一个自注意层的源token、无噪声目标token的平均注意权重。图5b 显示了具有不同噪声率 pf 的平均注意力权重,表明该模型更注重解码器端的噪声点,并且随着微调过程中噪声率的增加而减少了注意力权重。 因此,该模型能够适当地检测和忽略错误预测,从而减少在推理过程中积累的错误。

  在表7的第1栏中,我们比较了三个任务的4个 ERNIE-GENBASE 变体。 我们看到,噪声感知的生成方法和跨度生成任务(表7第2-3行)在 ERNIE-GEN 预训练中起着重要作用,并且明显优于基线模型,后者只是在逐字填充生成流程中进行了预训练(表7第4行)。 在整合了噪声感知生成方法和跨度生成任务之后,ERNIE-GEN 提高了所有三个任务的性能,如表7第1行所示。 此外,为了验证的想法,微调与单向 MLM 如 UNILM 是低效率的,由于掩蔽(噪声)和预测的耦合,我们也列出了微调结果所获得的单向 MLM 的掩蔽概率为0.7,如表7第2栏所示。 我们观察到,我们的噪声感知生成方法在微调时显着优于单向 MLM 。

5 结论

  我们提出了一个用于语言生成的增强型多流 seq2seq 预训练和微调框架(ERNIE-GEN) ,其中包括一个填充式生成机制和一个噪声感知生成方法,以减轻预训练和微调的偏差。 此外,ERNIE-GEN 还集成了一个新的跨度生成任务来训练该模型生成类似人类书写的文本,进一步提高了下游任务的性能。 通过广泛的实验,ERNIE-GEN 在一系列的 NLG 任务中实现了最先进的结果。

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值