news 2026/8/16 14:31:44

Transformer注意力机制

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Transformer注意力机制

Transformer注意力机制的核心是让序列中的每个位置都能直接关注其他所有位置,通过动态计算相关性权重来聚合信息,从而高效捕捉长距离依赖。

🧠 直观理解:什么是注意力?

传统RNN处理序列时,信息必须一步步传递(从第一个词到最后一个词),这导致长距离依赖很难捕捉。

注意力机制的核心思想是:让序列中的每个位置都能"看到"其他所有位置,并根据相关性动态分配权重。

打个比方:你在读一句话时,理解某个词的含义会同时参考句中的其他词,而且对不同词的"关注度"不同。注意力机制就是让模型学会这种"关注分配"的能力。


📐 核心公式:Scaled Dot-Product Attention

注意力机制的数学表达为:

其中涉及三个关键向量:

  • Q(Query,查询):当前词"想要查找什么信息"
  • K(Key,键):每个词"能被查到的标签"
  • V(Value,值):每个词"实际携带的信息内容"


🔀 多头注意力(Multi-Head Attention)

单一注意力只能学到一种"关注模式"。多头注意力将Q、K、V分别投影到多个不同的子空间,让模型同时从不同角度关注信息:

其中每个头:

直觉理解:就像多个"审查员"同时审阅同一句话,有人关注语法结构,有人关注语义关系,有人关注位置关系,最后把各自的发现综合起来。


🎭 掩码机制(Masking)

Transformer中有两种掩码:

  • Padding Mask:忽略填充token(如[PAD]),不让它们参与注意力计算。
  • Causal Mask(因果掩码):在解码器中使用,确保位置 i 只能关注位置 ≤i 的信息,防止"看到未来"。实现方式是在softmax之前,将未来位置的分数设为 −∞ 。

🏗️ 在Transformer中的位置

Transformer整体架构中,注意力机制出现在两个地方:

  • 编码器(Encoder)中的自注意力(Self-Attention):每个位置关注序列中的所有位置(双向)。
  • 解码器(Decoder)中
    • 掩码自注意力:只关注已生成的部分(单向)。
    • 交叉注意力(Cross-Attention):Query来自解码器,Key和Value来自编码器的输出,实现编码器到解码器的信息传递。

💻 简化代码实现(PyTorch风格)

python

import torch import torch.nn.functional as F import math def scaled_dot_product_attention(Q, K, V, mask=None): d_k = Q.size(-1) # 1. 计算相似度并缩放 scores = torch.matmul(Q, K.transpose(-2, -1)) / math.sqrt(d_k) # 2. 应用掩码(如果有) if mask is not None: scores = scores.masked_fill(mask == 0, -1e9) # 3. Softmax归一化 attn_weights = F.softmax(scores, dim=-1) # 4. 加权求和 output = torch.matmul(attn_weights, V) return output, attn_weights

📌 总结

概念作用
Q, K, V分别代表"查询"、"键"、"值",通过线性变换从输入得到
QKT计算词与词之间的相关性
dk​​ 缩放防止点积过大导致梯度消失
Softmax将相关性转化为注意力权重
加权V根据权重聚合信息
多头从多个子空间捕捉不同类型的依赖关系
掩码控制信息的可见性(填充/因果)

注意力机制之所以强大,是因为它不依赖序列顺序,能并行计算,且能直接建模任意两个位置之间的关系,这正是Transformer超越RNN的关键所在。

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

服务器问题排查

如何查看磁盘使用情况 1. df -h df -h // df 是 "disk free" 的缩写,是一个用于显示文件系统磁盘空间使用情况的命令。2. du -sh * 查看所在挂载点的文件和文件夹大小: du -sh *du -sh *命令的解释如下: du:是“disk…

作者头像 李华
网站建设 2026/8/16 14:22:49

SCOOP多机部署实战:用SSH与hostfile构建分布式集群

SCOOP多机部署实战:用SSH与hostfile构建分布式集群 【免费下载链接】scoop SCOOP (Scalable COncurrent Operations in Python) 项目地址: https://gitcode.com/gh_mirrors/scoop/scoop SCOOP(Scalable COncurrent Operations in Python&#xff…

作者头像 李华
网站建设 2026/8/16 14:21:20

完全不会写开题报告,有哪些便捷的AI论文软件推荐?

每到毕业季,开题报告就成了很多同学的“第一道坎”:选题定不下来、研究背景和意义分不清、文献综述无从下手、研究方法和技术路线逻辑混乱,盯着空白文档一整天也写不出完整框架。尤其是零基础、在职读研、跨专业的学生,对高校开题…

作者头像 李华
网站建设 2026/8/16 14:20:45

Nucleus Co-op:让PC单机游戏秒变本地分屏神器的开源利器

Nucleus Co-op:让PC单机游戏秒变本地分屏神器的开源利器 【免费下载链接】nucleuscoop Starts multiple instances of a game for split-screen multiplayer gaming! 项目地址: https://gitcode.com/gh_mirrors/nu/nucleuscoop 周六傍晚,朋友拎着…

作者头像 李华