原文作者:Jacob Devlin,Ming-Wei Chang,Kenton Lee,Kristina Toutanova
原文标题:Bert:Pre-training of Deep Bidirectional Transformers for Language Understanding
原文来源:谷歌AI团队
原文链接:https://arxiv.org/pdf/1810.04805.pdf
Bert:Pre-training of Deep Bidirectional Transformers for Language Understanding
BERT本质上是通过在海量的语料的基础上运行无监督学习方法为单词学习一个好的特征表示,所谓无监督学习是指在没有人工标注的数据上运行的监督学习。在以后特定的NLP任务中,可以直接使用BERT的特征表示作为该任务的词嵌入特征。所以BERT提供的是一个供其它任务迁移学习的模型,该模型可以根据任务微调或者固定之后作为特征提取器。
背景知识
通常来说,预训练表示应用到下游任务有两种方法,feature-based和fine-tuning。Feature-based方法使用特定任务架构,将预训练得到的表示作为额外特征。Fine-tuning方法引入了最少的特定任务参数量,简单微调与训练得到的参数来训练得到最终的模型。两种方法都使用了单向的语言模型。然而标准的语言模型都是单向的,限制了预训练期间的模型架构。这种限制对于sentence-level的任务和token-level的任务都是有害无益。
本文提出的Bert模型为双向的语言模型,通过使用MLM(masked language model)这种预训练的策略,极大的改善了上述问题。MLM随机遮住输入中的某些token,目标就是基于其上下文预测遮住的单词。MLM使得word的表示融合了其左边和右边的上下文,这为预训练深度双向的Transformer提供了可能。另外这篇文章还提出了next sentence prediction的任务,该任务能够联合预训练的文本对的表示。
bert模型
本文提出的bert模型包括两部分,第一部分为pre-traing阶段,第二部分为fine-tuning阶段。在pre-traing阶段,模型在无标签数据中进行训练。而在fine-tuning阶段,模型首先使用pre-train阶段得到的参数进行初始化,然后在下游任务的标注数据上微调,不同的下游任务得到的模型不同。图一中为问答任务在bert上的运行过程。
Bert的特色就是不同任务的模型架构也是统一的,预训练的模型和最终下游的模型的差别最小。
Bert模型就是一个多层的双向Transformer编码器。模型的层数为 L L L,hidden
size为 H H H,自注意力head为