拆解XLNet模型设计,回顾语言表征学习的思想演进(14)

但需要注意的是,当构成语境的词比较少时,根据语境预测目标词的歧义性就会增大,训练难度也会增大。这也是为什么 XLNet 只采样了一小部分词去预测的原因。

讲了这么多好处,那如何用 Transformer 实现乱序语言模型呢?

9. 乱序语言模型的实现:双自注意力通道

Transformer 中每个词的表征由其词向量和位置编码共同决定 -- 我们既拿到了词本身的性质,又有词的位置信息。所以 Transformer 天然就和乱序语言模型相契合。

假设整句话为 ["我 1", "今天 2", "很 3",「开心 4」],我们只采样出一个样本 (["今天 2", "很 3", "开心 4"] "我 1" ),XLNet 的做法和 BERT 有同有异。

和 BERT 一样,XLNet 同样是将目标词 "我 1" 替换成一个特殊字符 "MASK1"。和 BERT 不同,"MASK" 不会纳入表征的地址向量 k 以及内容向量 v 的计算,"MASK" 自始至终只充当了查询向量 q 的角色,因此所有词的表征中都不会拿到 "MASK" 的信息。这也杜绝了 "MASK" 的引入带来的预训练-微调差异 (Pretrain-Finetune Discrepancy) -- 这个改动也可以直接应用到 BERT 上面。

推荐阅读