引言
Google在2018年发出来的论文,原文地址:BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding
BERT实际上是一个语言编码器,或者说做的是representaion方面的工作,主要作用是将输入的句子或者段落转化为相应的语义特征。
作者提到当前的很多工作都限制了pre-train的潜力,传统语言模型是简单的left-to-right结构,这种形式其实损失右侧上下文信息;或者由两个单向模型叠加,也不能很好的利用上下文。另一个,单纯的语言模型也不能很好的解决某些需要判断句子间关系的任务。
因此,论文使用了以下的模型结构:
1、基于transformer的基本网络结构
2、利用Mask LM实现双向模型预训练
3、利用Next Sentence Prediction实现句子间关系预训练
模型在11项NLP任务上都取得了SOTA的结果,其中包括NER,阅读理解等。
Transfer Learning
目前的深度学习任务中,已经形成了两段式的形式,即训练语义表示,再基于语义表示构建下游任务。其中关于下游任务使用预训练的表达存在两种形式,即:feature-based和fine-tuning。
Feature-based Approaches
Feature-based的形式即是把预训练出来的语义特征当成下游任务的特征,典型的如word2vec或者ELMO,在下游任务中,预训练的特征保持不变。
Fine-tuning Approaches
另一种形式即是在预训练语言模型的基础上,添加task special的层,比如增加一个softmax用于分类判断。
利用标记语料进行再次训练,在这个过程中所有参数都是可训练的。
模型
基础结构是Multi-layer bidirectional Transformer encoder,即是Attention is all you need论文中提出的结构,使用attention代替RNN等传统特征抽取器,在浅层就能够抽取到全局特征。
上图左侧即为BERT模型,对比中间的GPT模型,一个显著的区别是GPT是left-to-right的形式,而BERT抛弃了传统语言模型的训练方式,直接获取上下文的信息。
相比ELMo模型,这里实现的双向虽然也在一定程度上获取到全局信息,但这种上下文信息实际是左文加右文,同时LSTM在特征抽取上的能力相比transformer也较弱。
Google提供了两个不同大小的模型,参数如下:
- B E R T B A S E BERT_{BASE} BERT