当前位置: 首页 > news >正文

注意力机制 Attention

1. 为什么引入注意力机制?

注意力机制的提出主要是为了解决传统深度学习模型(如RNN、LSTM)在处理序列数据时的两大瓶颈:

  • 长距离依赖问题:传统RNN在长序列中容易丢失早期信息(例如翻译长句子时,开头的词可能被遗忘)。
  • 固定编码瓶颈:传统编码器-解码器模型将整个输入序列压缩为一个固定长度的向量,导致细节丢失(尤其是长文本)。

引入注意力的核心优势

  • 动态聚焦:允许模型在处理每个输出时,动态关注输入中最相关的部分(例如翻译“apple”时,重点关注源句中的“苹果”)。
  • 保留细节:通过加权聚合所有输入信息,而非压缩为单一向量,避免信息损失。
  • 可解释性:注意力权重能直观显示模型关注的位置(类似“高亮”重要词)。
  • 并行计算:自注意力机制(如Transformer)摆脱了RNN的顺序计算,大幅提升训练速度。

2. 注意力机制如何工作?

注意力机制的核心思想是:根据输入的重要性分配权重,再通过加权求和提取关键信息。具体步骤:

1. 输入表示

  • 查询(Query):当前需要生成的目标位置(例如翻译任务中待生成的英文单词)。
  • 键(Key)值(Value):通常来自输入序列(例如法语句子中的每个词)。

2. 计算相似度(评分函数)
通过比较Query和所有Key的相似性,得到注意力分数。常用方法:

  • 点积(Dot Product)Score = Query · Key
  • 缩放点积(Scaled Dot-Product):加入缩放因子(如除以√维度,防止梯度爆炸)。
  • 加性(Additive):通过神经网络计算。

3. 归一化权重
用Softmax将分数转换为概率分布,确保权重和为1:
Attention Weights = Softmax(Scores)

4. 加权聚合
用权重对Value加权求和,生成上下文向量(Context Vector)
Context = Σ(Attention Weights * Value)

5. 输出
将上下文向量与当前解码状态结合,生成最终输出(例如预测目标词)。


示例
在英文翻译法语的句子“I love cats → J’aime les chats”中:

  • 当生成英文词“cats”时,模型会为法语句子中的“chats”分配高注意力权重,同时忽略无关词。

扩展类型

  • 自注意力(Self-Attention):Query、Key、Value来自同一序列,捕捉序列内部关系(如理解句子中代词指代的对象)。
  • 交叉注意力(Cross-Attention):Query来自目标序列,Key/Value来自源序列(用于翻译等任务)。
  • 多头注意力(Multi-Head):并行多个注意力头,捕捉不同维度的语义关联(例如同时关注语法和语义)。

总结
注意力机制通过动态权重分配,解决了长序列建模中的信息丢失问题,并成为Transformer、BERT、GPT等现代模型的核心组件,推动了NLP领域的突破性进展。

相关文章:

  • 第九章:前沿 RAG 技术探索
  • 数字内容体验驱动用户参与增效
  • 图像模糊(蓝桥杯真题)
  • 习题与正则表达式
  • 以下是针对该 Ansible 任务的格式检查和优化建议
  • 项目中如何防止超卖
  • Redis高频面试题及深度解析(20大核心问题+场景化答案)
  • Python 序列构成的数组(list.sort方法和内置函数sorted)
  • PostgreSQL数据库重放攻击测试
  • 【大模型理论篇】SWIFT: 可扩展轻量级的大模型微调基础设施
  • [ctfshow web入门] web26
  • 通过发票四要素信息核验增值税发票真伪-iOS发票查验接口
  • 第12/100节:关键路径
  • HTTP GET 和 POST 请求有什么区别
  • spring-cloud-starter-alibaba-sentinel使用说明
  • linux--------------进程控制(下)
  • WPF如何修改三方控件库的样式
  • AudioRecord 录制pcm转wav
  • 每日一题(小白)数组娱乐篇17
  • 滑动窗口7:30. 串联所有单词的子串
  • “80后”计算机专家唐金辉已任南京林业大学副校长
  • 奥利弗·斯通回顾越战50周年:我们不善于总结历史教训
  • 公募基金改革八大要点:建立浮动管理费收取机制、降低规模排名考核权重
  • 秦洪看盘|受阻回落,蓄积新做多能量
  • 暴雨蓝色预警:南方开启较强降雨过程
  • 前瞻|中俄元首今年将首次面对面会晤,专家:国际变局中构建更坚韧的合作架构