说说transformer 中的掩码矩阵以及为什么能掩盖住词语

好的,我们从 Transformer 中掩码矩阵(mask matrix) 的定义和作用一步步解释:


1. 为什么要有掩码(mask)

在 Transformer 的 注意力机制 (Attention) 中,每个词会和序列里所有其他词计算相似度(相关性),得到一个加权和作为新的表示。

但是有两个场景需要"掩盖"一些位置的词:

  • Padding Mask(填充掩码)

    输入序列往往被 padding 到相同长度(比如 [the, cat, <PAD>, <PAD>])。
    <PAD> 不是实际的词,不应该参与注意力计算,否则会影响结果。

  • Causal Mask(因果掩码 / Look-ahead Mask)

    自回归(自左到右生成) 的任务里(比如 GPT 语言模型),在预测第 t 个词时,不应该看到未来的词(t+1, t+2, ...)。

    所以需要掩盖"未来"的部分,保证模型不能"作弊"。


2. 掩码矩阵的形式

在注意力计算中有个公式(简化版):

Attention(Q,K,V)=softmax(QKTdk+M)V \text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}} + M\right)V Attention(Q,K,V)=softmax(dk QKT+M)V

其中:

  • QKTQK^TQKT 是 query 和 key 的打分矩阵,形状为 [seq_len, seq_len]

  • MMM 是 掩码矩阵,和打分矩阵同维度。

  • 掩码的规则:

    • 需要保留的地方 → M=0M=0M=0
    • 需要屏蔽的地方 → M=−∞M=-\inftyM=−∞(或者一个非常大的负数)

3. 为什么能"掩盖住词语"

核心原因在于 softmax 的性质

softmax(zi)=ezi∑jezj \text{softmax}(z_i) = \frac{e^{z_i}}{\sum_j e^{z_j}} softmax(zi)=∑jezjezi

  • 如果 zi=−∞z_i = -\inftyzi=−∞,则 ezi=0e^{z_i} = 0ezi=0。
  • 所以被掩盖的位置在 softmax 后得到的注意力权重就是 0,完全不会参与后续加权求和。

也就是说,掩码不是"删除词语",而是把它们在注意力中的权重强行压成 0,模型就等于"看不见"这些词。


4. 两种典型掩码矩阵

  1. Padding Mask(屏蔽填充)

    复制代码
    输入: [The, cat, <PAD>, <PAD>]
    掩码矩阵 (对 <PAD> 位置全 -∞):
    [[0, 0, -∞, -∞],
     [0, 0, -∞, -∞],
     [0, 0, -∞, -∞],
     [0, 0, -∞, -∞]]
  2. Causal Mask(防止看未来)

    复制代码
    输入: [I, like, cats]
    掩码矩阵 (下三角保留,上三角掩盖):
    [[ 0, -∞, -∞],
     [ 0,   0, -∞],
     [ 0,   0,   0]]

这样,第 1 个词只能看自己,第 2 个词只能看前 2 个,第 3 个词能看所有过去词,符合自回归生成的逻辑。


✅ 总结一句:
掩码矩阵通过在注意力打分上加上 -∞,使得 softmax 权重为 0,从而屏蔽掉无效或未来的词,让模型只能利用合法的信息。


要不要我帮你画一个 图示,把注意力权重和掩码结合起来直观展示?

相关推荐
查里王2 小时前
AI 3D 生成工具知识库:当前产品格局与测评总结
人工智能·3d
武子康2 小时前
AI-调查研究-76-具身智能 当机器人走进生活:具身智能对就业与社会结构的深远影响
人工智能·程序人生·ai·职场和发展·机器人·生活·具身智能
小鹿清扫日记2 小时前
从蛮力清扫到 “会看路”:室外清洁机器人的文明进阶
人工智能·ai·机器人·扫地机器人·具身智能·连合直租·有鹿巡扫机器人
技术小黑2 小时前
Transformer系列 | Pytorch复现Transformer
pytorch·深度学习·transformer
fanstuck3 小时前
Prompt提示工程上手指南(六):AI避免“幻觉”(Hallucination)策略下的Prompt
人工智能·语言模型·自然语言处理·nlp·prompt
zhangfeng11333 小时前
win7 R 4.4.0和RStudio1.25的版本兼容性以及系统区域设置有关 导致Plots绘图面板被禁用,但是单独页面显示
开发语言·人工智能·r语言·生物信息
DogDaoDao4 小时前
神经网络稀疏化设计构架方法和原理深度解析
人工智能·pytorch·深度学习·神经网络·大模型·剪枝·网络稀疏
西猫雷婶5 小时前
pytorch基本运算-Python控制流梯度运算
人工智能·pytorch·python·深度学习·神经网络·机器学习
说私域5 小时前
新零售第一阶段传统零售商的困境突破与二次增长路径:基于定制开发开源AI智能名片S2B2C商城小程序的实践探索
人工智能·开源·零售