找回密码
 立即注册
搜索

预训练模型ProphetNet:根据将来文本信息停止自然言语生成

大规模预训练言语模型在自然言语了解(NLU)和自然言语生成(NLG)中都获得了打破性成果。这些模型通常运用特殊的自监督学习目的先在大规模无标记语料中停止预训练,然后在下游义务上微调。

传统自回归言语模型经过估计文本语料概率分布被广泛用于文本建模,序列到序列的建模(seq2seq),以及预训练言语模型中(如 GPT 等)。这类模型通常运用 teacher-forcing 的方法训练,即每一时辰经过给定之前时辰的一切字符以预测下一个时辰的字符。但是,这种方式能够会让模型倾向于依赖最近的字符,而非经过捕捉长依赖(long-term dependency)的信息去预测下一个字符。有如以下缘由:(1)部分的关系,如两元字符的组合,往往比长依赖更激烈;(2)Teacher-forcing 每一时辰只思索对下一个字符的预测,并未显式地让模型学习对其他将来字符的建模和规划。最终能够导致模型对部分字符组合的学习过拟合,而对全局的分歧性和长依赖欠拟合。尤其是当模型经过贪心解码(greedy decoding)的方式生成序列时,序列往往倾向于维持部分的分歧性而忽略有意义的全局结构。
ProphetNet(先知网络)


针对上述成绩,我们提出了一个新的 seq2seq 预训练模型, 我们称之为 ProphetNet(先知网络)。该模型带有一个新颖的自监督学习目的函数,即预测将来的N元组(Predicting Future N-gram)。与传统 seq2seq 的 Teacher-forcing 每一时辰只预测下一个字符不同,ProphetNet 每一时辰将学习去同时预测将来的 N 个字符。如图1所示:

图1:左边是传统的言语模型,每一时辰预测下一时辰的字符。左边是 Bigram 方式下的 ProphetNet,每一时辰同时预测将来的两个字符。

预测将来 N 元组这一自监督学习目的在训练过程中显式地鼓励模型在预测下一个字符时思索将来更远的字符,做到对将来字符的规划,以防止模型对强部分相关(strong local correlation)过拟合。

ProphetNet 基于 Transformer 的 seq2seq 架构,其设计有两个目的:1.模型可以以高效的方式在训练过程中完成每时辰同时预测将来的 N 个字符;2.模型可以灵敏地转换为传统的 seq2seq 架构(每时辰只预测一下个字符),以在推理或微调阶段兼容现有的方法和义务。为此,我们受 XLNet 中 Two-stream self attention 的启示,提出了用于模型 decoder 端的 N-stream self-attention 机制。图2展现了 bigram 方式下的 N-stream self-attention 样例。除了原始的 multi-head self-attention 之外(我们称为 main stream self-attention,如图2a),N-stream self-attention 包含了额外的 N 个 predicting stream self-attention(如图2b和图2c),用于分别预测第 n 个将来时辰的字符(如图2d)所示。每一个 predicting stream 与 main stream 共享参数,我们可以随时关闭 predicting stream 以让模型转换回传统 seq2seq 的形式。

图2:(a) 为main stream self-attention;(b) 为1-st predicting stream self-attention;(c) 为2-nd predicting stream self-attention;(d) 展现了n-stream self-attention的输入输入及流程。

由于难以获取到大量带标记的序列对数据,我们用去噪的自编码义务经过大量无标记文本预训练 ProphetNet。去噪的自编码义务旨在输入被噪音函数毁坏后的序列,让模型学习去复原原始序列。该义务被广泛应于 seq2seq 模型的预训练中,如 MASS、BART、T5 等。本文中运用 MASS 的预训练方式,经过引入提出的 predicting n-stream 自监督学习目的函数预训练 ProphetNet。我们以 bigram 方式的 ProphetNet 为例,整个流程如图3所示:

图3:二元方式下的 Prophet 全体框架图
实验结果


我们运用两个规模的语料数据训练 ProphetNet。ProphetNet 包含12层的 encoder 和12层的 decoder,隐层大小为1024。先在 BERT 所运用的 BookCorpus+Wikipedia(16GB)的数据上预训练模型,将模型在 Text summarization 和 Question generation 两个 NLG 义务上的三个数据集微调并评价模型功能。与运用同等规模数据(16GB)的预训练模型相比,ProphetNet 在CNN/DailyMail、Gigaword 和 SQuAD 1.1 question generation 数据集上都获得了最高的功能,如表1-3所示。

表1:CNN/DailyMail 测试集结果

表2:Gigaword 测试集结果

表3:SQuAD 1.1 测试集结果(上半部分)SQuAD 1.1 交换验证测试集结果(下半部分)

除了运用 16GB 的语料训练模型,我们也停止了更大规模的预训练实验。该实验中,我们运用了 160GB 的语料(该语料被 BART、RoBETRa 等模型预训练中所运用)预训练 ProphetNet。我们展现了预训练14个 epoch 后的 ProphetNet 在 CNN/DailyMail 和 Gigaword 两个义务上微调和测试的结果。如表4所示。需求留意的是,在相反大小的训练数据下,我们模型的预训练 epoch 仅约为 BART 的三分之一。我们模型的训练数据运用量仅约为 T5 和 PEGASUSLARGE(C4)的五分之一,约为 PEGASUSLARGE(HugeNews) 的二非常之一。虽然如此,我们的模型照旧在 CNN/DailyMail 上获得了最高的 ROUGE-1 和 ROUGE-L F1 scores。并在 Gigaword 上完成了新的 state-of-the-art 功能。

表4:模型经大规模语料预训练后在 CNN/DailyMail 和 Gigaword 测试集的结果

为了进一步探求 ProphetNet 的功能,我们在不预训练的状况下比较了 ProphetNet 和 Transformer 在 CNN/DailyMail 上的功能。实验结果如表5所示,ProphetNet 在该义务上超越了同等参数量的 Transformer。

表5:模型不经过预训练在 CNN/DailyMail 验证集结果
总结


本文引见了微软亚洲研讨院在序列到序列模型预训练的一个工作:ProphetNet,该模型提出了一种新的自监督学习目的,在同一时辰同时预测多个将来字符。并经过提出的 N-stream self-attention 机制高效地完成了模型在该目的下的训练。实验表明,该模型在序列到序列的多个自然言语生成义务都获得了不错的功能。我们将在之后尝试运用更大规模的模型架构和语料停止预训练,并进一步深化地探求该机制。

了解更多技术细节,请查看论文:

ProphetNet: Predicting Future N-gram for Sequence-to-Sequence Pre-training

论文链接:https://arxiv.org/pdf/2001.04063.pdf

代码链接:https://github.com/microsoft/ProphetNet

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

大神点评4

Sex欲帝丶 2020-2-28 21:23:46 显示全部楼层
分享了
回复

使用道具 举报

sailing 2020-2-29 17:22:54 显示全部楼层
写的不错,配图再多点就好啦
回复

使用道具 举报

周扒皮丨 2020-3-1 11:14:47 显示全部楼层
支持,赞一个
回复

使用道具 举报

不聊了,又该去搬砖了。。。
回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies