BERT直观理解

BERT架构图

BERT直观理解_第1张图片

简单解释一下BERT的架构图。位置向量解决了时序问题(RNN不能并行的执行,只能一个一个的来,但是不一个一个的来,时序即word的先后顺序,怎么处理呢,位置向量就解决了);Self-Attention解决RNN不能并行的问题,multi-head可以提取到多种语义的层次表达,这一部分是核心;接着将向量层的数据(向量表示)和Mutil-Head-Attention的数据进行合并,这个操作叫残差连接,为了使下一层不比上一层差,其中归一化(标准化)的操作是为了更好的求导,防止梯度消失,还能让模型快速收敛;然后通过全连接层对数据特征进行再一次提取,针对上一层使用激活函数进行激活,提取特征,针对上一层数据进行维度变换成可以和上一层LayerNorm一样的维度,以利于再进行残差连接;接着合并第三层数据与全连接层并归一化;至此,一个Transformer Encoder就完了,重复多个这样的block,然后将得到的词向量用于下游任务。

那么BERT是怎么去训练的呢?它没有使用label,而是使用两种预训练模式,让其理解上下文,得到训练结果。

第一个预训练叫做Masked LM,简单来说, 就是随机遮盖或替换一句话里面任意字或词, 然后让模型通过上下文的理解预测那一个被遮盖或替换的部分。

BERT直观理解_第2张图片

第二个预训练是Next Sentence Prediction,简言之,随机替换一些句子,然后利用上一句进行IsNext/NotNext的预测。

向量层

BERT直观理解_第3张图片

其中,SeqLen是最大的那个句子的长度,文本向量中,每个字用一个长度为embedding_dimension的数字表示,这是TF提供的转换方法。

位置向量

BERT直观理解_第4张图片

你可能感兴趣的:(NLP,Deep,Learning)