NLP|BERT直观理解

BERT架构图
NLP|BERT直观理解
文章图片
简单解释一下BERT的架构图。位置向量解决了时序问题(RNN不能并行的执行,只能一个一个的来,但是不一个一个的来,时序即word的先后顺序,怎么处理呢,位置向量就解决了);Self-Attention解决RNN不能并行的问题,multi-head可以提取到多种语义的层次表达,这一部分是核心;接着将向量层的数据(向量表示)和Mutil-Head-Attention的数据进行合并,这个操作叫残差连接,为了使下一层不比上一层差,其中归一化(标准化)的操作是为了更好的求导,防止梯度消失,还能让模型快速收敛;然后通过全连接层对数据特征进行再一次提取,针对上一层使用激活函数进行激活,提取特征,针对上一层数据进行维度变换成可以和上一层LayerNorm一样的维度,以利于再进行残差连接;接着合并第三层数据与全连接层并归一化;至此,一个Transformer Encoder就完了,重复多个这样的block,然后将得到的词向量用于下游任务。
那么BERT是怎么去训练的呢?它没有使用label,而是使用两种预训练模式,让其理解上下文,得到训练结果。
第一个预训练叫做Masked LM,简单来说, 就是随机遮盖或替换一句话里面任意字或词, 然后让模型通过上下文的理解预测那一个被遮盖或替换的部分。
NLP|BERT直观理解
文章图片
【NLP|BERT直观理解】第二个预训练是Next Sentence Prediction,简言之,随机替换一些句子,然后利用上一句进行IsNext/NotNext的预测。
向量层 NLP|BERT直观理解
文章图片
其中,SeqLen是最大的那个句子的长度,文本向量中,每个字用一个长度为embedding_dimension的数字表示,这是TF提供的转换方法。
位置向量 NLP|BERT直观理解
文章图片

    推荐阅读