XLNet:用于语言理解的通用自回归预训练

Zhilin Yang1, Zihang Dai12, Yiming Yang1, Jaime Carbonell1,
Ruslan Salakhutdinov1, Quoc V. Le2
1Carnegie Mellon University, 2Google AI Brain Team
{zhiliny,dzihang,yiming,jgc,rsalakhu}@cs.cmu.edu, qvl@google.com

第三十三届神经信息处理系统会议(NeurIPS 2019),加拿大温哥华。

摘要

由于具备建模双向语境的能力,基于去噪自动编码的预训练(如 BERT)比基于自回归语言建模的预训练方法取得了更好的性能。 但是,由于掩码对输入有所破坏,BERT 忽视了掩码位置之间的依赖关系并存在预训练与微调之间的差异。 鉴于这些优点和缺点,我们提出XLNet,这是一种广义的自回归预训练方法,该方法(1)通过最大化因式分解的所有排列的预期似然性来实现双向上下文的学习,并且(2)由于其自回归而克服了BERT的局限性公式。 此外,XLNet 将最先进的自回归模型 Transformer-XL 的思想整合到预训练中。 经验上,在可比实验设置下,XLNet 在 20 个任务上的表现优于 BERT,通常以较大的优势胜出,包括问题回答、自然语言推理、情感分析和文档排序。 可以在 https://github.com/zihangdai/xlnet 获得预训练的模型和代码。

1 简介

在自然语言处理领域,无监督表示学习已经取得了很大的成功 [7, 22, 27, 28, 10] 通常,这些方法首先在大规模的未标记文本语料库上对神经网络进行预训练,然后在下游任务上对模型或表示进行微调。 在这种共同的高级观念下,文献中探索了不同的无监督预训练目标。 其中,自回归(AR)语言建模和自编码(AE)是最成功的两个预训练目标。

