2020-02-17 21:10:32

作者:Xu LIANG

编译:ronghuaiyang

导读

介绍最基本的XLNet的原理,理解XLNet和BERT的直觉上的不同点。

在发布后不到一周,我周围的NLP领域的每个人似乎都在谈论XLNet。

是的,“在20个任务上比BERT做得更好”确实吸引了我们的眼球。但更重要的是理解它是如何工作的,以及为什么它比BERT表现得更好。所以我写了这个博客来分享我读了这篇文章后的想法。

内容结构如下。

  • 什么是XLNet?
  • XLNet和BERT有什么不同?
  • XLNet是如何工作的?

什么是XLNet?

首先,XLNet是一个类似于bert的模型,而不是一个完全不同的模型。但它是一个非常有前途和潜力的。总之,XLNet是一种广义的自回归预训练方法

那么,什么是自回归(AR)语言模型

AR语言模型是利用上下文单词预测下一个单词的一种模型。但是在这里,上下文单词被限制在两个方向,要么向前,要么向后。

GPT和GPT-2都是AR语言模型。

AR语言模型的优点是擅长NLP生成任务。因为在生成上下文时,通常是正向的。AR语言模型在这类NLP任务中很自然地工作得很好。

但是AR语言模型有一些缺点,它只能使用前向上下文或后向上下文,这意味着它不能同时使用前向上下文和后向上下文

XLNet 和BERT的区别是什么?

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

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

损坏的输入意味着我们使用在训练前阶段将原始tokeninto替换为 [MASK] 。我们的目标是预测into来得到原来的句子。

AE语言模型的优点是它可以在向前和向后两个方向上看到上下文。

但是AE语言模型也有其不足之处。它在预训练中使用了[MASK],但是这种人为的符号在finetune的时候在实际数据中时没有的,导致了预训练 — finetune的不一致。[MASK]的另一个缺点是它假设所预测的(mask掉的)token是相互独立的,给出的是未掩码的tokens。例如,我们有一句话“It shows that the housing crisis was turned into a banking crisis”。我们盖住了“banking”和“crisis”。注意这里,我们知道,盖住的“banking”与“crisis”之间隐含着相互关联。但AE模型是利用那些没有盖住的tokens试图预测“banking”,并独立利用那些没有盖住的tokens预测“crisis”。它忽视了“banking”与“crisis”之间的关系。换句话说,它假设预测的(屏蔽的)tokens是相互独立的。但是我们知道模型应该学习(屏蔽的)tokens之间的这种相关性来预测其中的一个token。

作者想要强调的是,XLNet提出了一种新的方法,让AR语言模型从双向的上下文中学习,避免了AE语言模型中mask方法带来的弊端。

XLNet如何工作?

AR语言模型只能使用前向或后向的上下文,如何让它学习双向上下文呢?语言模型由预训练阶段和调优阶段两个阶段组成。XLNet专注于预训练阶段。在预训练阶段,它提出了一个新的目标,称为重排列语言建模。我们可以从这个名字知道基本的思想,它使用重排列。

这里我们用一个例子来解释。序列顺序是[x1, x2, x3, x4]。该序列的所有排列如下。

对于这4个tokens (N)的句子,有24个(N!)个排列。假设我们想要预测x3。24个排列中有4种模式,x3在第1位,第2位,第3位,第4位。

[x3, xx, xx, xx][xx, x3, xx, xx][xx, xx, x3, xx][xx, xx, xx, x3]

4种模式

在这里,我们将x3的位置设为第t位,它前面的t-1个tokens用来预测x3。

x3之前的单词包含序列中所有可能的单词和长度。直观地,模型将学习从两边的所有位置收集信息。

具体实现要比上面的解释复杂得多,这里就不讨论了。但是你应该对XLNet有最基本和最重要的了解。

来自XLNet的灵感

与BERT将mask方法公布于众一样,XLNet表明重排列法是一种很好的语言模型目标选择。可以预见,未来在语言模型目标方面的探索工作将会越来越多。

英文原文:https://towardsdatascience.com/what-is-xlnet-and-why-it-outperforms-bert-8d8fce710335

