news 2026/8/13 11:16:47

NLP中的注意力机制

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
NLP中的注意力机制

文章目录

  • 1 注意力机制介绍
    • 1.1 概念
    • 1.2 为什么需要注意力?
    • 1.3 注意力QKV
    • 1.4 注意力机制步骤
  • 1.5注意力机制分类
  • 2 Seq2Seq架构中的注意力机制
    • 2.1 Seq2Seq架构
    • 2.2 Seq2Seq架构中的QKV
    • 2.3 注意力概率分布计算流程

1 注意力机制介绍

1.1 概念

人类视觉的注意力机制:人类视觉通过长期进化形成视觉注意力机制,是大脑信号处理机制,会快速扫描全局图像,获得需要重点关注的目标区域。
本质:用有限的精力,从海量信息中快速筛选高价值信息。
人的大脑,天生抓重点,忽略次要信息,这样才能处理世界的海量信息。
RNN的弊端:无法处理长序列信息,无法并行计算。

提示:能不能把这种注意力机制引入到深度神经网络中?

灵感来源:
这个设计的灵感直接来源于我们熟悉的信息检索和数据库系统。你可以想象一下图书馆或搜索引擎的工作方式:
Query (查询):就像你在图书馆的检索系统里输入的关键词,代表你“想找什么”。
Key (键):就像书架上每本书的标签或索书号,代表这本书“是什么”。
Value (值):就是书本身的内容,是你找到书后真正获取的“信息”。
注意力机制就是把这个过程“搬”进了神经网络。

注意力机制概念:观察事物时,能够快速判断一种事物,是因为大脑把注意力放在事物最具有辨识度的地方,从而可快速判断,并非是从头到尾的观察一遍事物后,才能有判断结果。正是基于这样的理论,就产生了注意力机制。
注意力机制是一个非常重要、强大的工具

  • 是一种在深度学习中常用的技术,它允许模型在处理序列数据时,能够集中关注输入数据的不同部分
  • 自然语言处理中,注意力机制被广泛应用于机器翻译、文本摘要、问答系统等任务。
  • 图像处理中,比如在图像描述生成、图像分类等任务中,甚至扩展到了多模态任务,如图像与文本之间的关联问题。
  • 注意力机制是一个非常重要且强大的工具,可以帮助模型更好的理解和利用输入数据的信息

1.2 为什么需要注意力?

提示:与RNN提取事物特征对比,为什么要引入注意力机制?

  • 从RNN模型角度来看:
    • RNN一个时间步一个时间步的提取事物特征,必须按顺序处理,无法并行计算,效率低。
    • RNN提取长序列特征时,前面单词的特征会遗忘,无法有效捕捉全局关键信息,没有重点。
  • 从带有注意力机制的模型来看:
    • 可以并行提取事物特征
    • 还能注意到关键点。
      综上,带有注意力机制的模型,更加灵活的提取事物特征。能够动态关注输入数据中的关键部分,避免长信息遗忘,让模型更灵活。

1.3 注意力QKV

QKV是注意力机制中的核心组件,它们协同工作以使模型能够灵活的关注输入数据的不同部分,从而提升模型的性能和表达能力。(QKV分工明确,协同完成“聚焦关键信息”的任务。)

  • Query(查询向量):表示输入序列要查询的问题(你当前要解决的问题,也是触发注意力计算的需求向量)
  • Key(键向量):表示关注的内容的索引(关键字),用来和Q计算相似度。
  • Value(值向量):表示关注的内容,(最终要获取的实际内容)

tips:
注意力机制QKV核心逻辑总结:
QKV的本质:“问题”,“索引”,“内容”的匹配机制。

  1. 用Query表达当前的任务需求。
  2. 用Key作为索引,和Query计算相似度,找到最相关的信息位置。
  3. 用Value作为实际内容,根据相似度权重输出最终结果。

1.4 注意力机制步骤

第一步:用查询张量Q与键张量K进行相似度运算,得到一个注意力机制的权重分布attention_weight;
第二步:用权重分布乘以值张量V,得到注意力机制的结果表示attention_q。
Attention是关于QKV的函数,通过QKV运算,普通的Q升级成一个更强大的Q。

注意力机制的本质是:动态加权,让模型能够自动识别输入中哪些信息和当前任务最相关。输出的attention_q不再是孤立的“it"查询向量,而是融合了整个句子中最相关信息的增强向量。在这个例子中,模型通过权重计算,自动判断‘it’最可能指代的‘robot’,从而完成了指代消解的任务。

1.5注意力机制分类

深度学习中的注意力机制通常可以分为三类:

  • 软注意力机制(soft/global attention):对每个输入项的分配权重为0-1之间,也就是某些部分关注的多一点,某些部分关注的少一点,因为对大部分信息都有考虑,但考虑程度不一样,所以相对来说计算量比较大。
  • 硬注意力机制(Hard/Local Attention):对每个输入项分配的权重非0即1,和软注意不同,硬注意力机制只考虑哪部分需要关注,哪部分不关注,也就是舍弃掉一些不相关项。优势在于可以减少一定的时间和计算成本,但有可能丢一些本应该注意的信息。
  • 自注意力机制(self / intra Attention):对每个输入项分配的权重取决于输入项之间的相互作用,即通过输入项内部的“表决”来决定应该关注哪些输入项。和前两种相比,在处理很长的输入时,具有并行计算的优势。

2 Seq2Seq架构中的注意力机制

2.1 Seq2Seq架构

