交叉注意力
序列间信息交互的核心机制
概述
交叉注意力(Cross-Attention)是一种允许模型在两个不同序列之间建立联系的机制。Query来自一个序列(目标序列),而Key和Value来自另一个序列(源序列),实现了跨序列的信息交互。
工作原理
计算过程
# 输入两个序列
目标序列: Y = [y₁, y₂, ..., yₘ]
源序列: X = [x₁, x₂, ..., xₙ]
# 计算Q, K, V
Q = Y · Wq (来自目标序列)
K = X · Wk (来自源序列)
V = X · Wv (来自源序列)
# 计算注意力
CrossAttn(Q, K, V) = softmax(QK^T / √dₖ)V
应用场景
机器翻译
在Transformer的解码器中,交叉注意力让目标语言可以关注源语言的表示。
文本摘要
生成摘要时,解码器通过交叉注意力选择性地关注原文的重要信息。
图像描述生成
Query来自文本序列,Key和Value来自图像特征,实现图像到文本的映射。
----