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

对于本文开头的例子,我们构建的 (输入输出) 对为 (["我1", "今天2", "很3",“MASK4”,“5”,“因为6”,“我7”,“中8”,“了9”,“彩票10”]开心)。

虽然结合 Transformer 和去噪自编码模型的 BERT 可以说是拿到了语境建模的"双向圣杯",其设计的次句判断任务 (Next sentence prediction) 也对下游任务有重要帮助。但是人无完人,BERT 无完 BERT。BERT 中 "MASK" 字符的加入,使得非目标词表征的建模都会依赖于人造的 "MASK" 字符,这会使模型学出虚假的依赖关系 (比如 "MASK" 可以作为不同词信息交换的桥梁) -- 但 "MASK" 在下游任务中并不会出现。这便是 XLNet 中提到的预训练-微调差异 (Pretrain-Finetune Discrepancy)。同时除了位置编码 p 的区别外,同一句话内所有目标词依赖的语境信息完全相同,这除了忽略被替换的词间的依赖关系外,随着网络层数的加深,作为输入的位置编码 p 的信息也可能被过多的计算操作抹去 (类似于上述循环神经网络难以建模长程依赖的原因)。

8. XLNet 的核心贡献: 乱序语言模型

如上所述,BERT 虽然充分地建模了双向语境信息,但是其用来预测不同目标词的语境信息只有目标位置编码的区别,同时也建模不了被替换成 "MASK" 的词间的依赖关系。自回归语言模型虽然只能建模单向的语境,但是其计算效率比较高,且预测每个词所用的语境都是不一样的。怎么把这两者的长处结合呢?

推荐阅读