下图是一个标准的Encoder Only类型的Transformer架构的示意图:

image.png

总的来说,Encoder Only类型的Transformer架构的执行流程依次为:

对于Encoder Only Transformer架构而言,数据的输出环节很简单,例如上图所示的Linear+Softmax输出,所以本文的重点是前两个部分的计算流程。

1. 数据预处理

对于自然语言处理类型的Transformer架构来说,数据在进入Transformer架构的Encoder和Decoder中处理前,至少要完成以下工作:

下图是一个对于文本"How are You"进行数据预处理的完整流程:

image.png

经过以上的数据预处理环节以后,一段文本(分割为N个token,每个token的向量长度为dimension)就会把转换为(N,dimension)维度的向量,做好了进行Encoder处理环节的准备了。

2.1 Multi-Head Attention中的Q、K、V矩阵

众所周知,Transformer 的核心是自注意力机制(Self-Attention),它的工作逻辑是计算输入序列中每一个元素与其他所有元素之间的相关性。这个自注意力机制的关键组件是:Q、K、V,可以把自注意力想象成一个“信息检索”过程: