0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

XLNet和Bert比,有什么不同?要进行改进吗?

深度学习自然语言处理 来源:陈年丽 2019-07-26 14:39 次阅读

1. XLNet和Bert

首先讲讲我对XLNet和Bert比,有什么异同?有什么模型方面的改进?的理解

1.1 自回归语言模型

第一次听到自回归语言模型(Autoregressive LM)这个词。我们知道一般的语言模型都是从左到右计算某个词出现的概率,但是当我们做完型填空或者阅读理解这一类NLP任务的时候词的上下文信息都是需要考虑的,而这个时候只考虑了该词的上文信息而没有考虑到下文信息。所以,反向的语言模型出现了,就是从右到左计算某个词出现的概率,这一类语言模型称之为自回归语言模型。像坚持只用单向Transformer的GPT就是典型的自回归语言模型,也有像ELMo那种拼接两个上文和下文LSTM的变形自回归语言模型。

1.2 自编码语言模型

自编码语言模型(Autoencoder LM)这个名词毫无疑问也是第一次听到。区别于上一节所述,自回归语言模型是根据上文或者下文来预测后一个单词。那不妨换个思路,我把句子中随机一个单词用[mask]替换掉,是不是就能同时根据该单词的上下文来预测该单词。我们都知道Bert在预训练阶段使用[mask]标记对句子中15%的单词进行随机屏蔽,然后根据被mask单词的上下文来预测该单词,这就是自编码语言模型的典型应用。

1.3 两种模型的优缺点对比

自回归语言模型没能自然的同时获取单词的上下文信息(ELMo把两个方向的LSTM做concat是一个很好的尝试,但是效果并不是太好),而自编码语言模型能很自然的把上下文信息融合到模型中(Bert中的每个Transformer都能看到整句话的所有单词,等价于双向语言模型),但自编码语言模型也有其缺点,就是在Fine-tune阶段,模型是看不到[mask]标记的,所以这就会带来一定的误差。XLNet将二者的上述优缺点做了一个完美的结合,在自回归语言模型中自然地引入上下文信息,并且解决自编码语言模型两阶段保持一致的问题。

2. XLNet是怎么做的

XLNet的思路采用的是自回归语言模型,根据上文来预测下一个单词,但是在上文中添加了下文信息,这样就既解决了[mask]带来的两阶段不一致问题和无法同时引入上下文信息的问题。改进之后,取了个新名字:Permutation Language Model。举个例子:输入句子为x1->x2->x3->x4,假设我们要预测的单词是x3,那我们需要在x3的上文x1和x2的位置看到x4的信息,这样才能解决同时引入上下文的问题。那就可以这么做了:随机排列组合x1、x2、x3、x4的顺序,并从中随机选择一部分作为新的句子输入。比如选择了x2->x4->x3->x1,那这个时候预测x3的时候是不是就能看到上文x2和下文x4的信息了呢,这就是XLNet的基本思路。就是通过排列组合的方式将一部分下文单词放到上文单词的位置,但实际形式还是一个从左到右预测的自回归语言模型。

但是我们在Fine-tune的时候总不能也随机组合输入的句子吧,那这和加了[mask]有啥区别呢?别急,继续往下看。XLNet在输入阶段并没有改变输入顺序,随机打乱输入句子的顺序这个过程是在Transformer中通过Attention mask实现的,就是随机掩盖掉序列中的一些单词,并将未掩盖掉的单词作为预测单词的上文。拿原文中的一个图举例:

右图的红色矩阵就是Attention Mask矩阵,1->2->3->4的输入序列在Attention Mask的作用下变成了3->2->4->1,Attention Mask也分为两种,一种是能看见自身的Content stream和Query stream。对于1来说3,2,4就是1的上文,所以第一行全是红色;对于2来说上文就只有3,所以对应位置为红色;对于3来说没有上文,所以全为白色...以此类推。那这样就实现了在输入侧不改变单词顺序,在Transformer内部实现了输入的随机排列了。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 语言模型
    +关注

    关注

    0

    文章

    426

    浏览量

    10042
  • nlp
    nlp
    +关注

    关注

    1

    文章

    463

    浏览量

    21812

原文标题:讲讲我理解的XLNet