什么是XLNet,它为什么比BERT效果好?相关推荐

  1. XLNet团队:赢BERT靠的并不是数据集更大,公平对决也碾压对手

    晓查 发自 凹非寺 量子位 出品 | 公众号 QbitAI 几周前,谷歌发布了新的NLP模型XLNet,它在20项基准测试中均优于BERT. 但是与BERT相比,XLNet模型的训练数据比BERT大1 ...

  2. 【NLP】XLnet:GPT和BERT的合体,博采众长,所以更强

    前面介绍过BERT,作为一种非常成功的预训练模型,取得了非常不错的成绩,那么,他还有改进的空间吗? 本文介绍BERT的改进版,XLnet.看看它用了什么方法,改进了BERT的哪些弱点. 作者& ...

  3. 百度ERNIE 2.0发布!16项中英文任务表现超越BERT和XLNet

    整理 | 夕颜出品 | AI科技大本营(ID:rgznai100) 导读:2019 年 3 月,百度正式发布 NLP 模型 ERNIE,其在中文任务中全面超越 BERT 一度引发业界广泛关注和探讨.今 ...

  4. XLNet:公平PK,BERT你已经被超过!

    作者 | XLNet Team 译者 | 孙薇 责编 | Jane 出品 | AI科技大本营(ID: rgznai100) [导语]几周前,XLNet 团队发布了新型预训练语言模型 XLNet,这个新 ...

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

    作者张俊林,中国中文信息学会理事,中科院软件所博士.目前担任新浪微博机器学习团队 AI Lab 负责人.在此之前,张俊林曾经在阿里巴巴任资深技术专家并负责新技术团队,以及在百度和用友担任技术经理及技术 ...

  6. 谷歌更强 NLP 模型 XLNet 开源:20 项任务全面碾压 BERT!

    谷歌更强 NLP 模型 XLNet 开源:20 项任务全面碾压 BERT! 11 月份,谷歌研究团队在 GitHub 上发布了万众期待的 BERT,它不仅在 11 项 NLP 测试中刷新了最高成绩,甚 ...

  7. Bert albert xlnet gtp

    <GPT,GPT2,Bert,Transformer-XL,XLNet论文阅读速递> Bert缺点 Bert的自编码语言模型也有对应的缺点,就是XLNet在文中指出的,第一个预训练阶段因为 ...

  8. 20 项任务全面碾压 BERT,CMU 全新 XLNet 模型屠榜,代码已开源!

    BERT 带来的影响还未平复,CMU 与谷歌大脑提出的 XLNet 在 20 个任务上超过了 BERT 的表现,并在 18 个任务上取得了当前最佳效果.令人激动的是,目前 XLNet 已经开放了训练代 ...

  9. 20项任务全面碾压BERT,全新XLNet预训练模型

    这是继BERT发布以来又一个令广大NLPer兴奋的消息, CMU 与谷歌大脑提出的 XLNet 在 20 个任务上超过了 BERT 的表现,并在 18 个任务上取得了当前最佳效果. 而真正令人激动的是 ...

最新文章

  1. python中最常用的映射类型_什么是python中唯一的映射类型
  2. mysql bin的过期时间_Mysql设置binlog过期时间并自动删除
  3. python流程控制语句-python学习 流程控制语句详解
  4. Oracle数据库ORA-12516:“listener could not find available handler with matching protocol stack!“问题解决方法
  5. 【复习笔记】电力系统基础
  6. 路由怎么定位到当前页面的组件_Angular 重载当前路由
  7. php post请求跳转,学习猿地-php如何实现post跳转
  8. 接口管理平台YApi
  9. u-boot移植随笔:自定义u-boot命令点灯
  10. Twisted入门教程(6)
  11. arcpy 实现新增字段合并字段
  12. Android Service使用需要注意事项
  13. java电商项目源码_电子商务系统+java+web+完整项目+包含源码和数据库Java实用源码(示例代码)...
  14. html遮罩层动画制作,《Flash遮罩层动画的制作》的教学反思
  15. ai人工智能写歌词app,ai写歌词网站,ai作词软件创作版,作词人的辅助工具,押韵助手
  16. 外卖私域流量:微信社群的运营和羊毛经济
  17. 51单片机-串行口通信实验
  18. 数字电路28(设计步骤及十进制加计数器设计)
  19. 29、NeRV: Neural Reflectance and Visibility Fields for Relighting and View Synthesis
  20. Ubuntu(乌班图)修改阿里云镜像源详细步骤及安装gcc编译器

热门文章

  1. Java中的实现马赛克效果以及灰度效果----整张图片
  2. pandas.Series.values 将Series内的数值以ndarray或ndarray-like的形式返回,取决于原Seires的数据类型
  3. 聚类评价兰德系数讲明白的
  4. mkdir命令使用详解
  5. c语言课设代写一般多少钱_厕所疏通一般多少钱
  6. Docker系列 一. CentOS上安装Docker
  7. 政、企、学三方视角下的智慧城市发展 | 2020中关村论坛“人工智能与城市可持续发展论坛”成功举办...
  8. 图灵奖得主Joseph Sifakis:物联网自主系统设计的边界与风险(附视频)
  9. 密码界“女杀手”,破译世上最安全密码系统,获 771 万奖金!
  10. 听Ruby之父畅谈编程语言的设计