什么是 XLNet ? 为什么它的性能优于 BERT?

2019-07-25 16:39:44 浏览数 (1)

原标题 | What is XLNet and why it outperforms BERT 作者 | Xu LIANG 译者 | Ryan(西安理工大学)、依耶芙特•欧 注:本文的相关链接请访问文末【阅读原文】

XLNet发布后仅仅不到一周的时间,我周围NLP领域的每个人似乎都在谈论它。

XLNet:NLP领域中一个新的预训练方法,相比BERT可以显著提高20个任务的准确率。

arxiv:https://arxiv.org/abs/1906.08237

github (代码 预训练模型):https://github.com/zihangdai/xlnet

由Zhilin Yang, @ZihangDai, Yiming Yang, Jaime Carbonell, @rsalakhu等发出。

是的,“在 BERT 基础上20个任务提高了准确率”确实吸引了我们的眼球。但是更加重要的事情是去理解 XLnet 的工作原理以及为何它的效果超过BERT。所以我写了这个博客来分享我阅读论文后的理解。

内容结构如下:

  • 什么是 XLNet?
  • XLNet 和 BERT 有哪些区别?
  • XLNet 是如何工作的?

什么是 XLNet?

首先,XLNet是一个类似BERT的模型,而不是完全不同的模型。但这是一个非常有前途和潜力的模型。总之,XLNet是一种通用的自回归预训练方法。

那么什么是自回归(AR)语言模型?

AR语言模型是一种利用上下文词来预测下一个词的模型。但是在这里,上下文词被限制在两个方向上,要么向前,要么向后。

GPT和GPT-2都是自回归语言模型。

AR语言模型在生成NLP任务方面具有很好的优势,因为在生成上下文时,通常是向前的方向。AE语言模型自然能很好地处理这些NLP任务。

但AR语言模型存在一些不足,它只能使用前向上下文或后向上下文,这意味着它不能同时使用前向上下文和后向上下文。

XLNet 和 BERT 有什么区别?

与AR语言模型不同,BERT被归类为自动编码器(AE)语言模型。

AE语言模型的目的是从被破坏的输入中重建原始数据。

损坏的输入意味着我们在预处理阶段中使用[MASK]将原始标记into。目的是预测into来得到原来的句子。

AE语言模型的优点在于它可以看到前后两个方向的语境。

但是,AE语言模型也有其不足之处。它在预训练中使用了[MASK],但是这种人工符号在训练过程中没有出现在实际数据中,导致了训练前的误差。[MASK]的另一个缺点是假定预测的(蒙面的)标记是相互独立的,给出未蒙面的标记。例如,我们有一句话:“这表明房地产危机已转变为银行危机”。我们掩盖住“银行”和“危机”。在这里,我们知道遮住的“银行”和“危机”包含彼此的隐含关系。但AE模型试图预测“银行”和“危机”,并分别给出未掩盖的标记。它忽略了“银行”与“危机”之间的关系。换句话说,它假定预测的(蒙面的)标记是相互独立的。但我们知道,模型应该了解预测(蒙面)标记之间的这种相关性,以预测其中一个标记。

作者想强调的是,XLNet提出了一种让AR语言模型从双向语境中学习的新方法,以避免AE语言模型中的掩码方法带来的缺点。

XLNet 是怎样工作的?

AR语言模型只能使用前向或后向上下文,那么如何让它从双向上下文中学习呢?

语言模型由两个阶段组成,一个是预训练阶段,一个是微调阶段.XLNet专注于训练阶段。在预训练阶段,提出了一个叫做置换语言建模的新的目标,我们可以知道这个名字的基本概念,它使用置换。

图1:给定相同输入序列x,但具有不同因式分解顺序的预测 x3 的置换语言建模目标的说明

这里我们以一个例子来解释。序列顺序是[x1,x2,x3,x4]。这些序列的所有排列都在下面。

因此,对于这4个标记(N)句,有24(N!)组排列。

情况是,我们希望预测x3。24位排列中有4种类型,x3位于第1位、第2位、第3位、第4位。

代码语言:javascript复制
[x3, xx, xx, xx]
[xx, x3, xx, xx]
[xx, xx, x3, xx]
[xx, xx, xx, x3]

四种模式

在这里,我们将 x3 的位置设置为第t个位置,t-1标记是预测 x3 的上下文词。

x3之前的单词在序列中包含所有可能的单词和长度。从直觉上讲,该模型将学习从两个方面的所有位置收集信息。

执行比上面的解释要复杂得多,我不会在这里说的。但是你应该得到关于XLNet的最基本和最重要的想法。

来自 XLNet 的启示

就像BERT把MASK方法带给了公众一样,XLNet显示置换方法是作为语言模型目标的一个很好的选择。可以预见,未来对语言模型目标的探索还会有更多的工作。

论文: https://arxiv.org/abs/1906.08237

代码:https://github.com/zihangdai/xlnet

本文编辑:王立鱼

英语原文:https://towardsdatascience.com/what-is-xlnet-and-why-it-outperforms-bert-8d8fce710335

想要继续查看该篇文章相关链接和参考文献?

点击底部【阅读原文】即可访问:

https://ai.yanxishe.com/page/TextTranslation/1899

0 人点赞