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

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

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

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

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

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

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

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

  XLNet 和 BERT 有什么区别?

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

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

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

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

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

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

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

  XLNet 是怎样工作的?

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

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

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

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

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

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

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

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

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

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

四种模式

在这里,我们将 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

想要继续查看该篇文章相关链接和参考文献?雷锋网雷锋网(公众号:雷锋网)雷锋网

点击【什么是 XLNet ? 为什么它的性能优于 BERT?】即可访问!

福利大放送——满满的干货课程免费送!

「好玩的Python:从数据挖掘到深度学习」该课程涵盖了从Python入门到CV、NLP实践等内容,是非常不错的深度学习入门课程,共计9节32课时,总长度约为13个小时。。

课程页面:https://ai.yanxishe.com/page/domesticCourse/37

「计算机视觉基础入门课程」本课程主要介绍深度学习在计算机视觉方向的算法与应用,涵盖了计算机视觉的历史与整个课程规划、CNN的模型原理与训练技巧、计算机视觉的应用案例等,适合对计算机视觉感兴趣的新人。

课程页面:https://ai.yanxishe.com/page/domesticCourse/46

现AI研习社将两门课程免费开放给社区认证用户,只要您在认证时在备注框里填写「Python」,待认证通过后,即可获得该课程全部解锁权限。心动不如行动噢~

认证方式:https://ai.yanxishe.com/page/blogDetail/13999


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

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/136959.html

(0)
上一篇 2021年9月1日
下一篇 2021年9月1日

相关推荐

发表回复

登录后才能评论