内容简介:Google AI Language在2018.10发布的论文,提出一种预训练语言模型,在十多个NLP任务中取得了SOTA的效果。两种使用语言模型的方法:Feature-based,Word2Vec、Glove、ELMo,把预训练好的语言模型当做一个feature加到word embedding中。
Google AI Language在2018.10发布的论文,提出一种预训练语言模型,在十多个NLP任务中取得了SOTA的效果。
1.现有的LM
两种使用语言模型的方法:
Feature-based,Word2Vec、Glove、ELMo,把预训练好的语言模型当做一个feature加到word embedding中。
fine-tuning,OpenAI-GPT,尽量不改动预训练的语言模型,加输出层并在下游的任务上fine-tune。
他们的共同点:
1.在预训练的时候用的是同一个目标函数;
2.使用单向语言模型学习语言表示。其中,GPT在预训练的时候,预测下一个词只使用其左侧的上下文,相当于使用了Transformer的Decoder的结构。而ELMo等语言模型虽然得到了双向表示,但是是两个独立的目标函数下得到的双向表示直接拼接起来。
2.亮点
结构:
每层都是双向Context-Dependency。
目标函数:MLM(Masked Language Model) + Next Sentence Prediction。
结果:
不需要调整模型结构,只需要在预训练的LM上加上一层输出层并fine-tune就能应用在多种NLP任务。
3.细节
(1)输入:
由词向量+位置向量+Seg向量三个部分组成,
词向量,第一个词是CLS,如果是分类任务这个token对应的embedding可以作为学习到的句子表示。
可学习的位置向量,用来改善self-attention的效果。
对于Sentence-Pair输入类型,采用和GPT类似的方式concat两个句子,以Seg向量区分token所在的句子。
(2)Train Objective:
MLM:
为了改善单向LM问题,如果直接使用多层双向那么模型相当于直接看到了答案,所以使用类似Cloze的Masked Language Model。
训练的时候如果只是把输入中的一些单词mask为一个特殊字符然后预测它们,那么和使用的时候差别太大。为了减轻这个影响,使用了一些策略(mask 15%的单词):80%的概率mask为mask字符,10%的概率替代为特殊字符,10%的概率使用原有单词。
Next Sentence Prediction:
另一个pre-train的目标,预测句子之间是否是相邻关系。这样使LM在需要理解句子之间关系的下游任务中表现更好。
(3)Pre-train过程:
BookCorpus+Wiki数据的文档级别的语料,抽取出两个sentence(50%抽取相邻句子,50%抽取段落中随机句子)。
(4)Fine-Tune过程:
对于句子级别的分类过程,取第一个token的最后一层作为表示,再加上一个全连接层。
对于span级别的分类过程(比如SQuAD),增加了一个Start Vector:
和End Vector:,用这两个向量与所有token点乘的softmax作为每个token作为span的概率。
4.缺陷
MLM每个batch只需要预测15%的Mask Token,所以比之前的LM收敛要慢。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Paradigms of Artificial Intelligence Programming
Peter Norvig / Morgan Kaufmann / 1991-10-01 / USD 77.95
Paradigms of AI Programming is the first text to teach advanced Common Lisp techniques in the context of building major AI systems. By reconstructing authentic, complex AI programs using state-of-the-......一起来看看 《Paradigms of Artificial Intelligence Programming》 这本书的介绍吧!