趋近智
尽管掩码自注意力机制使解码器能够考虑其正在生成的序列中的先前令牌,但它无法直接获取从输入序列编码的信息。为弥补这一不足,并使解码器能够有选择地关注源信息的对应部分,Transformer架构在每个解码器层中引入了第二个注意力机制:编码器-解码器交叉注意力。
与自注意力不同,自注意力中的查询(Q)、键(K)和值(V)都源自同一序列(无论是编码器中的输入序列还是解码器掩码自注意力中部分生成的输出序列),而交叉注意力则从不同来源获取其组成部分:
这种结构使解码器在每一步都能够根据其当前上下文(到目前为止已生成的序列)提出查询,并将其与代表整个输入序列的键进行匹配。所得的注意力分数决定了在构建该步骤的解码器输出时,应给予编码器输出中对应值多少权重。
计算本身使用之前讨论的相同缩放点积注意力函数。然而,输入明确区分了来源:
其中:
softmax函数确保分配给编码器值向量的权重之和为一,基于查询-键交互所决定的相关性,生成加权平均值。
正如自注意力一样,交叉注意力也受益于多个并行运行的注意力头。每个头对输入的、和应用单独的线性投影,将它们映射到不同的表示子空间。
其中 、 和 是第 个头的学习投影矩阵。
这些独立头的输出随后被拼接起来,并通过一个最终的线性投影层,这与多头自注意力中的过程相同:
使用多个头使解码器能够同时关注编码器输出中的信息,基于不同的标准或从不同的表示角度。例如,在翻译中,一个头可能专注于句法对齐,而另一个头则关注语义对应。
编码器-解码器交叉注意力主要作用是使解码器的生成过程依赖于输入序列的相关部分。没有它,解码器将只能通过初始解码器状态获取输入信息,缺少在生成过程中动态关注特定源令牌的能力。
考虑将“The black cat”(输入)翻译为“Le chat noir”(输出)。
这种动态聚焦是Transformer在序列到序列任务中取得成功的核心。
交叉注意力机制位于每个解码器层内的掩码自注意力子层和逐位置前馈网络子层之间。与其它子层一样,残差连接和层归一化也应用在其周围。
这是一个在Transformer解码器层内的编码器-解码器交叉注意力子层的数据流简化图。查询源自解码器的状态,而键和值来自编码器的最终输出。
理解这种交叉注意力机制,对于掌握Transformer解码器如何有效使用输入序列的编码表示来引导输出序列的生成非常重要。它作为主要连接,将编码器对源序列的处理与解码器对目标序列的逐步生成联系起来。
这部分内容有帮助吗?
© 2026 ApX Machine Learning用心打造