目录
为什么如果没有适当的掩码机制,解码器在生成某个位置的输出时,可能会“看到”并错误地利用该位置之后的信息
掩码Mask
Mask
表示掩码,它对某些值进行掩盖,使其在参数更新时不产生效果。Transformer
模型里面涉及两种 mask
,分别是 Padding Mask
和 Sequence Mask
。
-
Padding Mask
在所有的scaled dot-product attention
里面都需要用到 -
而
Sequence Mask
只有在解码器Decoder
的Self-Attention
里面用到。
Padding Mask
什么是 Padding mask
呢?因为每个批次输入序列的长度是不一样的,所以我们要对输入序列进行对齐。
具体来说:就是在较短的序列后面填充 0(但是如果输入的序列太长,则是截断,把多余的直接舍弃)。因为这些填充的位置,其实是没有什么意义的,所以我们的 Attention
机制不应该把注意力放在这些位置上,所以我们需要进行一些处理。
具体的做法:把这些位置的值加上一个非常大的负数(负无穷),这样的话,经过Softmax