为什么转换器在每一层都屏蔽而不是只在输入层屏蔽?

数据挖掘 神经网络 nlp 变压器
2022-02-24 03:17:49

通过带注释的转换器工作,我看到编码器(掩码填充)和解码器(掩码填充+未来位置)中的每一层都被屏蔽了。为什么不能在编码器和解码器的第一层简化为一个掩码?

1个回答

如果仅在第一层应用掩码,则后续层中的自注意力将带来来自未来令牌的每个位置信息。

让我们用数字来分解它:

  • 在层i,如果应用了因果掩蔽,则位置处的输出t包含有关层的信息i1在位置1..t1, 那是,Li,t=fi(Li1,1,...,Li1,t1).

  • 如果没有应用因果屏蔽,则在位置处的输出t包含有关层的信息i1在长度序列中的所有位置T,也就是位置1..T Li,t=fi(Li1,1,...,Li1,T)

  • 如果在第 1 层(第一层)而不是在第 2 层或第 3 层应用因果掩蔽,我们得到对于第 3 层的位置 t,我们将有:L3,t=f3(L2,1,...,L2,T)=f3(L2,1,...,f1(L1,1,...,L1,T)),这意味着该位置t包含来自未来令牌的信息,如T>t.

注意:原始答案是错误的,已完全编辑。要检查原始答案,请参阅发布时间线