AR 语言模型旨在用自回归模型估计文本语料库的概率分布 [7, 27, 28] 具体来说,给定一个文本序列 x= (x1,PIC,xT),AR 语言模型将似然性分解为前向乘积 p(x) = t=1Tp(xt|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还改进了用于预训练的结构。

根据我们的经验,在可比较的实验设置下,XLNet 在广泛的问题领域上始终优于 BERT [10], 包括 GLUE 语言理解任务、SQuAD 和 RACE 等阅读理解任务、Yelp 和 IMDB 等文本分类任务以及 ClueWeb09-B 文档排名任务。

相关工作 [32, 12] 探索了基于排列的 AR 建模思想,但是有几个关键的区别。 首先,之前的模型旨在通过在模型中烘焙一个 "无序 "的归纳偏差来改善密度估计,而 XLNet 的动机是使 AR 语言模型能够学习双向上下文。 从技术上讲,为了构建有效的目标感知预测分布,XLNet 通过双流注意力将目标位置纳入到隐藏状态中,而之前基于排列的 AR 模型则依赖于其 MLP 架构固有的隐性位置意识。 最后,对于无序 NADE 和 XLNet,我们要强调的是,“无序”并不意味着可以对输入序列进行随机排列,而是该模型允许分布的不同排列顺序。

另一个相关的想法是在文本生成[11]的上下文中执行自回归去噪,尽管该生成仅考虑固定顺序。

2 提出的方法

2.1 背景

在本节中,我们首先回顾和比较用于语言预训练的传统的 AR 语言模型和 BERT。 给定文本序列 x = PIC,AR 语言模型通过在前向自回归因式下最大化似然性来执行预训练:

PIC
(1)

其中 hθ(x1:t1) 是神经网络模型如 RNN 或 Transformer 生成的上下文表示,e(x) 表示 x 的嵌入。 相比之下,BERT 基于降噪自编码。 具体来说,对于一个文本序列 x,BERT 首先通过随机设置 x 中的一部分词符(例如 15%)为特殊符号 [MASK] 来构造一个损坏的 ˆx 设掩码标记为 ˉx 训练目标是根据 ˆx 重构 ˉx

PIC
(2)

其中 mt = 1 表示 xt 被屏蔽,Hθ 是一个 Transformer 将一个长度为 T 的文本序列 x 映射成隐向量序列 Hθ(x) =PIC 这两个预训练目标的优缺点在以下几个方面进行比较:

2.2 目标:排列语言模型

根据以上比较,AR 语言模型和 BERT 互相具有的独特优势。 一个自然要问的问题是,是否存在一个既能带来优点又能避免缺点的训练目标。

借鉴无序 NADE [32] 的想法,我们提出了一种排列语言模型目标,该目标不仅保留 AR 模型的优势,而且允许模型捕获双向上下文。 具体来说,对于长度为 T 的序列 x,有 T! 个不同的顺序来执行一个有效的自回归因式。 直观地,如果模型参数在所有顺序的因式之间共享,则可以预期,模型将学习从两侧所有位置收集信息。

为了形式化这个想法,设 ZT 是长度为 T 的索引序列 PIC 的所有可能排列的集合。 我们使用 ztz<t 表示排列 z ∈ ZT 的第 t 个元素和前 t1 个元素。然后,我们提出的排列语言模型目标可以如下表示:

PIC
(3)

本质上,对于一个文本序列 x,我们一次采样一个顺序的因式 z,然后根据因式的顺序分解似然性 pθ(x) 由于训练期间所有顺序的因式均共享相同的模型参数 θ,可以预期,xt 看到每个可能的 xi≠xt 元素,因此能够捕获双向上下文。 此外,由于此目标适合 AR 框架,因此自然避免了 2.1 节中讨论的独立性假设和预训练-微调差异。

有关排列的说明 我们提出的目标仅排列因式的顺序,而不排列序列的顺序。 换句话说,我们保持原始序列顺序,使用与原始序列相对应的位置编码,并依靠 Transformer 中合适的注意力掩码来实现因式顺序的排列。 请注意,此选择是必要的,因为模型在微调过程中只会遇到自然顺序的文本序列。

为了提供一个整体说明,我们在附录 A.7 中用图 4 展示了一个给定相同输入序列 x 但在不同顺序的因式下预测词符 x3 的例子。

2.3 结构:Two-Stream Self-Attention for Target-Aware Representations

PIC

图1:(a):Content stream attention,与标准的 self-attention 相同。 (b):Query stream attention,不能访问 content xzt 的信息。 (c):用 two-stream attention 训练排列语言模型。

尽管排列语言模型目标具有所需的性质,但是使用标准 Transformer 参数化的原生实现可能不起作用。 要看到这个问题,假定我们使用标准的 Softmax 公式参数化下一个词符分布pθ(Xzt | xz<t) ,即pθ(Xzt = x | xz<t) = PIC, ,其中 hθ(xz<t) xz<t 的隐藏表示,由共享的 Transformer 网络在适当的屏蔽之后生成。 现在请注意 hθ(xz<t) 并不依赖它将预测的位置即 zt 的值。 因此,无论目标位置如何,都可以预测相同的分布,这无法学习有用的表示形式(具体示例请参见附录A.1)。 为避免此问题,我们建议重新参数化下一个词符分布以感知目标的位置:

PIC
(4)

其中 gθ(xz<t ,zt) 是一种新型的表示,额外加上目标的位置 zt 作为输入。

Two-Stream Self-Attention 虽然目标感知表示的想法消除了目标预测中的模糊性,但如何公式化 gθ(xz<t ,zt) 仍然是一个重要问题。 在各种可能的方法中,我们提出“站”在目标位置 zt 并依赖位置 zt 通过 attention 获取上下文 xz<t 的信息。 为了使此参数化起作用,在标准 Transformer 结构中有两个矛盾的要求:(1)预测词符 xztgθ(xz<t ,zt) 应仅使用 zt位置 而不能使用 xzt内容,否则目标变得非常容易;(2) 要预测 j > t 的其它词符 xzjgθ(xz<t ,zt) 应该编码 xzt 的内容以提供完整的上下文信息。 为了解决这种矛盾,我们提出使用两组隐藏表示,而不是一组:

计算上,第一层查询流用一个可训练的向量初始化,即 gi(0) =w,而内容流设置为相应的词嵌入,即 hi(0) =e(xi) 对于每一个自注意层 m= 1,…,M,这两个表示流用一个共享的参数集 schematically2 更新(图 1 (a) 和(b)):

gzt(m) Attention(Q = g zt(m1), KV = h z<t(m1);θ), (query stream: use z t but cannot see xzt)
hzt(m) Attention(Q = h zt(m1), KV = h zt(m1);θ), (content stream: use both z t and xzt).

其中Q,K,V表示注意操作[33]中的查询,键和值。 内容表示的更新规则与标准的自我注意完全相同,因此在微调期间,我们可以简单地删除查询流并将内容流用作普通的 Transformer(-XL)。 最后,我们可以使用最后一层查询表示 gzt(M) 来计算等式 (4)。

部分预测 虽然排列语言模型目标(3)有几个优势,但由于排列的原因,它的优化问题具有挑战性,并且在初步实验中会导致收敛缓慢。 为了降低优化难度,我们选择预测一个因式顺序最后的词符。 形式上,我们将 z 拆分为非目标子序列 zc 和一个目标子序列 z>c,其中 c 是切分点。 目标是使以非目标子序列为条件的目标子序列的对数似然性最大化,即

PIC
(5)

请注意,选择 z>c 作为目标,因为在给定当前因式顺序 z 下,它在序列中拥有最长的上下文。 使用超参数 K 以便选择大约 1∕K 词符进行预测;即 PIC(PICc) K。对于未选择的标记,无需计算其查询表示,从而节省速度和内存。

2.4 结合 Transformer-XL 中的思想

由于我们的目标函数适合 AR 框架,因此我们将最新的 AR 语言模型 Transformer-XL [9] 纳入我们的预训练框架,并以我们的方法命名。 我们在 Transformer-XL 中集成了两项重要技术,即相对位置编码方案和分段递归机制。 如前所述,我们基于原始序列应用相对位置编码,这很简单。 现在,我们讨论如何将递归机制集成到提出的排列方式中,并使模型能够重用先前分段中的隐藏状态。 在不失一般性的前提下,假设我们有取自长序列 s 的两个分段;即 ˜x = s1:T x = sT+1:2T 假设 ˜zz 分别是 [1PICT] [T + 1PIC2T] 的排列。 然后,基于排列 ˜z,我们处理第一段,然后缓存每个网络层 m 获得的内容表示 ˜h(m) 。然后,对于下一个分段 x,内存中的 attention 更新可以写为

hzt(m) Attention(Q = h z t(m1), KV = PIC;θ)

其中[.,.] 表示沿序列的维度连接。 请注意,位置编码仅取决于原始序列中的实际位置。 因此,一旦获取表示 ˜h(m) 之后,上面的 attention 更新独立于 z 这允许缓存和重用内存,而无需知道前一分段的因式顺序。 与预期一致,模型学习利用最后一个分段所有因式顺序上的内存。 可以以相同的方式计算 query stream。 最后,图 1(c) 展示我们提出的 two-stream attention 排列语言模型(有关更多详细说明,请参见附录 A.7)。

2.5 建模多个分段

许多下游任务有多个输入分段,例如问题回答中的问题和上下文段落。 现在,我们讨论如何预训练 XLNet 以在自回归框架中对多个分段进行建模。 遵循 BERT,在预训练阶段我们随机采样两个分段(来自相同或不同的上下文),并将两个分段的连接视为一个序列以执行排列语言建模。 我们仅重用属于相同上下文的记忆。 具体来说,我们模型的输入与BERT相同:[CLS, A, SEP, B, SEP],其中“SEP”和“CLS”是两个特殊符号,而“A”和“B”是两个分段。 尽管我们遵循两分段数据格式,但是 XLNet-Large 并未使用下一句预测的目标 [10],因为它在我们的消融研究中并未始终显示出改善(请参见第3.4节)。

相对片段编码 结构上与 BERT 不同的是 BERT 在每个位置用绝对片段嵌入与单词嵌入相加,我们从Transformer-XL 扩展相对编码的思想,对片段通用进行相对编码。 给定序列中的一对位置 ij,如果 ij 来自同一段,我们使用分段编码 sij = s+,否则使用 sij = s,其中 s+s 是每个 attention head 可学习的模型参数。 换句话说,我们只考虑两个位置是否 位于相同的分段,而不是考虑 它们来自哪一个具体的分段 这与相对编码的核心思想是一致的,即仅建模位置之间的关系。 i 关注 j 时,分段编码 sij 用于计算 attention 权重 aij = (qi +b)sij,其中 qi 类似标准 attention 操作中的查询向量, b 时一个可学习的与 head 有关的偏置向量。 最后,将值 aij 添加到正常 attention 权重。 使用相对分段编码有两个好处。 首先,相对编码的归纳偏差改善了泛化 [9] 其次,它提供对具有两个以上输入分段的任务进行微调的可能性,这是使用绝对段编码无法实现的。

2.6 讨论

比较等式 (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 分别归纳以下目标:

JBERT =logp(New|is a city) +logp(York|is a city),

JXLNet =logp(New|is a city) +logp(York|New, is a city).

注意,XLNet 能够捕获 (New, York) 对之间的依赖关系,而 BERT 忽略了这个依赖关系。 尽管在此示例中,BERT 学习了一些词符依赖对,例如 (New, city) 和 (York, city),但是很明显,XLNet 在给定相同目标的情况下,总是会学习更多依赖词符对并包含“更密集”的有效训练信号。

有关更正式的分析和进一步的讨论,请参阅附录A.5

3 实验

3.1 预训练和实现

遵循 BERT [10],我们使用 BooksCorpus [40] 和英语维基百科作为我们预训练数据的一部分,包含 13GB 的纯文本。 此外,我们还包括 Giga5(16 GB文本)[26]、ClueWeb 2012-B(扩展自 [5])和 Common Crawl [6] 用于预训练。 我们使用启发式方法主动过滤掉 ClueWeb 2012-B 和 Common Crawl 的简短或低质量文章,结果分别产生 19GB 和 110GB 的文本。 在使用 SentencePiece [17] 进行词符化之后,我们分别为 Wikipedia、BooksCorpus、Giga5、ClueWeb 和 Common Crawl 获得 2.78B、1.09B、4.75B、4.30B 和 19.97B 的子词片段,总共 32.89B。

我们最大的模型 XLNet-Large 具有与 BERT-Large 相同的结构超参数,因此模型大小相似。 在预训练期间,我们始终使用 512 的完整序列长度。 首先,为了提供与 BERT 的公平比较(3.2节),我们还仅在 BooksCorpus 和 Wikipedia 上训​​练了 XLNet-Large-wikibook,其中我们像原始 BERT 一样重用了所有预训练的超参数。 然后,我们通过使用上述所有数据集来扩大 XLNet-Large 的训练。 具体来说,我们使用 Adam 权重衰减优化器,线性学习率衰减和 8192 的批次大小在 512 个 TPU v3 芯片上进行 500K 步训练,大约需要5.5天。 据观察,该模型在训练结束时仍然欠拟合数据。 最后,我们根据 XLNet-Base-wikibooks 进行消融研究(3.4 节)。

由于引入了递归机制,因此我们使用双向数据输入管道,其中每个正向和反向都占用批次大小的一半。 对于训练 XLNet-Large,我们将部分预测常数 K 设置为6(请参见第2.3节)。 我们的微调过程遵循BERT [10],除非另有说明3 我们采用 span-based 预测的想法,首先我们采样 L [1,PIC,5] 长度,然后在一个长度为 (KL) 个词符的上下文中随机选择一个长度为 L 个词符的连续片断作为预测目标。

我们使用各种自然语言理解数据集来评估我们方法的性能。 有关所有数据集的设置的详细说明,请参见附录A.3

3.2 与 BERT 的公平比较

Model

SQuAD1.1SQuAD2.0RACEMNLIQNLIQQPRTESST-2MRPCCoLASTS-B

BERT-Large (Best of 3)

86.7/92.8 82.8/85.5 75.1 87.3 93.0 91.474.0 94.0 88.7 63.7 90.2

XLNet-Large-wikibooks

88.2/94.0 85.1/87.8 77.4 88.4 93.9 91.881.2 94.4 90.0 65.2 91.1
表 1:与 BERT 的公平比较。 所有模型都使用与 BERT 中相同的数据和超参数进行训练 我们使用 3 个BERT 变体中最好的一个进行比较;即原始 BERT、带有完整单词掩码的BERT 和不带预测下一个句子的 BERT。

在这里,我们首先在公平的环境下比较BERT和XLNet的性能,以消除使用更多数据的影响以及BERT和XLNet的改进带来的影响。 在表1中,我们比较(1)三种不同BERT的最佳性能,以及(2)使用相同数据和超参数训练的XLNet。 正如我们所看到的,在使用几乎相同的训练方法对相同数据进行训练的情况下,XLNet在所有考虑的数据集上都比BERT表现出相当大的优势。

3.3 与RoBERTa的比较:扩大规模

RACE 准确性MiddleHigh模型NDCG@20ERR@20
GPT [28] 59.0 62.9 57.4 DRMM [13] 24.3 13.8
BERT [25] 72.0 76.6 70.1 KNRM [8] 26.9 14.9
BERT+DCMN[38] 74.1 79.5 71.8 Conv [8] 28.7 18.1
RoBERTa [21] 83.2 86.5 81.8 BERT 30.53 18.67
XLNet 85.4 88.6 84.0 XLNet 31.10 20.28
表 2:与阅读理解任务 RACE 测试集最先进结果的比较,以及文档排名任务 ClueWeb09-B。 表示使用融合。 指示我们的实现。 RACE中的“中级”和“高级”是代表中学和高中难度水平的两个子集。 所有 BERT、RoBERTa 和 XLNet 的结果是通过具有相似模型尺寸的 24 层架构获得的(即BERT-Large)。

SQuAD2.0 EM F1SQuAD1.1 EM F1
开发设置结果(单个模型)
BERT [ 10 ] 78.98 81.77 BERT[10] 84.1 90.9
RoBERTa [21] 86.5 89.4 RoBERTa [21] 88.9 94.6
XLNet 87.9 90.6 XLNet 89.7 95.1
排行榜上的测试集结果(单个模型,截至2019年12月14日)
BERT [10] 80.00583.061BERT [10] 85.083 91.835
RoBERTa [21]86.82089.795BERT [10] 87.433 93.294
XLNet87.92690.689XLNet89.89895.080
表 3:阅读理解数据集SQuAD上的结果。 表示我们用官方代码运行。 表示融合。 :提交结果超过一个月后,我们无法从 组织者那里获得我们最新的 SQuAD1.1 模型测试结果,因此报告旧版本SQuAD1.1 测试集的结果。

模型IMDBYelp-2Yelp-5DBpediaAG Amazon-2Amazon-5
CNN [ 15 ] - 2.90 32.39 0.84 6.57 3.79 36.24
DPCNN [ 15 ] - 2.64 30.58 0.88 6.87 3.32 34.81
Mixed VAT [3123] 4.32 - - 0.70 4.95 - -
ULMFiT [ 14 ] 4.6 2.16 29.98 0.80 5.01 - -
BERT [ 35 ] 4.51 1.89 29.32 0.64 - 2.63 34.17
XLNet 3.20 1.37 27.05 0.60 4.45 2.11 31.67
表4:与几个文本分类数据集的测试集上的最新错误率进行比较。 所有 BERT和XLNet的结果是通过具有类似模型大小的24层架构获得的(又名BERT-Large)。

模型 MNLIQNLIQQPRTESST-2MRPCCoLASTS-BWNLI
开发集上的单任务单模型
BERT [2] 86.6/- 92.3 91.3 70.4 93.2 88.0 60.6 90.0 -
RoBERTa [21] 90.2/90.2 94.7 92.2 86.6 96.4 90.9 68.0 92.4 -
XLNet90.8/90.8 94.9 92.3 85.9 97.0 90.8 69.0 92.5 -
测试集上的多任务融合(截至2019年10月28日排行榜)
MT-DNN[20] 87.9/87.4 96.0 89.9 86.3 96.5 92.7 68.4 91.1 89.0
RoBERTa[21] 90.8/90.2 98.9 90.2 88.2 96.7 92.3 67.8 92.2 89.0
XLNet 90.9/90.999.090.488.5 97.1 92.9 70.2 93.0 92.5
表5:GLUE上的结果。 表示使用融合,表示多任务行中的单任务结果。 所有开发集结果均为 10 次运行的中位数。 上半部分显示对开发数据的直接比较,下半部分 显示与公开排行榜上最先进结果的比较。

在我们的手稿首次出版后,还发布了其他一些经过预先训练的模型,例如RoBERTa [21]和ALBERT [19] 由于 ALBERT 涉及将模型隐藏大小从 1024 增加到 2048/4096,因此就 FLOP 而言实质上增加了计算量,因此我们将 ALBERT 从以下结果中排除,因为很难得出科学结论。 为了获得与RoBERTa的相对公平的比较,本节中的实验基于完整数据,并重新使用RoBERTa的超参数,如3.1部分所述。

结果显示在表2(阅读理解和文档排名),3(问题回答),4(文本分类)和 5(自然语言理解),其中XLNet通常胜过BERT和RoBERTa。 此外,我们进行了两个更有趣的观察:

3.4 消融研究

我们进行消融研究,以了解基于四个具有不同特征的数据集的每个设计选择的重要性。 具体来说,我们希望研究三个主要方面:

考虑到这些目的,在表6中,我们比较了具有不同实现细节(第3-8行),原始BERT-Base模型(第1行)和其他Transformer的6种XLNet-Base变体-XL基线使用BERT中使用的降噪自动编码(DAE)目标进行了训练,但使用了双向输入管线(第2行)。 为了公平比较,所有模型均基于12层架构,并且具有与BERT-Base相同的模型超参数,并且仅在Wikipedia和BooksCorpus上进行了训练。 报告的所有结果均为5次运行的中位数。

#模型RACE
SQuAD2.0
MNLISST-2
F1 EM m/mm
1 BERT-Base 64.3 76.3073.6684.34 / 84.65 92.78
2 DAE + Transformer-XL 65.03 79.56 76.80 84.88 / 84.45 92.60
3 XLNet-Base (K = 7) 66.05 81.3378.4685.84 / 85.43 92.66
4 XLNet-Base (K = 6) 66.66 80.9878.1885.63 / 85.1293.35
5 - memory 65.55 80.1577.2785.32 / 85.05 92.78
6 - span-based pred 65.95 80.6177.9185.49 / 85.02 93.12
7 - bidirectional data 66.34 80.6577.8785.31 / 84.99 92.66
8 + next-sent pred 66.76 79.83 76.94 85.32 / 85.09 92.89
表6:RACE上的BERT结果取自 [ 38 ] 。我们使用在其他数据集上运行BERT官方实现和与XLNet相同的超参数搜索空间。 K 是控制优化难度的超参数(请参见 2.3)。

查看表6的第1至4行,我们可以看到Transformer-XL和置换LM明显贡献了XLNet优于BERT的性能。 而且,如果我们删除内存缓存机制(第5行),性能会明显下降,尤其是对于涉及4个任务中最长上下文的RACE。 此外,第6-7行显示基于跨度的预测和双向输入管道在XLNet中都起着重要的作用。 最后,我们出乎意料地发现原始BERT中提出的下一句预测目标不一定会导致我们环境的改善。 因此,我们从XLNet中排除了下一句预测目标。

最后,我们还对注意力模式进行了定性研究,由于页数限制,该模式已包含在附录A.6中。

4 结论

XLNet是一种通用的AR预训练方法,它使用置换语言建模目标来结合AR和AE方法的优点。 XLNet的神经体系结构旨在与AR目标无缝协作,包括集成Transformer-XL和精心设计的两流式注意机制。 XLNet 在各项任务上比以前的训练前目标有很大的提高。

致谢

作者要感谢谢启哲和余亚当斯提供的有关该项目的有用反馈,感谢杰米·卡兰提供的ClueWeb数据集,程有龙,黄艳萍和王世波为改善我们的TPU实施提供了思路,熊晨燕和戴Zhu云用于阐明文档排名任务的设置。 ZY和RS得到了海军研究办公室拨款N000141812861,美国国家科学基金会(NSF)拨款IIS1763562,Nvidia奖学金和Siebel奖学金的支持。 ZD和YY在IIS-1546329的资助下得到了NSF的部分支持,在美国科学技术部(DOE)的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, 2019.

[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]   William Fedus, Ian Goodfellow, and Andrew M Dai. Maskgan: better text generation via filling in the_. arXiv preprint arXiv:1801.07736, 2018.

[12]   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.

[13]   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.

[14]   Jeremy Howard and Sebastian Ruder. Universal language model fine-tuning for text classification. arXiv preprint arXiv:1801.06146, 2018.

[15]   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.

[16]   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.

[17]   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.

[18]   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.

[19]   Zhenzhong Lan, Mingda Chen, Sebastian Goodman, Kevin Gimpel, Piyush Sharma, and Radu Soricut. Albert: A lite bert for self-supervised learning of language representations. arXiv preprint arXiv:1909.11942, 2019.

[20]   Xiaodong Liu, Pengcheng He, Weizhu Chen, and Jianfeng Gao. Multi-task deep neural networks for natural language understanding. arXiv preprint arXiv:1901.11504, 2019.

[21]   Yinhan Liu, Myle Ott, Naman Goyal, Jingfei Du, Mandar Joshi, Danqi Chen, Omer Levy, Mike Lewis, Luke Zettlemoyer, and Veselin Stoyanov. Roberta: A robustly optimized bert pretraining approach. arXiv preprint arXiv:1907.11692, 2019.

[22]   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.

[23]   Takeru Miyato, Andrew M Dai, and Ian Goodfellow. Adversarial training methods for semi-supervised text classification. arXiv preprint arXiv:1605.07725, 2016.

[24]   Aaron van den Oord, Nal Kalchbrenner, and Koray Kavukcuoglu. Pixel recurrent neural networks. arXiv preprint arXiv:1601.06759, 2016.

[25]   Xiaoman Pan, Kai Sun, Dian Yu, Heng Ji, and Dong Yu. Improving question answering with external knowledge. arXiv preprint arXiv:1902.00993, 2019.

[26]   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.

[27]   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.

[28]   Alec Radford, Karthik Narasimhan, Tim Salimans, and Ilya Sutskever. Improving language understanding by generative pre-training. URL https://s3-us-west-2. amazonaws. com/openai-assets/research-covers/languageunsupervised/language understanding paper. pdf, 2018.

[29]   Pranav Rajpurkar, Robin Jia, and Percy Liang. Know what you don’t know: Unanswerable questions for squad. arXiv preprint arXiv:1806.03822, 2018.

[30]   Pranav Rajpurkar, Jian Zhang, Konstantin Lopyrev, and Percy Liang. Squad: 100,000+ questions for machine comprehension of text. arXiv preprint arXiv:1606.05250, 2016.

[31]   Devendra Singh Sachan, Manzil Zaheer, and Ruslan Salakhutdinov. Revisiting lstm networks for semi-supervised text classification via mixed objective function. 2018.

[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, 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.

[37]   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.

[38]   Shuailiang Zhang, Hai Zhao, Yuwei Wu, Zhuosheng Zhang, Xi Zhou, and Xiang Zhou. Dual co-matching network for multi-choice reading comprehension. arXiv preprint arXiv:1901.09381, 2019.

[39]   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.

[40]   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.

A 通过 Two-Stream Self-Attention 实现的 Target-Aware Representation

A.1 标准LM参数设置失败的具体示例

在本节中,我们提供一个具体的示例来说明在置换目标下标准语言模型参数化如何失败,如第2.3节所述。 具体来说,我们考虑满足以下关系的两个不同置换z (1)z (2)

z<t(1) = z <t(2) = z <t but zt(1) = i≠j = z t(2).

然后,将两个置换分别替换为朴素参数化,

PICzt(1)=i,z<t(1)=z<t = PICzt(1)=j,z<t(2)=z<t = PIC.

实际上,两个不同的目标位置ij共享完全相同的模型预测。 但是,两个位置的实际分布肯定不同。

A.2 两流注意

在这里,我们提供了使用Transformer-XL主干网的两流注意的实现细节。

初始重设:
t = 1,…,T : ht = e(xt) and gt = w
上一段的缓存层-m内容重新设置(内存):h m
对于Transformer-XL层m = 1 PIC ,M t5 >,连续采用相对位置编码和位置前馈的注意力来更新外观:
t = 1,…,T : ĥzt(m) = LayerNormPIC
hzt(m) = LayerNormPIC
ĝzt(m) = LayerNormPIC
gzt(m) = LayerNormPIC
目标感知的预测分布:
pθ(Xzt = x | xz<t) = PIC

A.3 数据集

A.3.1 RACE数据集

RACE数据集[18]包含将近10万个问题,这些问题是针对年龄在12至18岁之间的中学生和中学生的英语考试而产生的,答案由人类专家。 这是涉及挑战性推理问题的最难理解的阅读数据集之一。 此外,RACE中段落的平均长度大于300,这比其他流行的阅读理解数据集(例如SQuAD [29])长得多。 结果,该数据集成为理解长文本的具有挑战性的基准。 在微调期间,我们使用512的序列长度。

A.3.2 SQuAD

SQuAD是具有两个任务的大规模阅读理解数据集。 SQuAD1.1 [30]包含在给定段落中始终具有相应答案的问题,而SQuAD2.0 [29] 引入了无法回答的问题。 为了在SQuAD2.0上微调XLNet,我们联合应用了类似于分类任务的Logistic回归损失来进行可预测性预测,并为回答问题[10]应用了标准跨度提取损失。

A.3.3 文本分类数据集

继先前关于文本分类[3923]的工作之后,我们根据以下基准评估XLNet:IMDB,Yelp-2,Yelp-5 ,DBpedia,AG,Amazon-2和Amazon-5。

A.3.4 GLUE数据集

GLUE数据集[34]是9个自然语言理解任务的集合。 测试集标签已从公开发布的版本中删除,所有从业人员必须在评估服务器上提交其预测才能获得测试集结果。 在表5中,我们给出了多种设置的结果,包括单任务和多任务以及单个模型和集合。 在多任务设置中,我们联合在四个最大的数据集MNLI,SST-2,QNLI和QQP上训练XLNet,并在其他数据集上微调网络。 四个大型数据集仅采用单任务训练。 对于QNLI,我们采用了[20]中的成对相关性排名方案来提交测试集。 但是,为了与BERT进行公平比较,我们在QNLI开发集上的结果基于标准分类范例。 对于WNLI,我们使用[16]中描述的损失。

A.3.5 ClueWeb09-B数据集

按照先前工作[8]中的设置,我们使用ClueWeb09-B数据集评估文档排名的性能。 这些查询是由TREC 2009-2012 Web跟踪基于5000万个文档创建的,任务是对使用标准检索方法检索到的前100个文档进行排名。 由于文档排名或即席检索主要涉及低级表示形式而不是高级语义,因此该数据集用作评估单词嵌入质量的测试平台。 我们使用经过预训练的XLNet无需精调即可提取文档和查询的词嵌入,并使用内核池网络[36]对文档进行排名。

A.4 超参数

A.4.1 预训练超参数

Hparam
Number of layers 24
Hidden size 1024
Number of attention heads 16
Attention head size 64
FFN inner hidden size 4096
Hidden Dropout 0.1
GeLU Dropout 0.0
Attention dropout 0.1
Partial prediction K 6
Max sequence length 512
Batch size 8192
Learning rate 4e-4
Number of steps 500K
Warmup steps 40,000
Learning rate decay linear
Adam epsilon 1e-6
Weight decay 0.01
表7:用于预训练的超参数。

7中显示了用于预训练XLNet的超参数。

A.4.2 用于微调的超参数

0.1
0.1
线性的
0.01
Hparam RACESQuADMNLIYelp-5
Dropout
Attention dropout
Max sequence length 512 512 128 512
Batch size 32 48 128 128
Learning rate 2e-5 3e-5 2e-5 1e-5
Number of steps 12K 8K 10K 10K
Learning rate decay
Weight decay
Adam epsilon 1e-6 1e-6 1e-6 1e-6
Layer-wise lr decay 1.0 0.75 1.0 1.0
表8:用于微调的超参数。

8中显示了用于在各种任务上微调XLNet的超参数。 “逐层衰减”是指以自上而下的方式指数衰减各个层的学习速率。 例如,假设第24层使用学习速率l,并且逐层衰减速率为α,则学习速率m的层是 24 - m

A.5 讨论与分析

A.5.1 与BERT的比较

为了证明一个例子之外的一般性观点,我们现在转向更正式的表达方式。 受到先前工作[37]的启发,给出了序列x = [ x 1 PIC ,x T ] t13>,我们定义了一组感兴趣的目标-上下文对,&Iscr; = { x, &Uscr; },其中&Uscr; x中的一组标记,它们构成x的上下文。 直观地,我们希望模型学习x&Uscr;的依赖性。 通过训练前损失项log p x |&Uscr; t6 > 例如,给定上面的句子,兴趣对&Iscr; 可以实例化为:

= PICPICx = York,𝒰 = {New}PIC,PICx = York,𝒰 = {city}PIC,PICx = York,𝒰 = {New, city}PIC,PICPIC.

注意&Iscr; 只是一个没有唯一基本事实的虚拟概念,无论&Iscr;如何进行,我们的分析都将成立。 实例化。

给定一组目标令牌&Tscr; 和一组非目标令​​牌&Nscr; = x ∖&Tscr; ,BERT和XLNet都最大化log p &Tscr; |&Nscr; ,但使用不同的格式:

&Jscr;BERT = x∈&Tscr;log p(x | &Nscr;); &Jscr;XLNet = x∈&Tscr;log p(x | &Nscr;∪&Tscr;<x)

where &Tscr;<x denote tokens in &Tscr; that have a factorization order prior to x. 这两个目标都由多个损失项组成,形式为log p x |&Vscr; x 直观地,如果存在目标上下文对 x, &Uscr; ∈&Iscr; ,这样&Uscr;⊆&Vscr; x,然后是损失项log p x |&Vscr; x 之间的依赖关系提供训练信号x&Uscr; For convenience, we say a target-context pair (x,&Uscr;) ∈&Iscr; is covered by a model (objective) if &Uscr;⊆&Vscr;x.

根据定义,我们考虑两种情况:

A.5.2 与语言建模的比较

从第A.5.1节中借用示例和符号,像GPT [28]这样的标准AR语言模型只能覆盖依赖项 x = York &Uscr; = {新建} ,但不是 x =新建 &Uscr; = { York } 另一方面,XLNet可以满足所有分解订单的期望。 AR语言建模的这种限制在实际应用中可能至关重要。 例如,考虑范围提取为“ Thom Yorke是Radiohead的歌手”和问题“ Who是Radiohead的歌手”的回答任务。 “ Thom Yorke”的表示形式不依赖于AR语言建模中的“ Radiohead”,因此,在所有令牌表示形式上采用softmax的标准方法不会选择它们作为答案。 更正式地说,考虑上下文目标对 x, &Uscr;

诸如ELMo [27]之类的方法以浅浅的方式连接前向和后向语言模型,这不足以对两个方向之间的深层交互进行建模。

A.5.3 弥合语言建模和预培训之间的差距

扎根于密度估计4 [43224 t7>],语言建模一直是一个发展迅速的研究领域,[913] < / t8>。 但是,由于缺乏双向上下文建模的能力,因此在语言建模和预训练之间存在差距,这在A.5.2部分进行了分析。 某些机器学习从业者甚至挑战了语言建模是否是有意义的追求,如果它不能直接改善下游任务5 的话。 XLNet概括了语言建模并弥合了这种差距。 结果,它进一步“证明”了语言建模研究。 此外,可以利用语言建模研究的快速发展进行预培训。 例如,我们将Transformer-XL集成到XLNet中,以演示最新语言建模进展的有用性。

A.6 注意模式的定性分析

我们在没有微调的情况下比较了BERT和XLNet的注意力模式。 首先,我们找到了四个共享的典型模式,如图2所示。

PIC (a) Content stripes

PIC (b)本地/自我关注

PIC (c)两个部分

PIC (d)基于内容 对称

图2:XLNet和BERT共享的注意模式 。行和列代表查询和键分别。

更有趣的是,在图3中,我们展示了3种仅出现在XLNet中但没有出现在BERT中的模式:(a)自排除模式涉及所有其他令牌,但本身也存在,可能提供了一种快速的方法收集全球信息; (b)相对步幅模式涉及到距查询位置每相对相隔几步的位置; (c)一侧的遮罩图案与图1-(d)的左下部分非常相似,右上角的三角形被遮罩了。 看来该模型学会了不参加相对的右半部分。 请注意,所有这三种唯一模式都涉及相对位置而不是绝对位置,因此很可能是通过XLNet中的“相对注意”机制启用的。 我们推测这些独特的模式有助于XLNet的性能优势。 另一方面,所提出的置换LM目标在很大程度上有助于提高数据效率,从定性可视化来看,其效果可能并不明显。

PIC (a)自我排斥

PIC (b)相对大步

PIC (c)单面遮罩

图3:仅在XLNet中出现的 的注意模式 。行和列代表查询和键分别。

A.7 可视化内存和排列

PIC

图 4:给定相同的输入序列 x 和不同顺序的因式,预测 x3 的排列语言模型目标的说明。

在本节中,我们将详细介绍所提出的排列语言模型目标,包括重用内存的机制(又称递归机制),如何使用注意力掩码来排列因式顺序以及两个注意力流的区别。

As shown in Figure 5 and 6, given the current position zt, the attention mask is decided by the permutation (or factorization order) z such that only tokens the occur before zt in the permutation can be attended; i.e., positions zi with i < t. Moreover, comparing Figure 5 and 6, we can see how the query stream and the content stream work differently with a specific permutation through attention masks. 主要区别在于查询流无法进行自我关注,并且无法访问该位置的令牌,而内容流则执行正常的自我关注。

PIC

图5:基于分解顺序[3、2、4、1]的基于长度为4的序列的联合视图和拆分视图的拟议目标的内容流的详细说明。

请注意,如果我们忽略查询表示,则该图中的计算只是标准的自我注意,尽管带有特定的注意掩码。

PIC

图6:基于分解长度[3,2,4,1]下基于length-4序列的联合视图和拆分视图的拟议目标的查询流的详细说明。

虚线箭头表示查询流无法访问令牌(内容)在同一位置,而只能访问位置信息。