核心要点

  • 原始 Seq2Seq 把整句压成一个固定向量,长序列信息丢失(瓶颈问题)

  • 注意力让解码每一步动态加权关注所有编码器隐状态,而非只用末态

  • 权重由解码状态与各编码状态打分(如点积)经 softmax 得到,加权求上下文

  • 它是 Transformer 自注意力的前身,并带来可解释的对齐可视化

标准回答

固定向量瓶颈

经典 RNN Seq2Seq 把整个输入编码进一个固定长度的上下文向量,再交给解码器。句子越长,这个向量越难承载全部信息,远端 token 容易被遗忘,翻译长句质量明显下降。

注意力的解法

引入注意力后,解码器在生成每个词时,不再只依赖末状态,而是对所有编码器隐状态计算一组权重并加权求和,得到该步专属的上下文向量。

  • 用当前解码状态与每个编码状态打分(点积/加性)
  • softmax 归一化为注意力权重
  • 按权重对编码状态加权求和,喂给解码器

这相当于让模型「需要看哪就看哪」,对齐到相关源词,缓解了长依赖丢失。

承上启下

这种「解码器关注全部编码状态」的思想正是 Transformer 自注意力的基础,后者进一步去掉循环结构、实现并行与全局建模。

常见误区

⚠️ 常见踩坑

别把 Seq2Seq 注意力等同于 Transformer 自注意力——前者是 cross-attention(解码关注编码),自注意力是序列对自身建模;注意力缓解但未完全消除长序列困难。

追问

追问 1注意力权重是怎么算出来的?

先用当前解码器状态(query)与每个编码器隐状态(key)做打分,常见为点积或加性(Bahdanau);分数经 softmax 归一化为权重;再用权重对编码状态(value)加权求和得到上下文向量。Transformer 把它形式化为 QKV 缩放点积注意力。

追问 2注意力相比纯 RNN 有什么额外好处?

除了破解固定向量瓶颈,注意力权重还提供可解释的软对齐——可可视化源词与目标词的对应关系。它也减弱了对循环传递长程信息的依赖,为后续完全基于注意力、可并行训练的 Transformer 铺平了道路。

延伸学习

与本题相关的知识库文章、术语、工具与行业资讯。

🛠️ AI 工具

  • Transformers

    Hugging Face 核心模型库,159,648+ stars。支持 200K+ 预训练模型,覆盖 NLP、计算机视觉、音频、多模态等全领域,提供统一 API 接口,是 AI 开发者的必备基础设施

  • Pytorch

    Meta 开源的深度学习框架,100K+ stars。以动态计算图和 Pythonic 风格著称,在学术界和工业界都有广泛应用,支持分布式训练、移动端部署和 ONNX 导出