什么是XLNet,为什么它会比BERT更加出色?

原文连接:https://towardsdatascience.com/what-is-xlnet-and-why-it-outperforms-bert-8d8fce710335
在XLNet发布之后至少一周,似乎在NLP领域的每个人都在谈论XLNet。
是的,“对BERT完成20项任务的改进”确实吸引了我们的眼球。但是更重要的是要了解它的工作原理以及为什么它优于BERT。因此,在阅读本文后,我写了这个博客来分享我的想法。
内容的结构如下。

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

如果您对XLNet中的Two-Stream Self-Attention感兴趣,可以查阅我的另一篇文章,What is Two-Stream Self-Attention in XLNet.。

什么是XLNet?

首先,XLNet是一种类似BERT的模型,而不是完全不同的模型。但这是一个非常有希望和潜力的人。一言以蔽之,XLNet是一种广义的自回归预训练方法
那么什么是自回归(AR)语言模型?
AR语言模型是一种使用上下文词来预测下一个词的模型。但是在这里,上下文词被限制在两个方向上,即向前或向后。
在这里插入图片描述
GPT和GPT-2都是AR语言模型。
AR语言模型的优点是擅长生成NLP任务。因为生成上下文时,通常是向前的方向。 AR语言模型自然可以很好地处理此类NLP任务。
但是AR语言模型有一些缺点,它只能使用正向上下文或反向上下文,这意味着它不能同时使用正向和反向上下文。

BERT和XLNet之间的差别是什么?

与AR语言模型不同,BERT被分类为自动编码器(AE)语言模型。
AE语言模型旨在从损坏的输入中重建原始数据。
在这里插入图片描述
输入损坏意味着我们在训练前阶段使用[MASK]将原始token替换。目的是预测成句。
AE语言模型的优点是可以同时看到前后方向的上下文。
AE的缺点:
但是AE语言模型也有其缺点。它在预训练中使用[MASK],但是在微调时实际数据中缺少这种人工符号,从而导致了预训练与微调之间的差异。 [MASK]的另一个缺点是,给定了未屏蔽的token,则假定预测的(屏蔽的)token彼此独立。例如,我们有一个句子“它表明住房危机已变成银行危机”。我们屏蔽了“银行业”和“危机”。注意,在这里,我们知道被屏蔽的“银行业务”和“危机”之间存在隐性关系。但是AE模型却分开且独立的给未屏蔽的token预测“银行和“危机”。它忽略了“银行”和“危机”之间的关系。换句话说,它假设预测(屏蔽)token彼此独立。但是我们知道模型应该学习预测的(屏蔽的)token之间的这种相关性,以预测其中一个token。
XLNet克服AE的缺点:
作者要强调的是,XLNet提出了一种新的方法,使AR语言模型能够从双向上下文中学习,从而避免了MASK方法在AE语言模型中带来的缺点。

XLNet是怎样工作的?

AR语言模型只能向前或向后使用上下文,因此如何让它从双向上下文中学习?
语言模型包括两个阶段,即训练前阶段和微调阶段。 XLNet专注于预训练阶段。在预训练阶段,它提出了一个新的目标,称为置换语言建模( Permutation Language Modeling)。从这个名字我们可以知道基本思想,它使用置换。
在这里插入图片描述
这里我们以一个例子来解释。顺序为[x1,x2,x3,x4]。该序列的所有排列如下。
在这里插入图片描述
因此,对于句子中的这4个标记(N),有24(N!)个排列。
假设该场景是我们要预测x3。因此,在24个排列中有4种模式,x3在第一个位置,第二个位置,第三个位置,第四个位置。
在这里插入图片描述
在这里,我们将x3设置为位置t,t-1处的tokens是用于预测x3的上下文词。
x3之前的单词可以是序列中所有的单词和位置(也就是可以是x1,x2,x4),该模型将学习从所有位置收集信息。
其实,具体实现要比上面的解释要复杂的得多,我在这里不再赘述。但是您应该获得有关XLNet的最基本,最重要的思想。
如果您对XLNet中的Two-Stream Self-Attention感兴趣,可以查阅我的另一篇文章,What is Two-Stream Self-Attention in XLNet.。

XLNet的启发

像BERT公开MASK方法一样,XLNet也表明置换方法是语言模型目标的不错选择。可以预见,将来会有更多的工作来探索语言模型。

Reference

paper: https://arxiv.org/abs/1906.08237
code: pytorch_transformers/modeling_xlnet.py
What is Two-Stream Self-Attention in XLNet

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值