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掉一部分词,就等于缺少那部分词的信息。(目前理解)