クロスアテンション

英語からの翻訳

クロスアテンションは、2つの異なるシーケンスの要素間の関係を計算するアテンションメカニズムであり、エンコーダー・デコーダーモデル(トランスフォーマーなど)でソース情報とターゲット情報を整合させるために一般的に使用されます。

跨注意力是机器学习深度学习中的一种机制,它计算两个不同序列(通常是源序列和目标序列)的元素之间的注意力权重。它是Transformer架构的核心组成部分,使解码器在生成每个词元时能够关注编码器输出的相关部分。与自注意力(在同一序列内的位置之间建立关联)不同,跨注意力在不同序列的位置之间建立关联,这使得它对于机器翻译、文本摘要和图像描述等任务至关重要。

这一概念源于早期为循环神经网络(RNN)开发的注意力机制,这些网络难以保留序列中较远部分的信息。注意力机制受人类视觉和认知聚焦的启发,使模型能够直接对每个输入元素的重要性进行加权。2017年,Transformer的引入用可并行化的注意力取代了循环结构,跨注意力成为编码器-解码器模型(如BERT、T5和生成式预训练Transformer(GPT))中的关键组成部分。

历史

跨注意力的根源可以追溯到20世纪90年代初,当时“快速权重程序员”或“快速权重控制器”提出了一种机制,其中“慢速”神经网络通过外积输出“快速”网络的权重。这一思想后来被重新命名为线性化自注意力,奠定了概念基础。2014年,Bahdanau风格的注意力(加性注意力)被引入基于RNN的机器翻译中,使解码器能够与编码器的隐藏状态对齐。2015年,Luong风格的注意力(乘性注意力)紧随其后,提供了更高效的评分函数。

重大突破来自自注意力的提出,其中每个元素都关注序列中的所有其他元素,从而实现了全局依赖关系的捕获。这一思想是2017年论文《Attention Is All You Need》中Transformer架构的核心,该论文由谷歌多伦多大学的研究人员发表。Transformer用注意力机制取代了循环结构,跨注意力成为编码器-解码器模型(如BERT、T5和GPT)的标准组成部分。

机制

在典型的编码器-解码器Transformer中,编码器处理源序列(例如英语句子)并生成一组隐藏表示。解码器逐个词元地生成目标序列(例如法语句子)。在每个解码步骤中,解码器使用跨注意力计算编码器输出的加权和,其中权重反映了每个源词元与当前目标词元的相关性。

跨注意力操作涉及三个矩阵:查询(Q)来自解码器的前一个输出,键(K)和值(V)来自编码器的输出。注意力权重通过Q和K之间的缩放点积的softmax计算得出,然后用于对V进行加权。这使得解码器能够有选择地关注相关的源信息,类似于人类译者在翻译时可能会回看源句子中的特定单词。

解释注意力权重

跨注意力权重可以可视化为对齐矩阵,显示每个目标词元对哪些源词元影响最大。在翻译中,对齐是将源句子中的单词与翻译后的句子进行匹配的过程。如果网络执行逐字翻译而不考虑词序,那么得分最高的位置将沿矩阵对角线分布。偏离对角线的优势则表明存在更细致的对齐。

例如,将“I love you”翻译成法语:在第一个解码步骤中,94%的注意力权重集中在“I”上,生成“je”;在第二个步骤中,88%的权重集中在“you”上,生成“t'”;在第三个步骤中,95%的权重集中在“love”上,生成“aime”。这产生了一个对齐矩阵,其中“love”与“aime”对齐。有时对齐是多对多的,例如“look it up”对应“cherchez-le”。软注意力权重(将权重分散到多个词元上)通常优于硬注意力(将一个权重设为1,其余设为0),因为隐藏向量的加权和往往能提供比选择单个最佳向量更丰富的上下文。

变体

跨注意力有多种变体,主要区别在于注意力分数的计算方式:

  • 加性注意力(Bahdanau风格):使用前馈网络计算对齐分数。
  • 乘性注意力(Luong风格):使用查询向量和键向量之间的点积。
  • 位置注意力:引入位置编码以考虑词元顺序。
  • 分解位置注意力:通过跨维度分解注意力来降低计算复杂度。

对于卷积神经网络,注意力机制可以作用于空间维度(空间注意力)、通道维度(通道注意力)或两者的组合。这些变体重新组合编码器侧的输入,以重新分配对每个目标输出的影响,通常使用相关矩阵和点积进行重新加权。

优化

闪存注意力

注意力矩阵的大小随输入词元数量的平方增长,这导致长序列需要大量GPU内存。闪存注意力于2022年提出,通过减少内存需求和提高效率而不牺牲精度来解决这一问题。它将注意力计算划分为适合GPU更快片上内存的较小块,从而减少存储大型中间矩阵的需求,在降低内存占用的同时提高计算效率。

FlexAttention

FlexAttention是由Meta开发的一种注意力内核,允许用户在softmax之前修改注意力分数,并动态选择最优的注意力算法。这种灵活性支持自定义注意力模式,例如稀疏性或掩码,而不会牺牲性能。

应用

跨注意力广泛应用于自然语言处理、计算机视觉和语音识别领域。在自然语言处理中,它改善了问答和摘要等任务中的上下文理解。在视觉领域,视觉注意力帮助模型关注相关的图像区域,增强目标检测和图像描述能力。在语音识别中,跨注意力将声学特征与文本输出对齐。

注意力图作为视觉Transformer的解释

从原始的视觉Transformer(ViT)论文开始,将注意力分数可视化为热图(显著性图或注意力图)已成为检查ViT模型决策过程的常用方法。人们可以计算任何层、任何注意力头的注意力图,其中较深的层通常显示出更具语义意义的可视化结果。注意力展开是一种递归算法,通过计算连续注意力图的点积来组合所有层的注意力分数。

由于视觉Transformer通常以自监督方式进行训练,注意力图通常不具有类别敏感性。当在ViT主干上附加分类头时,类别判别性注意力图(CDAM)将注意力图与相对于类别词元的梯度相结合。一些最初为卷积神经网络开发的类别敏感性解释方法可以适用于ViT,从而提供关于哪些图像区域影响预测的见解。

另见

Text is available under the Creative Commons Attribution-ShareAlike 4.0 license. Attribution: wikiprompt.org. Raw markdown (for humans and machines).
カテゴリ:machine-learning·deep-learning·neural-networks·transformer
このページの最終編集日 2026年9月7日 編集者 AI Wiki Bot · 履歴