Transformer模型详细解读(理论篇)

Transformer模型架构梳理

《Attention is all you need》是Google提出的一篇关于Attention应用实践的论文,论文中提出了基于Attention机制的Transformer模型,以及大量使用了多头注意力机制(Multi-Head),该模型已被广泛运用在机器翻译,问答系统,实体识别等NLP相关领域。Transformer模型总体框架如下图所示:
Transformer模型详细解读(理论篇)_第1张图片

Encoder

Input Embedding

针对输入模型的自然语言文本,需要通过Embedding层将其映射成模型内部能够识别计算的词向量序列:
Embedding
例如输入自然语言文本:“My dog is cute and he likes playing”,通过文本分词(Tokenization)、建立字典映射(Build Dictionary)、序列向量化(Encoding)等一系列文本处理操作将其映射为n维的词向量序列[X1,X2,X3,X4,X5…]。

此时的词向量序列仅仅表示的是每个词的意思,但是实际应用过程中每个词在句子中的位置不同其所表达的具体意思是不一样的,因此,为了标识输入序列中的每个单词的位置,引入位置编码信息(Positional Encoding),同时,为了能够和文本词向量进行运算,也将其映射成n维的词向量,这样的位置编码词向量能够决定当前词的位置,或者说是句子中不同词之间的距离。

最后,将输入文本产生的词向量序列[X1,X2,X3,X4,X5…]与位置编码词向量[T1,T2,T3,T4,T5…]相加成新的词向量序列输入下一层。
Transformer模型详细解读(理论篇)_第2张图片

self-Attention

self-Attention是Transformer中所运用到的一种自注意力机制,将整个语境融入到每个词当中,帮助学习句子内部词的依赖关系,学习句子的内部结构。

例如输入文本:“The animal didn’t cross the street because it was too tired.”、“The animal didn’t cross the street because it was too narrow. “,当我们顺序阅读时很容易判断第一个句子中的"it"是指代前面的"animal”,而第二个句子中的"it"指代的是"street”,但是,当我们顺序输入该文本到模型时,它又该如何判断"it"指代的是什么呢?

因此,引入self-Attention的目的就是为了让模型能够了解到"it"与"animal"及"street"之间的关系。

self-Attention计算方法

(1)self-Attention的计算将引入Query、Key、Value三个向量,这三个向量分别是输入词向量与设定的Wq、Wk、Wv矩阵相乘的结果,对应的Wq、Wk、Wv矩阵是随机初始化,再通过模型学习不断优化的,其中Query向量代表是后续将要区查询计算的向量,Key向量表示后续将要被查询计算的向量,Value向量表示当前的实际特征。
Transformer模型详细解读(理论篇)_第3张图片
(2)将句子中的每一个词的Query向量分别与整个序列词的Key向量做内积计算,例如:针对第一个词X1:q1·k1、q1·k2、q1·k3…,内积越大则表示两个词之间的相关程度越大。
Transformer模型详细解读(理论篇)_第4张图片
如上图所示,用X1的对应的Query向量q1分别和X1、X2对应的Key向量进行内积,由得到的结果看出X1与其自己的内积结果值比与X2的内积结果值大,说明其与自身具有较强的相关性。

(3)将内积所得到的常数除以矩阵的维度开方,再通过softmax函数进行归一化处理,得到对应的分数,表示当前词与整个序列中每个词的相关性大小。
Transformer模型详细解读(理论篇)_第5张图片
(4)将每个词和序列中所有词计算计算得到的分数作为权值与每个词对应的Value向量进行加权累加计算,得到当前词的输出Z。
Transformer模型详细解读(理论篇)_第6张图片
(5)在实际的运用中,为了提高模型计算速率,常常是以矩阵的形式进行计算,模型通过训练优化Wq、Wk、Wv矩阵的权重参数,再通过softmax函数与Wv矩阵进行加权计算。
Transformer模型详细解读(理论篇)_第7张图片
通过self-Attention机制,能够让模型学习到输入序列的每一个词与序列中所有词的关系,这就很好地解决了我们开始提出的问题,计算机也能够通过模型训练得知句子当中的指代词"it"是指代的哪一个词,如下图所示,图中颜色越深则表示词与词之间的关系越大。
Transformer模型详细解读(理论篇)_第8张图片

Multi-Headed Attention