文章出处:【微信号:zenRRan,微信公众号:深度学习自然语言处理】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    BERT原理详解

    BERT原理详解
    发表于 07-02 16:45

    串行BERT用户指南

    A guide on using the Serial BERT
    发表于 09-23 11:01

    串行BERT编程指南

    A guide on programming the Serial BERT
    发表于 09-24 17:15

    J-BERT N4903A高性能串行BERT手册

    Brochure for the Keysight J-BERT N4903A High-Performance Serial BERT: 4 pages
    发表于 09-26 12:17

    介绍XLNet的原理及其与BERT的不同点

    1、什么是XLNet?  首先,XLNet是一个类似于bert的模型,而不是一个完全不同的模型。但它是一个非常有前途和潜力的。总之,XLNet是一种广义的自回归预训练方法。  那么,什
    发表于 11-01 15:29

    BERT中的嵌入层组成以及实现方式介绍

    解决nlp相关任务的深度学习模型一样,BERT将每个输入token(输入文本中的单词)通过token嵌入层传递,以便将每个token转换为向量表示。与其他深度学习模型不同,BERT额外的嵌入层,以
    发表于 11-02 15:14

    谷歌大脑CMU联手推出XLNet,20项任务全面超越BERT

    谷歌大脑和CMU联合团队提出面向NLP预训练新方法XLNet,性能全面超越此前NLP领域的黄金标杆BERT,在20个任务上实现了性能的大幅提升,刷新了18个任务上的SOTA结果,可谓全面屠榜!
    的头像 发表于 06-22 11:19 2766次阅读

    碾压Bert?“屠榜”的XLnet对NLP任务意味着什么

    张俊林新作,一文带你剖析XLnet的运行机制,与BERT对比异同。
    的头像 发表于 06-25 14:11 2288次阅读

    简化版的XLNet在PyTorch Wrapper实现

    土豪有土豪的用法,穷人有穷人的诀窍。最近有个韩国小哥就成功将XLNet挪到了Pytorch框架上,可以在仅使用小规模训练数据(批规模=1)的情况下,实现一个简单的XLNet实例,并弄清XLNet架构的预训练机制。他将实现方案放在
    的头像 发表于 07-07 09:15 3906次阅读

    XLNet vs BERT,对比得明明白白!

    训练语料库:Wikipedia + BooksCorpus,在处理Wikipedia时使用了与BERT repo相同的工具,但出于某种原因,我们的Wiki语料库仅有20亿单词,BERT使用了25亿单词,因此XLNet的训练数据略
    的头像 发表于 07-27 07:14 4031次阅读
    <b class='flag-5'>XLNet</b> vs <b class='flag-5'>BERT</b>,对比得明明白白!

    BERT再次制霸GLUE排行榜!BERT王者归来了!

    不过,XLNet的王座没坐太久。就在今天,Facebook公布一个基于BERT开发的加强版预训练模型RoBERTa——在GLUE、SQuAD和RACE三个排行榜上全部实现了最先进的结果!
    的头像 发表于 08-02 08:53 5304次阅读
    <b class='flag-5'>BERT</b>再次制霸GLUE排行榜!<b class='flag-5'>BERT</b>王者归来了!

    改进BERT——SpanBERT,通过表示和预测分词提升预训练效果!

    在本文中,作者提出了一个新的分词级别的预训练方法 SpanBERT ,其在现有任务中的表现优于 BERT ,并在问答、指代消解等分词选择任务中取得了较大的进展。对 BERT 模型进行了如下改进
    的头像 发表于 08-02 09:29 8401次阅读

    语言建模中XLNetBERT好在哪里

    XLNet可能会改变语言建模,这就是为什么它是任何NLP从业者的重要补充。在本文中,我们将讨论XLNet背后的原理,它使它比BERT更好。为了更好地理解它,我们还将研究它之前的相关技术。
    的头像 发表于 04-20 09:30 2423次阅读

    什么是XLNet,它为什么比BERT效果好

    介绍最基本的XLNet的原理,理解XLNetBERT的直觉上的不同点。作者:Xu LIANG编译:ronghuaiyang首发:AI公园公众号
    的头像 发表于 12-10 19:10 508次阅读

    如何使用BERT模型进行抽取式摘要

      最近在梳理文本摘要相关内容,翻到一篇19年关于基于BERT模型进行抽取式摘要的老文「BertSum」,在这里分享给大家。该论文一开始挂在arXiv时,为《Fine-tune BERT
    的头像 发表于 03-12 16:41 4278次阅读
    如何使用<b class='flag-5'>BERT</b>模型<b class='flag-5'>进行</b>抽取式摘要