原标题 | 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是一个类似BERT的模型,而不是完全不同的模型。但这是一个非常有前途和潜力的模型。总之,XLNet是一种通用的自回归预训练方法。
那么什么是自回归(AR)语言模型?
AR语言模型是一种利用上下文词来预测下一个词的模型。但是在这里,上下文词被限制在两个方向上,要么向前,要么向后。
GPT和GPT-2都是自回归语言模型。
AR语言模型在生成NLP任务方面具有很好的优势,因为在生成上下文时,通常是向前的方向。AE语言模型自然能很好地处理这些NLP任务。
但AR语言模型存在一些不足,它只能使用前向上下文或后向上下文,这意味着它不能同时使用前向上下文和后向上下文。
与AR语言模型不同,BERT被归类为自动编码器(AE)语言模型。
AE语言模型的目的是从被破坏的输入中重建原始数据。
损坏的输入意味着我们在预处理阶段中使用[MASK]将原始标记into。目的是预测into来得到原来的句子。
AE语言模型的优点在于它可以看到前后两个方向的语境。
但是,AE语言模型也有其不足之处。它在预训练中使用了[MASK],但是这种人工符号在训练过程中没有出现在实际数据中,导致了训练前的误差。[MASK]的另一个缺点是假定预测的(蒙面的)标记是相互独立的,给出未蒙面的标记。例如,我们有一句话:“这表明房地产危机已转变为银行危机”。我们掩盖住“银行”和“危机”。在这里,我们知道遮住的“银行”和“危机”包含彼此的隐含关系。但AE模型试图预测“银行”和“危机”,并分别给出未掩盖的标记。它忽略了“银行”与“危机”之间的关系。换句话说,它假定预测的(蒙面的)标记是相互独立的。但我们知道,模型应该了解预测(蒙面)标记之间的这种相关性,以预测其中一个标记。
作者想强调的是,XLNet提出了一种让AR语言模型从双向语境中学习的新方法,以避免AE语言模型中的掩码方法带来的缺点。
AR语言模型只能使用前向或后向上下文,那么如何让它从双向上下文中学习呢?
语言模型由两个阶段组成,一个是预训练阶段,一个是微调阶段.XLNet专注于训练阶段。在预训练阶段,提出了一个叫做置换语言建模的新的目标,我们可以知道这个名字的基本概念,它使用置换。
图1:给定相同输入序列x,但具有不同因式分解顺序的预测 x3 的置换语言建模目标的说明
这里我们以一个例子来解释。序列顺序是[x1,x2,x3,x4]。这些序列的所有排列都在下面。
因此,对于这4个标记(N)句,有24(N!)组排列。
情况是,我们希望预测x3。24位排列中有4种类型,x3位于第1位、第2位、第3位、第4位。
四种模式
在这里,我们将 x3 的位置设置为第t个位置,t-1标记是预测 x3 的上下文词。
x3之前的单词在序列中包含所有可能的单词和长度。从直觉上讲,该模型将学习从两个方面的所有位置收集信息。
执行比上面的解释要复杂得多,我不会在这里说的。但是你应该得到关于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