根据上面的self-Attention计算,我们通过一组Query、Key、Value矩阵得到的是一组当前词的特征表达,为了提取多组特征表达,论文中引入了“多头注意力”机制,通过多组Query、Key、Value矩阵提取不同的特征,再将提取到的特征向量拼接起来得到最终的输出特征向量。
Transformer模型详细解读(理论篇)_第9张图片
Transformer模型中,运用了8组Query、Key、Value矩阵进行特征提取,得到了8个输入特征矩阵Z。
Transformer模型详细解读(理论篇)_第10张图片
我们将得到的的8个特征矩阵[Z0,Z1,Z2,Z3,Z4,Z5,Z6,Z7]拼接起来,得到一个维度较高的特征矩阵,再通过一个全连接层乘以降维矩阵Wo,得到我们需要的特征矩阵Z。
Transformer模型详细解读(理论篇)_第11张图片
以上就是Multi-Headed Attention多头注意力机制的全部设计流程,其总概要如下图所示:
Transformer模型详细解读(理论篇)_第12张图片
Transformer模型详细解读(理论篇)_第13张图片

多层堆叠

目前,我们已经实现了一层的self-Attention计算,一个self-Attention与全连接层组成了一个Encoder。
Transformer模型详细解读(理论篇)_第14张图片
通过Encoder计算输出的向量和开始输入向量保持了一致的格式,因此,我们仍然可以将Encoder的输出作为下一层Encoder的输入序列再次进行计算,如此多次堆叠Enocder层,不断提取特征向量,组成了Transformer模型的Encoder端。
Transformer模型详细解读(理论篇)_第15张图片

Layer normalization

由于经过多层self-Attention的特征提取,为了保留原有特征,保证经过Encoder输出的向量包含原有的特征,模型中设计了残差连接,将初始的输入向量不做任何变换与经过self-Attention计算的输出向量相加,再经过layer-normalization作为其输出向量。
Transformer模型详细解读(理论篇)_第16张图片
至此,我们已经讲完了Transformer模型的Encoder部分,接下来让我们继续讲解Decoder部分以及他们是如何连接的。

Decoder

Masked Multi-Headed Attention

与Encoder中Attention不同的是Decoder中的Attention机制中加入了Mask机制,因为在Decoder中的Attention的输入是需要一个一个预测的,当前词只能与已预测出来的词进行self-Attention计算,而对于尚未预测出来的词,使用Mask机制隐藏。
Transformer模型详细解读(理论篇)_第17张图片

Encoder-Decoder Attention

Transformer模型的Encoder通过多层self-Attention的计算,将顶层输出的特征向量转换成K,V矩阵传递到Decoder部分,与Decoder中的Masked Multi-Headed Attention层的输出Q矩阵共同出入到Encode-Decode Attention中进行计算。
Transformer模型详细解读(理论篇)_第18张图片

Linear and Softmax Layer

最后我们再看一下输出层,也就是在Decode部分执行完成以后输出的特征词向量序列,我们如何通过Linear and Softmax Layer层将其转换成我们需要的词输出呢?

首先是Linear layer,Linear layer是一个简单的全连接神经网络,它将Decoder中Attention部分输出的特征向量序列映射成一个logits向量。假设我们的模型内置了10000个“输出词汇”,那么logits将有10000个单元格的大小,每个单元格都对应了唯一单词的分数。

接着将logits向量输入softmax层,将这些分数进行归一化处理转换成对应的概率,选择概率值最大的单元格对应的单词输出,这就是我们需要输出的词汇。
Transformer模型详细解读(理论篇)_第19张图片

Decoder总结

我们讲解了Transformer模型中的Decoder部分,主要是由Masked Multi-Headed Attention、Encoder-Decoder Multi-Headed Atention多层堆叠再加上Linear and Softmax Layer输出层组成。
Transformer模型详细解读(理论篇)_第20张图片

总结

至此,我们讲解完了整个的Transformer模型,该模型中许多开创新的思想颠覆了以往传统的神经网络模型,在各种NLP运用中都取得了不错的成绩,使得自然语言处理问题有了很大的提升。

文章参考了较多的论文(图片来源)及相关视频链接:《Attention Is All You Need》、《The Illustrated Transformer》、https://www.bilibili.com/video/BV1NJ411o7u3

你可能感兴趣的:(NLP,transformer,自然语言处理,深度学习)