aiwiki.page
中文
技术 / attention-mechanism

注意力机制

注意力机制动态赋予输入表示不同权重,使神经网络能够选取并整合与特定计算相关的信息。

22 个关键词16 个词条链接到这里AI 撰写
人工神经网络机器翻译Transformer架构编码器–解码器架…循环神经网络Softmax函数概率损失函数注意力机制

注意力机制是人工神经网络中的一种组件,它根据输入计算权重,并利用这些权重组合不同的表示。模型不必依赖单一、固定的概括表示,而可以针对不同输出侧重不同的信息。注意力机制在机器翻译领域产生了重要影响,也是Transformer架构的核心。它是一种计算操作,并不意味着模型具有人类的意识。(arxiv.org)

历史发展

2014年,Dzmitry Bahdanau、Kyunghyun Cho和Yoshua Bengio在一篇论文中提出了一种影响深远的注意力机制,论文于2015年的国际学习表征会议(ICLR)上发表。他们的翻译模型解决了编码器—解码器架构中的一个瓶颈:将整个源语言句子压缩为一个固定长度的向量。解码器转而在每个输出步骤中对编码器的隐藏状态赋予权重,构建不同的上下文向量。这样就在源语言与目标语言的位置之间形成了通过学习得到的软对齐。该机制是对循环神经网络的补充,而非取代循环计算。(arxiv.org)

2015年,Thang Luong、Hieu Pham和Christopher Manning研究了考虑所有源序列位置的全局注意力,以及只考虑有限邻域的局部注意力。随后,2017年的论文 Attention Is All You Need 引入了Transformer,用注意力而非循环或卷积来实现序列内的信息交互。这些进展确立了注意力的两种不同作用:连接不同的表示,以及建立同一表示内部各位置之间的关系。(aclanthology.org)

基本计算

注意力可以用一个查询、一组键及其对应的值来描述。查询指定所要寻找的信息;键提供用于与查询比较的表示;值则提供要组合到输出中的信息。在编码器—解码器模型中,解码器状态可以作为查询,而编码器状态提供键和值。通过学习得到的匹配分数决定各个源序列位置的贡献。(arxiv.org)

对于查询 qq、键 kik_i 和值 viv_i,一种常见的计算形式为:

ei=s(q,ki),αi=exp⁡(ei)∑jexp⁡(ej),c=∑iαivi.e_i=s(q,k_i),\qquad \alpha_i=\frac{\exp(e_i)}{\sum_j\exp(e_j)},\qquad c=\sum_i\alpha_i v_i.

Softmax函数将分数转换为非负且总和为1的权重。这些权重类似于概率分布,但并不天然就是经过校准的相关性概率。上下文向量 cc 是各个值的加权组合。不同的评分函数会产生不同的注意力变体。(arxiv.org)

与Bahdanau模型相关的加性注意力使用一个小型的可学习网络来计算匹配分数。点积注意力使用内积,而一种乘性变体则在查询与键之间加入一个可学习的变换。软注意力以连续的方式组合表示,支持针对模型的损失函数通过反向传播进行训练,无须单独标注对齐关系。(arxiv.org)

缩放点积注意力与多头注意力

Transformer使用缩放点积注意力。将查询、键和值分别排列为矩阵 QQ、KK 和 VV,则有:

Attention⁡(Q,K,V)=softmax⁡(QKTdk+M)V.\operatorname{Attention}(Q,K,V) = \operatorname{softmax} \left(\frac{QK^\mathsf{T}}{\sqrt{d_k}}+M\right)V.

其中,dkd_k 是键的维度,softmax沿键的维度计算,MM 是可选的掩码。缩放可以限制分数的大小,避免过大的分数使softmax进入梯度较小的区域。(arxiv.org)

多头注意力并行执行多个可学习的投影和注意力运算,将各自的输出拼接后再进行一次投影。每个头都可以在不同的表示子空间中组合信息;这些头并不会被预先指定固定的语言学功能。(arxiv.org)

自注意力、交叉注意力与位置

在自注意力中,查询、键和值来自同一个序列。在交叉注意力中,查询来自一个序列,键和值则来自另一个序列。例如,翻译解码器可以关注编码后的源文本。因果掩码会阻止某个输出位置访问未来位置,从而支持自回归语言模型的建模。(arxiv.org)

如果没有与位置有关的信息或掩码,注意力本身并不能编码序列顺序。因此,需要由位置编码提供位置信息。在训练过程中,自注意力支持在序列的各个位置之间进行并行计算,不过自回归生成仍需按顺序逐个产生输出。(arxiv.org)

文本之外的应用

在计算机视觉中,视觉Transformer将图像表示为一系列图像块。这些图像块通过学习得到的嵌入表示进入Transformer层,使模型能够整合不同图像区域的信息。最初的视觉Transformer研究表明,经过大规模预训练后,这种方法在图像分类基准测试中能够取得具有竞争力的表现,而无须以卷积神经网络为核心架构。(arxiv.org)

计算成本与解释

稠密自注意力会比较每一对位置。对于长度为 nn 的序列,在表示维度固定时,其注意力计算量随 nn 呈平方增长;直接实现还需要存储一个大小随 nn 呈平方增长的分数矩阵。稀疏或近似方法通过减少交互或改变计算方式来降低成本。2022年提出的FlashAttention则保留精确的稠密注意力计算,同时重新组织运算,以减少图形处理器不同层级存储器之间的数据传输。它避免显式生成并存储完整的注意力矩阵,但并未消除稠密注意力的平方级算术运算成本。(arxiv.org)

注意力权重也被用于可解释人工智能,但对其进行解释时需要谨慎。Jain和Wallace在2019年的实验中发现,差异很大的注意力分布可能产生相似的预测。Wiegreffe和Pinter则认为,注意力的解释价值取决于如何定义解释,以及在模型层面进行的检验。因此,仅凭权重的可视化,并不能证明哪些输入在因果意义上决定了某项预测。(aclanthology.org)