预训练模型ProphetNet:根据未来文本信息进行自然语言生成

2020 年 2 月 27 日 AINLP


编者按:微软亚洲研究院提出新的预训练模型 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(即将开放)


本文作者:刘大一恒、齐炜祯、晏宇、宫叶云、段楠、周明





推荐阅读

AINLP年度阅读收藏清单

从入门到进阶,全方位提升你的 NLP 实战技能

ALBERT:用于语言表征自监督学习的轻量级 BERT

中文NER任务实验小结报告——深入模型实现细节

大幅减少GPU显存占用:可逆残差网络(The Reversible Residual Network)

鼠年春节,用 GPT-2 自动写对联和对对联

transformer-XL与XLNet笔记

AINLP-DBC GPU 云服务器租用平台建立,价格足够便宜

征稿启示 | 稿费+GPU算力+星球嘉宾一个都不少

关于AINLP

AINLP 是一个有趣有AI的自然语言处理社区,专注于 AI、NLP、机器学习、深度学习、推荐算法等相关技术的分享,主题包括文本摘要、智能问答、聊天机器人、机器翻译、自动生成、知识图谱、预训练模型、推荐系统、计算广告、招聘信息、求职经验分享等,欢迎关注!加技术交流群请添加AINLP君微信(id:AINLP2),备注工作/研究方向+加群目的。


登录查看更多
1

相关内容

自然语言生成(NLG)是自然语言处理的一部分,从知识库或逻辑形式等等机器表述系统去生成自然语言。这种形式表述当作心理表述的模型时,心理语言学家会选用语言产出这个术语。自然语言生成系统可以说是一种将资料转换成自然语言表述的翻译器。NLG出现已久,但是商业NLG技术直到最近才变得普及。自然语言生成可以视为自然语言理解的反向: 自然语言理解系统须要厘清输入句的意涵,从而产生机器表述语言;自然语言生成系统须要决定如何把概念转化成语言。
【ICML2020】统一预训练伪掩码语言模型
专知会员服务
25+阅读 · 2020年7月23日
【ACL2020】端到端语音翻译的课程预训练
专知会员服务
5+阅读 · 2020年7月2日
【Amazon】使用预先训练的Transformer模型进行数据增强
专知会员服务
56+阅读 · 2020年3月6日
BERT进展2019四篇必读论文
专知会员服务
64+阅读 · 2020年1月2日
多项NLP任务新SOTA,Facebook提出预训练模型BART
机器之心
22+阅读 · 2019年11月4日
一文详解Google最新NLP模型XLNet
PaperWeekly
17+阅读 · 2019年7月1日
最新论文解读 | 基于预训练自然语言生成的文本摘要方法
微软研究院AI头条
57+阅读 · 2019年3月19日
自然语言处理中的语言模型预训练方法
PaperWeekly
14+阅读 · 2018年10月21日
深度上下文词向量
微信AI
27+阅读 · 2018年9月13日
一种基于Sequence-to-Sequence的高质量对话生成方法
科技创新与创业
9+阅读 · 2017年11月13日
Arxiv
21+阅读 · 2019年8月21日
Arxiv
5+阅读 · 2019年4月21日
Arxiv
7+阅读 · 2017年12月26日
Arxiv
5+阅读 · 2017年9月8日
VIP会员
相关资讯
多项NLP任务新SOTA,Facebook提出预训练模型BART
机器之心
22+阅读 · 2019年11月4日
一文详解Google最新NLP模型XLNet
PaperWeekly
17+阅读 · 2019年7月1日
最新论文解读 | 基于预训练自然语言生成的文本摘要方法
微软研究院AI头条
57+阅读 · 2019年3月19日
自然语言处理中的语言模型预训练方法
PaperWeekly
14+阅读 · 2018年10月21日
深度上下文词向量
微信AI
27+阅读 · 2018年9月13日
一种基于Sequence-to-Sequence的高质量对话生成方法
科技创新与创业
9+阅读 · 2017年11月13日
Top
微信扫码咨询专知VIP会员