一、《GPT: Improving Language Understanding by Generative Pre-Training
1、尽管大型未标记文本语料库很丰富,但用于学习这些特定任务的标记数据很少,这使得模型很难得到充分的训练。本文证明通过在大量无标注不同的语料中进行generative pre-training,然后在每个特定任务上进行discriminative fine-tuning可以很大的提升在各个任务上的结果。和之前的方法相比,在微调阶段,本文充分利用基于任务的输入变换,对模型的框架进行少许的改变,以实现很好的效果。
2、大多数深度学习方法需要很多的有标签数据,这就导致其在很多领域没有得到很好的效果。在这种情况下,从无标注数据中获取语言信息提供了一个很好的替换方法,此外,即使在有大量监督的情况下,以无监督的方式学习良好的表示也可以显着提高性能。例如现在用的预训练的word embedding。从无标注文本中获取word级别的信息很难,因为首先目前尚不清楚哪种类型的优化目标在学习对迁移有用的文本表示方面最有效。最近研究的各个目标包括语言模型、机器翻译、discourse coherence,在不同的任务上每个方法都优于其他方法。其次是对于将这些学习到的表征转移到目标任务的最有效方法,目前还没有达成共识。现有技术涉及对模型架构进行特定任务更改、使用复杂的学习方案和添加辅助学习目标的组合 。这些不确定性导致很难有有效的半监督学习方法应用于语言处理中。
3、本文本文提出一个半监督的方法,使用无标注数据进行无监督预训练,然后进行监督微调。本文要学习一个公共的表示,改变很少就可以应用到下游任务。在模型架构中,本文使用了transformer,在传输过程中,我们利用来自遍历式方法的基于特定于任务的输入适应,将结构化文本输入处理为单个连续的标记序列。 这些调整使对预训练模型的架构进行最小更改的情况下进行有效的微调。
二、《ELMo Deep contextualized word representations
1、本文提出一个新的深度语境化的词表示,对词使用的复杂特征(例如句法和语义)和这些使用如何在语言上下文中变化(即对多义词建模)进行建模。本文的词向量是深度双向语言模型 (biLM) 内部状态的学习函数,该模型在大型文本语料库上进行了预训练。
2、学习高质量的表示需要对两个因素建模:单词使用的复杂特征(例如,句法和语义),以及这些使用如何在语言上下文中变化(即对多义词进行建模)。 本文构建的深度语境化词表示解决了上面的问题,本文的表示不同于传统的词类型嵌入,词是一种静态的表示,无论在任何的上下文中都使用同一个向量,这种情况下很难表示一词多义的现象。 本文是通过上下文动态生成词向量,本文使用经过大量语料训练的双向LSTM中的向量,不像以前是学习语境化的词向量,ELMo(Embeddings from Language Models)是深度的,从某种意义上说,它们是 biLM 的所有内部层的函数。具体的,本文学习一个每一个结束任务的每一个输入叠加起来的向量的线性组合,它比仅仅使用最顶层的LSTM表现要好。
3、和word2vec对比来说,原来的词向量都是在特定语料上直接训练的,你要做啥任务就直接把词向量搬过来做任务了,最多训练的时候fine-tune一下,基本很少训练,也学不到特定环境中的语义信息,特别是这篇文章中指出的一词多义。因此就有了ELMo
Structbert: Incorporating Language Structures Into Pre-training For Deep Language Understanding
1、本文通过把语言结构信息引入预训练中,提出StructBert。在训练过程中使用了两个辅助任务,充分利用词语和句子的序列顺序信息,这是分别在单词和句子级别利用语言结构。它旨在通过在所有层中联合调节左右上下文来预训练双向表示,并通过仅通过上下文预测掩码词来对表示进行建模。 但是,它没有充分利用潜在的语言结构。 本文的模型通过打乱词语和句子间的顺序关系,然后让模型重构其正确顺序。
2、本模型包括两个任务:第一、在词mask后,打乱词的顺序,预测正确顺序。第二、为了更好的理解句子之间的关系,打乱句子顺序,预测下一个和之前的句子。这样,模型不仅可以捕获每个句子中词的结构信息,还可以获得句子间的结构信息。
3、在词结构任务中,首先按照以往的mask策略,进行mask15%的词。然后打乱未被mask的词,进行预测其正确顺序,这里打乱5%的3gram。在句子结构任务中,给定句子对,判断句子1是句子2的下一个句子、前一个句子、或者不同文档中的随机一个句子。在训练的时候,这三项分别占据1/3.这两个句子用[SEP]连接,输入bert。
RoBERTa: A Robustly Optimized BERT Pretraining Approach
1、参数的选择对结果影响很大,本文研究BERT的一个比较好的一个参数选择、训练数据的大小,本文发现BERT并没有完全被训练好,其还有很多潜力,其可以持平或者超越在其后面提出的几个模型。改进的地方主要有:以更大的批次、更多的数据训练时间更长,去掉NSP任务,用长句子训练,动态改变MASK。并提出新的数据集(CC-NEWS)。
2、在原始BERT中,mask是在数据预处理时,其又称为静态MASK,为了避免在每个 epoch 中对每个训练实例使用相同的掩码,将训练数据复制 10 次,以便在 40 次训练中以 10 种不同的方式对每个序列进行掩码。 因此,在训练过程中,每个训练序列都使用相同的掩码四次 。本文提出动态MASK,在每一次将句子输入模型之前都生成一个MASK,这在预训练多个步数和用大的数据集训练时非常有用。