Bert模型

Bert模型: 无监督:预训练

                 有监督:微调

BERT的全称是Bidirectional Encoder Representation from Transformers,即双向Transformer的Encoder, 

Bert模型_第1张图片

Bert模型_第2张图片

 

144个self-attention机制

离当前字的距离越远,相关程度越低

Bert模型_第3张图片

Bert模型的输入:3部分

nsp二分类任务:处理2个句子之间的关系,所以加特殊符号,

cls向量不能代表整个句子的语义信息。

cls的作用:训练时,将cls的输出向量接一个二分类器。

Bert模型_第4张图片 这里的Embedding由三种Embedding求和而成:

其中:

  • Token Embeddings是词向量,第一个单词是CLS标志,可以用于之后的分类任务
  • Segment Embeddings用来区别两种句子,因为预训练不光做LM还要做以两个句子为输入的分类任务
  • Position Embeddings和之前文章中的Transformer不一样,不是三角函数而是学习出来的

Bert模型_第5张图片

Bert模型_第6张图片

Bert模型_第7张图片

bert的第一个任务:预测被遮挡的单词

Bert模型_第8张图片

用神经网络来预测 被遮挡的单词。

Bert模型_第9张图片

        把输入的第二个单词替换成MASK符号,MASK符号会被Embedding层编码成词向量Xm,把MASK位置的输出记作向量uM,Transform的Encoder网络不是一对一映射,而是多对一,uM向量不仅依赖于Xm,而且依赖于所以的X向量,uM在MASK位置上,但uM知道整句话(the sat on the mat)的信息,uM包含上下文信息,所以可以用uM来预测被遮挡的单词。把uM作为特征向量输入softmax分类器,分类器的输出是一个概率分布p,遮挡住的是单词cat,希望分类器的输出p向量接近于cat的one-hot向量。

Bert模型_第10张图片

把cat的one-hot向量记为e,希望让p接近于e,把e和p的crossEntropy作为损失函数,用反向传播计算出损失函数关于模型参数的梯度,然后用梯度下降更新模型参数。

Bert模型任务二:预测下一个句子;

Bert模型_第11张图片

Bert模型_第12张图片

        最前面放了一个CLS,占一个位置,输出向量c。向量c不止依赖于CLS符号,向量c包含两句话的全部信息,靠c可以判断出两句话是否真的相邻。把c作为一个特征向量输入一个分类器,分类器的输出是一个介于0~1之间的f,1代表True,分类器认为两句话是从原文中拿出来的;0代表false,分类器认为第二句话是假的。用crossEntropy作为损失函数来预测衡量f与真实标签之间的区别,有了损失函数,就可以用梯度下降更新参数。目的作用:强化句子间的相关性。

你可能感兴趣的:(深度学习,NLP)