【The boundaries of AI | AI 边界系列】什么是 XLNet,为何它会超越 BERT?

2019-07-30 11:41:39 浏览数 (1)

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

在 XLNet 论文发布后的一周内,每个自然语言处理领域的人都在谈论它。

是的,“ 在 20 项任务上改进了 BERT ”确实吸引了我们的目光。但更重要的是要了解它的工作原理以及它优于 BERT 的原因。所以我写这篇博客后,在阅读论文后分享我的想法。

内容结构如下:

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

什么是 XLNet ?

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

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

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

前向

后向

GPT 和 GPT-2 都 AR 语言模型。

AR 语言模型的优势是擅长生成式自然语言处理任务。因为在生成上下文时,通常是前向的。AR 语言模型很自然地适用于此类 NLP 任务。

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

XLNet和BERT有什么区别?

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

AE 语言模型旨在从损坏的输入重建原始数据。

双向

损坏的输入意味着我们在预训练阶段用 [MASK] 替换原始词 into。目标是预测 into 得到原始句子。

AE 语言模型的优势是,它可以从向前和向后的方向看到上下文。

但 AE 语言模型也有其缺点。它在预训练中使用 [MASK],但这种人为的符号在调优时在真实数据中并不存在,会导致预训练-调优的差异。[MASK] 的另一个缺点是它假设预测(掩蔽的)词 在给定未屏蔽的 词 的情况下彼此独立。例如,我们有一句话“它表明住房危机已经变成银行危机”。我们掩蔽“银行业”和“危机”。在这里注意,我们知道掩蔽的“银行业”和“危机”包含彼此的隐含关系。但 AE 模型试图预测“银行业”给予未掩蔽的 词,并预测“危机”分别给出未掩蔽的 词。它忽略了“银行业”与“危机”之间的关系。换句话说,它假设预测(掩蔽)的标记彼此独立。但是我们知道模型应该学习预测(掩蔽)词之间的这种相关性来预测其中一个词。

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

XLNet 是如何工作的?

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

语言模型包括两个阶段,即预训练阶段和调优阶段。XLNet 专注于预训练阶段。在预训练阶段,它提出了一个名为排列语言建模的新目标。我们可以从这个名称知道基本思想,它使用排列。

论文中的图示

这里我们举一个例子来解释。序列的次序是 [x1, x2, x3, x4]。这种序列的所有排列如下。

因此对于这 4 个词的(

)句子,有 24(

)个排列。

情景是我们想要预测 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]

4 个模式

这里我们设置位置 x3 作为 t-th 位置,t-1 标记是用于预测 x3 的上下文单词。

之前的 x3 单词在序列中包含所有可能的单词和长度。直观地,该模型将学习从双向的所有位置收集信息。

实现比上面的解释复杂得多,我在此不再赘述。但是你应该已经了解了关于 XLNet 的最基本和重要的想法。

来自 XLNet 的灵感

就像 BERT 将 MASK 方法带给公众一样,XLNet 表明置换方法是语言模型目标的一个很好的选择。可以预见,未来会有更多的工作探索语言模型的目标函数。

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

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

0 人点赞