双向预训练语言模型BERT

栏目: 编程工具 · 发布时间: 6年前

内容简介: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所在的句子。

双向预训练语言模型BERT

(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收敛要慢。


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Effective Java 中文版

Effective Java 中文版

(美)Joshua Bloch / 潘爱民 / 机械工业出版社 / 2003-1 / 39.00元

本书介绍了在Java编程中57条极具实用价值的经验规则,这些经验规则涵盖了大多数开发人员每天所面临的问题的解决方案。通过对Java平台设计专家所使用的技术的全面描述,揭示了应该做什么,不应该做什么才能产生清晰、健壮的高效的代码。 本书中的每条规则都以简短、独立的小文章形式出现,这些小文章包含了详细而精确的建议,以及对语言中许多细微之处的深入分析,并通过例子代码加以进一步说明。贯穿全书的是通用......一起来看看 《Effective Java 中文版》 这本书的介绍吧!

MD5 加密
MD5 加密

MD5 加密工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具