以关键事实为枢轴:一种两阶段的低资源的表格到文本生成模型
摘要
表到文本生成旨在将结构化数据转换为非结构化文本。 大多数现有方法采用编码器 - 解码器框架来学习转换,这需要大规模的训练样本。 然而,缺乏大并行数据是许多领域的主要实际问题。 在这项工作中,我们考虑低资源表到文本生成的情况,其中只有有限的并行数据可用。 我们提出了一种新的模型,将这一代分为两个阶段:关键事实预测(key fact prediction)和表面实现(surface realization)。 它首先从表中预测关键事实,然后使用关键事实生成文本。 关键事实预测的训练需要更少的注释数据,而表面实现可以用伪平行语料库训练。 我们在传记生成数据集上评估我们的模型。 我们的模型通过仅仅1,000个并行数据获得27.34 BLEU分数,而基线模型仅获得9.71 BLEU分数的性能。
1 简介
表到文本生成是从结构化表生成描述。 它有助于读者总结表中的关键点,并用自然语言讲述。
表1是Table-to-Text的一个例子:
此外,表到文本生成是模型理解结构化知识的能力的良好测试平台。
目前大部分表到文本生成的模型都是基于编码器解码器的架构,之前几个最先进模型的效果确实还可以,但是这种架构的问题就是需要大量的文本训练。图2展示了这种架构模型的效果和训练数据量的关系:
我们可以看到数据量很小的时候效果很差,但是实际工作中,我们恰恰就是缺少大数据集。
这项工作侧重于低资源表到文本生成的任务,其中只有有限的并行数据可用。 以前的一些工作将任务表示为内容选择和表面实现的组合,并使用端到端模型对它们进行建模。 受这些工作的启发,我们将表到文本生成分为两个阶段,每个阶段都由一个只有少量注释数据的可训练模型执行。 具体来说,它首先从表中预测关键事实,然后使用关键事实生成文本,如图1所示。
两阶段方法由两个独立的模型组成:关键事实预测模型和表面实现模型。 关键事实预测模型被表述为序列标记问题,因此它需要比编码器 - 解码器模型少得多的注释数据。 根据我们的实验,该模型可以获得87.92%的F1分数,仅有1,000个注释数据。 对于表面实现模型,我们提出了一种构建伪并行数据集而无需标记数据的方法。 通过这种方式,我们的模型可以充分利用未标记的文本,并减轻并行数据的繁重需求。
这项工作的贡献如下:
-
我们提出使用两个单独的模型将表到文本生成分为两个阶段,以便可以使用更少的带注释数据来训练模型。
-
我们提出了一种方法来为表面实现模型构建伪并行数据集,而无需标记数据。
-
实验表明,我们提出的模型可以在仅有1000个tabletext样本的传记生成数据集上实现27.34 BLEU分数。
2 PIVOT:一个两阶段模型
接下来我们将介绍我们提出的双阶段模型——PIVOT。
2.1 公式和符号
假设我们有一个具有N个数据样本的并行表到文本数据集P和一个带有M个样本的未标记文本数据集U。每个并行样本由源表T和文本描述组成。而源表T又可以被表示为K个记录,即
,并且每个记录都是一个属性——值对。在未标注数据集U中的每个样本都是一段文字
。
正式的说,表到文本生成的任务就是将作为输入,生成输出
。
2.2 概要
图3显示了我们提出的模型的概述架构。 我们的模型包含两个阶段:关键事实预测和表面实现。
在第一阶段,我们将表格表示为一个序列,并使用table-to-pivot模型从序列中选择关键事实。 table-to-pivot模型采用双向长期短期记忆网络(Bi-LSTM)来预测每个单词是否被保留为关键事实的二进制序列。
在第二阶段,我们构建一个序列到序列模型,将第一阶段中选择的关键事实作为输入并发出表描述。 为了利用未标记的文本语料库,我们提出了一种构造伪并行数据的方法,以训练更好的表面实现模型。 此外,我们引入了一种去噪数据增强方法,以降低两个阶段之间错误传播的风险。
2.3 预处理:关键事实选择
这两个阶段是分开训练的,但我们没有标记表中的哪些词是数据集中的关键事实。 在这项工作中,我们将表格和文本之间的共现事实定义为关键事实,因此我们可以自动标记关键事实。
算法1说明了自动注释关键事实的过程。 给定一个表及其相关文本,我们枚举表中的每个属性——值对,并计算值和文本之间的单词重叠。 单词重叠被定义为不是停用词或标点符号但出现在表和文本中的单词数。 我们收集与文本至少有一个重叠的所有值,并将它们视为关键事实。 通过这种方式,我们可以获得一个带有0/1标签的二进制序列,表示表中的值是否是关键事实。 二进制序列将被视为关键事实预测模型的监督信号,并且所选择的关键事实将是表面实现模型的输入。
2.4 第一阶段:关键事实预测
关键事实预测模型就是一个Bi-LSTM模型上面加一个多层感知器的分类器,以确定是否每个单词都被选择了。为了表示该表,我们遵循先前的工作将表的值中的所有单词连接成单词序列,并且每个单词用其属性标记。这样的话,表就被表示成了两个句子:表示value的句子,表示属性值的句子
。
使用单词嵌入和属性嵌入将两个序列转换为向量。接下来我们引入了位置嵌入(position embedding)来捕获表的结构化信息。 位置信息表示为元组,其包括分别从值的开始和结束计数的令牌w的位置。 For example, the record of “(Name, Denise Margaret Scott)” is represented as “({Denise, Name, 1, 3}, {Margaret, Name, 2, 2}, {Scott, Name, 3, 1})”.这样,即使存在两个相同的单词,表中的每个标记也具有嵌入的唯一特征。 最后,将单词嵌入,属性嵌入和位置嵌入连接起来作为模型x的输入。
Table Encoder: 源表编码器的目标是为分类器提供一系列表示。 更具体地说,表编码器是Bi-LSTM:
Classifier: 输出向量ht被馈入MLP分类器以计算标签p1的概率分布:
Wc,bc都是分类器的可训练参数。
2.5 第二阶段:表面实现
表面实现阶段的目的是生成以第一阶段预测的关键事实为条件的文本。我们将两个模型作为表面实现的实现:vanilla Seq2Seq和Transformer。
Vanilla Seq2Seq:
在我们的实现中,vanilla Seq2Seq由Bi-LSTM编码器和具有注意机制的LSTM解码器组成。Bi-LSTM编码器与关键事实预测模型的编码器相同,只是它不使用任何属性嵌入或位置嵌入。
Transformer:
和vanilla Seq2Seq相似,Transformer由编码器和解码器组成。编码器使用了一层Transformer层用于将每个单词编码为表征ht:
2.6 伪并行数据构造
表面实现模型基于编码器 - 解码器框架,其需要大量训练数据。 为了增加训练数据,我们提出了一种构造伪并行数据的新方法。 表面实现模型用于组织和完成给定关键事实的文本。 因此,可以通过移除文本的骨架并仅保留关键事实来构造伪并行数据。 在实现中,我们使用Stanford CoreNLP toolkit2标记文本,为每个单词分配POS标记。 我们保留其POS标签属于{NN,NNS,NNP,NNPS,JJ,JJR,JJS,CD,FW}标签集的单词,并删除剩余单词。 通过这种方式,我们可以构造一个大规模的伪并行数据来训练表面实现模型。
2.7 去噪数据增强
两阶段模型的问题在于误差可能从第一阶段传播到第二阶段。 一种可能的解决方案是应用波束搜索以扩大第一阶段的搜索空间。 然而,在我们的初步实验中,当光束尺寸较小时,预测的关键事实的多样性较低,并且也无助于提高准确度。 当光束尺寸大时,解码速度慢而且精度的提高也有限。
为了解决这个问题,我们实现了一种去噪数据增强的方法,以减少错误传播带来的伤害并提高模型的稳健性。 在实践中,我们从表面实现模型的输入中随机删除一些单词,或者从其他样本中插入一些单词。 当关键事实预测模型无法回忆某些共现时,删除模拟情况,而当模型从表中预测一些额外事实时,插入模拟情况。 通过添加噪声,我们可以将这些数据视为对抗性示例,这可以提高表面实现模型的鲁棒性。
2.8 Training and Decoding
由于我们模型的两个组件是分开的,因此模型的目标函数是单独优化的。
3 实验
我们在表对文本生成基准上评估我们的模型。 我们将Seq2Seq框架下的PIVOT模型表示为PIVOT-Vanilla,将Transformer框架下的PIVOT模型表示为PIVOT-Trans。
3.1 数据集
WIKIBIO Dataset:该数据集包含来自英语维基百科的728,321篇文章,其使用每篇文章的第一句作为相关信息框的描述。 每个描述中平均有26.1个单词,其中9.5个单词也出现在表中。 该表平均包含53.1个单词和19.7个属性。 在之前的工作(Lebret等,2016; Liu等,2018)之后,我们将数据集分成80%的训练集,10%的测试集和10%的验证集。 为了模拟低资源情景,我们随机抽样1,000个并行样本,并从其余训练数据中删除表格。
3.2 评估指标
Following the previous work (Lebret et al., 2016; Wiseman et al., 2018), we use BLEU-4 (Papineni et al., 2002), ROUGE-4 (F measure) (Lin and Hovy, 2003), and NIST-4 (Belz and Reiter, 2006) as the evaluation metrics.
3.3 实施细节
词汇量仅限于训练数据集中最常见的20,000个单词。 所有型号的批量大小均为64。 我们实施early stop机制,4个epoch后如果验证集loss不下降则停止。 我们根据验证集上的性能调整超参数。
关键事实预测模型是Bi-LSTM。其隐藏单元,单词嵌入,属性嵌入和位置嵌入的维度分别为500,400,50和5。
我们实现了两个模型作为表面实现模型。 对于vanilla Seq2Seq模型,我们将隐藏维度,嵌入维度和辍学率(Srivastava等人,2014)分别设置为500,400和0.2。 对于Transfomer模型,多头组件和前馈层的隐藏单元为512和2048。Embedding size=512 number of head=8 number of Transformer block=6。
我们将梯度剪切到最大标准5.0。当验证集上的性能在3个epoch内没有改善时,我们将学习率降低一半。
3.4 Baseline
We compare our models with two categories of baseline models: the supervised models which exploit only parallel data (Vanilla Seq2Seq, Transformer, Struct-aware), and the semi-supervised models which are trained on both parallel data and unlabelled data (PretrainedMT, SemiMT)。以下是各个模型的简介:
-
具有注意机制的Vanilla Seq2Seq是用于自然语言生成的流行模型。
-
Transformer是编码器解码器框架下的最先进模型,仅基于注意机制。
-
Struct-aware是用于表到文本生成的最先进模型。它使用LSTM内部的门控机制模拟表的内部结构,并使用双重注意机制学习表和文本之间的交互。
-
PretrainedMT是一种半监督方法,用语言模型预先训练序列到序列模型的解码器。
-
SemiMT是一种半监督方法,用于通过自动编码器联合训练序列到序列模型。
监督模型使用与我们的模型相同的并行数据进行训练,而半监督模型共享相同的并行数据和未标记的数据。
3.5 结果
此外,它表明使用Transformer的实现可以获得比使用vanilla Seq2Seq更高的分数。
3.6 改变并行数据大小
首先随机打乱所有并行训练数据集合,然后选取前K个sample作为并行数据并修改剩下的数据将其表去掉作为未标注数据。得到下图:
可以看到,关键事实预测模型和表面实现模型都可以在小数据集上表现出很好的性能。
3.7 伪并行数据集的效果
令人惊讶的是,伪并行数据不仅可以帮助PIVOT模型,还可以显着改善vanilla Seq2Seq和Transformer。原因在于伪并行数据可以帮助模型提高表面实现的能力,这是这些模型在有限的并行数据条件下所缺乏的。PIVOT模型可以通过伪数据优于基线,主要是因为它破坏了关键事实预测和表面实现的操作,两者都是明确地和单独地优化的。
3.8 去噪数据增强的效果
5 总结
在这项工作中,我们专注于低资源的表到文本生成,其中只有有限的并行数据可用。 我们将生成分为两个阶段,每个阶段都由一个只有少量注释数据的可训练模型执行。 此外,我们提出了一种方法来构建表面实现模型的伪并行数据集,而不需要任何结构化表。 实验表明,我们提出的模型可以在仅有1,000个并行数据的传记生成数据集上实现27.34 BLEU分数。