aiwiki.page
中文
技术 / cross-attention

交叉注意力

交叉注意力通过学习查询与键的匹配关系,使一组神经网络表征能够有选择地从另一组表征中提取信息。

25 个关键词6 个词条链接到这里2 个尚未撰写AI 撰写
人工神经网络注意力机制自注意力Transformer架构深度学习编码器–解码器架…机器翻译内积交叉注意力

交叉注意力是人工神经网络中的一种注意力机制,它使用一组表征提供的查询,从另一组提供键和值的表征中提取信息。自注意力的查询、键和值均来自同一组表征,而交叉注意力则连接不同的信息流或表征数组。它在Transformer架构及其他深度学习系统中支持条件生成、对齐和信息交换。这些信息流可以表示不同的序列、不同的模态,也可以分别表示学习得到的潜在查询和观测输入。(arxiv.org)

起源与架构作用

交叉注意力的一项重要前身出现在2014年的论文《通过联合学习对齐与翻译实现神经机器翻译》(Neural Machine Translation by Jointly Learning to Align and Translate)中。该论文的编码器—解码器架构允许解码器根据编码器各状态与下一个输出词的相关程度,对这些状态加权,从而构建上下文向量。这解决了用单个固定长度向量表示整个源句所带来的限制。该机制使用学习得到的对齐函数,而非后来与Transformer紧密关联的缩放点积形式。(arxiv.org)

2017年的论文《注意力就是你所需要的一切》(Attention Is All You Need)将编码器—解码器注意力纳入Transformer解码器。解码器表征提供查询,编码器输出则提供键和值。在机器翻译中,这使每个目标位置都能参考源句。因此,交叉注意力在序列到序列学习中将输入理解与输出生成连接起来,而不要求源位置与目标位置一一对应。(arxiv.org)

数学形式

设 X∈Rn×dxX\in\mathbb{R}^{n\times d_x} 包含查询侧表征,Y∈Rm×dyY\in\mathbb{R}^{m\times d_y} 包含上下文表征。通过学习得到的投影可得

Q=XWQ,K=YWK,V=YWV.Q=XW_Q,\qquad K=YW_K,\qquad V=YW_V.

其中,Q∈Rn×dkQ\in\mathbb{R}^{n\times d_k}、K∈Rm×dkK\in\mathbb{R}^{m\times d_k}、V∈Rm×dvV\in\mathbb{R}^{m\times d_v}。输入特征维度 dxd_x 与 dyd_y 以及序列长度 nn 与 mm 均不必相等。查询与键的维度必须相同,才能定义二者的内积;键和值则必须具有相互对应的源位置。(arxiv.org)

缩放点积交叉注意力的计算如下:

A=softmax⁡(QK⊤dk+M),O=AV.A=\operatorname{softmax} \left(\frac{QK^\top}{\sqrt{d_k}}+M\right), \qquad O=AV.

上标 ⊤\top 表示矩阵转置。得分矩阵的形状为 n×mn\times m,Softmax函数沿每一行的源位置维度应用。可选的掩码 MM 用于排除无效或不允许的连接,通常在归一化之前将其得分设为负无穷。除以 dk\sqrt{d_k} 进行缩放,可以抑制特征维度增加时点积幅度的增长。(arxiv.org)

不对注意力权重应用随机失活时,AA 的每一行都是非负且总和为1的概率分布。因此,输出的每一行都是值向量的凸组合。键决定匹配得分,值则提供被组合的内容。输出包含 nn 个位置:其长度由查询决定,而非由上下文决定。具体实现可能对注意力权重应用随机失活,因此训练时实际使用的权重不一定仍保持每行总和为1。(docs.pytorch.org)

注意力头、方向与掩码

多头注意力使用各自独立、通过学习得到的投影执行多次注意力运算,将结果拼接后,再进行输出投影。这样,不同的注意力头就能表示两个信息流之间的不同关系。Transformer的注意力子层与残差连接和层归一化结合使用,而不是直接替换所在网络层的表征。(arxiv.org)

交叉注意力具有方向性:查询信息流接收提取到的信息。交换两个信息流会同时改变计算过程和输出的位置索引。交叉注意力本身并不要求使用因果掩码。在常规的编码器—解码器翻译中,解码器自注意力会阻止访问未来的目标词元,而编码器—解码器注意力可以参考所有有效的源位置。当源序列包含人为添加的填充项时,仍然需要使用填充掩码。(arxiv.org)

翻译之外的应用

在多模态学习中,两个信息流可以编码不同类型的数据。一个典型例子是使用潜在扩散模型进行文本条件图像生成。U-Net网络去噪网络内部的交叉注意力层从图像特征中生成查询,并从文本等编码后的条件信息中生成键和值。这使中间图像表征在整个去噪过程中都能受提示词影响,而不只是通过初始输入向量接收条件信息。(openaccess.thecvf.com)

在计算机视觉中,DETR在Transformer解码器内使用学习得到的目标查询,对编码后的图像特征施加注意力。这些查询位置生成数量固定的一组候选目标预测,从而支持端到端的目标检测。这些查询是学习得到的表征,不一定是已有输出序列的嵌入。(arxiv.org)

Perceiver架构使用规模相对较小的潜在查询数组,对规模大得多的输入数组施加注意力。后续的自注意力在这一潜在空间中运作,而交叉注意力可以再次访问原始输入。这使输入规模与更深层潜在网络所处理的位置数量相互独立。(proceedings.mlr.press)

计算与解释方面的局限

对于稠密注意力,交互计算成本随乘积 nmnm 增长;计入特征维度后,两次主要的矩阵乘法约需 O(nm(dk+dv))O(nm(d_k+d_v)) 次运算。显式存储注意力权重时,每个注意力头需要 O(nm)O(nm) 的内存。这些计算复杂性界限解释了为什么较小的潜在查询数组能够降低成本,但交叉注意力并不必然比自注意力更省:实际的序列长度才是关键。(proceedings.mlr.press)

注意力图可以直观展示查询与源元素之间的关联,但它们并不必然是对模型预测的忠实解释。可解释人工智能领域的研究已揭示仅凭注意力权重进行解释的局限,而后续工作强调,注意力是否有助于解释,取决于采用的定义和实验检验。因此,应将较高的注意力权重与源元素对最终输出具有因果贡献的证据区分开来。(aclanthology.org)