预训练模型专题_Bart_论文学习笔记

Bart模型作为一种Seq2Seq结构的预训练模型,是由Facebook在ACL 2020上提出。
Bart模型的论文为:《BART: Denoising Sequence-to-Sequence Pre-training for Natural Language Generation, Translation, and Comprehension
Bart模型代码:transformers库Bart模型

Bart模型为一种基于去噪自编码器seq2seq结构的预训练模型。Bart模型在预训练阶段,核心的预训练过程为:

<1> 使用任意的噪声函数(Token Masking、Token Deletion、Text Infilling、Sentence Permutation、Document Rotation 五种噪声函数方法)来破坏预训练时输入Bart模型中的原始文本(文档);

<2> Bart模型在编码器encoder部分对输入的被破坏文本(文档)进行编码、计算与特征提取;解码器decoder则会利用交叉多头注意力聚合操作(Cross_Attention)与编码器最后一层的隐藏状态结果进行注意力聚合计算,进而以自回归的方式对被破坏的文本(文档)进行复原重建。

现如今,预训练模型大致分为三大类:
<1> 单向特征表示的自回归预训练语言模型
这类模型的代表为GPT1/GPT2/GPT3、ELMO、ULMFiT、SiATL等。

<2> 双向特征表示的自编码预训练语言模型
这类模型的代表有Bert、MASS、UniLM(微软)、ERNIE1.0/ERNIE2.0、ERNIE(清华)、MTDNN、SpanBERT、RoBERTa等。

<3> 双向特征表示的自回归预训练语言模型
XLNet等。

而Bart模型则相当于一个综合了双向特征表示的自编码Bert模型与单向特征表示的自回归GPT模型的模型框架。接下来将对Bart模型进行详细介绍。

一、Bart模型

1. Bart模型结构

在这里插入图片描述
Bart模型的结构如上图c中所示,图a与图b为双向特征表示的自编码Bert模型与单向特征表示的自回归GPT模型的结构对比。
从图中可以看出,Bart模型的编码器encoder部分为一个双向特征表示的自编码模型,其结构类似Bert模型,包含6层或12层transformer block; 而Bart模型的解码器decoder部分则为一个单向特征表示的自回归模型,其结构类似GPT2模型,也包含6层或12层transformer block

而在训练阶段,决定模型是双向特征表示(自编码)还是单向特征表示(自回归)的主要因素之一,便为模型中的注意力矩阵,注意力矩阵能够决定输入模型中的文本序列位置 i i i 处的token能够获得其前向或者后向token的编码信息的多少;而attention_mask矩阵则能够决定输入模型中的文本序列位置 i i i 处的token是否能获得其前向或者后向token的编码信息。

在这里插入图片描述
双向特征表示的自编码模型Bert的attention_mask矩阵如上图中a所示,单向特征表示的自回归模型GPT的attention_mask矩阵如上图中b所示。

由此可以看出,在Bart模型的结构中,解码器encoder负责对输入的文本(文档)进行双向特征表示编码、计算与特征提取;而解码器decoder则会利用交叉多头注意力聚合操作(Cross_Attention)与编码器最后一层的隐藏状态结果进行注意力聚合计算,进而以单向特征表示的自回归方式生成文本
特别注意的是,若为预训练阶段,则此时输入解码器encoder中的为被任意的噪声函数(Token Masking、Token Deletion、Text Infilling、Sentence Permutation、Document Rotation)破坏的文本(文档);而解码器decoder则会以单向特征表示的自回归方式对被破坏的文本(文档)进行复原重建

从模型结构上来说,MASS模型与Bart模型较为相似,然而MASS模型在判别式任务(discriminative tasks)上的效果不如Bart模型,这是因为在MASS模型预训练时,输入编码器encoder中的文本(文档)序列中一些连续的文本片段(span)会被选中并被遮罩掉(mask);而在解码器decoder中,其它词(在编码器端未被遮罩掉的词)都会被遮罩掉(如下图所示),以这种方式来鼓励解码器decoder只预测在编码器端被遮罩的文本片段(span)中的词,而为了给解码器decoder提供更有用的信息,编码器encoder则被强制去抽取未被遮罩掉的词的语义,以提升编码器encoder理解源序列文本的能力。
在这里插入图片描述
然而,MASS模型这种预训练方式会造成分别输入进编码器encoder与解码器decoder中词集合(sets of tokens)的割裂与不连贯。因此,MASS模型在判别式任务上的效果不如Bart模型。

