XLNet模型详解

XLNet旨在整合BERT和传统自回归模型的优点,通过排列语言模型解决预训练与微调的不一致问题,采用双流自注意力机制处理预测不确定性,并结合Transformer-XL解决长文本序列的处理。该模型通过学习序列的所有排列组合,兼顾每个token的上下文信息,以提高预测效果。
摘要由CSDN通过智能技术生成

这两天在网上找了很多博客资料看,有些博文写的很好,但总感觉还是漏了一点东西,让我一直有些地方搞不懂,最终还是看了原论文(偷懒不行啊。。。)。这里就记录一下我的理解,肯定还是有不全的地方,仅供参考。
先附上原论文:https://paperswithcode.com/method/xlnet
pytorch版本代码:https://github.com/huggingface/transformers/blob/master/src/transformers/models/xlnet

前言

XLNet提出的目的就是为了整合传统语言模型和BERT的优点,同时避免掉它们的缺点:
1.BERT是降噪自编码语言模型(denoising auto-encoding,DAE),其优点就是可以兼顾上下文信息,缺点有两点:(a)预训练的时候会随机mask掉15%的tokens,但是在下游任务finetune的时候不会出现[MASK]这个符号,这就导致了pretrain和finetune的不一致;(b)因为随机mask掉15%的tokens,因此在预测其中一个被mask的token的时候,也是看不到其他被mask的tokens,这也就是BERT的一个假设:被mask的tokens之间相互独立。但是这在实际中不可能满足这个假设。
2.传统语言模型是自回归模型(AR),优点就是没有BERT的这些问题,但是其缺点也很明显:无法兼顾上下文信息。

作者提出了XLNet,还是AR模型,但是可以在兼顾上下文信息的同时避免掉BERT的这些缺点。XLNet核心思想主要包括一下几点:
1.排列语言模型(Permutation Language Modeling,PLM),通过对序列中tokens的所有排列组合进行建模来兼顾上下文信息。比如,一个长度为T的序列,共有T!种排列组合。
2.双流自注意力(Two-Stream Self-Attention),排列语言模型想法很好,但是直接使用transformer的self-attention会导致一个问题(不知道要预测的是哪个token,这个后面会详细讲),所以提出了Two-St

  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值