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

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

3天内不再提示

语言建模中XLNet比BERT好在哪里

汽车玩家 来源:人工智能遇见磐创 作者:人工智能遇见磐创 2020-04-20 09:30 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

XLNet震惊了NLP领域,这种语言建模的新方法在20个NLP任务上的表现优于强大的BERT,并且在18个任务中获得了最先进的结果。

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

语言建模简介

在2018年,随着语言建模任务处于研究的中心,NLP领域取得了重大的进步。

语言建模是在给定所有先前的单词的情况下,预测句子中的下一个单词的任务。语言模型现在已经成为NLP管道的重要组成部分,因为它们为各种下游任务提供了支撑。语言模型捕获几乎普遍有用的输入文本的一些特性。

早期的语言模型ULMFiT和ELMo,两者都是基于LSTM的语言模型。事实上,ULMFiT和ELMo都取得了巨大的成功,在众多任务中取得了最先进的成果。但我们将看到XLNet如何实现前所未有的成果。

用于语言建模的自回归模型(AR)

XLNet是一种通用的自回归预训练模型。自回归模型仅仅是一种前馈模型,它根据给定上下文的一组单词预测下一个词。但是在这里,上下文单词被限制在两个方向,前向或后向。

可以按顺序运行自回归模型以生成新序列!从x1,x2,…,xk开始,预测xk+1。然后使用x2,x3,…,xk+1来预测xk+2,依此类推。GPT和GPT-2都是自回归语言模型。所以,它们在文本生成中变现不错。

自回归语言模型的问题在于它只能使用前向上下文或后向上下文,这意味着它不能同时使用前向和后向上下文,从而限制其对上下文和预测的理解。

自动编码器(AE)语言建模

与AR语言模型不同,BERT使用自动编码器(AE)语言模型。AE语言模型旨在从损坏的输入重建原始数据。

在BERT中,通过添加[MASK]来破坏预训练输入数据。例如,'Goa has the most beautiful beaches in India'将成为‘Goa has the most beautiful [MASK] in India’,该模型的目标是根据上下文词预测[MASK]词。自动编码器语言模型的优点是,它可以看到前向和后向的上下文。但是,由于在输入数据中添加[MASK]引入了微调模型的差异。

BERT有什么问题?

虽然通过使用AE语言建模BERT几乎在所有NLP任务中都实现了SOTA,但它的实现仍然存在一些漏洞。BERT模型有两个主要缺点:

1.由于掩蔽导致的微调差异

训练BERT以预测用特殊[MASK]标记替换的标记。问题是在下游任务中微调BERT时,[MASK]标记永远不会出现。在大多数情况下,BERT只是将非掩码标记复制到输出中。

那么,它真的会学会为非掩码标记生成有意义的表示吗?它也不清楚如果输入句中没有[MASK]标记会发生什么。

2.预测的标记彼此独立

BERT假设在给定未掩蔽的的标记的情况下,预测的(掩蔽的)标记彼此独立。为了理解这一点,我们来看一个例子。

Whenever she goes to the[MASK][MASK]she buys a lot of[MASK].

这可以填写为:

Whenever she goes to theshopping center, she buys a lot ofclothes.

或者

Whenever she goes to thecinema hallshe buys a lot ofpopcorn.

而句子:

Whenever she goes to thecinema hallshe buys a lot ofclothes.

是无效的。BERT并行预测所有掩蔽的的位置,这意味着在训练期间,它没有学会处理同时预测的掩蔽的标记之间的依赖关系。换句话说,它不会学习到预测之间的依赖关系。它预测标记彼此之间互相独立。这可能是一个问题的原因是这减少了BERT一次学习的依赖关系的数量,使得学习信号比它原本可能的更弱。

XLNet:排列语言建模

BERT在所有传统语言模型中脱颖而出的原因在于它能够捕获双向上下文。同样,它的主要缺陷是在预训练引入[MASK]标记和并行独立预测。

如果我们以某种方式构建一个包含双向上下文的模型,同时避免[MASK]标记和并行独立预测,那么该模型肯定会胜过BERT并取得最先进的结果。

