1.核心思想,从人脑的注意力说起

星博讯 AI基础认知 1

想象一下你在看一幅复杂的画(清明上河图》),你的眼睛不会同时、均等地处理画中的每一个像素,而是会聚焦于某些关键区域(比如桥上的人物、街边的店铺),而忽略或弱化其他背景信息(比如远处的山水、天空),这种“选择性聚焦”的能力,就是注意力。

1.核心思想,从人脑的注意力说起-第1张图片-星博讯网络科技知识-SEO优化技巧|AI知识科普|互联网行业干货大全

核心要点将有限的计算资源分配给更重要的信息。

在机器学习中,传统的序列模型(如RNN、LSTM)在处理一个序列时(比如一句话),会试图将整个序列的信息压缩到一个固定长度的上下文向量中,当序列很长时,这个向量很容易“遗忘”或“混淆”开头的重要信息,这就是所谓的“信息瓶颈”。

注意力机制的诞生就是为了解决这个问题:它允许模型在每一步输出时,都能够“回顾”并有选择地利用输入序列的全部信息,而不是被迫只用最后一个隐藏状态。


核心三要素与计算过程

注意力机制可以抽象为一个 “查询-键-值” 模型,这个类比非常经典:

  • 查询:你当前想知道什么?代表当前需要信息的一方。(翻译当前这个英文单词时,我需要知道什么?)
  • :输入信息提供的“标签”或“索引”,用来与查询进行匹配。(输入句子中每个单词的“主题”或“重要性标识”)
  • :输入信息实际的“内容”。(输入句子中每个单词的语义向量)

注意:在很多基础实现中,键和值最初是相同的(都是输入序列的隐藏状态),但后来演变为可以独立的投影,以获得更大的灵活性。

计算步骤分为四步

假设我们有一个输入序列,包含 N 个元素(N 个单词),每个元素有一个隐藏状态 h_i,我们要为当前时刻(解码器状态 s_t)计算一个上下文向量 c_t

第一步:计算注意力分数 衡量查询(当前状态 s_t)与每个(输入隐藏状态 h_i)的相关性,常见方法有:

  • 点积score(s_t, h_i) = s_t^T * h_i (最简单高效)
  • 加性score(s_t, h_i) = v^T * tanh(W1 * s_t + W2 * h_i) (更灵活,参数量多)
  • 缩放点积score(s_t, h_i) = (s_t^T * h_i) / sqrt(d_k) (Transformer中使用,防止点积结果过大导致Softmax梯度太小)

第二步:应用Softmax归一化 将上一步的分数转换为概率分布,即注意力权重 α_{t,i},它表示在生成当前输出时,模型应该“注意”输入第 i 个位置的程度。 α_{t,i} = softmax(score(s_t, h_i)), 使得所有 α_{t,i} 之和为 1。

第三步:加权求和 用得到的注意力权重 α_{t,i} 对所有的v_i,通常由 h_i 经过一个线性变换得到,但初期 v_i = h_i)进行加权求和,得到上下文向量 c_tc_t = Σ_{i=1}^{N} (α_{t,i} * v_i)

这个 c_t 不再是固定的,而是动态的、与当前查询高度相关的信息摘要。

第四步:输出 将上下文向量 c_t 与当前的解码器状态 s_t 结合起来(例如拼接或相加),送入后续的网络层(如前馈神经网络)来生成最终的输出(如翻译出的单词)。


关键特性与优势

  1. 动态权重:对于输出序列中的不同元素,其对应的输入权重分布 α 是不同的,例如在翻译“Hello World”为“你好 世界”时,生成“你好”时,“Hello”的权重会极高;生成“世界”时,“World”的权重会极高,这形成了对齐效果。
  2. 可解释性:注意力权重矩阵(行是输出步,列是输入步)可以可视化,直观地展示模型在做出决策时“看”了输入的哪些部分,这是传统序列模型难以提供的。
  3. 并行化能力:在计算所有位置的注意力分数时,它们相互独立,可以并行计算,这为后来的Transformer架构铺平了道路,极大提升了训练速度。
  4. 缓解长程依赖问题:无论输入序列多长,模型都能直接访问其任何部分,无需经过多次循环传递,有效缓解了梯度消失/爆炸问题。

重要变体与发展

  • 自注意力:注意力机制的查询、键、值全部来自同一个序列,它用于捕捉一个序列内部元素之间的关系(例如句子中词与词之间的语法、指代关系),这是Transformer的核心构件。
  • 多头注意力:将查询、键、值投影到多个不同的“子空间”(通过不同的线性变换),在每个子空间中并行地执行注意力函数,最后将结果拼接并投影,这允许模型同时关注来自不同表示子空间的信息(例如同时关注语法和语义)。
  • 交叉注意力:在编码器-解码器架构中,查询来自一个序列(如解码器),而键和值来自另一个序列(如编码器),这是经典Seq2Seq with Attention的模式。
  • 软注意力 vs 硬注意力
    • 软注意力:上述介绍的都是软注意力,对输入所有位置赋予连续的权重(可微分,便于训练)。
    • 硬注意力:只“盯住”一个位置(权重为1),其余为0,不可微分,通常需要强化学习等方法训练。

总结与比喻

一个生活化的比喻

想象你在一个巨大的图书馆(输入序列)里,要写一篇关于“恐龙灭绝”的论文(输出序列)。

  • 没有注意力:你只能凭记忆,在进图书馆时匆匆扫一眼所有书架,然后闭门写作,你肯定会漏掉很多关键细节。
  • 有注意力
    • 当你写“小行星撞击”这一章时(查询),你会根据书的标题和目录()去找《天体碰撞理论》、《白垩纪地质记录》这几本书(),并重点阅读它们(高权重)。
    • 当你写“火山活动”这一章时(新的查询),你会把注意力转移到《德干高原火山研究》、《气候变化模型》这些书上(新的权重分布)。
    • 你为每一章动态地从图书馆中选取最相关的资料进行整合。

公式总结的核心过程

注意力 = Softmax( 查询 · 键^T ) · 值

注意力机制的贡献在于,它从根本上改变了神经网络处理信息的方式,从压缩转变为动态检索,成为了现代深度学习(尤其是NLP和多模态领域)不可或缺的基石,从机器翻译的突破(Bahdanau Attention, 2014)到统治性的Transformer/BERT/GPT架构,其思想一以贯之并不断发扬光大。

标签: 注意力 核心思想

抱歉,评论功能暂时关闭!

微信咨询Xboxun188
QQ:1320815949
在线时间
10:00 ~ 2:00