news 2026/6/15 17:00:10

构筑 AI 理论体系:深度学习 100 篇论文解读 第十九篇:序列建模的焦点——注意力机制 Attention Mechanism (2015)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
构筑 AI 理论体系:深度学习 100 篇论文解读 第十九篇:序列建模的焦点——注意力机制 Attention Mechanism (2015)

构筑 AI 理论体系:深度学习 100 篇论文解读

第十九篇:序列建模的焦点——注意力机制 Attention Mechanism (2015)

I. 论文背景、核心命题与作者介绍 💡

2014 年Encoder-Decoder(编码器-解码器)架构在神经机器翻译(NMT)中取得了突破。这种架构使用一个 RNN(通常是 LSTM 或 GRU)将整个输入序列压缩成一个单一的固定长度向量(Context Vector)。当输入序列很长时,这种信息瓶颈会导致翻译质量急剧下降。

Dzmitry Bahdanau及其团队在 2015 年提出的注意力机制(Attention Mechanism)彻底解决了这个信息瓶颈问题。它允许解码器在每一步输出时,动态地、有选择性地关注输入序列中的相关部分。

核心作者介绍
作者国籍机构(2015 年时)核心贡献
Dzmitry Bahdanau白俄罗斯/加拿大University of Montreal (Yoshua Bengio 团队)注意力机制在机器翻译中的首次成功应用者。
Kyunghyun Cho (赵竟玄)韩国University of MontrealGRU 的提出者,注意力机制的共同贡献者。
Yoshua Bengio加拿大University of Montreal深度学习三巨头之一。
信息项详情
论文题目Neural Machine Translation by Jointly Learning to Align and Translate
发表年份2015 年
出版刊物ICLR (International Conference on Learning Representations)
核心命题如何取代传统的固定长度上下文向量,让解码器在每一步生成输出时,能够动态地关注输入序列中最相关的部分,从而改善长序列的翻译质量?

II. 核心机制:软对齐与动态上下文 ⚙️

注意力机制的核心思想是实现软对齐(Soft Alignment)。它为输入序列的每个隐藏状态分配一个权重(Attention Weight),这些权重是动态计算的。

1. 核心概念:隐藏状态 (hhh)

隐藏状态hth_tht是循环神经网络(RNN、LSTM 或 GRU)在处理序列数据时在时间步ttt产生的、对历史信息和当前输入进行概括的“记忆”

  • 本质:它是对**从序列开始到时间步ttt为止的所有历史信息(上下文)**的压缩表示。
  • 作用:在 Encoder-Decoder 架构中,编码器产生的一系列隐藏状态构成了输入序列的完整信息库,解码器则使用自己的隐藏状态进行查询

关于隐藏状态数量的澄清:
隐藏状态的维度(向量的宽度)是一个超参数(由开发者手动设置),与句子长度和网络层数无关。

但是,隐藏状态的数量(时间步ttt的总数)是由输入序列的长度决定的:如果输入句子有NNN个词,则编码器将产生NNN个隐藏状态{h1,h2,…,hN}\{h_1, h_2, \dots, h_N\}{h1,h2,,hN}

2. 关键输入与角色划分(Q, K, V 概念映射)

在编码器-解码器架构中,注意力机制工作的起点是:

  • 输入序列信息(键KKK和值VVV):这是编码器处理输入句子后产生的所有时间步的隐藏状态Hencoder={h1enc,h2enc,…,hTxenc}H_{encoder} = \{h_1^{enc}, h_2^{enc}, \dots, h_{T_x}^{enc}\}Hencoder={h1enc,h2enc,,hTxenc}
  • 当前查询信息(查询QQQ):这是解码器在生成第ttt个目标词时使用的前一个隐藏状态ht−1h_{t-1}ht1

符号解释:

  • hench^{enc}henc:隐藏状态,是编码器 RNN 单元在特定时间步输出的向量,代表了历史信息的压缩记忆
  • HencoderH_{encoder}Hencoder: 编码器生成的所有隐藏状态的集合。
  • TxT_xTx:输入序列的总长度(即隐藏状态的总时间步数)。
3. 步骤一:计算对齐分数(Scoring/Energy)

目标是计算查询ht−1h_{t-1}ht1所有输入状态hiench_{i}^{enc}hienc相关性或“匹配度”。

  • 计算:使用对齐模型(Score Function)输出一个分数score(ht−1,hienc)\text{score}(h_{t-1}, h_{i}^{enc})score(ht1,hienc)

公式解释:

  • ht−1h_{t-1}ht1: 表示解码器的前一个时间步的隐藏状态(查询QQQ)。
  • hiench_{i}^{enc}hienc: 表示编码器的第iii个时间步的隐藏状态(键KKK/值VVV)。
4. 步骤二:归一化与注意力权重的确定

将所有分数转换成概率分布,确保总和为 1。

  • 计算:
    αti=exp⁡(score(ht−1,hienc))∑j=1Txexp⁡(score(ht−1,hjenc))\alpha_{ti} = \frac{\exp(\text{score}(h_{t-1}, h_{i}^{enc}))}{\sum_{j=1}^{T_x} \exp(\text{score}(h_{t-1}, h_{j}^{enc}))}αti=j=1Txexp(score(ht1,hjenc))exp(score(ht1,hienc))
    • 结果:αti\alpha_{ti}αti是最终的注意力权重

