Bert模型

引言

Bert(Bidirectional Encoder Representations from Transformers)使用了Transformer为主要框架,Transformer能够更彻底的捕捉语句中的双向关系。Transformer框架之所以能够比传统的CNN、RNN甚至是LSTM更优秀,是因为整个网络架构完全是由attention机制组成。因此,想要了解Bert需要从认识attention机制开始。


Attention机制

RNN结构的局限

  • 在NLP进行机器翻译的任务时,通常采用encoder-decoder的结构,用encoder读取输入的句子将其转化为一个定长的向量,再通过decoder将这个向量翻译成对应的目标语言文字。通常encoder和decoder均采用RNN结构:如LSTM、GRU等等。如图所示,我们将输入语句的信息总结到最后一个hidden vector中(最后一个红色cell state),并将其作为decoder初始的hidden vector,然后利用decoder翻译成其他语言。
    在这里插入图片描述
  • 但是众所周知,RNN存在一定的局限性,就是长语句学习时梯度消失的问题,所以当需要翻译的语句越来越长,RNN模型的效果会显著下降。

引入Attention机制

在Attention模型中,当我们翻译一个词语时,会去源句子中找相对应的几个词语,并结合之前已经翻译的部分做出适当的翻译,例如在翻译“Knowledge”的时候会关注“知识”,而不仅仅是原模型输出的定长向量。
在这里插入图片描述

Attention中的计算过程

在这里插入图片描述

  • 计算过程
    在这里插入图片描述

这里关键的操作是计算encoder与decoder state之间的关联性的权重,得到Attention分布,从而对于当前输出位置得到比较重要的输入位置的权重,在预测输出时相应的会占较大的比重。

  • 通过Attention机制的引入,我们打破了只能利用encoder输出单一向量的限制,从而使模型可以集中在所有对于下一个目标单词重要的输入信息上,使模型效果得到极大的改善。还有一个优点是,我们通过观察attention 权重矩阵的变化,可以更好地知道哪部分翻译对应哪部分源文字,有助于更好的理解模型工作机制,如下图所示。
    在这里插入图片描述

Transformer框架

Transformer抛弃了传统的CNN和RNN,整个网络结构完全是由attention机制组成。