核心要点
原始 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 导出