CoAI

语言生成与评价

  • 2020年12月06日 16:43

研究领域概述


自然语言生成可以宽泛的表述为:在某种交互目标下,从给定输入信息(或没有输入)的情况下,生成人类可读的语言文本的过程。该领域通常研究基础且通用的生成方法,并将其广泛应用在各种实际的生成任务中,例如对话生成、故事生成、机器翻译、语音识别等。

目前,基于深度学习的语言模型是自然语言生成领域的基础,其中应用最为广泛的是基于序列预测的方法。在每一步中,模型会在已知句子前缀的基础上预测下一个词,最终通过迭代生成整个句子。在大数据、大模型的支持下,著名的GPT-3模型生成文本的通顺程度已经十分接近人类。但是,如何控制文本符合交互目标,保证文本前后的一致性,并进一步提升文本的信息量,仍然是探索中的问题。因此,该领域也在探索其他的生成方法,例如引入对抗、规划、常识知识等。

语言生成的评价也是一个较为困难的问题。人工评价往往代价较高、难以复现。自动评价则需要针对不同的任务场景分别设计。在可能有多种生成结果的开放式任务(例如对话生成)中,自动评价的设计会十分困难。传统的评价方法有以下两种:基于参考答案的方法,通过匹配计算生成文本与目标结果的相似程度;不基于参考答案的方法,通过计算生成文本的一些统计量进行评价。目前,兴起了一种可学习的评价方法,该方法通过神经网络训练预测得分,但如何在不同数据集上具有良好的泛化性仍然是尚未解决的问题。

我们的工作


Story Ending Generation with Incremental Encoding and Commonsense Knowledge (AAAI 2019)

故事生成是自然语言生成中一个重要但是具有挑战性的任务,因为它要求处理上下文的逻辑关系和其中隐含的常识知识。本工作解决的是故事结局的生成,该任务需要根据给定的故事上文完成故事情节。解决这个任务要从两方面入手,一是要合理地表示上下文的逻辑线索,这些逻辑线索中包含了对于规划一个合理的故事结局最重要的信息;二是使用必要的常识知识来增强模型对于故事内容的理解,以便更好地预测接下来将发生的事情。

下图是一个故事实例,故事中的事件和实体用蓝色/紫色标注,左下角的图表示从ConceptNet中检索得到的常识知识,右下角的图表示这些事件和实体形成上下文线索的过程。结局中的“糖果”就能被看作“万圣节”的常识知识,而这样的知识对于故事结局生成是非常关键的。

image.png

在这个例子中,故事上下文中的事件和实体组成了故事中的逻辑线索。“万圣节”、“怪兽”等概念被连接成一个图结构,一个合理的结局应该考虑到所有这些被连接起来的概念。更进一步,在常识知识库ConceptNet中,“万圣节”与“糖果”高度相关,在这些常识知识的帮助下,模型能更容易地推断一个逻辑合理的故事结局。

为了解决故事结局生成任务中的这两个问题,我们设计了递增式编码(Incremental Encoding ,IE)框架来有效编码上下文逻辑线索,及多源注意力(Multi-Source Attention,MSA)机制来有效利用常识知识。当编码故事中的某句话时,模型不仅关注到之前句子中的词,还关注到这些词从ConceptNet中检索到的知识图谱。这样一来,常识知识就能通过一些图表示技巧进行编码,进而增强模型的故事理解能力。

temp.png

一个故事结局生成样例如下图所示,从不同的模型中生成的故事结局。粗体的词表示故事中关键的实体和事件。结局中不合适的单词用斜体标注,合适的单词用下划线标注。Seq2Seq模型、层次LSTM模型、引入复制机制的层次LSTM模型在生成的结局中预测了不合适的实体和事件(如“蛋糕”),且往往生成重复的内容(如“她的家人”),而在层次LSTM模型中用CA或者GA引入常识知识后,能够生成一些有意义的概念。但当同时使用IE框架、引入常识知识时,模型能够生成逻辑更相关、语法更通顺的结局。

2.png

更多论文细节可参考https://ojs.aaai.org//index.php/AAAI/article/view/4612


UNION: An Unreferenced Metric for Evaluating Open-ended Story Generation (EMNLP2020)

作为一个典型的开放端语言生成任务,故事生成的自动评价是目前语言生成评价中中具有挑战性的任务。开放端语言生成任务通常有一对多的特性,而常用的自动指标在评价开放端语言生成时通常与人工评价具有较弱的相关性。其中一对多指的是对同一个输入有许多合理的输出,这些输出可能在字面或语义上与有限的参考文本有显著不同。在故事生成中,一个生成的样本只要与给定的输入保持连贯,并且在自身的上下文中保持一致,无论是否与参考文本在字面或语义上相似,都是合理的生成结果。

如下图所示,B表示BLEU得分,M表示MoverScore得分,即使与参考文本有较低的BLEU得分,一个故事也有可能是合理的(如样本2的BLEU=0.14),而即使与参考文本有较大的MoverScore得分,一个故事也有可能是不合理的(如样本2的MoverScore=0.35)。

3.png

为了解决一对多问题,已经有许多不需要任何参考即可评价生成文本的无参考指标被提出,如基于判别器的指标通过学习区分人撰写的文本和生成的样例来评价文本质量。然而不同的语言生成模型生成文本的分布有显著的不同,因此基于判别器的指标极易过拟合到特定的数据或者模型上。事实上,对任何可学习的指标而言,泛化性或鲁棒性都是非常重要的。因此,我们为开放端语言生成任务提出一个可学习的无参考指标UNION。我们通过扰动人撰写的故事来自动构建负样本,UNION学习区分人撰写的故事和自动构建的负样本来进行评价。UNION的训练不需要依赖于任何明确的生成模型或者人工标注,因此比基于判别器的指标和学习人工评价的指标有更好的泛化性。为了捕捉在生成的故事中普遍观察到的问题,我们采用了四个负采样技巧来构造负样本,包括重复、替换、重排序和否定转换。除此之外,我们也为UNION设计了一个额外的重构目标,要求从负样本中恢复扰动,该目标能够进一步提高UNION的表现。

训练UNION的关键在于负样本的构建。负样本必须提供一系列的词汇、句法和语义变化,来模仿语言生成模型产生的错误。因此,我们首先针对“什么使得语言生成模型生成的故事不合理”这个问题提出经验性的观察。我们分析了目前最优的几个语言生成模型生成的381个不合理的故事,总结了四个主要的错误类型,包括情节重复、逻辑冲突、句间不连贯、场景混乱。为了增强对错误类型的理解,我们使用人工评价来标注所有不合理的故事,每个故事由7个标注者进行标注。除了上述四种错误类型,我们也给标注者提供了另外一个“其他”的选项。不同错误类型的占比如下表所示,我们能看到上述提出的四种错误类型是不合理的故事所出现的主要错误,这为我们构建负样本来评价故事生成提供了依据。

4.png

由于使用机器生成的文本作为负样本会导致较差的泛化性,同时为了使得负样本能够覆盖尽可能多的错误类型,我们设计了重复、替换、重排序和否定转换四种负采样技巧来从人撰写的故事中自动构建负样本。如下图所示,重复的内容用斜体标注,被替换的关键词用下划线标注,重排序的句子用粗体标注,被转换的否定部分用小体大写字母标注。通过全面的负采样方法,负样本能够尽可能覆盖到足够多的错误类型。

5.png

UNION的模型结构如下图所示,我们通过微调BERT来获得更好的故事理解能力。我们首先用BERT来编码输入的故事,并在[CLS]位置的隐状态之后加上额外的与任务相关的分类层。该分类层的目标是输出一个0到1之间的分数,来区分人撰写的故事与负采样的故事。该分类任务通过交叉熵来进行优化。除了主要的预测任务之外,我们为UNION设计了一个辅助的的重构任务,该任务要求给定负样本重构出原始的人撰写的故事。为了实现这一目标,我们在BERT的最后一层上加了一个额外的线性层,该线性层将BERT最后一层的矢量输出作为输入,在每一个位置上计算一个词表上的概率分布,通过最大原始故事的似然进行优化。我们在训练集上微调UNION的所有参数,其中包括BERT和两个额外的线性层的参数。在实际使用时,UNION能够通过将新生成的样本作为输入来预测相应的得分来衡量其质量。

6.png

我们在ROCStories和WritingPrompts两个数据集上比较了多个目前最优的指标,均取得了更高的与人工评价的相关性。同时,我们在数据集迁移和质量迁移两种实验设定下,也取得了比现有的指标更好的效果,说明借助自监督方法,UNION具有更好的泛化能力。此外,为了更好的理解每个负采样方法的效果,我们在ROCStories上进行了消融实验。如下图所示,我们构造了5个测试集合,All Samples表示所有被人工标注的400个故事,Repe表示被标注为具有重复情节的故事,Cohe表示被标注为具有不连贯上下文的故事,Conf表示被标注为具有逻辑冲突的故事,Chao表示被标注为具有混乱场景的故事,Reasonable Samples表示被标注为合理的故事。可以看到,我们提出的4个负采样技巧对于构建负样本都是非常必要的。

7.png

下图展示了不同的指标在ROCStories数据集上的一些典型样例的打分情况,其中H指的是人工打分,M指的是MoverScore,B指的是BLEURT得分,U指的是UNION得分。我们能看到对于MoverScore和BLEURT而言,识别故事中出现的问题是非常困难的,他们对不合理的故事(S2-S5)打分甚至比合理的故事(S1)打分更高。相比之下,UNION能够精确地给故事的质量打分,无论故事是否与参考文本相似,这表明UNION能够比有参考指标(如MoverScore)更有效地缓解一对多的问题。例如,尽管S2在整个故事中保持了一个大体合理的故事情节,除了出现了一句重复的话,标注者仍然给它打零分,英文人撰写的故事不可能会出现这样的重复错误。UNION由于使用了丰富的负采样技巧,就成功地识别了这个问题。因此,UNION对于评价开放端故事生成而言更加可靠。