Sequence -to-Sequence架构是一种在自然语言处理中非常重要的模型结构,广泛应用于机器翻译、文本摘要、对话系统等任务。该架构的核心思想是将输入序列映射为一个中间表示,然后再从这个中间表示生成目标序列。

Seq2Seq模型架构包括三部分,分别是encoder(编码器),decoder(解码器)、中间语义张量c。
编码流程:1个时间步1个时间步的编码,每个时间步有隐藏层输出,最终组合成中间语义张量C。
解码流程:1个时间步1个时间步的解码,解码的每个时间步输入input和ht-1,输出为output和ht,再连接一个全连接层+softmax做一个分类,从分类结果中找一个预测结果即可。

核心概念

  1. 编码器:编码器负责将输入序列映射成一个中间的表示(中间语义张量C),通常是一个固定长度的向量。常用的编码器结构是循环神经网络(RNN)或者长短时记忆网络(LSTM),近年来也包括了Transformer模型。
  2. 编码器的工作流程:对输入的文本序列每个时间步都会产生一个隐藏状态。这些隐藏状态会捕捉到输入序列的信息,并被传递给下一个时刻。在Seq2Seq中,编码器会将整个输入序列处理完后,最后一个时刻的隐藏状态会被用作解码器的初始隐藏状态。
  3. 解码器:解码器接受编码器传递过来的初始隐藏状态,并逐步生成目标序列。解码器也是一个RNN系列模型,通常会包括一个额外的注意力机制,以便在生成目标序列过程中动态地关注输入序列的不同部分。
  4. 解码器的工作流程:一个时间步一个时间步的解码,采用自回归机制进行解码,上一个时间步的输出,作为写一个的输入,每个时间步都会用到中间语义张量C

Seq2Seq的痛点与改进:

  • 原生痛点:中间语义张量C是固定长度的,当输入序列很长时,会丢失早期信息,导致翻译或生成效果下降。
  • 核心改进:引入注意力机制,让解码器在生成每个词时,能动态关注输入序列的不同部分,从而提升长序列的处理能力。注意力机制就是解决“信息利用不细致”的问题。

2.2 Seq2Seq架构中的QKV

如何在Seq2Seq中添加注意力机制?

  • 解码中,一个时间步一个时间步的解码,每个时间步都要添加注意力机制,每个时间步都需要引入QKV。
    权重分布不准确怎么办?
  • 理解注意力机制应该站在整个深度学习网络三大件的高度来理解,注意力机制只不过是前向传播路径中的一个小路径,一个小策略,最终还是要靠损失函数、反向传播来更新注意力机制层的权重参数,来学习事物的特征。

2.3 注意力概率分布计算流程

  1. 算匹配分
    用F函数,对比Decoder当前状态和Encoder每个单词的状态,看谁更相关。
  2. 转成概率
    用softmax()函数把匹配分转成(概率求和为1)的概率,代表:关注Encoder每个单词的比例。
  3. 加权求和
    用这些概率给Encoder单词的词向量加权,得到专属信息包(中间语义张量C),给Decoder生成词用。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/13 11:16:25

Cesium三维可视化渲染质量深度调优:消除锯齿与模糊实战指南

1. 项目概述:从“毛边”到“锐利”,一次关于Cesium视觉质量的深度调优 如果你和我一样,长期在三维GIS或数字孪生领域摸爬滚打,那么对Cesium Viewer里那些恼人的“毛边”和“朦胧感”一定不会陌生。我说的就是模型边缘的锯齿&#…

作者头像 李华
网站建设 2026/8/13 11:15:30

Vite生产环境代码分割与懒加载优化实战指南

1. 项目概述:为什么生产环境优化是Vite项目的“必修课”如果你正在用Vite构建现代前端应用,并且项目即将或已经上线,那么“生产环境代码分割与懒加载优化”这个话题,就是你绕不开的一道坎。这绝不是纸上谈兵的理论,而是…

作者头像 李华
网站建设 2026/8/13 11:13:25

Linux面试Top100:从命令到原理,构建系统性知识图谱

1. 项目概述:一份“精通”Linux的底气从何而来看到这个标题,我仿佛看到了屏幕后面那个自信满满、准备在面试中大杀四方的你。确实,在技术面试,尤其是后端、运维、SRE、嵌入式等岗位的面试中,Linux知识是绕不开的硬通货…

作者头像 李华
网站建设 2026/8/13 11:12:22

为AI对话机器人构建企业级审计日志与合规性保障体系

1. 项目概述:当AI对话机器人遇上合规审计最近在部署和运维一个名为intv_ai_mk11的开源AI对话机器人项目时,我遇到了一个几乎所有企业级应用都绕不开的坎:审计日志与合规性。这个项目本身功能很酷,能处理复杂的对话、集成多种模型&…

作者头像 李华
网站建设 2026/8/13 11:10:15

数据清洗不用愁:R语言处理缺失值、异常值与脏数据的8个实用函数

做数据分析或者机器学习建模的人,应该都深有体会:行业里常说“七分清洗,三分建模”,这话真的一点不夸张。不管是公司的业务报表、科研实验数据,还是训练模型用的样本数据,原始采集下来的素材基本都没法直接…

作者头像 李华
网站建设 2026/8/13 11:09:39

从Claude Code源码泄露看现代AI Agent核心架构与工程实践

1. 从一次“意外”的源码泄露说起:我们看到了什么?最近,一个名为“Claude Code”的AI Agent项目的51万行TypeScript源码在网络上流传开来,这件事在开发者圈子里激起了不小的波澜。作为一个长期关注AI工程化落地的从业者&#xff0…

作者头像 李华