这基本上就是XLNet所实现的目标。

XLNet通过使用称为“排列语言建模”的语言建模变体来实现这一点。训练排列语言模型以预测在给定上下文后的一个标记,就像传统语言模型一样,但是不是以连续顺序预测标记,而是以某种随机顺序预测标记。为清楚起见,我们以下面的句子为例:

“Sometimes you have to be your own hero.”

传统的语言模型按照下面的顺序预测标记:

“Sometimes”, “you”, “have”, “to”, “be”, “your”, “own”, “hero”

其中每个标记使用所有前面的标记作为上下文。

在排列语言建模中,预测的顺序不一定是从左到右。例如,它可能是:

“own”, “Sometimes”, “to”, “be”, “your”, “hero”, “you”, “have”

其中“Sometimes”会以看到“own为条件,而“to” 则以看到“own”和“Sometimes”等为条件。

注意如何使用排列语言建模强制模型建模双向依赖关系。期望上,模型应该学习建模所有输入组合之间的依赖关系,而传统语言模型只能在一个方向上学习依赖关系。

XLNet使用Transformer XL

除了使用排列语言建模之外,XLNet还使用了Transformer XL,它可以进一步改善其结果。

Transformer XL模型背后的主要思想:

相对位置嵌入

循环机制

在对当前段进行排列语言建模时,缓存并冻结来自前一段的隐藏状态。由于来自前一段的所有单词都用作输入,因此不需要知道前一段的排列顺序。

双流自注意力(Two-Stream Self-Attention)

对于使用Transformer模型的语言模型,当预测位置i处的标记时,该词的整个嵌入被掩蔽,包括位置嵌入。这意味着模型与它所预测的标记位置有关的知识隔绝。

这可能是有问题的,特别是对于句子开头的位置,其与句子中的其他位置具有显着不同的分布。为了解决这个问题,作者引入了第二组表示,其中包含位置信息,但仅为了预训练而屏蔽了实际的标记。第二组表示称为query stream。训练该模型以使用来自query stream的信息来预测句子中的每个标记。

包括位置嵌入和词嵌入的原始表示集称为content stream。这组表示用于在预训练期间合并与特定单词相关的所有信息。content stream用作query stream的输入。这个模式称为“双流自注意力”。

对于每个单词,query stream使用ontent stream,该ontent stream对直到当前单词的单词的所有可用上下文信息进行编码。例如,我们在下面的句子中预测 “calm” 一词:

“Keep calm and read papers

其中位于排列前面的词是 “and”和“papers”。content stream将编码单词“and”和“papers”的信息,query stream将编码 “calm”的位置信息,以及结合来自content stream的信息,用于预测单词 “calm”。

总结

