论文总结
BERT模型的提出几乎就是针对于GPT的,文章实验部分主要就是在和GPT进行效果对比。因此,BERT模型总体上就是在GPT提出的基础上,进行了一部分创新和优化,提出了Bidirectional双向语言模型,预训练阶段采用遮罩语言模型(Masked LM)。论文同时也进行了模型下游任务训练时feature-based和fine-tuning的对比分析。
BERT模型的测试结果,有几个重要结论和启发:
1.双向语言模型(Bidirectional)优于单向语言模型(Unidirectional);
2.fine-tuning在大部分情况下优于feature-based,但是fine-tuning也需要更高昂的成本;
3.采用Transformer encoder和采用Transformer decoder可以让模型胜任不同任务;
GPT和BERT相同点
1.都是基于pre-train+fine-tuning的二阶段模型架构;
2.都是基于Transformer的自然语言模型;
GPT和BERT不同点对比
训练阶段 | 差异项 | GPT | BERT |
---|---|---|---|
预训练阶段 | 预训练模型 | 单向语言模型(左至右) | 双向语言模型(遮罩语言模型) |
预训练目标 | 预测出给定文本后出现的文本 | 预测出遮罩的词 | |
Transformer架构区别 | decoder-only | encoder-only | |
适用场景区别 | decoder特点在于文本生成(text-generation),擅长解决例如翻译、段落归纳、编写创作 | encoder特点在于,擅长理解和解决理解之后的任务,例如问题回答、情感分析 | |
预训练数据集 | 在通用大数据集上进行预训练 | 可以在特定数据集上进行预训练 | |
调参阶段 | 具体到不同任务都会有不同的细微处理差异,并且两个模型实验方向也不完全相同 | 1.自然语言推理(NLI)2.问题回答和常识(SQuAD)3.语义相似度(MRPC)4.分类(CoLA) | 1.通用语言理解任务(GLUE,包含MRPC、CoLA等)2.标准问题回答任务(SQuAD)3.常识推理任务(SWAG) |
注释:为什么BERT采用双向语言模型
任何文本天然具有双向性。举个例子,“我要去洗衣服”,“我要去穿衣服”,左至右的理解可以获取洗和穿这两个动作可以衔接衣服这个物体,右至左的理解可以获取衣服这件物体是可以被洗和穿的。对于这两句话,左至右强调动作理解,右至左强调实体理解。因此BERT提出的双向语言模型架构会比类似于GPT这样的单向语言模型架构获取更多信息。 当然,代价就是双向学习需要更高昂的成本和更久的训练时间。
网上有人提到左序语言(例如中文、英文),和右序语言(例如阿拉伯文)与BERT有关,这是一种错误的理解。BERT提出的双向语言模型和语言的左序右序并没有直接关系,BERT强调的是通过双向语言模型和遮罩语言模型(MLM)的实现形式同时获取文本的双向上下文信息,加强模型泛化能力。
论文原文解读
原论文地址:https://aclanthology.org/N19-1423.pdf
摘要
我们提供了一个新的语言模型BERT,是以下名词的首字母缩写:Bidirectional Encoder Representations from Transformers。不同于先前的语言模型研究,例如ChatGPT(Improving Language Understanding by Generative Pre-Training),BERT通过在所有层的左边和右边上下文中加入条件联合,从未标记的文本中预训练出深度的双向表示,由此得到的预训练BERT模型只需要再额外增加一个输出层,就可以被更好的调参优化,并在NLP各个领域上达到工业应用水准。例如问题回答、语言推理等领域,BERT模型都不需要特定的架构修改。
从我们的实验结果发现,BERT在11个自然语言任务中取得最高成绩,包括将GLUE分数提升7.7%达到80.5%,MultiNLI精准度提升4.6%达到86.7%,SQuAD v1.1问题回答测试提升1.5达到93.2分,SQuAD v2.0测试提升5.1达到83.1分。