视频字幕
自注意力机制是深度学习中的一种重要技术,它能够让模型在处理序列数据时关注到序列中的不同位置。核心思想是计算序列中每个元素与其他元素的关联度,然后根据这些关联度重新组合信息,从而解决长距离依赖问题。相比传统的RNN和LSTM,自注意力机制支持并行计算,训练更快,能更好地捕获长距离依赖关系,而且注意力权重具有很好的可解释性。
自注意力机制的核心是查询键值机制,包含三个重要组件。Query查询表示当前位置想要查找的信息,Key键表示每个位置提供的信息标识,Value值表示每个位置的实际信息内容。这三个矩阵都是通过输入序列X与对应的权重矩阵相乘得到的。具体来说,Q等于X乘以权重矩阵WQ,K等于X乘以WK,V等于X乘以WV。通过这种线性变换,我们将原始输入转换为三个不同的表示空间,为后续的注意力计算做准备。
注意力分数的计算是自注意力机制的核心步骤。完整的注意力公式是:Attention等于softmax函数作用于QK转置除以根号dk的结果,再乘以V。具体计算步骤包括:首先计算Q和K的点积得到QK转置,然后除以根号dk进行缩放,接着应用softmax函数进行归一化,最后与V相乘得到最终输出。缩放步骤非常重要,它可以防止点积值过大,避免softmax函数出现梯度消失问题,保持整个计算过程的数值稳定性。
现在我们通过一个完整的例子来演示自注意力机制的工作流程。以句子"我爱学习"为例,假设嵌入维度为4,注意力维度为2,序列长度为3。首先,将输入词汇转换为嵌入向量,形成3乘4的嵌入矩阵X。然后通过线性变换生成Q、K、V三个矩阵,每个都是3乘2的矩阵。接下来计算注意力分数,通过QK转置除以根号2,再应用softmax得到注意力权重矩阵。最后将注意力权重与V矩阵相乘,得到最终的输出矩阵。这个输出包含了每个词与其他词的关联信息。
多头注意力机制是对单头注意力的重要扩展。它的核心思想是并行计算多个注意力表示,每个头可以捕获不同类型的关系模式,从而增强模型的表达能力。多头注意力的计算公式是:将多个注意力头的结果拼接后,再通过一个线性变换得到最终输出。每个注意力头的计算方式与单头相同,但使用不同的权重矩阵。以2个头为例,输入矩阵被分别投影到不同的子空间,每个头独立计算注意力,最后将结果拼接起来。这种并行处理方式不仅提高了计算效率,还让模型能够同时关注序列中的多种不同关系。