公式解释:

  • αti\alpha_{ti}αti:注意力权重。表示在解码器ttt时刻,对输入序列中第iii个时间步的关注度。
  • ∑j=1Txexp⁡(… )\sum_{j=1}^{T_x} \exp(\dots)j=1Txexp(): 对所有输入时间步jjj(从 1 到TxT_xTx)的分数进行求和,用于归一化
5. 步骤三:计算动态上下文向量

根据注意力权重αti\alpha_{ti}αti,对编码器隐藏状态hiench_{i}^{enc}hienc进行加权求和,得到动态上下文向量ctc_tct

  • 计算:
    ct=∑i=1Txαtihiencc_t = \sum_{i=1}^{T_x} \alpha_{ti} h_{i}^{enc}ct=i=1Txαtihienc
    • 结果:ctc_tct全新的、为当前解码步骤定制的上下文信息。

公式解释:

  • ctc_tct:动态上下文向量,专为解码器ttt时刻的输出而定制。
  • ∑i=1Tx\sum_{i=1}^{T_x}i=1Tx: 对输入序列中的所有时间步iii进行求和。
6. 步骤四:解码器生成输出

解码器利用ctc_tctht−1h_{t-1}ht1来计算并生成下一个输出词。


III. 历史意义与地位 👑

1. 解决信息瓶颈

注意力机制彻底打破了 RNN 编码器-解码器架构中固定上下文向量的限制。

2. 可解释性的革命

注意力权重αti\alpha_{ti}αti为深度学习模型提供了一种罕见的可解释性。通过可视化这些权重,我们可以清晰地看到模型在生成某个输出词时,“看”向了输入序列中的哪个词,实现了对齐(Alignment)的可视化。

3. Transformer 的催化剂

证明了注意力循环更有效处理序列依赖关系,为Transformer架构的诞生奠定基础。


IV. 零基础理解:注意力机制做了什么? 👶

他们做了什么:科学家给模型设计了一个机制,让它不再“一次性记住”整个长句子,而是动态地聚焦

怎么做的:

  1. 改变记忆方式:机器将输入的每个词都存放在一个单独的卡片上(即hiench_{i}^{enc}hienc隐藏状态)。
  2. 动态查找:在翻译时,机器用当前状态ht−1h_{t-1}ht1,查询)询问所有卡片:“我当前最需要看哪个词?
  3. 计算相关性:机器计算当前状态所有输入卡片匹配度,转换为 0 到 1 之间的关注度比例(权重αti\alpha_{ti}αti
  4. 形成焦点:最后,机器将所有输入词语按这个权重比例加权平均,形成一个临时的、高度聚焦的上下文信息ctc_tct)。

结果:机器翻译长句子时不再“健忘”,每次都能将注意力集中在最关键的输入部分。


下一篇预告:下一篇(第二十篇)我们将探讨另一项在 NLP 中至关重要的技术——**词嵌入(Word Embeddings)**的重大突破:Word2Vec (2013),它是如何用高效的浅层网络捕捉词语语义关系的。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/15 16:25:58

【小白笔记】反转链表 II

处理链表区间反转的关键在于:找到待反转区间的前驱节点,并将该区间内的节点逐个“移到”前面。1. 解题思路:一次遍历(穿针引线法) 为了简化边界条件(比如从第一个节点就开始反转),我…

作者头像 李华
网站建设 2026/6/15 15:00:11

女朋友到家前 10 分钟,空调自动开暖风(小智 MCP 实战)

官方文档:https://xiaozhi.dev/docs/development/mcp/故事的开始:她说怕冷 “今天降温好厉害,我一进门就手脚冰凉。” 小禾听完这句话,脑子里只有一个念头:她到家前 10 分钟把空调开到制热,屋里先暖起来。 …

作者头像 李华
网站建设 2026/6/15 16:13:18

离职信怎么写?LobeChat提供体面表达方式

离职信怎么写?LobeChat提供体面表达方式 在职场中,如何得体地告别一份工作,往往比入职更考验情商。一封措辞恰当、结构清晰的离职信,不仅能维护职业形象,还能为未来留下良好口碑。但现实中,很多人面对空白文…

作者头像 李华
网站建设 2026/6/14 16:37:15

linux下RP2350芯片rt-thread开发(四)SRAM性能测试优化

一、前言之前的文章中我仅通过rt-thread系统配置未改动源码的情况下,就在RP2350芯片上跑起了系统和测试。CPU性能测试能完美完成,但用MemoryPerf工具的默认配置去测试SRAM性能还不能精确完成,误差会有些大。本文说明如何优化RP2350芯片的SRAM…

作者头像 李华
网站建设 2026/6/14 14:13:24

LangGraph4j 入门

LangGraph4j 是一个 Java实现的开源 AI 工作流框架,它受到了 Python 版本 LangGraph的启发,能够与 LangChain4j 和 Spring AI无缝集成,而且这个框架还是开源的。 核心特性 1、StateGraph 工作流图 在LangGraph4j 中,StateGraph 是…

作者头像 李华
网站建设 2026/6/14 15:48:45

AI数字人小程序开发实战:基于系统源码的快速落地方案

这两年,AI数字人从概念迅速走向商业化落地。无论是品牌营销、知识付费,还是企业客服、直播带货,越来越多的企业开始意识到:不是要不要做数字人,而是如何用更低成本、更快速度做出一个能用、好用、可扩展的数字人产品。…

作者头像 李华