站点标志Map the AI
  • 每日短课
  • AI 新闻
  • 学习轨道
  • 主题
  • 我的路径
  • 路线图

注意力的起源

在自注意力之前,是 Bahdanau 注意力:2014 年为翻译打的一个补丁,让解码器能回看整个输入。这个想法从哪来,又是怎么工作的。

本页目录
  • 它解决的问题
  • 思路:让解码器回看
  • 对齐关系是白送的
  • 加性注意力 vs 缩放点积
  • 通往 Transformer 的桥
  • 要点回顾
经典 NLP3 / 17

先读这些

  • 序列到序列与编码器-解码器

对各级别的必要程度

各目标级别的推荐分
新手25 分中的 2 分
进阶45 分中的 4 分
专家35 分中的 3 分

主线上的下一篇

经典文本预处理

主题

AI 如何工作

今天,注意力(attention)以 Transformer 引擎的身份出名,但它其实早诞生了三年,为的是解决一个具体而平淡的问题:序列到序列翻译在长句上垮掉了。Bahdanau 和同事在 2014 年发表的这个修补方案,就是你熟悉的自注意力(self-attention)的直系祖先。看过它的原始形态,现代版本会清楚得多。

它解决的问题

回想一下 seq2seq 的瓶颈。编码器 RNN 读完整段输入,把它压成一个固定大小的上下文向量,再由解码器解开。句子一长,这一个向量装不下所有东西,翻译质量随句长崩塌。

浪费是刺眼的。编码器在每一个输入词上都算了一个隐状态,每个都带着该词的丰富细节,然后全扔了,只留最后一个。当解码器要生成「cat」对应的法语词时,编码器在「cat」那一步的状态恰恰就是它想要的——可那个状态已经没了。

思路:让解码器回看

Bahdanau 的做法是保留编码器的每一个隐状态,并让解码器能访问全部。生成输出的每一步,解码器都不再依赖某一份冻住的摘要。它把当前关心的那些编码器状态混合起来,现场造一个上下文向量,专门为即将生成的那个词量身定制。

解码器每一步的做法:

  1. 打分。 拿解码器当前的状态和编码器的每个隐状态逐一比较,为每个输入词算出一个相关性分数。Bahdanau 用一个小神经网络来算这个分数——一个学出来的函数,输入两个状态,输出它们有多匹配。
  2. 归一化。 把分数过一遍 softmax,变成加起来等于 1 的权重。这就是注意力权重:此刻该在多大程度上关注每个输入词。
  3. 混合。 用这些权重对编码器状态求加权和。这就是这一步的上下文向量——主要由分数高的那些状态组成。
  4. 生成。 解码器用这个定制出来的上下文向量生成下一个词。

每个输出词都有自己的上下文向量。生成「chat」时大量取用「cat」处的编码器状态;生成动词时取自动词处。瓶颈消失了,因为解码器现在能直接伸手进完整输入里,挑它要的东西。

对齐关系是白送的

一个惊人的附赠品:注意力权重是可解释的。把它们画成「输出词 × 输入词」的矩阵,你会看到模型的对齐关系——生成每个目标词时,它看了哪些源词。

对翻译来说,这等于自动复原了语言学家过去手工构建的东西。英译法时,注意力矩阵大致沿对角线亮起,而偏离对角线的跳动,正好出现在两种语言调换语序的地方。没人告诉过模型这两种语言怎么对齐;它自己学会了该看哪里,而权重把这件事摊开给你看。这是早期一份令人欣慰的证据:注意力在做合理的事。

加性注意力 vs 缩放点积

Bahdanau 的打分函数叫加性注意力(additive attention),也叫「拼接式」:把解码器状态和一个编码器状态一起喂进一个小前馈网络,由它学会给两者的匹配程度打分。效果很好,但每次比较都要多花参数和计算。

对比现代 Transformer 里的自注意力,用的是**缩放点积(scaled dot-product)**注意力。那里分数就是 query 向量和 key 向量的点积,再除以维度的平方根。不需要额外的网络——就是一个光秃秃的点积,一次廉价、高度可并行的矩阵乘法。

这几处差异值得并排放在一起看:

  • 打分方式。 加性用一个学出来的小网络;缩放点积用普通点积加一个缩放系数。
  • 开销。 点积在 GPU 上快得多,这也是后来那个版本能规模化的原因之一。
  • 方向。 Bahdanau 注意力是交叉注意力(cross-attention):解码器(一条序列)去关注编码器(另一条序列)。自注意力则是让一条序列关注它自己。

最后这一点,正是 Transformer 完成的概念飞跃。Bahdanau 注意力连接的是两条序列。自注意力把同一套回看手法用在一条序列内部,让每个词关注其他所有词——然后干脆把 RNN 整个扔掉。

通往 Transformer 的桥

Bahdanau 注意力是拧在 RNN 上面的;输入仍然是一步一步按序读的,它只是多加了一次更聪明的交接。它缓解了瓶颈,却没有除掉 RNN 更深的毛病:串行处理,无法并行。

2017 年,《Attention Is All You Need》问出了下一个显然的问题:如果让翻译跑起来的是注意力,那 RNN 还需要吗?把它拿掉,只留注意力,你得到的就是一个并行处理所有位置的模型。那就是 Transformer,而它为什么胜出的故事,写在 transformer 为什么胜出 里。

要点回顾

  • 注意力诞生于 2014 年,是为了修 seq2seq 的瓶颈,不是为 Transformer 而生。
  • 核心思路:保留编码器的全部状态,让解码器为每个输出词现场造一个加权上下文向量。
  • 打分、softmax、混合这三步,和现代注意力是同一个形状。
  • Bahdanau 用的是加性打分(一个小网络)和交叉注意力(解码器关注编码器);Transformer 用的是缩放点积打分和自注意力。
  • 注意力权重同时充当输入与输出之间可解释的对齐关系。

下一篇: transformer 为什么胜出 —— 研究者留下注意力、扔掉 RNN 之后发生了什么。

本页目录

  • 它解决的问题
  • 思路:让解码器回看
  • 对齐关系是白送的
  • 加性注意力 vs 缩放点积
  • 通往 Transformer 的桥
  • 要点回顾
站点标志Map the AI

AI 不断向前,学习有路可循。

地图
  • 学习轨道
  • 主题
  • 我的路径
  • 路线图
公司
  • 关于我们
  • 联系我们
法律
  • Cookie 政策
  • 隐私政策
  • 服务条款
© 2026 Map the AI。由 NeatSeed LLC 运营。保留所有权利。