BERT: Bidirectional Encoder Representations from Transformers.
摘要
论文引入了一种称为BERT的语言表征新模型,它支持transformer的双向编码器表征。与最近的语言表征模型不同(Peters et al.,2018a;Radford et al.,2018),BERT设计成通过在所有层中的左右上下文共同调节来对未标记文本的深度双向表征进行预训练。因此,预训练的BERT模型在用于其他广泛的NLP任务中仅仅只需要添加输出层即可,例如问答和语言推断,不需要进行根据特定任务对BERT进行实质性的体系结构修改。
BERT做到了理论简单,但是实验表明它是非常强大的。它在11种自然语言处理任务中取得了state-of-the-art的结果,甚至在有些任务中有非常高的提升。
1 简介
语言模型的预训练已经被证明是改善许多自然语言处理任务的有效方法。这包括sentence-level的任务,如自然语言推理(natural language inference),段落理解(paraphrasing),其目的是通过整体分析句子来预测句子之间的关系。还包括token-level的任务,比如命名实体识别(named entity recognition)和问答(question ansewering),这些模型被要求产生token级别的细粒度(fine-grained)输出。
目前,在下游任务(down-stream tasks)中应用预先训练过的语言表征有两种策略:
1) 基于特征(feature-based)。基于特定的方法使用将预训练好的语言表征当作一个额外的特征输入到基于特定任务的体系结构中,例如ELMo。
2) 微调(fine-tuning)。微调方法引入很少任务特定参数,通过简单微调所有预训练过参数来下游任务进行训练,例如OpenAI GPT。
这两种方法在预训练都使用相同的目标函数,使用单向语言模型来学习一般的语言表征。
作者认为,当前已有的技术限制了预训练表征的强大,尤其是对于微调的方法。主要的限制是标准语言模型是单向的,这就限制了在预训练过程中可选的体系结构。比如OpenAI GPT中使用了一个left-to-right的结构,Transformer中self-attention layers中,每个token都只能根据关注在它前面的token。这种限制导致sentence-level任务是次优的,并且对使用fine-tuning方法来实现token-level任务是非常有害的,例如question answering中,前后文的信息非常重要。
在论文中,作者对基于微调的方法进行了改进,提出了BERT。BERT通过使用“遮蔽语言模型”(masked language model, MLM)预训练目标来缓解先前提到的单向性约束。遮蔽语言模型随机遮蔽输入的一些token,目标是去预测原文中被遮蔽后的词汇ID。不同于left-to-right语言模型预训练,MLM目标能使语言表征融合左右文本信息,这允许对深的双向Transformer进行预训练。除了遮蔽语言模型,论文还训练了“下一个句子预测”任务,联合地对文本对的表征进行了学习。论文的贡献如下:
- 论文展示了双向预训练对语言表征的重要性。不同于OpenAI GPT使用单向语言模型进行预训练,BERT使用遮蔽语言模型来预训练深度双向语言表征。这也与ELMo形成对比,ELMo使用分别训练left-to-right和right-to-left语言模型的浅级联表征。
- 论文表明,经过预先训练的语言表征减少了许多特定任务的精心设计的体系结构的需求。BERT是第一个在大量的sentence-level和token-level任务上都实现了state-of-the-art的效果,且优于许多特定于任务的网络结构的基于微调的语言表征模型。
- BERT在11中NLP任务中都取得了state-of-the-art的效果,代码和预训练模型在https://github.com/google-research/bert
2 相关工作
2.1 基于特征的非监督方法
在方面的工作有:word embedding,sentence embedding,paragragh embedding
ELMo分别使用了left-to-righ