Transformer模型中的解码器自注意力掩码原理
字数 905 2025-11-08 20:56:49
Transformer模型中的解码器自注意力掩码原理
描述
在Transformer模型的解码器中,自注意力掩码(又称因果掩码)用于确保解码器在生成序列时只能访问已生成的位置信息,防止"偷看"未来词。这种掩码机制是保证模型自回归生成正确性的核心。
原理与作用
- 自回归生成需求:解码器逐词生成输出序列(如机器翻译),当前词只能依赖已生成的词。
- 掩码实现方式:通过将注意力分数矩阵未来位置设为负无穷(-∞),使Softmax后概率归零。
- 示例:生成第3个词时,只能关注位置1和2,位置3及之后被掩码。
具体实现步骤
-
计算注意力分数:
输入解码器的序列经过线性变换得到Q、K、V矩阵,计算注意力分数:
\(\text{Scores} = QK^T / \sqrt{d_k}\)
此时Scores是方阵,行表示当前查询位置,列表示被关注的关键位置。 -
应用下三角掩码矩阵:
- 构建掩码矩阵M:下三角部分(含对角线)为0,上三角部分为1。
- 将M中值为1的位置对应Scores元素加上一个极大负值(如-1e9):
\(\text{Masked\_Scores} = \text{Scores} + M \times (-\infty)\) - 效果:上三角位置经Softmax后概率趋近0。
-
Softmax与加权求和:
对掩码后的分数矩阵按行做Softmax,得到注意力权重,再与V相乘:
\(\text{Attention} = \text{Softmax}(\text{Masked\_Scores}) \cdot V\)
此时每个位置仅加权聚合已生成位置的V向量。
实例说明
假设解码器输入序列为["", "A", "B"](""为起始符),生成第3个词"B"时:
- Q₃与K₁、K₂、K₃计算分数,但仅保留K₁、K₂、K₃的分数(掩码掉K₄及之后,本例无K₄)。
- 实际中,掩码会提前应用于整个序列的Scores矩阵,确保并行训练时未来信息不泄露。
意义
掩码机制使解码器在训练时能并行处理整个序列(加速训练),同时保持生成过程的因果性,是Transformer替代RNN的关键设计之一。