transformer里的attention mask产生的 单向双向效果和xlnet里的效果

transformer里的attention mask产生的 单向双向效果和xlnet里的效果_第1张图片
1,2,3,4是一句话的四个词,并打乱了顺序,
以xlnet为例,
图中,
上图和下图的区别是下图扣去邪线,
上图表示,1可以看到1,2可以看到2,3可以看到3,4可以看到4,
下图表示,1不能看到1,2不能看到2,3不能看到3,4不能看到4,

把这个mask矩阵左下(右上?)角全部置0,则是单向transformer,
把整个mask矩阵全部置1,则是双向transformer,

回到上图,
矩阵第一行,表示预测1的时候可以看到3->2->4,
矩阵第二行,表示预测2的时候可以看到3,
矩阵第三行,表示预测3的时候都看不到,
矩阵第四行,表示预测4的时候可以看到3->2

为什么如此将矩阵mask能实现看到看不到的效果?
因为这个attention矩阵是句子A和句子B造的attention矩阵,用 attetion矩阵 再去 矩阵乘 句子A,则是个完整的attention效果,
也就是attention矩阵一行里如果mask掉一部分词,就等于缺少那部分词的信息。(目前理解)

你可能感兴趣的:(transformer里的attention mask产生的 单向双向效果和xlnet里的效果)