交叉注意力

序列间信息交互的核心机制

概述

交叉注意力(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来自图像特征,实现图像到文本的映射。

----