一种带去噪的自编码seq2seq预训练模型。
训练方法:
Auto regressive:
仅根据过去的预测信息来预测未来的信息。
Cross attention:
self-attention是自己与自己进行attention操作,cross-attention是在两个不同的输入序列之间进行attention操作。将两个相同维度的嵌入序列不对称地组合在一起,而其中一个序列用作查询Q输入,而另一个序列用作键K和值V输入。
XLNet
Motivation: 能否融合auto-regressive LM和auto-encoder LM两者的优点。就是说如果站在自auto-regressive LM的角度,如何引入和双向语言模型等价的效果;如果站在auto-encoder LM的角度看,它本身是融入双向语言模型的,如何抛掉表面的那个[Mask]标记,让预训练和Fine-tuning保持一致。
在BERT基础上:
RoBERTa
在原始Bert模型的基础上,RoBERTa通过实验,证明了如下几点:
CNN/DailyMail
填空式阅读理解任务,该任务可以描述为:给定一段文章片段与一个问题,要求机器根据文章片段与问题来推理出合理的答案, 且答案往往是文章片段的某个词。
本数据集就是以CNN 和Daily Mail的报刊新闻为文章基础的。数据集问题的来源是在摘要中抹掉(mask)一些entity词,那么就生成了一个类似于句子填词,或者说是完形填空的问题。QA模型训练的目标就是完成这个完形填空。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wTmBZ4Wl-1669619568608)(C:\Users\Liu\Desktop\Learning\研究生\选课\神经网络与深度学习\预训练模型\笔记\image-20221124155436933.png)]
SQuAD
抽取式阅读理解任务,该任务可以描述为:给定一段文章片段,给定一个问题,要求机器根据该问题从文章片段中找出一个连续的片段作为答案。
v1.1
该数据集包含10万个(问题,原文,答案)的三元组,原文来自于536篇维基百科文章。
对于每个段落,众包工人需要基于段落的内容完成最多5个问答,问题必须以文本形式写出来,答案必须在段落中被高亮标记出来。众包工人被鼓励用他们自己的词汇来提问,而不是直接复制段落中的词汇。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UuZA89Cg-1669619568609)(C:\Users\Liu\Desktop\Learning\研究生\截图\46404e613551466b96da2b88dea10f61.png)]
v2
对于抽取式阅读理解(extractive reading comprehension),有些问题是无法在文档中找到答案的。SQuAD v2.0在v1.1的基础上,通过众包,增加了53,775条看起来和可回答的问题像,但是实际上不可回答的问题。这对相应的阅读理解系统提出了进一步的要求:判断问题是否是当前文档可回答的。
评价指标
EM(Exact Match )和F1值是用于SQuAD的主要指标。
EM:
Exact Match 是问答系统的一种常见的评价标准,它用来评价预测中匹配到正确答案(ground truth answers)的百分比。
F1:
T:真,F:假,P:阳性,N:阴性
Precision=TP/(TP+FP)
Recall=TP/(TP+FN)
精确率越高越好,召回率越高越好。
F 1 = 2 1 Precision + 1 Recall F 1 = 2 Precision ∗ Recall Precision + Recall \begin{aligned} &F 1=\frac{2}{\frac{1}{\text { Precision }}+\frac{1}{\text { Recall }}} \\ &F 1=\frac{2 \text { Precision } * \text { Recall }}{\text { Precision }+\text { Recall }} \end{aligned} F1= Precision 1+ Recall 12F1= Precision + Recall 2 Precision ∗ Recall
XSum
一个生成式摘要的新闻摘要数据集。
GLUE数据集包含九项英文的自然语言理解任务,是该领域学术论文的通用benchmark数据集。其中问答自然语言推断数据集(QNLI)由SQuAD数据集转化而来,包含10万条由问题和维基百科文本构成的句子对,要求判断问题和句子是否蕴含。适用于自然语言推断任务。
CoLA
单句子分类任务,语料来自语言理论的书籍和期刊,每个句子被标注为是否合乎语法的单词序列。本任务是一个二分类任务,标签共两个,分别是0和1,其中0表示不合乎语法,1表示合乎语法。
样本个数:训练集8, 551个,开发集1, 043个,测试集1, 063个。
任务:可接受程度,合乎语法与不合乎语法二分类。
评价准则:Matthews correlation coefficient。
SST-2
SST-2(The Stanford Sentiment Treebank,斯坦福情感树库),单句子分类任务,包含电影评论中的句子和它们情感的人类注释。这项任务是给定句子的情感,类别分为两类正面情感(positive,样本标签对应为1)和负面情感(negative,样本标签对应为0),并且只用句子级别的标签。也就是,本任务也是一个二分类任务,针对句子级别,分为正面和负面情感。
样本个数:训练集67, 350个,开发集873个,测试集1, 821个。
任务:,正面情感和负面情感二分类。
评价准则:accuracy。
MRPC
MRPC(The Microsoft Research Paraphrase Corpus,微软研究院释义语料库),相似性和释义任务,是从在线新闻源中自动抽取句子对语料库,并人工注释句子对中的句子是否在语义上等效。类别并不平衡,其中68%的正样本,所以遵循常规的做法,报告准确率(accuracy)和F1值。
样本个数:训练集3, 668个,开发集408个,测试集1, 725个。
任务:是否释义二分类,是释义,不是释义两类。
评价准则:准确率(accuracy)和F1值。
STSB
STSB(The Semantic Textual Similarity Benchmark,语义文本相似性基准测试),相似性和释义任务,是从新闻标题、视频标题、图像标题以及自然语言推断数据中提取的句子对的集合,每对都是由人类注释的,其相似性评分为0-5(大于等于0且小于等于5的浮点数,原始paper里写的是1-5,可能是作者失误)。任务就是预测这些相似性得分,本质上是一个回归问题,但是依然可以用分类的方法,可以归类为句子对的文本五分类任务。
样本个数:训练集5, 749个,开发集1, 379个,测试集1, 377个。
任务:回归任务,预测为1-5之间的相似性得分的浮点数。但是依然可以使用分类的方法,作为五分类。
评价准则:Pearson and Spearman correlation coefficients。
QQP
QQP(The Quora Question Pairs, Quora问题对数集),相似性和释义任务,是社区问答网站Quora中问题对的集合。任务是确定一对问题在语义上是否等效。与MRPC一样,QQP也是正负样本不均衡的,不同是的QQP负样本占63%,正样本是37%,所以我们也是报告准确率和F1值。我们使用标准测试集,为此我们从作者那里获得了专用标签。我们观察到测试集与训练集分布不同。
样本个数:训练集363, 870个,开发集40, 431个,测试集390, 965个。
任务:判定句子对是否等效,等效、不等效两种情况,二分类任务。
评价准则:准确率(accuracy)和F1值。
MNLI
MNLI(The Multi-Genre Natural Language Inference Corpus, 多类型自然语言推理数据库),自然语言推断任务,是通过众包方式对句子对进行文本蕴含标注的集合。给定前提(premise)语句和假设(hypothesis)语句,任务是预测前提语句是否包含假设(蕴含, entailment),与假设矛盾(矛盾,contradiction)或者两者都不(中立,neutral)。前提语句是从数十种不同来源收集的,包括转录的语音,小说和政府报告。
样本个数:训练集392, 702个,开发集dev-matched 9, 815个,开发集dev-mismatched9, 832个,测试集test-matched 9, 796个,测试集test-dismatched9, 847个。因为MNLI是集合了许多不同领域风格的文本,所以又分为了matched和mismatched两个版本的数据集,matched指的是训练集和测试集的数据来源一致,mismached指的是训练集和测试集来源不一致。
任务:句子对,一个前提,一个是假设。前提和假设的关系有三种情况:蕴含(entailment),矛盾(contradiction),中立(neutral)。句子对三分类问题。
评价准则:matched accuracy/mismatched accuracy。
QNLI
QNLI(Qusetion-answering NLI,问答自然语言推断),自然语言推断任务。QNLI是从另一个数据集The Stanford Question Answering Dataset(斯坦福问答数据集, SQuAD 1.0)[3]转换而来的。SQuAD 1.0是有一个问题-段落对组成的问答数据集,其中段落来自维基百科,段落中的一个句子包含问题的答案。这里可以看到有个要素,来自维基百科的段落,问题,段落中的一个句子包含问题的答案。通过将问题和上下文(即维基百科段落)中的每一句话进行组合,并过滤掉词汇重叠比较低的句子对就得到了QNLI中的句子对。相比原始SQuAD任务,消除了模型选择准确答案的要求;也消除了简化的假设,即答案适中在输入中并且词汇重叠是可靠的提示。
样本个数:训练集104, 743个,开发集5, 463个,测试集5, 461个。
任务:判断问题(question)和句子(sentence,维基百科段落中的一句)是否蕴含,蕴含和不蕴含,二分类。
评价准则:准确率(accuracy)。
RTE
RTE(The Recognizing Textual Entailment datasets,识别文本蕴含数据集),自然语言推断任务,它是将一系列的年度文本蕴含挑战赛的数据集进行整合合并而来的,包含RTE1[4],RTE2,RTE3[5],RTE5等,这些数据样本都从新闻和维基百科构建而来。将这些所有数据转换为二分类,对于三分类的数据,为了保持一致性,将中立(neutral)和矛盾(contradiction)转换为不蕴含(not entailment)。
样本个数:训练集2, 491个,开发集277个,测试集3, 000个。
任务:判断句子对是否蕴含,句子1和句子2是否互为蕴含,二分类任务。
评价准则:准确率(accuracy)。
WNLI
WNLI(Winograd NLI,Winograd自然语言推断),自然语言推断任务,数据集来自于竞赛数据的转换。Winograd Schema Challenge[6],该竞赛是一项阅读理解任务,其中系统必须读一个带有代词的句子,并从列表中找到代词的指代对象。这些样本都是都是手动创建的,以挫败简单的统计方法:每个样本都取决于句子中单个单词或短语提供的上下文信息。为了将问题转换成句子对分类,方法是通过用每个可能的列表中的每个可能的指代去替换原始句子中的代词。任务是预测两个句子对是否有关(蕴含、不蕴含)。训练集两个类别是均衡的,测试集是不均衡的,65%是不蕴含。
样本个数:训练集635个,开发集71个,测试集146个。
任务:判断句子对是否相关,蕴含和不蕴含,二分类任务。
评价准则:准确率(accuracy)。
模型结构
与BERT的区别
使用重构损失对模型进行优化:decoder输出与原始文档之间的交叉熵
使用的noising方法:
不同noising方法的作用
方法 | 介绍 | 作用 |
---|---|---|
Token Masking | 随机对token进行采样并且用mask进行替换 | 推断单个token的能力 |
Token Deletion | 随机从输入数据中删除掉token | 推断单个token以及该token位置的能力 |
Token Infilling | 采样出一系列span,每个span都用一个mask进行替换 | 推断一段span对应多少token的能力 |
Sentence Permutation | 将一个文档在句子级别打乱顺序 | 推理句子前后关系的能力 |
Document Rotation | 随机选择一个token,并旋转文档,使文档以该token作为开始 | 推理找到Document开头的能力 |
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-flGymAbJ-1669619568609)(C:\Users\Liu\Desktop\Learning\研究生\选课\强化学习\单智能体\image-20221116143311983.png)]
使用base-size models(6个encoder和decoder)。都是将模型在不同书籍和WiKipedia数据上进行1M步训练。
comparsion objectives
Tasks
Result
Discriminative Tasks
在判别任务上的表现与RoBERTa类似,表明BART在提升生成任务性能的同时没有降低对分类任务的性能。
Generation Tasks
在生成任务中使用了label smoothing技术,smoothing参数设置为0.1。
设置beam size为5。
在各个数据集上的表现都是最好的。
Translation
encoder和decoder都有12层,隐藏层大小为1024。
Discriminative Tasks
在判别任务上的表现与RoBERTa类似,表明BART在提升生成任务性能的同时没有降低对分类任务的性能。
Generation Tasks
在生成任务中使用了label smoothing技术,smoothing参数设置为0.1。
设置beam size为5。
在各个数据集上的表现都是最好的。
Translation