BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding
由 @快刀切草莓君 阅读编写。
两种为下游任务应用预训练模型表示的现存策略
基于特征 e.g. ELMo:使用包括预训练表示作为额外特征的特定任务架构
精调 e.g. GPT Generative Pre-trained Transformer 引入最少的特定任务参数
这两种策略都使用了单一方向语言模型 限制了与训练表示的能力
benchmark:GLUE, MultiNLI, SQuAD
简要回顾使用最广的预训练泛化语言表示(pre-training general language representations) 方式。
预训练的词嵌入(word embedding),使用了从左至右的语言模型目标以及从左到右找不正确的词discriminate correct from incorrect word。这些方法泛化后,得到句子和段落的嵌入。
训练句子的表示:给下个句子打分;根据给定的句子,从左至右生成下一个句子的词。
ELMo,从双向语言模型中提取语境相关特征(contextual representation)
GPT,左到右的语言建模和自动编码目标。
大数据集监督学习任务:机器翻译、自然语言推理;ImageNet:迁移学习的重要性
两个阶段:预训练(使用无标签数据在不同的预训练任务)、精调(用与训练参数初始化后,用有标签数据精调)
[CLS]:在每个输入例子前;[SEP]:特殊分隔符
不同的下游任务都有独立的精调模型,但是这些精调模型和预训练模型差异很小。
模型架构:多层双向Trnsformer编码器
BERT-BASE (L=12, H=768, A=12, Total Parameters=110M) ; GPT的规模
BERT-LARGE (L=24, H=1024, A=16, Total Parameters=340M).
L:Transformer块,H:隐藏层size,A:自注意力机制头数
输入输出表示 Input/Output Representations
使用两个无监督任务来预训练BERT:Masked LM, Next Sentence Prediction(NSP)
任务1:Masked LM
任务2:预测下一个句子 NSP
BERT在11个NLP任务上精调后的结果。
GLUE:不同的自然语言理解任务的集合:MNLI、QQP、QUNLI、SST-2、CoLA ….
使用单个句子或句子对输入,使用与[CLS]对应的token作为聚合表示;仅引入了一个新的分类层。
SQuAD:100k 源于大众的问题/答案对;给定一个问题 和 wikipedia 上包含答案的一篇文章,预测文章中答案文本的标签。
使用单一的语句包来表示输入的问题和文章,问题使用A embedding,文章使用 B嵌入。
精调过程中引入了开始向量S和结束向量E,通过 \(Ti\) 和 \(S\) 的点积来计算\(i th\)词是答案范围(answer span)的开始之概率,最后对所有的词进行softmax。 \(Tj\) 和 \(E\) 计算结束。i -> j 备选范围的分数 \(S·Ti + E·Tj\) ,j>i
的分数最大的范围被当作输出。
训练目标:正确的开始和结束位置的log概率之和最大。
和1.1相比,考虑到提供的段落内不存在短的答案,使得问题更真实。
在v1.1的BERT基础上,对不含答案的问题,将start和end 定在[CLS]token上;start和end的可能空间包括了[CLS] token。预测的时候比较不含答案范围的分数与非空范围:\(Snull = S·C+E·C\),\(Sij = max(S·Ti + E·Tj)\),当\(Sij
\) >\(Snull + tao\)的时候预测非空回答,tao:门槛。
SWAG: A Large-Scale Adversarial Dataset for Grounded Commonsense Inference;包含113k 句子对 竞争样本,用于评估常识推理。给定一个句子,任务是从四个选项中选择最可信的延续。
精调:每个输入序列 包含给定句子的连接(A)和 一个可能的延续(B);唯一一个 task-specific 参数,它点积 [CLS] token 得到C,用于表示每个选择的分数,后接softmax。
观察各个部分的影响
展示深度双向的重要性
不同数量 layer, hidden units, attention heads;BERTbase BERTlarge
基于特征的方法,从预训练模型中提取合适的特征,优点:
NER任务 CoNLL-2003,输入使用case-preserving WordPiece model;将其当作一个不使用CRF层的标签任务;从一个甚至更多的BERT层中提取激活值,在分类之前使用两个双向LSTM。
最近用语言模型迁移学习而来的经验带来的提升,已经说明了昂贵的、无监督学习的预训练是很多语言理解系统整体的一部分。这些结果使得一些资源较少的任务从中受益。
手机扫一扫
移动阅读更方便
你可能感兴趣的文章