数学基础
- 线性代数
- 概率论与随机过程
- 数值计算
- 蒙特卡洛方法与 MCMC 采样
- 机器学习方法概论
统计学习
深度学习
- 深度学习简介
- 深度前馈网络
- 反向传播算法
- 正则化
- 深度学习中的最优化问题
- 卷积神经网络
- CNN:图像分类
- 循环神经网络 RNN
- Transformer
- 一、Transformer [2017]
- 二、Universal Transformer [2018]
- 三、Transformer-XL [2019]
- 四、GPT1 [2018]
- 五、GPT2 [2019]
- 六、GPT3 [2020]
- 七、OPT [2022]
- 八、BERT [2018]
- 九、XLNet [2019]
- 十、RoBERTa [2019]
- 十一、ERNIE 1.0 [2019]
- 十二、ERNIE 2.0 [2019]
- 十三、ERNIE 3.0 [2021]
- 十四、ERNIE-Huawei [2019]
- 十五、MT-DNN [2019]
- 十六、BART [2019]
- 十七、mBART [2020]
- 十八、SpanBERT [2019]
- 十九、ALBERT [2019]
- 二十、UniLM [2019]
- 二十一、MASS [2019]
- 二十二、MacBERT [2019]
- 二十三、Fine-Tuning Language Models from Human Preferences [2019]
- 二十四 Learning to summarize from human feedback [2020]
- 二十五、InstructGPT [2022]
- 二十六、T5 [2020]
- 二十七、mT5 [2020]
- 二十八、ExT5 [2021]
- 二十九、Muppet [2021]
- 三十、Self-Attention with Relative Position Representations [2018]
- 三十一、USE [2018]
- 三十二、Sentence-BERT [2019]
- 三十三、SimCSE [2021]
- 三十四、BERT-Flow [2020]
- 三十五、BERT-Whitening [2021]
- 三十六、Comparing the Geometry of BERT, ELMo, and GPT-2 Embeddings [2019]
- 三十七、CERT [2020]
- 三十八、DeCLUTR [2020]
- 三十九、CLEAR [2020]
- 四十、ConSERT [2021]
- 四十一、Sentence-T5 [2021]
- 四十二、ULMFiT [2018]
- 四十三、Scaling Laws for Neural Language Models [2020]
- 四十四、Chinchilla [2022]
- 四十七、GLM-130B [2022]
- 四十八、GPT-NeoX-20B [2022]
- 四十九、Bloom [2022]
- 五十、PaLM [2022] (粗读)
- 五十一、PaLM2 [2023](粗读)
- 五十二、Self-Instruct [2022]
- 句子向量
- 词向量
- 传统CTR 预估模型
- CTR 预估模型
- 一、DSSM [2013]
- 二、FNN [2016]
- 三、PNN [2016]
- 四、DeepCrossing [2016]
- 五、Wide 和 Deep [2016]
- 六、DCN [2017]
- 七、DeepFM [2017]
- 八、NFM [2017]
- 九、AFM [2017]
- 十、xDeepFM [2018]
- 十一、ESMM [2018]
- 十二、DIN [2017]
- 十三、DIEN [2019]
- 十四、DSIN [2019]
- 十五、DICM [2017]
- 十六、DeepMCP [2019]
- 十七、MIMN [2019]
- 十八、DMR [2020]
- 十九、MiNet [2020]
- 二十、DSTN [2019]
- 二十一、BST [2019]
- 二十二、SIM [2020]
- 二十三、ESM2 [2019]
- 二十四、MV-DNN [2015]
- 二十五、CAN [2020]
- 二十六、AutoInt [2018]
- 二十七、Fi-GNN [2019]
- 二十八、FwFM [2018]
- 二十九、FM2 [2021]
- 三十、FiBiNET [2019]
- 三十一、AutoFIS [2020]
- 三十三、AFN [2020]
- 三十四、FGCNN [2019]
- 三十五、AutoCross [2019]
- 三十六、InterHAt [2020]
- 三十七、xDeepInt [2023]
- 三十九、AutoDis [2021]
- 四十、MDE [2020]
- 四十一、NIS [2020]
- 四十二、AutoEmb [2020]
- 四十三、AutoDim [2021]
- 四十四、PEP [2021]
- 四十五、DeepLight [2021]
- 图的表达
- 一、DeepWalk [2014]
- 二、LINE [2015]
- 三、GraRep [2015]
- 四、TADW [2015]
- 五、DNGR [2016]
- 六、Node2Vec [2016]
- 七、WALKLETS [2016]
- 八、SDNE [2016]
- 九、CANE [2017]
- 十、EOE [2017]
- 十一、metapath2vec [2017]
- 十二、GraphGAN [2018]
- 十三、struc2vec [2017]
- 十四、GraphWave [2018]
- 十五、NetMF [2017]
- 十六、NetSMF [2019]
- 十七、PTE [2015]
- 十八、HNE [2015]
- 十九、AANE [2017]
- 二十、LANE [2017]
- 二十一、MVE [2017]
- 二十二、PMNE [2017]
- 二十三、ANRL [2018]
- 二十四、DANE [2018]
- 二十五、HERec [2018]
- 二十六、GATNE [2019]
- 二十七、MNE [2018]
- 二十八、MVN2VEC [2018]
- 二十九、SNE [2018]
- 三十、ProNE [2019]
- Graph Embedding 综述
- 图神经网络
- 一、GNN [2009]
- 二、Spectral Networks 和 Deep Locally Connected Networks [2013]
- 三、Fast Localized Spectral Filtering On Graph [2016]
- 四、GCN [2016]
- 五、神经图指纹 [2015]
- 六、GGS-NN [2016]
- 七、PATCHY-SAN [2016]
- 八、GraphSAGE [2017]
- 九、GAT [2017]
- 十、R-GCN [2017]
- 十一、 AGCN [2018]
- 十二、FastGCN [2018]
- 十三、PinSage [2018]
- 十四、GCMC [2017]
- 十五、JK-Net [2018]
- 十六、PPNP [2018]
- 十七、VRGCN [2017]
- 十八、ClusterGCN [2019]
- 十九、LDS-GNN [2019]
- 二十、DIAL-GNN [2019]
- 二十一、HAN [2019]
- 二十二、HetGNN [2019]
- 二十三、HGT [2020]
- 二十四、GPT-GNN [2020]
- 二十五、Geom-GCN [2020]
- 二十六、Graph Network [2018]
- 二十七、GIN [2019]
- 二十八、MPNN [2017]
- 二十九、UniMP [2020]
- 三十、Correct and Smooth [2020]
- 三十一、LGCN [2018]
- 三十二、DGCNN [2018]
- 三十三、AS-GCN
- 三十四、DGI [2018]
- 三十五、DIFFPOLL [2018]
- 三十六、DCNN [2016]
- 三十七、IN [2016]
- 图神经网络 2
- 图神经网络 3
- 推荐算法(传统方法)
- 一、Tapestry [1992]
- 二、GroupLens [1994]
- 三、ItemBased CF [2001]
- 四、Amazon I-2-I CF [2003]
- 五、Slope One Rating-Based CF [2005]
- 六、Bipartite Network Projection [2007]
- 七、Implicit Feedback CF [2008]
- 八、PMF [2008]
- 九、SVD++ [2008]
- 十、MMMF 扩展 [2008]
- 十一、OCCF [2008]
- 十二、BPR [2009]
- 十三、MF for RS [2009]
- 十四、 Netflix BellKor Solution [2009]
- 推荐算法(神经网络方法 1)
- 一、MIND [2019](用于召回)
- 二、DNN For YouTube [2016]
- 三、Recommending What Video to Watch Next [2019]
- 四、ESAM [2020]
- 五、Facebook Embedding Based Retrieval [2020](用于检索)
- 六、Airbnb Search Ranking [2018]
- 七、MOBIUS [2019](用于召回)
- 八、TDM [2018](用于检索)
- 九、DR [2020](用于检索)
- 十、JTM [2019](用于检索)
- 十一、Pinterest Recommender System [2017]
- 十二、DLRM [2019]
- 十三、Applying Deep Learning To Airbnb Search [2018]
- 十四、Improving Deep Learning For Airbnb Search [2020]
- 十五、HOP-Rec [2018]
- 十六、NCF [2017]
- 十七、NGCF [2019]
- 十八、LightGCN [2020]
- 十九、Sampling-Bias-Corrected Neural Modeling [2019](检索)
- 二十、EGES [2018](Matching 阶段)
- 二十一、SDM [2019](Matching 阶段)
- 二十二、COLD [2020 ] (Pre-Ranking 模型)
- 二十三、ComiRec [2020](https://www.wenjiangs.com/doc/0b4e1736-ac78)
- 二十四、EdgeRec [2020]
- 二十五、DPSR [2020](检索)
- 二十六、PDN [2021](mathcing)
- 二十七、时空周期兴趣学习网络ST-PIL [2021]
- 推荐算法之序列推荐
- 一、FPMC [2010]
- 二、GRU4Rec [2015]
- 三、HRM [2015]
- 四、DREAM [2016]
- 五、Improved GRU4Rec [2016]
- 六、NARM [2017]
- 七、HRNN [2017]
- 八、RRN [2017]
- 九、Caser [2018]
- 十、p-RNN [2016]
- 十一、GRU4Rec Top-k Gains [2018]
- 十二、SASRec [2018]
- 十三、RUM [2018]
- 十四、SHAN [2018]
- 十五、Phased LSTM [2016]
- 十六、Time-LSTM [2017]
- 十七、STAMP [2018]
- 十八、Latent Cross [2018]
- 十九、CSRM [2019]
- 二十、SR-GNN [2019]
- 二十一、GC-SAN [2019]
- 二十二、BERT4Rec [2019]
- 二十三、MCPRN [2019]
- 二十四、RepeatNet [2019]
- 二十五、LINet(2019)
- 二十六、NextItNet [2019]
- 二十七、GCE-GNN [2020]
- 二十八、LESSR [2020]
- 二十九、HyperRec [2020]
- 三十、DHCN [2021]
- 三十一、TiSASRec [2020]
- 推荐算法(综述)
- 多任务学习
- 系统架构
- 实践方法论
- 深度强化学习 1
- 自动代码生成
工具
- CRF
- lightgbm
- xgboost
- scikit-learn
- spark
- numpy
- matplotlib
- pandas
- huggingface_transformer
- 一、Tokenizer
- 二、Datasets
- 三、Model
- 四、Trainer
- 五、Evaluator
- 六、Pipeline
- 七、Accelerate
- 八、Autoclass
- 九、应用
- 十、Gradio
Scala
- 环境搭建
- 基础知识
- 函数
- 类
- 样例类和模式匹配
- 测试和注解
- 集合 collection(一)
- 集合collection(二)
- 集成 Java
- 并发
十六、BART [2019]
自监督方法在广泛的
NLP
任务中取得了显著的成功。最成功的方法是masked language model
的变体,它是降噪自编码器denoising autoencoder
,被训练从而重建文本,其中掩码了一组随机的单词。最近的工作显示,通过改善masked token
的分布(SpanBERT
)、masked token
的预测顺序(XLNet
)、以及替换masked token
的可用上下文(UNILM
)而获得收益。然而,这些方法通常专注于特定类型的下游任务(如span prediction
任务、生成任务等),限制了其适用性。在论文
《BART: Denoising Sequence-to-Sequence Pre-training for Natural Language Generation, Translation, and Comprehension》
中,作者提出了Bidirectional and Auto-Regressive Transformer: BART
,它预训练了一个结合了双向的和自回归的Transformer
的模型。BART
是一个用sequence-to-sequence
模型构建的降噪自编码器,适用于非常广泛的下游任务。预训练有两个阶段:- 以任意的噪音函数破坏文本。
- 学习一个
sequence-to-sequence
的模型来重建原始文本。
BART
使用一个标准的基于Tranformer
的神经机器翻译架构,尽管它很简单,但可以看作是对BERT
(具有双向编码器)、GPT
(具有有从左到右的解码器)、以及许多其他最近的预训练方案的推广(如下图所示)。这种设置的一个关键优势是噪音的灵活性:可以对原始文本进行任意的变换,包括改变其长度。论文评估了一些噪音方法,发现性能最佳的方法是:同时进行随机混洗原始句子的顺序、以及使用一种新颖的
in-filling
方案(任意长度的文本区间text span
,包括零长度,被替换为单个mask token
)。这种方法通过迫使模型对整体句子的长度进行更多的推理,以及对输入进行更长范围的变换,从而推广了BERT
中的原始word masking
和next sentence prediction
的目标。当对文本生成任务进行微调时,
BART
特别有效,但对文本理解任务也很有效。BART
在GLUE
和SQuAD
上以comparable
的训练资源获得与RoBERTa
相匹配的性能,并在一系列抽象式对话abstractive dialogue
、问答、和摘要summarization
任务上取得了新的SOTA
的结果。例如,BAER
比以前关于XSum
的工作提高了6 ROUGE
的性能。abstractive dialogue
是非抽取式的。抽取式对话是从给定的段落中抽取答案,而抽象式对话需要生成答案。BART
还开辟了微调的新思维方式。论文提出了一个新的机器翻译方案,其中BART
模型被堆叠在几个额外的transformer layer
之上。这些额外的transformer layer
被训练成将外语翻译成有噪音的英语,通过BART
的传播,从而将BART
作为预训练的target-side language model
。在WMT Romanian-English benchmark
中,这种方法比强大的机器翻译baseline
的性能提高了1.1 BLEU
。为了更好地理解这些效果,论文还报告了复现最近提出的其他训练目标的消融研究。这项研究使我们能够仔细控制一些因素,包括数据和优化超参数,这些因素已被证明和训练目标的选择一样对整体性能同样地重要。论文发现,在所考虑的所有任务中,
BART
表现出一致的最强大性能。相关工作:
早期的预训练方法是基于语言模型的。
GPT
只建模左侧的上下文,这对某些任务来说是有问题的。ELMo
拼接了纯左侧和纯右侧的representation
,但没有预训练这些特征之间的交互。GPT-2
证明,非常大的语言模型可以作为无监督的多任务模型。
BERT
引入了masked language modelling
,允许预训练学习左右两侧上下文单词之间的交互。最近的工作表明,通过更长的训练时间(Roberta
)、通过跨层绑定参数(Albert
)、以及通过masking span
而不是单词(Spanbert
),可以实现非常强大的性能。然而,预测不是自回归地进行的,这降低了BERT
对生成任务的有效性。UniLM
用an ensemble of masks
对BERT
进行了微调,其中某些mask
只允许左侧的上下文。与BART
一样,这使得UniLM
可以同时用于生成式的和判别式的任务。一个区别是:UniLM
的预测是条件独立的,而BART
的预测是自回归的。BART
减少了预训练和生成任务之间的不匹配,因为解码器总是在未被破坏的上下文中被训练。MASS
可能是与BART
最相似的模型。掩码了一个连续区间token
的input sequence
被映射到由这些缺失的token
组成的序列上。MASS
对判别式任务不太有效,因为不相交的token
集合被馈入编码器和解码器。XL-Net
通过以permuted order
来自回归地预测被masked token
从而扩展了BERT
。这一目标允许预测同时以左侧上下文和右侧上下文为条件。相比之下,BART decoder
在预训练期间从左到右地工作,在generation
期间与setting
相匹配。
有几篇论文探讨了使用预训练的
representation
来改进机器翻译。最大的改进来自于同时对源语言和目标语言的预训练,但这需要对所有感兴趣的语言进行预训练。其他工作表明,使用预训练的representation
可以改善编码器(《Pre-trained language model representations for language generation》
),但解码器的收益更为有限。我们展示了如何使用BART
来改善机器翻译解码器。
16.1 模型
BART
是一个降噪自编码器denoising autoencoder: DAE
,它将被破坏的文档映射到其原始文档。BART
被实现为一个sequence-to-sequence
的模型,包含一个双向编码器(作用于被破坏的文本上)、以及一个从左到右的自回归解码器。对于预训练,我们优化原始文档的负对数似然。这意味着仅在自回归解码器上计算生成原始文本的损失函数,而编码器用于编码各种被破坏的文本,因此统一了各种预训练任务(如
masked languate modeling
、next stentence prediction
)。架构:
BART
使用《Attention is all you need》
中的sequence-to-sequence
的Transformer
架构,除了以下不同:遵从GPT
,我们将ReLU
激活函数修改为GeLU
,并从 $ \mathcal N(0,0.02) $ 初始化参数。对于我们的
base model
,我们在编码器和解码器中各使用6
层;对于我们的large model
模型,我们在编码器和解码器中各使用12
层。BART
架构与BERT
架构密切相关,但有以下区别:- 解码器的每一层都额外地对编码器的
final hidden laye
进行交叉注意cross-attention
(就像在sequence-to-sequence
的transformer
模型中那样)。 BERT
在word-prediction
之前使用了一个额外的前馈网络,而BART
没有这样做。
总体而言,
BART
比同等规模的BERT
模型多了大约10%
的参数。- 解码器的每一层都额外地对编码器的
预训练
BART
:BART
是通过破坏文档,然后优化重建损失(解码器的输出和原始文档之间的交叉熵)来训练的。与现有的降噪自编码器不同,BART
允许我们应用任何类型的文档损坏document corruption
。在极端的情况下,关于原始文档的所有信息都丢失了,BART
就相当于一个语言模型。我们用几个先前提出的、新颖的变换
transformation
来进行实验,但我们相信其它的一些新的替代方案有很大的潜力。我们使用的变换总结如下,一些例子如下图所示。Token
掩码Token Masking
:遵从BERT
,随机采样的token
被替代为[MASK]
。Token
删除Token Deletion
:随机采样的token
被直接删除。与Token Masking
相反,模型必须决定哪些位置是缺失的(Token Masking
通过[MASK]
知道哪些位置是缺失的)。下图中的
Token Deletion
有误,应该是AC.E.
,因为原始的文本只有两个.
。文本填充
Text Infilling
:随机采样一些text span
,其中span
长度服从泊松分布 $ \lambda = 3 $ 。每个span
都被替换为一个[MASK]
。如果span
长度为0
,那么对应于插入[MASK]
。Text Infilling
受到SpanBERT
的启发,但是SpanBERT
从一个不同的分布(截断的几何分布clamped geometric
)中采样span
长度,并且用一个长度完全相同的[MASK]
序列来替换每个span
。Text Infilling
使模型能够预测一个span
中缺失多少个token
。泊松分布的
$ \lambda $ 指定了期望,即,这些span
长度的期望为3
。假设平均的输入序列长度为 $ n $ ,那么掩码率为 $ 3/n $ 。句子排列
Sentence Permutation
:一个文档根据句号被分成几个句子,这些句子以随机的顺序被混洗。文档旋转
Document Rotation
:均匀随机地选择一个token
,然后旋转文档,使其以该token
开始。这项任务训练模型来识别文档的开始。
这些
transformation
的价值在不同的下游任务中差异很大。微调
BART
:BART
产生的representation
可以通过多种方式用于下游应用。序列分类任务
Sequence Classification Tasks
:对于序列分类任务,相同的输入被馈入编码器和解码器,final decoder token
的final hidden state
被馈入新的线性分类器。编码器输入:被整体分类的文本序列;解码器输入:被整体分类的文本序列。
这种方法与
BERT
中的[CLS] token
有关。但是,我们将additional token
添加到最后,这样解码器中的additional token
的representation
就可以从完整的输入中attend
解码器状态(如下图(a)
所示)。BART
中没有[CLS] token
,而是把解码器整个序列的representation
视为additional token
(下图中没有画出来)的representation
。因为解码器是从左右到的,因此
[CLS] token
不能位于左侧第一个位置,因为这个位置无法看到任何上下文。Token
分类任务Token Classification Tasks
:对于token
分类任务,如SQuAD
的answer endpoint
分类 ,我们将完整的文档馈入编码器和解码器,并使用解码器的top hidden state
作为每个单词的representation
。这个representation
被用来对token
进行分类。编码器输入:被
token
分类的文本序列;解码器输入:被token
分类的文本序列。序列生成任务
Sequence Generation Tasks
: 因为BART
有一个自回归解码器,它可以直接为序列生成任务进行微调,如抽象式问答abstractive question answering
任务、摘要任务。在这两项任务中,信息都是从输入中复制出来的,这与降噪预训练的目标密切相关。在这里,编码器的输入是输入序列,而解码器则自动生成输出。编码器输入:上下文序列;解码器输入:目标序列。
机器翻译
Machine Translation
: 我们还探索使用BART
从而为英语翻译来改进机器翻译解码器。之前的工作《Pre-trained language model representations for language generation》
表明,通过融合预训练的编码器可以改善模型,但在解码器中使用预训练的语言模型的收益有限。我们表明:可以将整个BART
模型(包括编码器和解码器)作为机器翻译的单个预训练解码器,方法是增加一组新的编码器参数,这些参数是从bi-text
中学到的(如下图(b)
所示)。bi-text
指的是同时包含源语言文本和对应的翻译语言文本的text pair
。更准确而言,我们用一个新的随机初始化的编码器取代
BART
的encoder embedding layer
。该模型是端到端来训练的,它训练新的编码器将外语单词映射成BART
可以降噪成英语单词的input
。新的编码器可以使用与原始BART
模型不同的词表。我们分两步训练新的编码器,在这两种情况下,都是从
BART
模型的输出中反向传播交叉熵损失:在第一步中,我们冻结了大部分
BART
参数,只更新随机初始化的新编码器、BART positional embedding
、以及BART
编码器第一层的self-attention input projection matrix
。给定
query
矩阵 $ \mathbf Q $ ,key
矩阵 $ \mathbf K $ ,value
矩阵 $ \mathbf V $ 作为self-attention
的输入,self-attention
为:其中:
$ \mathbf W^Q,\mathbf W^K,\mathbf W^V $ 就是self-attention
的输入投影矩阵。 通过针对不同的任务来适配这三个输入投影矩阵,模型就可以很好地迁移到不同的任务。因为冻结后面的层,只需要调整第一层,就可以使得第一层的输出能够适配后面层的需求。在第二步中,我们以少量的迭代来训练所有模型参数。
16.2 预训练目标的比较
与以前的工作相比,
BART
在预训练期间支持更广泛的噪声方案。我们使用base-size
的模型(6
个编码器层和6
个解码器层,隐层维度为768
)对一系列方案进行了比较,在一个有代表性的任务子集上进行了评估。预训练目标之间的比较:虽然人们已经提出了许多预训练目标,但这些目标之间的公平比较一直难以进行,至少部分原因是训练数据、训练资源、模型之间的结构差异、以及微调程序的不同。我们重新实现了最近提出的强大的预训练方法。我们的目标是尽可能地控制与预训练目标无关的差异。然而,我们确实对学习率和
layer normalisation
的使用做了微小的改变,以提高性能(为每个预训练目标分别调优这些)。作为参考,我们将我们的实现与BERT
公布的数字进行了比较。BERT
也是在Books
和Wikipedia
数据的组合上训练了100
万步。我们比较了以下预训练目标:Language Model
:与GPT
类似,我们训练一个left-to-right
的Transformer
语言模型。这个模型等同于BART
解码器,没有与编码器的cross-attention
。Permuted Language Model
:基于XLNet
,我们采样了1/6
的token
,并以随机顺序自回归地生成它们。为了与其他模型保持一致,我们没有实现XLNet
的relative positional embedding
或跨segment
的注意力。Masked Language Model
:遵从BERT
,我们随机选择15%
的token
并用[MASK]
符号来替代,并训练模型独立地预测被掩码的原始token
。Multitask Masked Language Model
:与UniLM
一样,我们用额外的自注意力掩码来训练Masked Language Model
。自注意力掩码是按以下比例随机选择的:1/6
从左到右、1/6
从右到左、1/3
无掩码、1/3
采用前50%
的token
无掩码而剩下的50%
是从左到右的掩码。Masked Seq-to-Seq
:受MASS
的启发,我们掩码了一个span
,其中这个span
包含了50%
的token
,并训练一个sequence-to-sequence
模型来预测被掩码的token
。
对于
Permuted LM
、Masked LM
、以及Multitask Masked LM
,我们使用双流注意力two-stream attention
(参考Xlnet
的原始论文)来有效地计算序列的输出部分的似然likelihood
。我们进行了两种实验:
将任务视为标准的
sequence-to-sequence
问题,其中source sequence
馈入编码器,而target sequence
是解码器的输出。在解码器中把
source sequence
作为前缀加入target sequence
作为一个整体序列,仅在这个整体序列的target sequence
部分上计算损失。即,把
source sequence
视为上下文,而target sequence
视为预测目标。
我们发现前者对
BART
模型的效果更好,而后者对其他模型的效果更好。论文没有数据来支撑这个结论,所以感觉很突兀。
为了最直接地比较我们的模型对微调目标的建模能力,对于生成任务,我们在
Table 1
中报告了困惑度(而不是ROUGE
指标)。任务:
SQuAD
:是一项关于百科全书段落的抽取式问答任务extractive question answering task
。答案是从一个给定的文档上下文中抽取的text span
。与BERT
类似,我们使用拼接的问题和上下文作为BART
编码器的输入;此外,我们也把拼接的问题和上下文传递给解码器,并在解码器上为每个token
预测:该token
作为答案开始的概率、作为答案结束的概率。MNLI
:一个bi-text
的分类任务,预测一个句子是否包含另一个句子。微调后的模型将两个句子与附加的EOS token
拼接起来,并将它们同时传递给BART
编码器和解码器。与BERT
不同的是,解码器上EOS token
的representation
被用来对句子关系进行分类。ELI5
:一个格式很长的抽象式问答数据集abstractive question answering dataset
。模型拼接问题和支持性文档supporting document
,然后以拼接后的字符串为条件来生成答案。XSum
:一个新闻摘要数据集。ConvAI2
:一个对话响应生成任务dialogue response generation task
,以上下文和人物为条件。CNN/DM
:一个新闻摘要数据集。这里的摘要通常与源句子source sentence
密切相关。
结果如下表所示,有几个趋势是明显的:
同一个预训练方法的性能在不同的任务中差异很大:预训练方法的有效性高度依赖于任务。例如,简单的语言模型在
ELI5
中取得了最好的性能,但是在SQUAD
中取得了最差的性能。根据下表的第二个
block
(即Masked Language Model
到Multitask Masked Language Model
)。Token Masking
是至关重要的:基于Document Rotation
或Sentence Shuffling
的预训练目标在单独的情况下表现很差。成功的方法要么使用Token Deletion
或Token Masking
,要么使用Text Infilling
。在生成任务上,Token Deletion
似乎比Token Masking
更有优势。最后四个任务为生成式任务(指标为
PPL
)。从左到右的预训练改善了生成任务:
Masked Language Model
和Permuted Language Model
在生成方面的表现不如其他模型。双向编码器对
SQuAD
至关重要 :正如以前的工作(BERT
论文)所指出的,仅仅从左到右的解码器在SQuAD
上表现不佳(参考Language Model
这一行),因为未来的上下文对分类决策至关重要。然而,BART
只用一半数量的bidirectional layer
就能达到类似的性能。预训练目标不是唯一的重要因素:我们的
Permuted Language Model
的表现不如XLNet
。这种差异的一部分可能是由于没有包括XLNet
的其他改进,如relative-position embedding
或segment-level recurrence
。纯语言模型在
ELI5
上表现最好:ELI5
数据集是一个例外,其困惑度比其他任务高得多,是唯一的、其他模型优于BART
的生成任务。纯语言模型表现最好,这表明当输出只受到输入的松散约束时,BART
的效果较差。BART
取得了最一致的强劲表现:除了ELI5
之外,使用Text Infilling
的BART
模型在所有任务中都表现良好。
16.3 大型预训练实验
最近的工作表明,当预训练扩展到大
batch size
和大型语料库时,下游任务的性能可以大幅提高。为了测试BART
在这种范围下的表现,并为下游任务创建一个有用的模型,我们使用与RoBERTa
模型相同的规模来训练BART
。实验配置:我们预训练了一个大型模型,编码器和解码器各有
12
层,隐层维度为1024
。遵从RoBERTa
的做法,我们batch size = 8K
,并对模型训练500K
步。文档采用与GPT-2
相同的BPE
进行tokenize
。根据前面的实验结果,我们使用
text infilling
和sentence permutation
的组合。对于每篇文档我们掩码了30%
的token
,并对所有的句子进行permute
。虽然sentence permutation
在CNN/DM
摘要数据集上显示出明显的加性增益additive gain
,但我们假设更大的预训练模型可能会更好地从这个任务中学习。为了帮助模型更好地适应数据,我们在最后
10%
的训练step
中禁用dropout
。我们使用与Roberta
相同的预训练数据,由新闻、书籍、故事和网络文本组成的160Gb
数据。判别式任务:下表将
BART
的性能与最近几种方法在SQuAD
和GLUE
任务上进行了比较。最直接的可比baseline
是RoBERTa
,它是用相同的资源进行预训练的,但采用不同的预训练目标。总的而言,
BART
和这些模型的表现相似。在大多数任务上,模型之间只有很小的差异。这表明BART
在生成任务上的改进并没有牺牲分类任务上的性能。在
CoLA
任务上,BART
与CoLA
的差距有点大。生成任务:我们还对几个文本生成任务进行了实验。
BART
作为标准的sequence-to-sequence
模型来被微调。在微调过程中,我们使用label smoothed
的交叉熵损失,平滑参数设置为0.1
。在生成过程中,我们将beam size
设置为5
,在beam search
中删除重复的trigram
,并在验证集上调优min-len, max-len, length penalty
。摘要:为了提供与
SOTA
的文本摘要方法的比较,我们在两个摘要数据集CNN/DailyMail
和XSum
上展示了结果,这两个数据集有不同的属性。CNN/DailyMail
中的摘要倾向于类似于源句子。抽取式模型extractive model
在这里表现良好,甚至前三个源句子的baseline
也具有很强的竞争力。然而,BART
的表现超过了所有现有的工作。相比之下,
XSum
是高度抽象abstractive
的,抽取式模型表现很差。BART
在所有的ROUGE
指标上比以前最好的工作高出大约6.0
分(这表明这个问题上性能的重大进步)。从质量上看,样本质量很高(参考本文后续的定性分析)。ROUGE-N
为:ground-truth
的N-gram
召回率;ROUGE-L
为:prediction
与ground-truth
的最长公共子序列(以token
来计算)的F1
得分。
对话:我们评估了
CONVAI2
的对话响应生成dialogue response generation
,其中agent
必须同时根据先前的上下文和文本指定的角色来生成响应。BART
在两个automated metrics
上优于之前的工作。抽象式问答:我们使用最近提出的
ELI5
数据集来测试该模型生成长的自由格式答案的能力。我们发现BART
比以前最好的工作高出1.2 ROUGE-L
。但该数据集仍然具有挑战性,因为答案只是由问题弱弱地指定了。
翻译: 我们还评估了
WMT16 Romanian-English
的性能,并以《Edinburgh neural machine translation systems for WMT 16》
的back-translation
数据作为数据增强。我们使用一个6
层的transformer source encoder
将罗马尼亚语Romanian
映射成一个representation
,然后BART
能够利用这个representation
来降噪成英语English
。即,
Romanian
句子首先馈入一个6
层的transformer source encoder
,这个encoder
的输出再馈入BART
。假设我们需要将
A
语言翻译成B
语言,back-translation
的做法分为三步:- 首先,利用
B -> A
的bi-text
语料来训练一个从B
语言翻译成A
语言的模型(与目标方向相反)。 - 然后,利用
B
语言的单语语料、以及B -> A
的模型,翻译得到A
语言的单语语料。 - 将生成的
A
语言的单语语料与B
语言的单语语料人工合成A -> B
的bi-text
语料。
实验结果如下表所示。
baseline
为Transformer-Large
。我们同时评估了Fixed BART
和Tuned BART
。我们beam width = 5
、以及length penalty = 1
。初步结果表明:我们的方法在没有back-translation
数据的情况下效果较差,而且容易出现过拟合。未来的工作应该探索更多的正则化技术。这个结论没有数据支撑?
Fixed BART
和Tuned BART
表示什么?作者都没有讲。BLEU
为prediction
的n-gram
的precision
的加权和,n=1,2,...,N
,权重分为两部分:第一部分是 $ 1/N $ ,用于对多个n-gram
取平均;第二部分是句子简短惩罚Brevity Penalty
,用于惩罚太短的prediction
。- 首先,利用
定性分析:
BART
在文本摘要指标上有很大的改进,比之前的SOTA
提升高达6
个点。为了理解BART
在automated metrics
之外的表现,我们对它的生成内容进行了定性分析。下表展示了由
BART
生成的摘要实例。样本来自WikiNews
文章,该文章是在我们创建预训练语料库之后才发表的,以消除被描述的事件存在于模型训练数据中的可能性。遵从《Don’t give me the details, just the summary! topic-aware convolutional neural networks for extreme summarization》
的做法,在总结文章之前,我们删除了文章的第一句话,所以不存在容易抽取的文章摘要。不出所料,模型输出是流利的、符合语法的英语。然而,模型的输出也是高度抽象的,很少有从输入中复制的短语。输出通常也是事实上准确的,并将整个输入文件的支持性证据
supporting evidence
与背景知识结合起来(例如,正确补全名字,或推断PG&E
在California
运营)。在第一个例子中,推断出 “鱼在保护珊瑚礁免受全球变暖的影响” 需要从文本中进行困难的推理。然而,关于 “这项工作发表在《科学》上” 的说法并没有得到source document
的支持。这些样本表明,
BART
预训练已经学会了自然语言理解和自然语言生成的强大组合。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论