最新语言表示学习方法XLNet,在20项任务上超越BERT

最新语言表示学习方法XLNet,在20项任务上超越BERT

原文地址:https://blog.csdn.net/qq_31456593/article/details/93015488

摘要:凭借对双向上下文进行建模的能力,与基于自回归语言建模的预训练方法相比,基于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 =(x1,…,xT),AR语言建模将可能性分解为前向乘积 p ( x ) = ∏ t = 1 T P ( x t ∣ x &gt; t ) p(x)=\prod_{t=1}^T P(x_t|x_{&gt;t}) p(x)=t=1TP(xtx>t)或后向乘积 p ( x ) = ∏ t = T 1 P ( x t ∣ x &lt; t ) p(x)=\prod_{t=T}^1 P(x_t|x_{&lt;t}) p(x)=t=T1P(xtx<t)。训练参数模型(例如,神经网络)以模拟每个条件分布。由于AR语言模型仅被训练为编码单向文本(向前或向后),因此在建模深度双向上下文时无效。相反,下游语言理解任务通常需要双向上下文信息。这导致AR语言建模与有效预训练之间存在差距。

相比之下,基于AE的预训练不执行显式密度估计,而是旨在从输入重构原始数据。一个值得注意的例子是BERT [10],它采用了最先进的预训练方法。给定输入令牌序列,令牌的某一部分被特殊符号[MASK]替换,并且训练模型以从损坏的版本恢复原始令牌。由于密度估计不是目标的一部分,因此允许BERT利用双向上下文进行重建。作为一个直接的好处,这关闭了AR语言建模中的双向信息差距,从而提高了性能。然而,在训练期间,BERT在预训练时使用的[MASK]等人工符号在实际数据中不存在,从而导致预训练的网络差异。此外,由于预测的令牌在输入中重新掩盖,因此BERT无法使用乘积规则对联合概率进行建模,如在语言建模中一样。换句话说,BERT假设预测的令牌与给定的未掩盖的令牌相互独立,由于高阶,远程依赖在自然语言中是普遍存在的,因此过度调整[9]。

与现有语言预训练目标的利弊相比,在这项工作中,我们提出了一种广义的自回归方法,它利用了AR语言建模和AE的优点,同时避免了它们的局限性。

  • 首先,不再像传统的AR模型那样使用固定的前向或后向分解顺序,XLNet最大化了序列的预期对数似然性分解顺序的所有可能排列。由于置换操作,每个位置的上下文可以包含来自左侧和右侧的令牌。在期望中,每个位置学习利用来自所有位置的上下文信息,即捕获双向上下文。

  • 其次,作为通用AR语言模型,XLNet不依赖于数据损坏。因此,XLNet不会受到BERT受到的预训练 - 微调差异的影响。同时,自回归目标还提供了一种自然的方式来使用乘积规则来分解预测的令牌的联合概率,从而消除了在BERT中做出的独立性假设。

除了新的预训练目标外,XLNet还改进了预训练的架构设计。

  • XLNet将Transformer-XL [9]的分段重复机制和相对编码方案集成到预训练中,从而凭经验改进了性能,特别是对于涉及较长文本序列的任务。

  • 将Transformer(-XL)架构简单地应用于基于排列的语言建模不起作用,因为分解顺序是任意的并且目标是不明确的。作为解决方案,我们建议重新参数化Transformer(-XL)网络以消除歧义。

根据实验,XLNet在18个任务上实现了最先进的结果,即7个GLUE语言理解任务,3个阅读理解任务,包括SQUAD和RACE,7个文本分类任务,包括Yelp和IMDB,以及ClueWeb09-B文档排名任务。在一系列公平比较实验中,XLNet在多个基准测试中始终优于BERT [10]。

XLNet本质上是顺序感知的位置编码。 这对于语言理解很重要,因为无序模型被简化为词袋,缺乏基本的表达能力。 上述差异源于动机的根本差异 - 之前的模型旨在通过将“无序”归纳偏差融入模型来改善密度估计,而XLNet的动机是通过启用AR语言模型来学习双向上下文。

XLNet在各个任务上的表现:

阅读理解

1561005917295

1561005219376

文本分类

1561005275146

GLUE任务

1561005297083

文档排序

1561005341595
论文:[XLNet: Generalized Autoregressive Pretraining for Language Understanding](XLNet: Generalized Autoregressive Pretraining for Language Understanding)

代码:zihangdai/xlnet

©️2020 CSDN 皮肤主题: 撸撸猫 设计师:设计师小姐姐 返回首页