而一些双向特征表示的自编码模型如XLNet、Bert、RoBERTa等在做生成式任务(generative tasks)时,文本序列中预测位置 i i i 处的token可同时获得其前向或者后向token的编码信息,而文本生成阶段(generation)的过程实际更符合从左向右单向特征表示的自回归编码过程。
而Bart模型中,预训练阶段(pre-training)时,其中的解码器decoder就是以从左向右单向自回归编码的方式生成文本(tokens),而这种方式与文本生成阶段(generation)生成文本(tokens)的方式一致,因此Bart模型的这种结构减弱了预训练阶段(pre-training)与文本生成阶段(generation)的不匹配度与割裂性。

此外,Bart模型的结构也与谷歌2019年提出的T5模型、2021年提出的DeBERTa模型相似,感兴趣的读者可以对比性地学习这三种模型。

2. Bart模型的预训练方法(pre-training)

正如前文所述,Bart模型在预训练阶段的两个核心过程为:

<1> 使用任意的噪声函数(Token Masking、Token Deletion、Text Infilling、Sentence Permutation、Document Rotation 五种噪声函数方法)来破坏预训练时输入Bart模型中的原始文本(文档);
<2> Bart模型在编码器encoder部分对输入的被破坏文本(文档)进行编码、计算与特征提取;解码器decoder则会利用交叉多头注意力聚合操作(Cross_Attention)与编码器最后一层的隐藏状态结果进行注意力聚合计算,进而以自回归的方式对被破坏的文本(文档)进行复原重建。模型利用此时解码器decoder的输出与未被噪声函数破坏前的原始文本(文档)计算交叉熵损失(cross-entropy loss),进而利用此交叉熵损失来优化整个Bart模型。

而在Bart模型的预训练阶段,使用的5种用于破坏原始输入文本(文档)、为原始输入文本(文档)添加噪声的噪声函数如下图所示:

在这里插入图片描述

2.1 Token Masking 方法

Token Masking方法为:在原始输入文本(文档)中随机抽样token并替换为[MASK]特殊符,之后预训练时Bart模型会对这些被替换为[MASK]特殊符处的原token进行预测,对被破坏的输入文本(文档)进行复原重建。

2.2 Token Deletion 方法

Token Deletion方法为:在原始输入文本(文档)中随机抽样token并删除,之后预训练时Bart模型会对被破坏的输入文本(文档)进行复原重建,包括复原被删除的token。

2.3 Text Infilling 方法

Text Infilling方法为:随机将原始输入文本(文档)中的"几个token组成的小文本片段(span)“用一个[MASK]特殊符进行替换,被替换的文本片段(span)中的token长度从泊松分布( λ \lambda λ=3)中随机抽样选取。如果此时被替换的文本片段(span)的token长度为0,则相当于直接往原始输入文本(文档)中插入一个[MASK]特殊符。
在谷歌的T5模型论文的实验中发现,被替换的文本片段(span)的token长度为3时,模型的预训练效果最好。
之后预训练时,Bart模型的解码器decoder会将被破坏的输入文本(文档)中的[MASK]特殊符复原重建为原始输入文本(文档)中被替换的"几个token组成的文本片段(span)”。

Text Infilling方法的灵感来源于SpanBERT模型,但是在SpanBERT模型中,被替换的文本片段(span)中的token长度是从另一种分布(clamped geometric)中随机抽样选取,且"几个token组成的小文本片段(span)"会被与此文本片段(span)同样token数量的[MASK]特殊符遮罩。
因此SpanBERT模型中,原始输入文本(文档)与被遮罩了文本片段(span)的文本(文档)的长度相同。

2.4 Sentence Permutation 方法

Sentence Permutation方法为:将原始输入文本(文档)按照句号拆分为一个个子句,再将这些子句打乱顺序、重新排列为新的文本(文档), 之后预训练时Bart模型会将被打乱子句顺序、并按子句重新排列的输入文本(文档)进行复原,重建为原始输入文本(文档)中的子句顺序。

2.5 Document Rotation 方法

Document Rotation方法为:从原始输入文本(文档)中均匀且随机地抽样一个token,将此token之前所有的文本(文档)内容,轮转到此

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值