BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding论文学习
BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding论文学习
INTRODUCTION
在nlp领域,语言模型的预训练可以提高下游模型表现,主要有两个类型:
1.基于特征的,例如ELMO:用做任务的模型来学习提前预训练好的语言模型内部隐状态的组合参数
2.微调,例如OPENAI、GRT用做任务的数据来微调已经训练好的语言模型
以上预训练存在的问题:
仅仅考虑文本的单项顺序,没有解决同时学习词汇上下文的信息问题。(EKMO只是从左到右,从右到左拼接到一起)。
CONTRIBUTIONS
1.提出新的预训练语言模型的方法—双向学习。
2.减轻网络结构复杂度。
3.刷新了各大任务指标,nlp的11大任务。
Architecture
BERT是基于多层双向Transformer编码器。
BERT的2个步骤:
pre-training BERT模型在不同任务的未标记数据上进行训练。预训练模型的参数会做为不同下游任务的模型的初始化参数。
fine-tuning BERT模型用预训练好的参数进行初始化,基于下游任务的有标签的数据来训练参数。每个下游任务有自己的微调模型。
主要介绍一下预训练的部分。
Input Representations
首先是模型的输入,模型的输入包括三个部分,分别为
1)基于词级别的词向量- 针对每一个单词的embedding
2)每一个句子的向量- 告诉模型这个单词是来自第一个句子还是第二个句子的
3)基于位置的向量 - 告诉模型每一个单词在一个句子中的位置信息
对于每一个token, 它的表征由其对应的token embedding, 段表征(segment embedding)和位置表征(position embedding)相加产生。
BERT Pre-training Tasks
BERT是一个多任务模型,它由两个任务组成,即MLM和NSP
Masked language Model
采取新的预训练的目标函数提出了一种屏蔽一句话中的部分词的训练方法,然后让模型来预测屏蔽的那个词
在随机确定了15%个要被[MASK]的单词后,句子要被多次送入模型训练,并没有在每次都mask掉这些单词,而是
80%的时候会直接替换为[Mask]
eg:my dog is cute -> my dog is [mask]
10%的时候将其替换为其它任意单词
eg:my dog is cute -> my dog is apple
10%的时候会保留原始Token
eg:my dog is cute -> my dog is cute
这样做的好处是学习到的表征能够融合两个方向上的context。Transformer 编码器不知道它将被要求预测哪些单词,或者哪些单词已经被随机单词替换,因此它被迫保持每个输入标记的分布的上下文表示。
(选择15%的原因:避免fine-tuning的时候,模型有一些没见过的单词[mask],预训练过程与fine-tuning不匹配。缺点是,输入一个句子,只预测句子中15%的词,需要更多迭代次数以收敛(不懂),训练很慢。加入任意单词,可以看作是加入噪音,使模型更健壮。保留原始Token的原因是:使表示偏向于实际观察到的词。)
Next Sentence Prediction
增加句子级别的任务
NSP的任务是判断句子B是否是句子A的下文。
从语料中随机抽取连续的两句话,其中50%保留抽取的两句话,一半是正确的,一半是错误的。
[CLS]时一个特别设置的符号,添加在每个输入样本的前面,表示这是一个输入样本的开始
[SEP]是特别设置的一个分隔标记。比如分隔questions/answers
Fine-tuned
对于每个任务,我们只需将特定于任务的输入和输出应用到BERT中,并端到端地微调所有参数。
不同类型的任务需要对模型做不同的修改
Experiments
GLUE:自然语言任务集合,包含了各种理解句子含义和关系的任务
BERT在每一个单项上的表现都是最优。
SQuAD v1.1:斯坦福问答数据集 100k的问答对集合
给定一个问题和一篇短文,以及对应的答案,任务是预测出短文中的答案文本
SWAG
数据集包含113k个句子对完整示例,用于评估基于常识的推理。给定一个句子,任务是从四个选项中选择出最有可能是对的的continuation(延续/扩展)。
BERT在该领域的表现接近人类。
pre-train model的影响
对于MLM、NSP的选择是否会影响模型性能,这里做了测试,分别采用了四种模型设置进行比较,性能如下所示,显然BERTBase的效果最好的。
- 点赞
- 收藏
- 分享
- 文章举报
- BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding 论文笔记
- 阅读笔记:BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding
- BERT:Pre-training of Deep Bidirectional Transformers for Language
- [深度学习论文笔记][Weight Initialization] Understanding the difficulty of training deep feedforward neural
- CVPR 论文阅读与翻译2:图像检索、哈希编码学习、深度哈希:Deep Learning of Binary Hash Codes for Fast Image Retrieval-2015
- Deep Learning for Design and Retr of Nano-photonic Structures 论文学习
- [深度学习论文笔记][Weight Initialization] Random walk initialization for training very deep feedforward netw
- [深度学习论文笔记][Video Classification] Beyond Short Snippets: Deep Networks for Video Classification
- deeplearning论文学习笔记(2)A critical review of recurrent neural networks for sequence learning
- SCNN车道线检测--(SCNN)Spatial As Deep: Spatial CNN for Traffic Scene Understanding(论文解读)
- A Key Volume Mining Deep Framework for Action Recognition论文学习
- 论文学习-深度学习目标检测2014至201901综述-Deep Learning for Generic Object Detection A Survey
- 论文阅读理解 - Deep Learning of Binary Hash Codes for Fast Image Retrieval
- 车道线检测Spatial As Deep: Spatial CNN for Traffic Scene Understanding(论文解读)
- 【医学+深度论文:F09】2018 Deep Convolution Neural Network for Accurate Diagnosis of Glaucoma Using Digital
- Knowledge Projection for Effective Design of Thinner and Faster Deep Neural Networks论文初读
- 【deep learning学习笔记】Greedy Layer-Wise Training of Deep Networks
- [深度学习论文笔记][arxiv 1702]Understanding Convolution for Semantic Segmentation
- 【论文精读】Select Via Proxy: Efficient Data Selection For Training DeepNetworks
- 深度学习论文笔记-Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition