BERT模型介绍

BERT 模型

        BERT的网络架构是基于Vaswani et al. (2017) 中描述的原始实现的multi-layer bidirectional Transformer编码器。BERT使用双向的Transformer,在所有层中同时学习上下文语境特征信息。

1、输入表示

        BERT模型的输入表示能够在一个token序列中明确地表示单个文本句子或一对文本句子。对于给定的token,通过对相应的token embeddings、segment embeddings和position embeddings进行融合作为模型的输入。具体如下:

(1)对于token embeddings使用WordPiece嵌入和30,000个token的词汇表。

(2)使用学习的positional embeddings,将词语的位置信息编码成特征向量,表示句子中词语的位置信息,支持的序列长度最多为512个token。每个序列的第一个token始终是特殊分类嵌入([CLS])。对应于该token的最终隐藏状态(即,Transformer的输出)被用作分类任务的聚合序列表示。

(3)句子对被打包成一个序列,以两种方式区分句子。首先,用特殊标记([SEP])将两个句子分开。其次,添加一个learned sentence A嵌入到第一个句子的每个token中,一个learned sentence B嵌入到第二个句子的每个token中。

(4)对于单个句子输入,只使用 sentence A嵌入。

2、遮蔽语言模型

        BERT是一种双向语言模型,它需要同时考虑词的上文和下文,为了实现这一目的,模型采用了一种方法:随机屏蔽(masking)部分输入token,训练模型去正确预测那些被屏蔽的token。具体来说,模型会随机选择语料中15%的单词,然后其中的80%会用[Mask]掩码代替原始单词,其中的10%会被随机换为另一个单词,剩下10%保持原单词不变,然后训练模型能够正确预测被选中的单词。做这些处理的原因是,[Mask]只在训练中才会出现,如果选中单词都变为了[Mask],这会导致训练出来的模型可能会针对于[Mask],这与实际不符,所以才会有一些概率将[Mask]随机替换,而这个概率大小为10%×15%=1.5%,基本不会损害模型的语言理解能力,而模型为了预测正确,就需要保持每个输入token的分布式上下文表示,实现了对上下文进行特征提取。

3、下一句预测

        遮蔽语言模型是针对于单词量级的训练,在许多在句子量级上任务,需要语言模型理解句子之间的关系,这有助于下游句子关系判断任务,即BERT中的下一句预测(Next Sentence Prediction)任务。原理是预训练一个二值化的下一句预测任务,具体来说,选择句子A和B作为训练样本:A的下一句有50%的可能是B,另外50%的可能B是随机取自语料库的,模型需要正确预测B是不是A的下一句。

4、微调

        通过上面的方法,实现BERT模型的预训练,对于特定下游任务的模型,将BERT与一个额外的输出层结合而形成,按BERT模型要求的格式输入训练数据,端到端地微调所有参数。

BERT模型优点:

        Bert模型利用自监督的学习方法在大规模无标注语料上的进行预训练,使用Transformer Encoder结构,通过Attention机制将任意位置的两个单词的距离转换成向量表示,在有效解决自然语言处理中长期依赖的问题,同时获取文本中丰富的语义信息。

资料收集于网络资源。

你可能感兴趣的:(bert,transformer,自然语言处理,人工智能)