非自回归也能预训练:基于插入的硬约束生成模型预训练方法

2020 年 5 月 13 日 PaperWeekly


论文标题:

POINTER: Constrained Text Generation via Insertion-based Generative Pre-training


论文作者:

Yizhe Zhang (MSR), Guoyin Wang (Duke), Chunyuan Li (MSR), Zhe Gan (MSR), Chris Brockett (MSR), Bill Dolan (MSR)


论文链接:

arxiv.org/pdf/2005.00558




非自回归生成有着更高的效率,但是,当前鲜有研究针对非自回归生成模型的预训练方法。


本文提出一种新的基于插入的非自回归预训练方法,用动态规划构造训练数据,并使用新的beam search方法,实现log级别的非自回归生成。在两个硬约束数据集上的实验表明,该方法比起基线模型有大幅提高


硬约束文本生成与非自回归预训练


约束性文本生成(Constrained Text Generation)是文本生成中非常重要的部分,可以分为两类:软约束生成(Soft-Constrained)和硬约束生成(Hard-Constrained)。


软约束生成就是给定一些关键词(或关键信息),生成的文本要包含给定的关键内容,但不一定要完全包括。


硬约束生成就是要完全包含给定的词汇,不允许删除。


结合这两年得到广泛研究的基于插入的非自回归生成,我们可以很容易把这种方法应用到硬约束文本生成上,因为基于插入的非自回归方法有两个优点:


  • 它不删除给定的词汇,而是不断增加新词,符合硬约束的要求;

  • 它可以有log级别的生成效率。


下图是硬约束插入式非自回归生成的一个例子。给定的关键信息是,经过4次迭代,每次迭代新插入的词为蓝色,模型最终生成了期望的句子



此外,由于这种插入的方法非常类似BERT的掩码预训练方法,所以,我们完全有可能像BERT那样,为插入式非自回归模型进行类似的预训练,从而利用大规模无监督语料,提高硬约束生成的效果。这就是本文的主要创新点。


总的来说,本文有以下贡献:


  • 提出POINTER——一种插入式非自回归预训练模型,并能用BERT初始化;

  • 基于POINTER使用一种简单但有效的Beam Search方法,进一步提高效果;

  • 在两个硬约束生成数据集上,POINTER实现了显著的效果,并且有着最高的生成效率。

非自回归预训练


本节介绍POINTER的模型、训练及推理方法。首先介绍符号。记原始输入的硬约束为,第轮模型生成的句子是,最后生成的句子是。由于模型是以插入的方法生成的,从而前一轮的句子是下一轮生成句子的子序列。


模型建模最终句子的概率可以表示为:



所以,在每一轮,模型就是要根据前一轮生成的句子去选择要在哪里插入哪些词。在介绍生成步骤之前,首先来介绍一下如何构造训练数据。


训练数据构造


对于一个完整的句子,我们想要构造一个生成序列,相邻每一对就是一个训练实例。


由于我们想要让动词、名词等实词首先生成,而形容词、副词、助词等词最后生成,我们首先就要构造出符合这个模式的训练实例。


为此,我们对句子的每个词给一个重要性得分(importance score),它通过如下方式计算:



其中,是词的TF-IDF得分,是词的Part-of-Speech得分,是词的YAKE得分。YAKE是一种无监督关键词抽取方法。


在这个得分公式中,越高,表示词就越重要,它就要首先生成。注意到每个得分都归一化到[0,1]之间。


在得到句子中每个词的重要性得分之后,我们就可以逆序构造训练实例了。


具体来说,首先对源句子,从中抹去得分较低的一部分词,得到


然后再对中剩下的词,再抹去一部分得分较低的词,得到,以此类推,得到初始句子。这里停止的标准是只剩不到个词。


那么,现在的问题是,怎么决定每次要抹去哪些词。换句话说,要选择保留哪些词,它们要满足某些条件,要达到怎样的优化目标。本文使用下面的公式计算:



这里是当前句子的长度,表示第个词被抹去,表示这个词被保留,并且约束是,不能有连续两个词被抹去。


为了求解上述公式,本文使用了一种动态规划算法。


注意到,原文上述公式中的max是min,笔者认为是笔误,否则上述公式就有一组平凡解。这个公式既鼓励重要的词首先生成,又鼓励尽可能多地生成词(越多越好)。


然而,根据文本描述,笔者在此处有一个疑问:对于约束“不能有连续两个词被抹去”。


原文给出的解释是“The reason for this constraint is that the insertion-based generation only allows maximally one new token to be generated between two existing tokens”。


也就是说,由于插入式模型一次只能在相邻词之间插入一个字符,所以在这里我们也不能一次抹去相邻两个字符。


但是实际上,即使抹去连续的词,这些词仍然可以在对数时间内以插入的方式生成。


训练


在得到训练实例后,就作为模型的输入,让模型去生成。回忆插入式生成,首先选择一个槽(slot,即相邻词之间的那个空位),然后生成该槽的词。


