目录
20项任务全面碾压BERT,CMU全新XLNet预训练模型屠榜(已开源)
XLNet: Generalized Autoregressive Pretraining for Language Understanding
预训练模型:https://github.com/zihangdai/xlnet
BERT 这样基于去噪自编码器的预训练模型可以很好地建模双向语境信息,性能优于基于自回归语言模型的预训练方法。然而,由于需要 mask 一部分输入,BERT 忽略了被 mask 位置之间的依赖关系,因此出现预训练和微调效果的差异(pretrain-finetune discrepancy)。
基于这些优缺点,该研究提出了一种泛化的自回归预训练模型XLNet。XLNet可以:
来,看一下transformer-xl:https://daiwk.github.io/posts/nlp-transformer-xl.html.。。。原来transformer-xl也是这几个作者提出的。。。
XLNet 在 20 个任务上超过了 BERT 的表现,并在 18 个任务上取得了当前最佳效果(state-of-the-art),包括机器问答、自然语言推断、情感分析和文档排序。
作者从自回归(autoregressive, AR)和自编码(autoencoding, AE)两大范式分析了当前的预训练语言模型,并发现它们虽然各自都有优势,但也都有难以解决的困难。为此,研究者提出 XLNet,并希望结合大阵营的优秀属性。
AR主要的论文有这几篇:Semi-supervised sequence learning、Deep contextualized word representations、Improving language understanding by generative pre-training。通过一个autoregressive的模型来估计文本语料库的概率分布。也就是给定一个文本序列\(\mathbf{x}=\left(x_{1}, \cdots, x_{T}\right)\)
,AR将likelihood因式分解(factorize)成一个前向的乘积\(p(\mathbf{x})=\prod_{t=1}^{T} p\left(x_{t} | \mathbf{x}_{<t}\right)\)
,或者是一个后向的乘积\(p(\mathbf{x})=\prod_{t=T}^{1} p\left(x_{t} | \mathbf{x}_{>t}\right)\)
。由于 AR 语言模型仅被训练用于编码单向(uni-directional)语境(前向或后向),因而在深度双向语境建模中效果不佳。而下游语言理解任务通常需要双向语境信息。这导致 AR 语言建模无法实现有效预训练。
而AE相关的预训练模型不会进行明确的密度估计(explicit density estimation),而是从残缺的(corrupted)输入中重建原始数据。例如bert,使用一定比例的[MASK]
,然后预测被mask掉的是什么东西。由于目标并不是密度估计,所以在重建的时候,可以考虑双向的上下文信息。但存在如下两个问题:
[MASK]
这些mask信息,这导致预训练和微调之间存在差异。另外,在拆解XLNet模型设计,回顾语言表征学习的思想演进 中也提到了:
BERT 中 “MASK” 字符的加入,使得非目标词表征的建模都会依赖于人造的 “MASK” 字符,这会使模型学出虚假的依赖关系 (比如 “MASK” 可以作为不同词信息交换的桥梁) – 但 “MASK” 在下游任务中并不会出现。
同时除了位置编码的区别外,同一句话内所有目标词依赖的语境信息完全相同,这除了忽略被替换的词间的依赖关系外,随着网络层数的加深,作为输入的位置编码 的信息也可能被过多的计算操作抹去 (类似于上述循环神经网络难以建模长程依赖的原因)。
于是,本文有如下两个贡献: