交叉注意力(Cross-Attention)
AI TERM术语词条Cross-Attention
术语释义
交叉注意力让一个序列在生成每一步去查询另一个序列的信息,是编码器-解码器与多模态融合的关键机制。
交叉注意力(Cross-Attention)指查询来自一个序列、键和值来自另一个序列的注意力计算。它让模型在生成当前位置时主动到另一段信息里挑选相关内容,是编码器-解码器架构与多模态融合的核心部件。
与自注意力的分工
自注意力里查询、键、值同源,处理序列内部的关系;交叉注意力把查询与键值拆到两处,形状上要求两侧的隐藏维度对齐,序列长度则可以完全不同。翻译任务中解码器每一步用当前状态查询编码器的全部输出,图像描述任务中文本查询视觉特征,都是同一套机制。二者常常交替堆叠:先用自注意力整理各自序列的内部结构,再用交叉注意力把两侧信息对齐,最后回到自注意力整合上下文。由于两侧长度可以相差很多,位置编码也各自独立,模型不会把「第几个词」当作跨序列的对应关系,对应关系完全由注意力权重在训练中自己学出来;这也意味着它的效果高度依赖训练数据是否提供了正确的配对信号,结构本身并不保证对齐。
实现要点
- 键值缓存:编码器一侧的键值在整个解码过程中不变,可以预计算并缓存,避免每步重算。
- 计算量随两边长度相乘:注意力矩阵规模是查询长度乘键长度,长文档或多帧图像输入时这部分开销迅速上升。
- 对齐质量决定融合效果:两侧表示需要在同一语义空间里,否则注意力难以定位到有效内容。
- 与门控结合:多模态模型常在交叉注意力输出后加门控或残差,抑制无关模态的干扰。
- 掩码要分清:自注意力需要因果掩码防止看到未来,交叉注意力访问的是完整输入,一般不加因果掩码,但填充位置仍需屏蔽。
边界与常见误区
- 两侧一一对应时不必用:直接拼接或相加更省算力,交叉注意力解决的是按需选取的问题。
- 机制不能替代对齐数据:跨模态训练数据本身图文不匹配时,再好的结构也学不到正确对应关系。
- 权重不等于解释:注意力权重高只说明这一步用得多,不能直接当作模型决策的理由。
- 长输入的代价:键长度直接进注意力矩阵,输入越长越需要先筛选或分块,否则显存与延迟同时上升。
它在结构上并不复杂,难点在于让两侧表示处在同一语义空间,这通常由配对数据和联合训练来保证。评估时要注意区分两类失败:权重摊平会让融合信息被平均掉,表现为效果平庸,通常靠增加配对数据与对齐监督缓解;对齐到错误的对应关系则会给出看起来合理却错误的输出,需要抽查注意力峰值落在哪个位置,并回看训练数据里两侧内容是否真的匹配。