重新组织一下,就可以统一为:对当前输入的每个词,去预测“紧跟在”它后面是否要插入一个词,要插入哪个词。


这又可以进一步统一为:去预测词典中的一个词,这里是一个特殊词,表示实际上不插入。


为了表示就是最后的句子,额外构造一个训练实例,其中的长度和相同,而且每个词都是[NOI]。


也就是说,当作为输入的时候,模型需要为每个词输出[NOI],也就表示在每个词后面我们不再插入新词了,也就表示生成结束。


下图是模型生成的一个例子。



由于这个插入的过程和BERT预训练的方式一样,我们可以首先用BERT去初始化POINTER,然后再使用其他语料去预训练POINTER。


训练目标就是对每个训练实例,优化它的对数似然。


推理


在推理的时候,如果一个词后面生成了[NOI]且生成过程没有结束,那么在下一轮,这个[NOI]就不必再插入进去,因为它实际上表示的是没有插入。


在解码的时候,对每个位置,可以选择用Greedy Decoding或者Beam Decoding。本文提出Inner-Layer Beam Search (ILBS),进一步提高生成的效果。


具体来说,从左到右,对每个词,首先得到它预测的top-B个词,然后rank当前B个候选句子的得分,取其中最大的一大作为当前插入的词,然后继续往右走到下一个位置,直到最后一个位置,保留B个候选句子。

实验


本文在数据集EMNLP2017 WMT News和Yelp English Review上实验,预训练数据集为12.6G的Wikipedia,实验细节详见原文。


实验过程大致是首先按照预训练数据集的构造方法构造训练、验证和测试集,以此评估模型的硬约束生成能力。


下面两个表分别是在News和Yelp上的实验结果,可以看到,在NIST、BLEU、METEOR、PPL得分上,POINTER相比基线模型取得了显著的提升,而Dist评估的是模型生成的多样性,且基线模型CGMH和NMSTG是基于采样的方法,自然在Dist得分上也就比POINTER高。


另外一个值得关注的点是,POINTER生成的生成的句子长度更加接近人类。最后,使用POINTER预训练可以显著提高生成文本的流畅度。


下表是人工测评的结果。在语义度、流畅度和信息度上,POINTER都显著好于基线模型,但仍然和人工写作的文本有所差异。



下图是数据集Yelp上的两个具体例子。和基线模型相比,POINTER生成的句子不但考虑了所有的硬约束,并且句子更加通顺流畅,也更加符合硬约束的原义。



在推理时间方面,在1000个句子上,CGMH需要33小时,NMSTG需要487秒,而POINTER只需要67秒,具体显著的速度优势。

小结


本文提出POINTER——一种用于硬约束生成的插入式非自回归生成的预训练方法。使用BERT初始化、POINTER预训练和Inner-Layer Beam Search,POINTER在两个数据集上取得了显著的效果提升,而且具有效率优势。


未来关于非自回归模型预训练的研究可以有以下方向:


  • 更加通用的预训练:不仅仅是插入式的预训练,而且是适用于各种任务的预训练方法,还可以探索适用在NMT上的预训练方法;

  • 更加高效的预训练:POINTER是对数级别的预训练,未来可以像BERT那样将其降低到常数级;

  • 更加简单的预训练:POINTER的预训练需要人工构造训练数据,本质也是用规则指定了训练的方向,如何设计像BERT一样简单有效的自动预训练方法,是今后非自回归预训练研究的一大重点。



🔍


现在,在「知乎」也能找到我们了

进入知乎首页搜索「PaperWeekly」

点击「关注」订阅我们的专栏吧



关于PaperWeekly


PaperWeekly 是一个推荐、解读、讨论、报道人工智能前沿论文成果的学术平台。如果你研究或从事 AI 领域,欢迎在公众号后台点击「交流群」,小助手将把你带入 PaperWeekly 的交流群里。



登录查看更多
5

相关内容

挖掘软件存储库(MSR)会议分析软件存储库中可用的丰富数据,以发现有关软件系统和项目的有趣和可操作的信息。官网链接:http://www.msrconf.org/
【CVPR2020-Oral】用于深度网络的任务感知超参数
专知会员服务
25+阅读 · 2020年5月25日
进一步改进GPT和BERT:使用Transformer的语言模型
机器之心
16+阅读 · 2019年5月1日
中文版-BERT-预训练的深度双向Transformer语言模型-详细介绍
最新论文解读 | 基于预训练自然语言生成的文本摘要方法
微软研究院AI头条
57+阅读 · 2019年3月19日
通过预训练提升语言理解
开放知识图谱
4+阅读 · 2018年11月21日
推荐|机器学习中的模型评价、模型选择和算法选择!
全球人工智能
10+阅读 · 2018年2月5日
Arxiv
5+阅读 · 2019年8月22日
Arxiv
6+阅读 · 2018年11月1日
VIP会员
相关VIP内容
【CVPR2020-Oral】用于深度网络的任务感知超参数
专知会员服务
25+阅读 · 2020年5月25日
相关资讯
Top
微信扫码咨询专知VIP会员