Transformer 架构深度解析
注意力数学本质
自注意力的数学核心
要理解 Transformer 为何如此强大,我们必须深入其核心机制:自注意力(Self-Attention)。这个机制允许模型在处理一个词时,权衡输入序列中所有其他词的重要性。这一切都始于将每个输入词向量线性映射到三个不同的空间:查询(Query)、键(Key)和值(Value)。
想象一下在图书馆里查找资料。你的“查询”是你脑中的问题。书架上每本书的标题或标签就是“键”,而书中的具体内容则是“值”。自注意力机制就是用你的查询去匹配所有书的键,找到最相关的那些,然后根据相关性程度,把这些书的值(内容)整合起来,得到最终的答案。
在模型中,这意味着每个输入词向量 都会通过乘以三个独立训练的权重矩阵 、 和 来生成对应的查询向量 、键向量 和值向量 。
缩放点积注意力
生成了 Q、K、V 矩阵后,模型需要计算注意力分数。这是通过计算一个查询向量和所有键向量的点积来实现的。这个分数衡量了在当前词的上下文中,我们应该对其他每个词投入多少“注意力”。
然而,仅仅做点积是不够的。当键向量的维度 很大时,点积的结果也可能变得非常大。这会将 Softmax 函数 推向其梯度极小的区域,导致训练过程中的 梯度消失 问题。为了解决这个问题,“注意力就是你所需要的一切”(Attention Is All You Need)这篇开创性论文引入了一个缩放因子。
这个公式优雅地将查询与键的相似度计算、梯度稳定化以及值的加权整合在了一起。最终得到的输出向量融合了整个序列中所有词的信息,并根据其与当前词的关联性进行了加权。
路径长度与计算复杂度
自注意力机制相比于循环神经网络(RNN)等早期序列模型,最大的优势之一在于其处理长距离依赖的能力。在 RNN 中,信息需要通过时间步依次传递。如果两个词在序列中相距很远(例如,一个在句首,一个在句尾),它们之间的依赖关系路径长度为 ,其中 是序列长度。信号在长距离传递中很容易衰减或失真。
相比之下,自注意力机制直接计算序列中任意两个词之间的关联。这意味着任何两个词之间的路径长度都是 。模型可以直接、完整地捕捉它们之间的关系,无论它们相距多远。
