摘要
与基于自回归语言模型的预训练方法相比,Bert等基于自编码的预训练方法具有更好的双向上下文建模能力。但是,BERT依赖于使用mask破坏输入,因此忽略了mask位置之间的依赖性,并且存在预训练-微调差异。鉴于这些优点和缺点,我们提出了XLNet,这是一种广义的自回归预训练方法,该方法(1)通过最大化所有对象的预期可能性来实现双向上下文的学习。(2)克服了BERT的局限性,这归功于它的自回归公式。此外,XLNet将来自最先进的自回归模型Transformer-XL的思想整合到预训练中。 从经验上讲,XLNet在20个任务上通常比BERT表现出色,而且在包括答疑,自然语言推理,情感分析和文档排名在内的18项任务上取得了最新的成果。
1导言
无监督表示学习在自然语言处理领域非常成功。通常,这些方法首先会大规模预训练神经网络未标记的文本语料库,然后微调下游任务的模型或表示。 在这种共同的高级观念下,文献中探索了不同的无监督预训练目标。 其中,自回归(AR)语言建模和自编码(AE)是最成功的两个预训练目标。
AR语言建模旨在使用自动回归模型来估计文本语料库的概率分布。具体来说,给定一个文本序列:
AR语言建模将可能性分解为前向乘积
或者是向后的
训练参数模型(例如神经网络)以对每个条件分布进行建模。 由于AR语言模型仅受过训练以编码单向上下文(向前或向后),因此在建模深度双向上下文时无效。 相反,下游语言理解任务通常需要双向上下文信息。 这导致AR语言建模与有效的预训练之间存在差距。
相比之下,基于AE的预训练不执行显式密度估计,而是旨在从损坏的输入中重建原始数据。 BERT是一个著名的例子,它是最先进的预训练方法。给定输入token序列,将token的某些部分替换为特殊符号[MASK],并训练模型以从损坏的版本中恢复原始token。由于密度估计不是目标的一部分,因此允许BERT利用双向上下文进行重建。作为直接好处,这消除了AR语言建模中的上述双向信息鸿沟,从而提高了性能。但是,在微调期间,真实数据中缺少BERT在预训练期间使用的人工符号,例如[MASK],导致预训练与预调整之间存在差异。此外,由于预测的token在输入中被屏蔽,因此BERT无法像AR语言建模那样使用乘积规则对联合概率进行建模。换句话说,给定未屏蔽的token,BERT假定预测的token彼此独立,这被简化为自然语言中普遍存在的高阶,长距离依赖性。
面对现有语言预训练目标的利弊,在这项工作中,我们提出XLNet,这是一种通用的自动回归方法,它充分利用了AR语言建模和AE的优点,同时避免了它们的局限性。
- 首先,XLNet代替了常规AR模型中使用的固定前向或后向分解顺序,而使XLNet最大化了序列w.r.t的预期对数可能性。 分解阶数的所有可能排列。 多亏了permutation操作,每个位置的上下文都可以由左右两个标记组成。 期望地,每个位置学会从所有位置利用上下文信息,即捕获双向上下文。
- 其次,作为通用的AR语言模型,XLNet不依赖数据损坏。 因此,XLNet不会遭受BERT所受的预训练-微调差异的困扰。 同时,自回归目标还提供了一种自然的方式,可以使用乘积规则将预测token的联合概率分解为因数,从而消除了BERT中的独立性假设。
除了一个新的预训练目标,XLNet改进了预训练的架构设计。
- 受AR语言建模最新进展的启发,XLNet将分段递归机制和Transformer-XL的相对编码方案集成到预训练中,从而从经验上提高了性能,尤其是对于涉及较长文本序列的任务。
- 仅仅将Transformer(-XL)体系结构应用于基于permutation的语言建模不起作用,因为分解顺序是任意的,并且目标是模棱两可的。 作为解决方案,我们建议重新配置Transformer(-XL)网络以消除歧义。
根据经验,XLNet在18项任务上获得了最先进的结果,即7项GLUE语言理解任务,3项阅读理解任务(包括SQuAD和RACE),7项文本分类任务(包括Yelp和IMDB)以及ClueWeb09-B文档排名任务 。 通过一系列公平的比较实验,XLNet在多个基准测试中始终优于BERT。
相关工作 已经探索了基于permutation的AR建模的思想,但是存在几个关键差异。 先前的模型是无序的,而XLNet本质上是使用位置编码的顺序感知。 这对于语言理解很重要,因为无序模型缺乏基本的表达能力,简直就是一句话。 上述差异是由动机上的根本差异引起的。以前的模型旨在通过在模型中添加“无序”归纳偏差来改善密度估计,而XLNet是通过使AR语言模型能够学习双向上下文来激发的。
2 Proposed Method
2.1背景
在本节中,我们首先回顾并比较传统的AR语言建模和进行语言预训练的BERT。 给定文本序列
其中
- 独立假设:正如方程式(2)中的≈符号所强调的,BERT分解联合条件概率
基于一个独立假设,即所有被掩盖的token均被分别重建。 相比之下,AR语言建模目标(1)将因素分解使用在没有这种独立性假设的情况下普遍适用的乘积规则。
- 输入噪声:BERT的输入包含诸如[MASK]之类的人工符号,这些符号在下游任务中永远不会出现,这会造成预训练与微调之间的差异。 用原始token替换[MASK]不能解决问题,因为原始token只能以很小的概率使用-否则等式(2)将是微不足道的优化。 相比之下,AR语言建模不依赖于任何输入损坏,也不会遭受此问题的困扰。
- 上下文依赖关系:AR表示
仅以token为条件,定位到t(即左侧的token),而BERT表示可以访问双方的上下文信息。 结果,BERT目标允许对模型进行预训练以更好地捕获双向上下文。
2.2 Objective: Permutation Language Modeling
借鉴无序NADE的思想,我们提出了置换语言建模的目标,该目标不仅保留了AR模型的优势,而且允许模型捕获双向上下文。 具体地说,对于长度为T的序列x,有T! 执行有效的自回归分解的不同顺序。 直观地,如果模型参数在所有分解阶数之间共享,则可以预期,模型将学习从双方所有位置收集信息。
为了使这个想法正式化,让
本质上,对于文本序列x,我们一次采样分解阶数z并根据分解阶数分解似然
Remark on Permutation 提出的目标仅置换分解顺序,而不置换序列顺序。 换句话说,我们保持原始序列顺序,使用与原始序列相对应的位置编码,并依靠Transformers中的适当注意力mask来实现分解顺序的置换。 请注意,此选择是必要的,因为模型在微调期间只会遇到具有自然顺序的文本序列。
为了提供一个总体图,我们给出了一个示例,该示例在给定相同输入序列
2.3体系结构:针对目标感知表示的双流Self-Attention
尽管置换语言建模目标具有所需的属性,但是仅仅使用标准Transformer参数化的实现可能不起作用。要查看这个问题,假设我们将下一个token分布参数化
使用标准的Softmax公式,即,
现在请注意,表示
因此,无论目标位置如何,都可以预测相同的分布,这无法学习有用的表示形式。为避免此问题,我们建议重新参数化下一个token分配以了解目标位置:
其中
双流 Self-Attention 尽管目标感知表示的想法消除了歧义,在目标预测中,如何公式化
- 内容表示形式
,或缩写为,其作用与Transformer中的标准隐藏状态相似。 此表示对上下文和本身都进行编码。
- 如上所述,查询表示形式
或缩写为,它仅可访问上下文目标信息和位置,而不能访问内容。
计算上,第一层查询流用可训练向量初始化,即
其中Q、K、V表示attention操作中的查询、键和值。内容表示的更新规则与标准的自我注意完全相同,因此在微调期间,我们可以简单地删除查询流,并将内容流用作普通的Transformer(-XL)。 最后,我们可以使用最后一层查询表示形式
部分预测 虽然permutation语言建模目标(3)有几个好处,但是由于permutation原因,它是一个更具挑战性的优化问题,并且在初步实验中导致收敛缓慢。 为了降低优化难度,我们选择仅按分解顺序预测最后的标记。 形式上,我们将z分为非目标子序列z≤c和目标子序列z> c,其中c是切点。 目的是最大化以非目标子序列为条件的目标子序列的对数似然性,
请注意,选择z> c作为目标是因为在给定当前分解阶数z的情况下,它在序列中拥有最长的上下文。 使用超参数K,以便选择约1 / K的token进行预测; 即| z | /(| z | − c)≈K。对于未选择的标记,无需计算其查询表示形式,从而节省了速度和内存。
2.4结合Transformer-XL的想法
由于我们的目标函数适合AR框架,因此我们将最新的AR语言模型Transformer-XL整合到我们的预训练框架中,并以此命名。我们在Transformer-XL中集成了两项重要技术,即相对位置编码方案和分段递归机制。 我们根据
如先前讨论的原始序列,这很简单。 现在我们讨论如何将递归机制集成到建议的排列设置中,并使模型能够重用隐藏的对象
前段的状态。 在不失一般性的前提下,假设我们有两个取自长序列s的片段; 即,
其中[.,.]表示沿序列维的串联。 请注意,位置编码仅取决于原始序列中的实际位置。 因此,一旦获得表示
2.5建模多段
许多下游任务具有多个输入段,例如,问题和回答问题的上下文段落。 现在,我们讨论如何在自回归框架预先训练XLNet。 在预训练阶段,跟随BERT,我们随机采样两个片段(来自或不来自同一上下文),并将两个片段的串联视为一个序列以执行置换语言建模。 我们仅重用属于相同上下文的内存。 具体来说,我们模型的输入类似于BERT:[A,SEP,B,SEP,CLS],其中“ SEP”和“ CLS”是两个特殊符号,而“ A”和“ B”是这两个段。 尽管我们遵循两段数据格式,但是XLNet-Large并未使用下一句预测的目标[10],因为它在我们的消融研究中并未显示出持续的改善。
相对段编码 在架构上,与添加绝对段的BERT不同,在每个位置嵌入单词的过程中,我们从Transformer-XL扩展了相对编码的思想,也对片段进行了编码。给定序列中的一对位置i和j,如果i和j来自同一段,则我们使用一段编码
2.6讨论与分析
2.6.1与BERT的比较
比较式 在(2)和(5)中,我们观察到BERT和XLNet都执行部分预测,即仅预测序列中的token子集。 这是BERT的必要选择,因为如果所有标记都被屏蔽,则不可能做出任何有意义的预测。 另外,对于BERT和XLNet而言,局部预测通过仅预测具有足够上下文的token而起到降低优化难度的作用。 但是,第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在给定相同目标的情况下总是学习更多的依赖对,并且包含“更密集”的有效训练信号。
为了证明一个例子之外的一般性观点,我们现在转向更正式的表达方式。 受先前工作的启发,给定序列
请注意,
给定一组目标令牌T和一组非目标令牌N = x T,BERT和XLNet都最大化log p(T | N),但公式不同:
其中,T<x表示T中在x之前具有因式分解顺序的记号。这两个目标都包括以
根据定义,我们考虑两种情况:
- 如果U⊆N,则BERT和XLNet都覆盖依赖项(x,U)。
- 如果
并且,则依赖项只能被XLNet覆盖,而不能覆盖BERT,因此XLNet可以覆盖比BERT更多的依赖项。 换句话说,XLNet目标包含更有效的训练信号,从经验上讲,这会导致第3节中更好的表现。
2.6.2与语言模型的比较
借用第2.6.1节中的示例和符号,像GPT这样的标准AR语言模型只能涵盖依赖项(x = York,U = {New}),而不能涵盖(x = New,U = {York})。XLNet 另一方面,它能够满足所有因式分解顺序的期望。 AR语言建模的这种限制在实际应用中可能至关重要。 例如,考虑范围提取为“ Thom Yorke is the singer of Radiohead”和问题“ Who is the singer of Radiohead”的回答任务。 “ Thom Yorke”的表示形式不依赖于AR语言建模中的“ Radiohead”,因此它们不会被选作通过对所有令牌表示采用softmax的标准方法来回答。 更正式地,考虑一个上下文目标对(x,U):
- 如果
,其中表示原始序列中x之前的标记,则AR语言建模无法涵盖依赖性。
- 相比之下,XLNet能够在期望中覆盖所有依赖项。
像Elmo这样的方法以浅浅的方式将前向和后向语言模型连在一起,这不足以模拟两个方向之间的深层次交互。
2.6.3 弥合语言建模和预训练之间的差距
语言建模已在密度估计中扎根,已成为一个快速发展的研究领域。 但是,由于缺乏双向上下文建模的能力(如2.6.2节中所述),语言建模和预训练之间存在差距。 某些机器学习从业人员甚至向语言建模提出挑战,如果它不能直接改善下游任务,那么语言建模是否有意义。 XLNet概括了语言建模并弥合了这种差距。 结果,它进一步“证明”了语言建模研究。 此外,可以利用语言建模研究的快速发展进行预训练。 例如,我们将Transformer-XL集成到XLNet中,以演示最新语言建模进展的有用性。
结论
XLNet是一种通用的AR预训练方法,它使用置换语言建模目标来结合AR和AE方法的优点。 XLNet的神经体系结构旨在与AR目标无缝协作,包括集成Transformer-XL和精心设计的两流式注意机制。 XLNet大大改进了各种任务,从而实现了最新的结果。 将来,我们设想将XLNet应用到更广泛的任务中,例如视觉和强化学习。