XLNet必将成为研究中讨论的话题。这表明NLP中的语言建模和迁移学习还有很多需要探索的地方。

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

    关注

    0

    文章

    5

    浏览量

    6363
  • nlp
    nlp
    +关注

    关注

    1

    文章

    491

    浏览量

    23188
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    内部支持的RTC还独立校准,这照NTP来说优势是什么?

    我看芯源有支持内置独立校准的RTC,这种时钟准么?这照NTP来说,优势在哪里
    发表于 12-03 07:59

    常用的百兆网络变压器与RJ45网口的参考连接电路有哪些,主要注意事项在哪里呢?

    Hqst华强盛(石门盈盛)电子导读:一起来了解常用的百兆网络变压器与RJ45网口的参考连接电路有哪些,主要注意事项在哪里呢?
    的头像 发表于 11-06 13:49 207次阅读
    常用的百兆网络变压器与RJ45网口的参考连接电路有哪些,主要注意事项<b class='flag-5'>在哪里</b>呢?

    发提问贴在哪里输入标签

    发提问贴在哪里可以输入标签呀
    发表于 09-14 11:30

    实现环境计算真正的瓶颈究竟在哪里

    20世纪90年代初,计算机科学家Mark Weiser提出了“泛在计算”的理念,其核心思想是让技术融入日常生活环境[1]。尽管智能家居组件、传感器网络和智能设备取得了进展,但环境计算这一概念依然难以实现。如今,我们已经拥有了硬件基础和连接能力。那么,真正的瓶颈究竟在哪里
    的头像 发表于 09-10 16:21 645次阅读

    纳米超疏水涂层介绍 超疏水材料三防漆好在哪里

    什么是纳米超疏水材料?自然界的超疏水材料:我们系统研究了荷叶、黾的脚、蝴蝶的翅膀、蝉的翅膀、蚊子的眼睛,玫瑰花的花瓣、水稻的叶子、槐叶萍的叶子、以及三色堇的花瓣等具有超疏水性能的动植物。
    的头像 发表于 08-21 14:49 1439次阅读
    纳米超疏水涂层介绍 超疏水材料<b class='flag-5'>比</b>三防漆<b class='flag-5'>好在哪里</b>

    请问USB2CAN驱动程序在哪里

    USB2CAN驱动程序在哪里?它没有像说明书中所说的那样附带 SSCB 演示 GUI。CH341SER.exe 在哪里?我在您令人沮丧的支持网站上找不到它。我无法连接到我的 REF_SSCB_AC_DC_1PH_SiC
    发表于 07-24 07:09

    请问节点上蓝牙网状网络的信息保存在哪里

    另一个带有 “Mesh Demo Dimmer Self Config” 示例的目标时,它必须保存网络数据。 但是,我想知道它保存在哪里,以及哪个函数负责保存数据。 我已经搜索过它,但我 CAN找不到它。 当 “网状演示嵌入式配置器” 连接到网络时也是如此;我不知道网络数据保存
    发表于 07-04 06:22

    使用 BSP 助手创建项目并创建 BSP 后,我应该在哪里更改 cy_device_headers.h 列出的设备名称宏?

    使用 BSP 助手创建项目并创建 BSP 后,我应该在哪里更改 cy_device_headers.h 列出的设备名称宏?例如,我想手动将设备名称从 CY8C4024FNI_S402 更改
    发表于 06-26 06:06

    可以在哪里修改以更改非 PD 类型 C 不同的 Rp 等级?

    ,但在 C 类型不是 PD pd_typec_en_rp ();函数对 Rp 等级没有影响,那么我们可以在哪里修改以更改非 PD 类型 C 不同的 Rp 等级? 还建议一种在非 pd sink 连接
    发表于 05-27 07:16

    微控制器读取闪存的软件信息时,软件信息部署在哪里? 是 SRAM 吗?

    我对 PMG1 闪光灯有疑问。 1.微控制器读取闪存的软件信息时,软件信息部署在哪里? 是 SRAM 吗? 2.微控制器加载软件时,在部署之前是否检查 SRAM 是否复位?
    发表于 05-23 06:22

    请问在哪里可以找到 DFU HOST TOOL?

    DFU Host Tool 的链接似乎已关闭: 请您告诉我还可以在哪里找到该工具。
    发表于 05-20 06:51

    STMHAL库的USB每次插拔时识别位置在哪里

    STMHAL库的USB每次插拔时识别位置在哪里
    发表于 03-07 14:00

    人工智能的下一站在哪里

    DeepSeek的爆发进一步推动了AI行业的发展速度,这让人们不得不想象AI的下一站在哪里?维智科技所深耕的时空大模型与AI发展的逻辑轨迹又是如何联系的?
    的头像 发表于 02-14 10:27 797次阅读

    VirtualLab Fusion案例:K域和X域中的系统建模

    有用。此外,我们还展示了VirtualLab Fusion的功能,可以根据用户可调的精度和计算量的标准,在需要进行模拟的任何地方自动选择最适合的傅里叶变换算法。我们还展示了在哪里检查选择了哪些傅里叶变换
    发表于 01-15 08:56

    SN74ALVC164245与SNALVC164245-EP区别在哪里呢?

    SN74ALVC164245与它的增强型器件SNALVC164245-EP区别在哪里呢?我对比了数据手册发现两种产品在电气性能上并没有什么差别,这个“增强”体现在哪里
    发表于 12-12 08:31