个人翻译,并不专业。
论文地址
https://arxiv.org/pdf/1906.08237.pdf
XLNet: 语言理解的广义自回归预训练
具有双向上下文建模,自动编码去燥的能力与基于自动回归语言模型的预训练方法相比,
基于BERT的预训练方法具有更好的性能。然而,依赖于使用蒙板破坏输入,BERT忽略了被
蒙位置之间的依赖性,并遭受了一个预训练微调差异的影响。鉴于这些优缺点,我们提出
一种广义自回归预训练方法XLNet,它 1)能通过使用因子分解顺序的所有排列的期望似然最大化
来学习双向上下文。以及 2)由于自回归公式克服了BERT的限制。此外,XLNet还将最先进的
自回归模型Transformer-XL 的思想集成到了预训练中。根据经验,XLNet在20个任务上通常都比BERT
出色,并且在18个任务上获得了最先进的结果。包括,问答,自然语言推理,情感分析,文档排名。
无监督表示学习在自然语言理解领域取得了很大的成功[7, 19, 24, 25, 10]。通常,这些方法首先在大规模的
未标记的文本语料库上训练神经网络,然后对下游任务微调模型或表示。在这种共享
的高级想法下,文献中探索了不同的无监督预训练目标。其中,自回归语言建模(AR)和
自动编码(AE)是两个最成功的预训练目标。
AR 语言建模试图用自回归模型估计文本语料库的概率分布[7, 24, 25]。具体来说,给定文本序列
x \bf{x} x = ( x 1 , . . . , x T ) (x_1, ..., x_T) (x1,...,xT)
AR 语言建模因子分解似然为一个前向乘积
p ( x ) = ∏ t = 1 T p ( x t ∣ x < t ) p({\bf{x}}) = \prod^T_{t=1}p(x_t|{\bf{x}}_{<t}) p(x)=∏t=1Tp(xt∣x<t)
或者一个后向乘积
p ( x ) = ∏ t = T 1 p ( x t ∣ x > t ) p(x) = \prod^1_{t=T}p(x_t|x_{>t}) p(x)=∏t=T1p(xt∣x>t)
一个参数模型(例如神经网络) 被训练成对每个条件分布进行模型化。由于AR语言模型
只被训练为对单向上下文(向前或向后)进行编码,因此它不能有效地对深层双向上下文进行
建模。相反,下游的语言理解任务经常需要双向上下文信息。这导致了AR语言建模和有效
的预训练之间的差距。
相比之下,基于AE的预训练不执行显式的密度估计,而是从被破坏的输入中重建原始数据。
一个值得注意的例子是BERT[10], 它曾经是最先进的预训练方法。给定一个分词序列,分词序列
的某一部分被一个特殊符号[MASK]替换,并且模型经过训练,从损坏的版本中恢复原始词。
由于密度估计不是目标的一部分,因此BERT可以利用双向上下文进行重建。作为一个直接的
好处,这弥补了前面提到的AR语言建模中的双向信息缺口,从而提高了性能。然而,BERT
在预训练期间使用的人工符号像[MASK] 在微调时,从真实数据中缺失掉了,从而导致了预训练
与微调差异。此外, 由于预测的词在输入中被屏蔽,BERT不能像在AR语言建模中那样使用
乘法定则来建模联合概率。换言之,BERT假设预测的词彼此独立,这使没有被屏蔽的词被
过度简化,因为高阶,长期依赖性在自然语言中普遍存在[9]。
面对现有语言预训练目标的优缺点,本文提出了一种广义自回归方法XLNet, 它既利用
了AR语言建模和AE的优点又避免了他们的局限性。
首先,XLNet最大化序列关于因子分解顺序所有可能的排列的期望的对数似然,而不是传统
AR模型那样使用固定的正向或反向因子分解顺序。由于排列操作,每个位置的上下文可以由
左右两侧的词组成。在期望中,每个位置都学习利用来自所有位置的上下文信息,即捕获上下文。
其次, 作为一种广义的AR语言模型,XLNet不依赖于数据破坏。因此,XLNet不会受到BERT所受到的
预训练微调差异的影响。同时,自回归目标也提供了一种自然的方法,利用乘法定则对预测词的联合
概率进行因式分解,消除了BERT提出的独立性假设。
除了一个新的预训练目标,XLNet还改进了预训练的架构设计。
受AR 语言模型最新进展的启发,XLNet将segment recurrent mechanism 和 relative encoding scheme
集成到了预训练中,这从经验上提高了性能,特别是涉及较长文本序列的任务。
将Transformer(-XL)[9]架构简单的应用于基于排列的语言模型不起作用,因为因子分解顺序是任意的,而且目标是不明确的。
作为一种解决方案,我们提议重新参数化Transformer(-XL)网络,以消除不确定性。
根据经验,XLNet在18项任务中取得了最先进的成果,例如 7个GLUE语言理解任务,三项阅读理解任务
包括SQuAD 和 RACE。7项文本分类任务包括Yelp和IMDB,和ClueWeb09-B 文档排序任务。
在一组公平的比较实验中,XLNet在多个基准上一直优于BERT[10]。
相关的工作,在[32, 11]中已经探讨了基于置换的AR建模的思想,但有几个关键的区别。
以前的模型是无序的,而XLNet本质上是有顺序意识的,带有位置编码。这对语言理解很重要,
因为一个无序的模型退化为bag-of-words,缺乏基本的表达能力。上述的差异源于动机的根本差异。
先前的模型致力于通过在模型中烘培一个“无秩序”的归纳偏差来改进密度估计,而XLNet则是通过
使AR语言模型学习双向上下文来实现的。
在本节中,我们首先回顾和比较传统的AR语言模型和BERT为语言预训练。
给定一个文本序列
x = [ x 1 , . . . , x t ] {\bf{x}} = [x_1, ..., x_t] x=[x1,...,xt],
AR语言建模在前向自回归因子分解下,执行最大化似然预训练。
其中 h θ ( x i : t − 1 ) h_{\theta}({\bf{x}}_{i:t-1}) hθ(xi:t−1)是神经模型(如RNN或Transformers)生成的上下文表示,
e(x) 表示x的嵌入。相比之下, BERT是基于去噪自编码。具体的来说,对于文本序列x,
BERT首先通过将x中的一部分(例如15%)的词随机设置为特殊符号[MASk]来构造损坏的
版本 x ^ \hat{\bf{x}} x^ ,我们让被屏蔽的词为 x ˉ \bar{\bf{x}} xˉ. 训练的目标是从 x ^ \hat{\bf{x}} x^重建 x ˉ \bar{\bf{x}} xˉ
当 m t = 1 m_t = 1 mt=1 时,表示 x t x_t xt被遮挡,H θ \theta θ是
Transformer 映射的一个长度T的文本序列x到一个隐藏向量序列
H θ \theta θ = [H θ \theta θ(x)1, H θ \theta θ(x)2, …, H θ \theta θ(x)T]
从以下几个方面比较了两个预训练目标的优缺点。
独立假设 正如 ≈ 符号所强调的那样。BERT因子化联合条件概率p( x ˉ \bar{\bf{x}} xˉ| x ^ \hat{\bf{x}} x^), 基于一个独立假设,
即所有被屏蔽的词 x ˉ \bar{\bf{x}} xˉ都是单独重建的。相比之下,AR语言建模目标使用乘法定则因子分解pθ(x),
乘法定则在没有这种独立性假设的情况下普遍适用。
输入噪声 BERT的输入包涵一些人工符号,如[MASK],这些符号从不会出现在下游任务中,这会创建预训练微调差异。
用[10]中的原始词替换[MASK]并不能解决问题,因为原始词只能以很小的概率使用。
否则, 等式(2)将很容易优化。相比之下,AR语言建模不依赖于任何输入破坏,也不受此问题的影响。
上下文依赖 AR表示 h θ ( x 1 : t − 1 ) h_{\theta}({\bf{x}}_{1:t-1}) hθ(x1:t−1) 仅限于到位置t的词(即左侧的词),
而BERT 表示 h θ ( x ) t h_{\theta}({\bf{x}})_t hθ(x)t可以访问两侧的上下文信息。因此,BERT目标允许模型
进行预训练,以便更好的捕获双向内容。
图1:假设相同的输入序列x,但因子分解顺序不同,用于预测x3的排列语言模型目标的说明。
通过以上比较,AR语言建模和BERT具有各自独特的优势。一个自然的问题是,是否存在一个
预先训练的目标,既能带来两者的优势,又能避免他们的弱点。
借鉴orderless NADE[32]的思想,我们提出了排列语言模型目标,它不仅保留了AR模型的优点,
而且允许模型捕获双向上下文。具体的来说,对于长度为T的序列x,有T! 种不同顺序,
执行有效的自回归因子分解。直观地说,如果模型参数在所有因子分解顺序中共享,期待中的,
模型将会学习从两边所有位置收集信息。
为了使这一想法正式化,让KaTeX parse error: Expected '}', got '\cal' at position 2: {\̲c̲a̲l̲{Z}}_T成为长度索引序列[1,2,… , T]所有可能排列的集合。
我们使用 z t z_t zt 和z
然后,我们提出的排列语言建模目标可以表示为:
本质上, 对于文本序列x,我们一次采样一个因子分解顺序z,并根据分解顺序分解似然pθ(x).
由于相同的模型参数θ在训练期间在所有的分解顺序中被共享,在期望中, x t x_t xt已经
看到序列中的每一个可能元素 x i ̸ = x t x_i \not= x_t xi̸=xt , 因此可以捕捉双向上下文。
此外,由于该目标符合AR框架,因此自然避免了第2.1节中讨论的独立性假设和预训练微调差异。
在排列上重新标注 提出的目标只排列因子分解顺序,而不排列序列顺序。换言之,我们保持原始
序列顺序,使用于原始序列相应的位置编码,并依靠Transformers中适当的注意屏蔽来实现
分解顺序的排列。注意,这种选择是必要的,因为模型在微调期间只会遇到自然顺序的文本序列。
为了提供一个整体图,我们展示了一个预测词 x 3 x_3 x3的例子,给出了相同的输入序列x,但在图1中
不同的因子分解顺序下。
虽然排列语言建模具有所需的属性,但使用标准Transformer参数化的简单实现可能不起作用。
查看下问题,假设我们使用标准的SoftMax公式参数化下一个词分布 p θ p_θ pθ( X z t X_{z_{t}} Xzt | KaTeX parse error: Expected '}', got '\<' at position 5: x_{z\̲<̲t})
即:
p θ ( X z t = x ∣ X z < t ) = e x p ( e ( x ) T h θ ( x z < t ) ) ∑ x ′ e x p ( e ( x ′ ) T h ( x ) z < t ) ) p_θ(X_{z_t} = x \quad |\quad X_{z<t}) = \frac{exp \left(e(x)^{T}h_{θ}(x_{z_{<t}})\right)}{ \sum_{x'} exp \left( e(x')^{T}h_{}(x){z_{<t}})\right)} pθ(Xzt=x∣Xz<t)=∑x′exp(e(x′)Th(x)z<t))exp(e(x)Thθ(xz<t))
h θ ( x z < t ) h_θ(x_{z_{<t}}) hθ(xz<t) 指适当遮掩后the shared Transformer network 产生的隐藏表示 x z < t x_{z_{<t}} xz<t.
现在注意这个表示 h θ ( x z < t ) h_θ(x_{z_{<t}}) hθ(xz<t) 并不依赖于它要预测的位置。即不依赖于 z t z_t zt 的值。
因此,无论目标位置如何,都可以预测相同的分布,这样的分布不能学到有用的表示。(具体示例见附录A.1)
为了避免这个问题,我们建议重新参数化下一个词的分布,以实现目标位置感知:
g θ ( x z < t , z t ) g_θ(x_{z_{<t}}, z_t) gθ(xz<t,zt) 指一种新类型的附加目标位置 z t z_t zt作为输入的表示。
Two-Stream Self-Attention 双流自我关注 虽然目标感知表示的思想消除了目标预测中的模糊性,
但是如何构造KaTeX parse error: Expected '}', got '\<' at position 11: g_θ(x_{z_{\̲<̲t}}, z_t) 仍然是个非平凡的问题。除其他可能性外,我们建议站在
目标位置 z t z_t zt,并依靠位置 z t z_t zt通过注意力从 x z < t x_{z_{<t}} xz<t的上下文收集信息。
要使此参数化起作用,a standard Transformer 架构中有两个相互矛盾的需求:
内容表示 h θ ( x z ≤ t ) h_θ(x_{z_{\leq t}}) hθ(xz≤t), 建成 h z t h_{z_t} hzt 其作用与Transformer的标准隐藏状态相似。
这种表示同时对上下文和 x z t x_{z_t} xzt本身进行编码。
计算上,第一层查询流是可训练向量初始化的。即 $g^{(0)}_i = w $,
当内容流设置为对应的词嵌入时, 即, h i ( 0 ) = e ( x i ) h^{(0)}_i = e(x_i) hi(0)=e(xi).
对于每一个自关注层 m = 1, …, M, 这两个表示流用一组共享参数进行有计划的更新,如下图所示(如图2(a)和(b)):
图2: (a):内容流注意,与标准的自注意相同。(b):查询流注意,没有关于 x z t x_{z_t} xzt的信息, (c)
双流注意排列语言建模训练概述。
其中Q, K, V, 表示注意力操作中的查询,键,和值[33]。
内容表示的更新规则与标准的self-attention完全相同,因此在微调期间,我们可以简单的
删除查询流并将内容流作用与普通的Transformer(-XL).最后,我们可以使用最后一层查询
表示 g z t ( M ) g^{(M)}_{z_t} gzt(M) 来计算等式4。
Partial Prediction 部分预测 虽然排列语言建模目标(3)有许多优点,但由于排列的存在,
使得优化问题更具挑战性,并在初步实验中导致收敛速度较慢。为了减少优化的困难,我们选择
只预测最后一个按因子分解顺序的词。形式上,我们将z分解为非目标自序列z<=c和目标
自序列z>c,其中c是切割点。目的是最大化非目标子序列条件下目标子序列的队数似然。即:
请注意,选择z>c作为目标,因为它在给定当前因子分解顺序z的序列中具有最长的上下文。超参数K被使用,以便选择约1/K个词进行预测。 |z|(|z| - c) ≈ K。
对于未选择的词,不需要计算他们的查询表示形式,这节省了速度和内存。
由于我们的目标函数是符合AR框架,因此我们将最先进的AR语言模型Transformer-XL合并到
我们的预训练框架中,并在此基础上命名我们的方法。我们整合了Transformer-XL中两个重要的技术,即:
相对位置编码方案和分段递归机制 the relative positional encoding scheme and the segment recurrence mechanism
我们根据前面讨论的原始序列应用想对位置编码,这很简单。现在我们讨论如何将递归机制集成到所建议的排列设置中,
并是模型能够重用先前段中的隐藏状态。在不是一般性的情况下,假设我们从一个长序列S中去了两个段,
即 x ~ = s 1 : T \tilde{\bf{x}} = s_{1:T} x~=s1:T 和 x = s T + 1 : 2 T {\bf{x}} = s_{T+1:2T} x=sT+1:2T. 让 z ~ \tilde{\bf{z}} z~和z 分别为
[1,…,T]和[T+1, …, 2T]的排列。
然后,根据排列
z ~ \tilde{\bf{z}} z~ 对第一段进行处理,然后将得到的每层m的内容表示
h ~ ( m ) \tilde{\bf{h}}^{(m)} h~(m)
然后,对于下一个段x,注意更新内存可以写为:
其中[.,.]表示沿着序列维度的连接。 请注意,位置编码仅取决于原始序列的实际位置。
因此一旦获取表示
h ~ ( m ) \tilde{\bf{h}}^{(m)} h~(m)
上述注意事项的更新与 z ~ \tilde{\bf{z}} z~无关。这允许在不知道前一段的分解顺序的情况下缓存和重用内存。
在期望中,模型学习在最后一段的所有因子分解顺序上使用内存。查询流的计算方式相同。
最后 图2(c)给出了具有两个流关注的提出的排列语言建模的概述(更多像是的说明,请参见附录A.4)
许多下游任务有多个输入段,例如问题回答中的问题和上下文段落。我们现在讨论如何预训练XLNet在自回归框架中建模多个段。
在预训练阶段,根据BERT,我们随机抽取两个片段(来自同意上下文或不来自同一上下文),
并将两个片段的连接作为一个序列来执行排列语言建模。我们只重用属于上下文的内存。
具体来说,我们模型的输入类似于BERT: [A, SEP, B, SEP, CLS]。其中“SEP”和“CLS”是两个特殊符号,
“A”和“B”是两个段。
尽管我们采用了两段数据格式,但XLNet-Large并没有使用下一句预测的目标[10],因为它在我们的消融分析
研究中没有显示出一致的改善。
Relative Segment Encodings 相对段编码
从体系结构上讲,不同于在每个位置嵌入单词是添加绝对段嵌入的BERT,
我们扩展了Transformer-XL的相对编码思想,也对这些段进行了编码。
给定序列中的一对位置i和j, 如果i和j来自同一个段,我们使用一个编码 s i j = s + s_{ij} = s_{+} sij=s+
或者 s i j = s − s_{ij} = s_{-} sij=s−
其中 s + s_{+} s+ 和 s − s_{-} s− 是每个注意头的可学习模型参数。
换句话说,我们只考虑两个位置是否在同一部门内,而不是考虑他们来自哪一个特定部门。
这与相对编码思想是一致的,即只建模位置之间的关系。
当i关注j时,段编码 s i j s_{ij} sij用于计算注意力权重 a i j = ( q i + b ) T s i j a_{ij} = ({\bf{q_i}} + {\bf{b}})^{T}s_{ij} aij=(qi+b)Tsij,
其中 q i {\bf{q}}_i qi是标准注意力操作中的查询向量,b是可学习的头部特定偏倚向量。
最终,将值 a i j a_ij aij 添加到正常注意权重中。使用相对段编码有两个好处。
首先,相对编码的归纳偏差改善了泛化。
其次,它打开了对具有两个以上输入任务进行微调的可能性,而使用绝对编码是不可能的。
比较等式 (2) 和(5),我们发现BERT和XLNet都进行了部分预测。仅预测序列中标记的子集。
对BERT来所这是一个必要的选择,因为所有的词都被屏蔽了,就不可能做出任何有意义的预测。
此外,对于BERT和XLNet来说,部分预测只通过预测具有足够上下文的词来降低优化难度。
但是,第2.1节讨论的独立性假设禁用BERT模型目标之间的依赖关系。
为了更好的理解这一区别,让我们考虑一个具体的例子[New, York, is, a, city]
假设BERT和XLNet都选择这两个词[New, York]作为预测目标,并最大化 log p(New York | is a city)
另外假设,XLNet采样因子分解顺序是[is, a, city, New, York]
在这种情况下,BERT和XLNet分别减少到以下目标:
注意XLNet能够捕获这对[New,York]之间的依赖关系,但是BERT省略了。
虽然在这个例子中,BERT学习了一些依赖对例如(New,city)和(York, city),但很明显
在相同的目标下,XLNet总是学习更多的依赖对,并且包涵更密集的有效训练信号。
为了证明一个例子之外的一般观点,我们现在转向更正式的表达式。
通过前面的工作[38],给定一个序列 x= [ x 1 x_1 x1, …, x T x_T xT],我们定义了一组感兴趣的
目标上下文对,
KaTeX parse error: Expected 'EOF', got '\cal' at position 1: \̲c̲a̲l̲{I} = {(x, KaTeX parse error: Expected 'EOF', got '\cal' at position 1: \̲c̲a̲l̲{U})}
其中KaTeX parse error: Expected 'EOF', got '\cal' at position 1: \̲c̲a̲l̲{U} 是x中形成x上下文的一组词。
直观的讲,我们希望模型通过一个预先训练的损失项 log p(x|KaTeX parse error: Expected 'EOF', got '\cal' at position 1: \̲c̲a̲l̲{U})
来学习x 对于KaTeX parse error: Expected 'EOF', got '\cal' at position 1: \̲c̲a̲l̲{U}的依赖性。例如上面的例子,我们可以将我们的兴趣对实例化为:
注意 KaTeX parse error: Expected 'EOF', got '\cal' at position 1: \̲c̲a̲l̲{I} 只是一个没有唯一基础真理的虚拟概念,不管KaTeX parse error: Expected 'EOF', got '\cal' at position 1: \̲c̲a̲l̲{I}是如何实例化的,
我们的分析都将保持有效。
给定一组目标词KaTeX parse error: Expected 'EOF', got '\cal' at position 1: \̲c̲a̲l̲{T} 和一组非目标词 KaTeX parse error: Expected 'EOF', got '\cal' at position 1: \̲c̲a̲l̲{N} = x$\cal{T} , B E R T 和 X L N e t 都 最 大 化 l o g p ( , BERT和XLNet 都最大化 log p( ,BERT和XLNet都最大化logp(\cal{T}$ | KaTeX parse error: Expected 'EOF', got '\cal' at position 1: \̲c̲a̲l̲{N})
[外链图片转存失败(img-6m86OxUr-1563450882280)(./img/formula9.png)]
其中, KaTeX parse error: Expected 'EOF', got '\cal' at position 1: \̲c̲a̲l̲{T}_{
包含多个损失项。直观地说,如果存在一个目标上下文对儿 (x, KaTeX parse error: Expected 'EOF', got '\cal' at position 1: \̲c̲a̲l̲{U}) ∈ KaTeX parse error: Expected 'EOF', got '\cal' at position 1: \̲c̲a̲l̲{I} 使得 KaTeX parse error: Expected 'EOF', got '\cal' at position 1: \̲c̲a̲l̲{U}属于 KaTeX parse error: Expected 'EOF', got '\cal' at position 1: \̲c̲a̲l̲{V}_x
那么损失像log p(x, KaTeX parse error: Expected 'EOF', got '\cal' at position 1: \̲c̲a̲l̲{V}_x) 为x和KaTeX parse error: Expected 'EOF', got '\cal' at position 1: \̲c̲a̲l̲{U} 之间的依赖性提供了一个训练信号。
为了方便起见,我们说目标上下文对儿(x, KaTeX parse error: Expected 'EOF', got '\cal' at position 1: \̲c̲a̲l̲{U}) ∈ KaTeX parse error: Expected 'EOF', got '\cal' at position 1: \̲c̲a̲l̲{I} ,是模型目标的覆盖者,如果 KaTeX parse error: Expected 'EOF', got '\cal' at position 1: \̲c̲a̲l̲{U} 属于 KaTeX parse error: Expected 'EOF', got '\cal' at position 1: \̲c̲a̲l̲{Vx}
根据定义我们来考虑两种情况。
如果 KaTeX parse error: Expected 'EOF', got '\cal' at position 1: \̲c̲a̲l̲{U} 属于 KaTeX parse error: Expected 'EOF', got '\cal' at position 1: \̲c̲a̲l̲{N}, 依赖项(x, U) 由BERT和XLNet同时覆盖。
如果KaTeX parse error: Expected 'EOF', got '\cal' at position 1: \̲c̲a̲l̲{U} \subseteq \… 并 T
因此,XLNet能够覆盖比BERT更多的依赖项。换句话说,XLNet目标包涵更有效的训练信号,从经验上讲,这将在第3节中带来更高的表现。
借鉴2.6.1节中的示例和注释,像GPT[25]这样的标准AR语言模型只能覆盖依赖项(KaTeX parse error: Expected 'EOF', got '\cal' at position 1: \̲c̲a̲l̲{x} = York, KaTeX parse error: Expected 'EOF', got '\cal' at position 1: \̲c̲a̲l̲{U}={New}),
而不能覆盖依赖项(KaTeX parse error: Expected 'EOF', got '\cal' at position 1: \̲c̲a̲l̲{x} = New, KaTeX parse error: Expected 'EOF', got '\cal' at position 1: \̲c̲a̲l̲{U} = {York}). 另一方面,XLNet能够覆盖所有因子分解顺序的期望值。
在现实应用中,AR语言建模的这种局限性是至关重要的。例如,考虑一个上下文“Thom Yorke is the singer of Radiohead” 和
“Who is the singer of Radiohead” 的跨度提取问题回答任务。"Thom Yorke"的表示不依赖于AR语言建模的“Radiohead”,因此,
在所有词的表示中使用Softmax的标准方法不会选择他们作为答案。更正式地说,考虑一个上下文对儿(KaTeX parse error: Expected 'EOF', got '\cal' at position 1: \̲c̲a̲l̲{x},KaTeX parse error: Expected 'EOF', got '\cal' at position 1: \̲c̲a̲l̲{U}):
如果
KaTeX parse error: Expected '}', got '\cal' at position 2: {\̲c̲a̲l̲{U}} \bigcap {\…
其中,
KaTeX parse error: Expected 'EOF', got '\cal' at position 1: \̲c̲a̲l̲{T}_{\
表示原始序列中x之前的词,
AR语言模型建模不能覆盖依赖项。
相比之下,XLNet能够覆盖预期中的所有依赖项。
像ELMo[24]这样的方法以一种较浅的方式连接向前和向后的语言模型,这不足以模拟两个方向之间的深层交互。
表1: 与最先进的RACE test set 结果进行比较,RACE是一项阅读理解任务。* 表示使用集成方法。
“Middle” 和 “High”代表中学和高中难度水平的两个子集。
所有的BERT和XLNet结果都是通过具有相似模型大小的24层体系结构获得的(也就是BERT-Large)
我们的单一模型比最佳集成模型高出7.6个百分点。
在密度估计中有很深的根[4,32,21],语言建模一直是一个快速发展的研究领域[9,1,3]
然而, 由于缺乏双向上下文建模的能力,语言建模也预训练之间存在着差距,如第2.6.2节所分析的那样。
一些机器学习实践者甚至质疑,如果语言建模不能直接改善下游任务,那么它是否是一种有意义的追求呢。
XLNet泛化了语言建模,并弥合了这一差距。因此,它进一步“论证”了语言建模研究。
此外,可以利用语言建模研究的快速进展进行预训练。作为一个例子,我们将Transformer-XL 集成到XLNet中,
以展示最新语言模型进展的有用性。
跟随BERT[10],我们使用BooksCorpus[41], 和 English Wikipedia 作为我们预训练数据的一部分。
这些数据有13GB纯文本组合。此外,我们还包括Giga5(16GB 文本)[23],ClueWeb 2012-B(从[5]扩展)
和Commong Crawl[6]为预训练。我们使用启发式的方法对ClueWeb 2012-B 和 Common Crawl中的
短或低质量文章进行积极筛选,结果分别为19GB和78GB文本。
在SentencePiece[16]分词后,我们获得2.78B,1.09B,4.75B,4.30B, 和 19.97B的
Wikipedia, BooksCorpus, Giga5, ClueWeb, Commond Crawl 的子字, 总计32.89B
我们最大的模型XLNet-Large 与 BERT-Large 具有相同的架构超参数,这导致了相似的模型大小。
序列长度和存储器长度,分别设置为512和384。我们训练XLNet-Large在512个TPU v3上,运行了50万步,
使用Adam优化器,线性学习率衰减,和batch size 2048, 大约需要2.5天。
结果表明,该模型在训练结束时仍然存在数据不足的情况,但继续训练对下游任务没有帮助,这表明
在给定优化算法的情况下,该模型没有足够的能力充分利用数据规模。然而,在这项工作中,我们避免训练
一个更大的模型,因为更大的模型对于微调的实际使用可能是受限制的。
此外,我们在BooksCorpus和Wikipedia上训练一个类似于BERT-Base的XLNet,用于消融研究
和与BERT的公平比较。
相关结果见第3.7节.
由于引入了递归机制,因此我们使用双向数据输入管道,其中每个向前和向后的方向占批处理大小的一半。
对于训练XLNet-Large,我们将部分预测常数k设置为6(见第2.3节)
除非另有规定,否则我们的微调过程遵循BERT[10]。
我们采用基于跨度的预测方法,首先对长度L ∈ [1,…,5], 进行采样,然后在(KL)标记的上下文中随机选择一个连续
的L标记跨度作为预测目标。
表2:在SQuAD1.1上,单个型号的XLNet比人类和最佳集成的效果要好7.5EM和2.5EM。 * 表示集成。剑标志表示官方代码。
表3:几种文本分类数据及测试集的最新错误率比较。
所有的BERT和XLNet结果都是通过一个具有相似模型大小的24层体系结构获得的(也就是BERT-Large)
The RACE Dataset [17] 包含了从12至18岁的中国学生英语考试中提取的近10万个问题。
答案由人类专家生成。这是一个最困难的阅读理解数据集,涉及具有挑战性的推理问题。
而且,比赛中的平均段落长度超过300个,比其他常见的阅读理解数据集(如SQuAD[26])长的多。
因此,此数据集是理解长文本的一个具有挑战性的基准。我们在微调时使用640的序列长度。
如表1所示,单个XLNet模型比最好的集成模型的精度高出7.6个百分点。很明显,XLNet在很大程度上
由于其他预训练模型,如BERT和GPT。由于RACE 包含相对较长的段落,因此我们认为,XLNet在该数据集
上获得巨大收益的原因之一是,除了AR目标外,Transformer-XL 架构的集成提高了对长文本建模能力。
关于序列长度的更多分析见第3.7节。
SQuAD 是一个大规模的阅读理解数据集,有两个任务。SQuAD1.1 [27] 包含在给定段落中始终
有对应答案的问题,而SQuAD2.0[26]则引入了无法回答问题。为了在SQuAD2.0上微调一个XLNet,
我们将逻辑回归损失应用于类似分类任务的可回答性预测,并将标准跨度提取损失应用于问题解答[10]
由于v1.1和v2.0 在训练集中共享相同的可回答问题,因此我们只需要从v2.0上微调的模型中删除可回答性预测部分,
以便在v1.1上进行评估。由于顶级的排行榜参加者都采用了某种形式的数据集增强,因此我们在
SQuAD2.0和NewsQA[31]联合训练了一个XLNet为我们的排行榜提交。如表2所示,XLNet在排行榜上获得了
最先进的单一模型结果,优于一系列基于BERT的方法。值得注意的是,在v1.1上,一个XLNet单模型比人类和
最好的集成模型在EM中分别高出7.6个点和2.5个点。
最后,为了直接与BERT进行比较以消除排行榜中其他技巧的影响,我们将XLNet与BERT在dev集上进行比较。
对于v1.1和v2.0,XLNet在F1中表现明显优于BERT 3.6个点和7.0个点。
表4:GLUE 上的结果。 * 代表使用集成模型,剑标志表示多任务中的单任务结果。
所有的结果都是基于一个24层架构,模型大小相似(也就是BERT-Large)
与BERT直接比较见最上面的几行,与公共排行榜最先进的结果比较见最下面几行。
表5:与文档排序任务ClueWeb09-B测试集的最新结果进行比较。剑标志表示我们执行。
根据之前关于文本分类[40,20]的工作,我们根据以下基准评估XLNet:
IMDB, Yelp-2, Yelp-5, DBpedia, AG, Amazon-2, and Amazon-5
根据表3,与BERT相比,XLNet在所有考虑的数据集赏获得了最新的结果,
IMDB, Yelp-2, Yelp-5, Amazon-2, 和 Amazon-5的错误率分别降低了
16%, 18%, 5%, 9%和5%。
GLUE数据集[34] 是9个自然语言理解任务的集合。
测试集从公开的版本中删除,所有参与者必须在评估服务器上提交他们的预测,以获得测试集结果。
在表4中,我们展示了多个设置的结果,包括单个任务和多个任务,以及单个模型集合。
在多任务设置中,我们联合训练一个XLNet在四个最大的数据集上,MNLI, SST-2, QNLI, 和 QQP,并在
其他数据集上微调网络。对于四个大数据集,只采用单任务训练。对于QNLI,我们采用了一个如[18]所示
的成对相关性排名方案来提交测试集。但是为了与BERT进行公平的比较,我们对QNLI dev集的结果
基于标准分类范式。对于WNLI,我们使用[15]中描述的损失。多任务组合XLNet在公共排行榜的9项任务中
有7项达到了最先进的效果。在最广泛的基准任务MNLI上,XLNet将“匹配“和”不匹配“设置分别提高了2.0和1.8点。
请注意,排行榜上的竞争对手在BERT上采用了提升的技术,比如distillation, modified multi-task losses
和 meta learning,但是仍然表现不佳,除了使用标准的多任务学习方法外,XLNet不采用其他技巧。
由于排行榜不用于消融研究或超参数调整,因此我们只评估了测试集上最好的多任务模型。
为了直接与BERT进行比较,我们在dev集上运行了一个任务XLNet。如表4最上面几行所示,XLNet始终优于BERT,
在RTE,MNLI,CoLA,SST-2,STS-B上分别提高了13.4点,3.2点,3.0点,2.4点,1.8点。
表6:消融研究。BERT 关于RACE的研究结果摘自[39]。我们使用官方实现和与XLNet相同的超参数搜索空间
在其他数据集上运行BERT。K是控制优化难度的超参数(见第2.3节)。所有模型都在相同的数据上进行了预训练。
按照前面的工作[8]中的设置,我们使用ClueWeb09-B数据集来评估文档排名的性能。
这些查询是由TREC 2009-2012 Web Tracks基于5000万个文档创建的,任务是使用标准检索
方法对检索到的前100个文档进行重新排序。由于文档排序,或者 ad-hoc 检索主要涉及低级表示,
而不是高级语义,因此此数据集用作评估单词嵌入质量的测试台。我们使用了一个经过预训练的XLNet
来提取文档和查询嵌入字,而不进行微调,并使用kernel pooling network[37]对文档进行排名。
表5, XLNet 大大优于其他方法,包括使用与我们相同训练过程的BERT模型。这说明XLNet比BERT学习
低级单词嵌入更好。请注意,为了进行公平的比较,我们派出了[36]中的结果,(err@20中的19.55,比我们
的稍差),因为它使用了额外的实体相关数据。
我们进行了一项消融研究,以了解基于具有不同特征的四个数据集的每个设计选择的重要性。
具体来说,我们希望研究三个主要方面:
考虑到这些目的,在表6中,我们比较了具有不同实现细节(第3-8行),原始BERT-base模型(第一行)
的6个XLNet-base变体,以及根据BERT中使用的去噪自动编码(DAE)目标训练的附加Transformer-XL基线,
但与双向输入相比。
为了公平比较,所有模型都是基于一个12层架构,与BERT-Base 具有相同模型超参数,并且只在Wikipedia 和
BookScorpus上进行训练。所有报告结果均为5次运行的中位数。
通过检查表6的第1-4行,我们发现两个经过不同k值训练的全XLNet基本模型在不同的任务中明显优于BERT和DAE
训练的Transformer-XL, 显示了排列语言建模目标的优越性。同时,有趣的是,在诸如RACE和SQuAD这样的长文本
任务上,DAE训练的Transformer-XL比BERT取得了更好的性能。这表明Transformer-XL在语言建模方面的卓越性也
有利于预训练。
接下来,如果我们移除内存缓存机制(第5行),性能明显下降,特别是对于涉及4个任务中最长上下文的RACE。
此外,第6-7行表明,基于跨度的预测和双向输入管道在XLNet中都起到了重要的作用。最后我们意外地发现,
原BERT中提出的下一句预测目标并不一定会有改善在我们的设置上。
相反,它会损害性能,但RACE数据集除外。因此,当我们训练XLNet时,我们排除了下一个句子的预测目标。
XLNet是一种广义的AR预训练方法,它使用排列语言建模目标,结合AR和AE方法的优点。
XLNet的神经网络结构是为了与AR目标无缝配合而开发的,包括集成Transformer-XL和仔细
设计双流注意机制。
XLNet以实质性的改进,实现了各项任务的最新成果。在未来,我们设想将XLNet应用于更广泛的任务集,
如视觉和强化学习。
The authors would like to thank Qizhe Xie and Adams Wei Yu for providing useful feedback on the
project, Youlong Cheng and Yanping Huang for providing ideas to improve our TPU implementation,
Chenyan Xiong and Zhuyun Dai for clarifying the setting of the document ranking task. ZY and
RS were supported by the Office of Naval Research grant N000141812861, the National Science
Foundation (NSF) grant IIS1763562, the Nvidia fellowship, and the Siebel scholarship. ZD and YY
were supported in part by NSF under the grant IIS-1546329 and by the DOE-Office of Science under
the grant ASCR #KJ040201.
[1] Rami Al-Rfou, Dokook Choe, Noah Constant, Mandy Guo, and Llion Jones. Character-level
language modeling with deeper self-attention. arXiv preprint arXiv:1808.04444, 2018.
[2] Anonymous. Bam! born-again multi-task networks for natural language understanding. anonymous preprint under review, 2018.
[3] Alexei Baevski and Michael Auli. Adaptive input representations for neural language modeling.
arXiv preprint arXiv:1809.10853, 2018.
[4] Yoshua Bengio and Samy Bengio. Modeling high-dimensional discrete data with multi-layer
neural networks. In Advances in Neural Information Processing Systems, pages 400–406, 2000.
[5] Jamie Callan, Mark Hoy, Changkuk Yoo, and Le Zhao. Clueweb09 data set, 2009.
[6] Common Crawl. Common crawl. URl: http://http/commoncrawl. org.
[7] Andrew M Dai and Quoc V Le. Semi-supervised sequence learning. In Advances in neural
information processing systems, pages 3079–3087, 2015.
[8] Zhuyun Dai, Chenyan Xiong, Jamie Callan, and Zhiyuan Liu. Convolutional neural networks
for soft-matching n-grams in ad-hoc search. In Proceedings of the eleventh ACM international
conference on web search and data mining, pages 126–134. ACM, 2018.
[9] Zihang Dai, Zhilin Yang, Yiming Yang, William W Cohen, Jaime Carbonell, Quoc V Le,
and Ruslan Salakhutdinov. Transformer-xl: Attentive language models beyond a fixed-length
context. arXiv preprint arXiv:1901.02860, 2019.
[10] Jacob Devlin, Ming-Wei Chang, Kenton Lee, and Kristina Toutanova. Bert: Pre-training of
deep bidirectional transformers for language understanding. arXiv preprint arXiv:1810.04805,
2018.
[11] Mathieu Germain, Karol Gregor, Iain Murray, and Hugo Larochelle. Made: Masked autoencoder
for distribution estimation. In International Conference on Machine Learning, pages 881–889,
2015.
[12] Jiafeng Guo, Yixing Fan, Qingyao Ai, and W Bruce Croft. A deep relevance matching model for
ad-hoc retrieval. In Proceedings of the 25th ACM International on Conference on Information
and Knowledge Management, pages 55–64. ACM, 2016.
[13] Jeremy Howard and Sebastian Ruder. Universal language model fine-tuning for text classification. arXiv preprint arXiv:1801.06146, 2018.
[14] Rie Johnson and Tong Zhang. Deep pyramid convolutional neural networks for text categorization. In Proceedings of the 55th Annual Meeting of the Association for Computational
Linguistics (Volume 1: Long Papers), pages 562–570, 2017.
[15] Vid Kocijan, Ana-Maria Cretu, Oana-Maria Camburu, Yordan Yordanov, and Thomas
Lukasiewicz. A surprisingly robust trick for winograd schema challenge. arXiv preprint
arXiv:1905.06290, 2019.
[16] Taku Kudo and John Richardson. Sentencepiece: A simple and language independent subword
tokenizer and detokenizer for neural text processing. arXiv preprint arXiv:1808.06226, 2018.
[17] Guokun Lai, Qizhe Xie, Hanxiao Liu, Yiming Yang, and Eduard Hovy. Race: Large-scale
reading comprehension dataset from examinations. arXiv preprint arXiv:1704.04683, 2017.
[18] Xiaodong Liu, Pengcheng He, Weizhu Chen, and Jianfeng Gao. Multi-task deep neural networks
for natural language understanding. arXiv preprint arXiv:1901.11504, 2019.
[19] Bryan McCann, James Bradbury, Caiming Xiong, and Richard Socher. Learned in translation:
Contextualized word vectors. In Advances in Neural Information Processing Systems, pages
6294–6305, 2017.
[20] Takeru Miyato, Andrew M Dai, and Ian Goodfellow. Adversarial training methods for semisupervised text classification. arXiv preprint arXiv:1605.07725, 2016.
[21] Aaron van den Oord, Nal Kalchbrenner, and Koray Kavukcuoglu. Pixel recurrent neural
networks. arXiv preprint arXiv:1601.06759, 2016.
[22] Xiaoman Pan, Kai Sun, Dian Yu, Heng Ji, and Dong Yu. Improving question answering with
external knowledge. arXiv preprint arXiv:1902.00993, 2019.
[23] Robert Parker, David Graff, Junbo Kong, Ke Chen, and Kazuaki Maeda. English gigaword
fifth edition, linguistic data consortium. Technical report, Technical Report. Linguistic Data
Consortium, Philadelphia, Tech. Rep., 2011.
[24] Matthew E Peters, Mark Neumann, Mohit Iyyer, Matt Gardner, Christopher Clark, Kenton Lee, and Luke Zettlemoyer. Deep contextualized word representations. arXiv preprint
arXiv:1802.05365, 2018.
[25] Alec Radford, Karthik Narasimhan, Tim Salimans, and Ilya Sutskever. Improving language
understanding by generative pre-training. URL https://s3-us-west-2. amazonaws. com/openaiassets/research-covers/languageunsupervised/language understanding paper. pdf, 2018.
[26] Pranav Rajpurkar, Robin Jia, and Percy Liang. Know what you don’t know: Unanswerable
questions for squad. arXiv preprint arXiv:1806.03822, 2018.
[27] Pranav Rajpurkar, Jian Zhang, Konstantin Lopyrev, and Percy Liang. Squad: 100,000+ questions
for machine comprehension of text. arXiv preprint arXiv:1606.05250, 2016.
[28] Qiu Ran, Peng Li, Weiwei Hu, and Jie Zhou. Option comparison network for multiple-choice
reading comprehension. arXiv preprint arXiv:1903.03033, 2019.
[29] Alexander Ratner, Stephen H Bach, Henry Ehrenberg, Jason Fries, Sen Wu, and Christopher
Ré. Snorkel: Rapid training data creation with weak supervision. Proceedings of the VLDB
Endowment, 11(3):269–282, 2017.
[30] Devendra Singh Sachan, Manzil Zaheer, and Ruslan Salakhutdinov. Revisiting lstm networks
for semi-supervised text classification via mixed objective function. 2018.
[31] Adam Trischler, Tong Wang, Xingdi Yuan, Justin Harris, Alessandro Sordoni, Philip Bachman, and Kaheer Suleman. Newsqa: A machine comprehension dataset. arXiv preprint
arXiv:1611.09830, 2016.
[32] Benigno Uria, Marc-Alexandre Côté, Karol Gregor, Iain Murray, and Hugo Larochelle. Neural
autoregressive distribution estimation. The Journal of Machine Learning Research, 17(1):7184–
7220, 2016.
[33] Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N Gomez,
Łukasz Kaiser, and Illia Polosukhin. Attention is all you need. In Advances in neural information
processing systems, pages 5998–6008, 2017.
[34] Alex Wang, Amanpreet Singh, Julian Michael, Felix Hill, Omer Levy, and Samuel R. Bowman.
GLUE: A multi-task benchmark and analysis platform for natural language understanding. 2019.
In the Proceedings of ICLR.
[35] Qizhe Xie, Zihang Dai, Eduard Hovy, Minh-Thang Luong, and Quoc V. Le. Unsupervised data
augmentation. arXiv preprint arXiv:1904.12848, 2019.
[36] Chenyan Xiong, Jamie Callan, and Tie-Yan Liu. Word-entity duet representations for document
ranking. In Proceedings of the 40th International ACM SIGIR conference on research and
development in information retrieval, pages 763–772. ACM, 2017.
[37] Chenyan Xiong, Zhuyun Dai, Jamie Callan, Zhiyuan Liu, and Russell Power. End-to-end neural
ad-hoc ranking with kernel pooling. In Proceedings of the 40th International ACM SIGIR
conference on research and development in information retrieval, pages 55–64. ACM, 2017.
[38] Zhilin Yang, Zihang Dai, Ruslan Salakhutdinov, and William W Cohen. Breaking the softmax
bottleneck: A high-rank rnn language model. arXiv preprint arXiv:1711.03953, 2017.
[39] Shuailiang Zhang, Hai Zhao, Yuwei Wu, Zhuosheng Zhang, Xi Zhou, and Xiang Zhou. Dual comatching network for multi-choice reading comprehension. arXiv preprint arXiv:1901.09381,
2019.
[40] Xiang Zhang, Junbo Zhao, and Yann LeCun. Character-level convolutional networks for text
classification. In Advances in neural information processing systems, pages 649–657, 2015.
[41] Yukun Zhu, Ryan Kiros, Rich Zemel, Ruslan Salakhutdinov, Raquel Urtasun, Antonio Torralba,
and Sanja Fidler. Aligning books and movies: Towards story-like visual explanations by
watching movies and reading books. In Proceedings of the IEEE international conference on
computer vision, pages 19–27, 2015.