什么是 XLNet,为何它会超越 BERT?

作者: 朱小虎XiaohuZhu | 来源:发表于2019-07-10 19:44 被阅读48次

    原文: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语言模型是一种使用上下文词来预测下一个词的模型。但是在这里,上下文单词被限制在两个方向,前向或后向。

    前向 后向

    GPTGPT-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 个词的(N )句子,有 24(N! )个排列。

    情景是我们想要预测 x3。因此在 24 个排列中有 4 种模式,分别 x3 位于第 1 位,第 2 位,第 3 位,第 4 位。

    
    [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

    相关文章

      网友评论

        本文标题:什么是 XLNet,为何它会超越 BERT?

        本文链接:https://www.haomeiwen.com/subject/xyekkctx.html