一、文本嵌入层Embedding
1、作用:
无论是源文本嵌入还是目标文本嵌入,都是为了将文本中词汇的数字表示转变为向量表示,希望在这样的高维空间捕捉词汇间的关系。
二、位置编码器Positional Encoding
1、作用:
因为在Transformer的编码器结构中,并没有针对词汇位置信息的处理,因此需要在Embedding层后加入位置编码器,将词汇位置不同可能会产生不同的语义的信息加入到词嵌入张量中,以弥补位置信息的缺失。
2、作用:
正弦波和余弦波的值域范围都是1到-1,这又很好的控制了嵌入数值的大小,有利于梯度的快速计算。
三、掩码张量
1、什么是掩码张量:
掩代表遮掩,码就是张量中的数值,它的尺寸不定,里面一般只有1和0的元素,代表位置被遮掩或者不遮掩,因此它的作用就是让另外一个张量中的一些数值被遮掩,也可以说被替换,它的表现形式是一个张量。
2、掩码张量的作用:
在Transformer中,掩码张量的主要作用在应用attention时,有一些生成的attention张量中的值计算有可能已知了未来信息而得到的,未来信息被看到是因为训练时会把整个输出结果都一次性进行Embedding,但是理论上解码器的输出却不是一次就能产生最终结果的,而是一次次通过上一次结果综合得出的,因此,未来的信息可能提前利用,所以,我们会进行遮掩。
四、注意力机制
1、什么是注意力:
我们观察事物时,之所以能够快速判断一种事物,是因为我们大脑能够很快把注意力放在事物最具有辨识度的部分从而做出判断,而并非是从头到尾的观察。正是基于这样的理论,就产生了注意力机制。
2、什么是注意力计算规则:
它需要三个指定的输入,Q(query)K(key)V(value),然后通过公式得到注意力的计算结果,这个结果代表query在key和value作用下的表示,而这个具体的计算规则有很多种。常用的计算规则:
3、什么是注意力机制:
注意力机制是注意力计算规则能够应用的深度学习网络的载体,除了注意力计算规则外,还包括一些必要的全连接层以及相关张量处理,使其与应用网络融为一体,使用自注意力计算规则的注意力机制称为自注意力机制。注意力机制表示图:
五、多头注意力机制
1、什么是多头注意力机制:
从多头注意力的结构图种,貌似这个所谓的多个头就是指多组线性变换层,其实并不是,只有使用了一组线性变化层,即三个变换张量对QKV分别进行线性变换,这些变换不会改变原有张量的尺寸,因此每个变换矩阵都是方阵,得到输出结果后,多头的作用才开始显现,每个头开始从词义层面分割输出的张量,也就是每个头都想获得一组QKV进行注意力机制的计算,但是句子中的每个词的表示只获得一部分,也就是只分割了最后一维的词嵌入向量,这就是所谓的多头,将每个头的获得的输入送到注意力机制中,就形成多头注意力机制。
2、多头注意力机制结构图
3、多头注意力机制的作用:
这种结构设计能让每个注意力机制去优化每个词汇的不同特征部分,从而均衡同一种注意力机制可能产生的偏差,让词义拥有来自更多元的表达,实验表明可以从而提升模型效果。
六、前馈全连接层
1、什么是前馈全连接层:
在Transformer中前馈全连接层就是具有两层线性层的全连接网络。
2、前馈全连接层的作用:
考虑注意力机制可能对复杂过程的拟合程度不够,通过增加两层网络来增强模型的能力。
七、规范化层
1、规范化层的作用:
它是所有深层网络模型都需要的标准网络层,因为随着网络层数的增加,通过多层计算后参数可能开始出现过大或者过小的情况,这样可能会导致学习过程出现异常,模型可能收敛非常的慢,因此都会在一定层后接规范化层进行数值的规范化,使其特征数值在合理范围内。
八、子层连接结构
1、什么是子层连接结构:
如图所示,输入到每个子层以及规范化层的过程中,还使用了残差连接,因为我们把这一部分结构整体叫做子层连接,在每个编码器层中,都有两个子层,这两个子层加上周围的连接结构就形成了两个子层连接结构。
九、编码器层
1、编码器层的作用:
作为编码器层的组成单元,每个编码器层完成一次对输入的特征提取过程,即编码过程。
编码器层构成图:
十、编码器
1、编码器的作用:
编码器用于对输入进行指定的特征提取过程,也称为编码,由N个编码器层堆叠而成。