一、架构解读
Encoder
Nx = 6,Encoder block由6个encoder堆叠而成,图中的一个框代表的是一个encoder的内部结构,一个Encoder是由Multi-Head Attention和全连接神经网络Feed Forward Network两层构成。每个子层之后,都会使用残差连接和层归一化操作,这些操作统称为Add&Norm,防止出现梯度问题。
自注意力机制
这是Transformer的核心概念之一,它使模型能够同时考虑输入序列中的所有位置,而不是像循环神经网络(RNN)或卷积神经网络(CNN)一样逐步处理。自注意力机制允许模型根据输入序列中的不同部分来赋予不同的注意权重,从而更好地捕捉语义关系。
多注意力头
Transformer中的自注意力机制被扩展为多个注意力头,每个头可以学习不同的注意权重,以更好地捕捉不同类型的关系。多头注意力允许模型并行处理不同的信息子空间。
Decoder
Transformer的解码器由6个相同的层组成,每层包含三个子层:掩蔽自注意力层、Encoder-Decoder注意力层****和逐位置的前馈神经网络。每个子层后都有残差连接和层归一化操作,简称Add&Norm。这样的结构确保解码器在生成序列时,能够考虑到之前的输出,并避免未来信息的影响。
掩蔽自注意力层(mask self-attention)
掩蔽操作 (Masking) 是为了解决在处理序列数据时,模型可能“看到”未来信息的问题。
在训练过程中,模型不应该访问未来信息,因为这会导致模型预测结果不准确。
掩蔽操作通过在注意力矩阵中将未来信息设置为 0,来阻止模型访问未来信息。
例如,在处理文本序列时,模型不应该访问当前词语之后的词语,因此需要将这些词语的注意力权重设置为 0。