1.jpeg

更多论文细节可以参考https://www.aclweb.org/anthology/2020.emnlp-main.736.pdf

ARAML: A Stable Adversarial Training Framework for Text Generation (EMNLP 2019)

最大似然估计是语言生成中的最常用的方法,但该方法面临包括偏差(Exposure Bias)问题。不少工作提出可以使用生成式对抗网络(Generative Adversarial Network, GAN)对文本生成进行优化,但在应用至离散的文本生成任务时会遇到梯度无法回传的问题。目前有两类主要方法来解决该问题:1) 连续性松弛:将离散的生成结果近似为连续空间的向量;2) 强化学习:将文本生成问题转化为强化学习中的序列决策问题,利用策略梯度(Policy Gradient)进行优化。

本工作主要关注强化学习优化方法中出现的训练不稳定问题,该问题主要来源于GAN生成器的采样过程。根据已有工作及实验,虽然GAN在文本生成领域通常会先用最大似然估计(Maximum Likelihood Estimation, MLE)对生成器进行预训练,但从生成器中采样得到的样本质量依然偏低,这导致判别器在策略梯度的优化过程中不能提供稳定的奖励信号,从而使得训练过程不稳定。

8.png

针对GAN训练不稳定问题,本工作提出了结合对抗奖励的最大似然优化框架(Adversarial Reward Augmented Maximum Likelihood, ARAML),该框架在训练生成器时会从与真实数据分布很接近的静态分布中采样,而不会像策略梯度方法那样从生成器的分布中采样,避免从生成器中获得质量差且明显偏离真实数据分布的训练样本。生成器的优化目标为带权的负对数似然函数,其中权重可根据判别器给出的分数计算,具体推导可参考我们的论文。

9.png

实验结果表明,ARAML在COCO和EMNLP 2017 WMT数据集上均取得了较好的生成质量和多样性,且在多次重复实验中表现出了比其他baseline更好的稳定性。我们还对模型生成结果的指标随训练过程的变化趋势进行了可视化,结果表明ARAML显著提升了GAN在文本生成任务中的训练稳定性。本工作还在对话数据集上进行了测试和人工评价,并对模型中的重要设计做了消融实验,具体可参考我们的论文。

10.png

更多论文细节可以参考https://www.aclweb.org/anthology/D19-1436

Long and Diverse Text Generation with Planning-based Hierarchical Variational Model (EMNLP 2019)

规划是人们进行文字创作的基本步骤。人们在写作之前,特别是在创作长篇幅作品之前,往往需要在作品的多个维度上进行精心的规划,包括作品的题材、情节、篇章结构、写作风格等,从而能够较好地掌控作品的呈现,以准确地传达作者的精神和思想。

针对数据到长文本生成(Data-to-Text)任务,基于神经网络的方法由于具有很强的表征学习能力与扩展能力,已经成为了主流方法,但往往存在遗漏输入数据、生成文本句间一致性差、多样性不足等问题。为了更好地解决这些问题,我们提出了一个基于规划的层次化隐变量模型(如下图所示)。

14.png

一般而言,人们倾向于首先将一篇长文按照内容相关度规划为若干部分,之后再对文章的每一部分详细展开。受此启发,我们首先利用规划解码器(Plan Decoder)把输入数据集合{d_1,d_2,…,d_N}划分成信息组(输入数据的子集)的序列g=g_1 g_2…g_T,然后控制层次化的文本解码器(Sentence Decoder和Word Decoder)为每一组信息g_t生成一个句子s_t。信息组序列代表了模型规划的结果,能够控制文本中每个句子的内容、输入元素所占的篇幅以及文本的整体结构。这种规划机制把较难的长文本生成任务分解成了一系列相互依赖的句子(短文本)生成子任务,每个子任务都明确地依赖于相应的信息组和已经解码的上文。因此,这种机制能够较好地筛选和覆盖输入数据,也能较好地建模句子之间的一致性。

此外,我们还可以在多个层次增加文本生成的自由度以提高生成文本的多样性:考虑到语言表达是灵活的,往往存在不止一种合理的文本结构来传达同一组信息,因此可以在规划层次引入一个全局隐变量(图中z^p)建模合理规划的多样性;而在表达实现层次也可以引入一系列局部隐变量(图中z_t^s)控制每个句子的多样化表达。

12.png

13.png

我们在广告文案生成数据集和菜谱生成数据集上进行了实验。表一和表二展示了在广告文案生成数据集上的实验结果,反映出我们的模型在输入数据覆盖度(Coverage)、表达多样性(Distinct-4和Repetition-4)、语法性(Grammaticality)、一致性(Coherence)等方面具有较好的表现。

下图给出了在广告文案生成任务上的一个生成实例。针对同一个输入,我们的模型能够采样生成多个完全覆盖输入信息、前后一致、表达丰富多样、且文本结构不尽相同的文本。

11.png

更多论文细节可以参考https://www.aclweb.org/anthology/D19-1321.pdf