1.为什么Transformer用layernorm而不是batchnorm
首先,NLP数据中由于每条样本可能不一样长,会使用padding,如果对padding部分进行normalization,对效果有负面影响。直观来说,batchnorm会对同一个特征以batch为组进行归一化,而对于文本数据,同一个位置的token很可能是没有关联的两个token,对这样一组数据进行归一化没有什么实际意义。《PowerNorm: Rethinking Batch Normalization in Transformers》论文的实验也表明,在NLP数据使用batchnorm,均值和方差相对layernorm会更加震荡,因此效果欠佳。
2.transformer中,encdoer和decoder是怎么进行交互的?
decoder部分的输入,在每层中,先进行一次