介绍
自然语言生成指的是从语义解析生成语言描述如逻辑表格、AMR和SQL查询等格式化的输入表达,由于它对最新的自然语言交互的可解释性和使用性的潜在贡献,这项任务吸引了广泛的注意。最近,如BERT、T5一样的大规模预训练已经提高从规则化文本生成自然语言的能力到了一个在流畅度和连贯性都非常有希望的高度。
然而,从语义解析生成自然语言仍然面临着两大关键性挑战:1. 某些类型的逻辑表格或者标注数高成本导致的数据稀疏性限制,根据我们的实验推断,这导致很难满足和维持生成文本的内在复杂的密集的逻辑性;2. 通用的子童话的评估指标,比如BLEU、ROUGE、BLEURT等都不是理想的用来针对性评估逻辑一致性的,因为他们趋向于平均的关注句子中的每一个词,而不是重点关注那些重要的逻辑性词。
为了缓解这两个关键问题,我们提出了针对语义解析到文本生成的高保真框架 SNOWBALL,和用来鸣鼓逻辑一致性的自动评估指标 BLEC。
SNOWBALL框架。如图所示,该框架训练了两个模块来确保文本生成的高保真度。
- 一个生成器模块,用来映射逻辑表到文本。
- 一个评估器模块,用来计算逻辑一致性分数。
BLEC指标。评估输入的逻辑表和输出的句子之间的逻辑一致性。
关键contribution:
- 提出了一种生成器和评估器联合训练的框架SNOWBALL。
- 提出了基于规则的新的自动化评估方法BLEC。
- 实验表明上面两项效果很好。
SNOWBALL
迭代训练
- (Generator0)在基准上接受训练NLG数据集与正常的端到端方法训练到(Generator1)。
- 同时,根据给定的规则将种子数据中的逻辑形式转换为变异形式,然后由(Generator1)预测每个变异逻辑形式的文本为一个完整的逻辑对。
- 初始的(Evaluator0)然后在这些增广逻辑对上进行训练。
每一轮训练过程都有三步迭代:
- 训练过的(Evaluator_{i−1})可用于对生成器解码器给出的beam search结果进行重新排序,从而提高增广逻辑对的质量,增强(Augment_{i-1});
- (Generator_i)能够更好地保持逻辑一致性,通过在(Augmented_{i−1})上进行训练,其中包含了种子数据中发现的更多没见过的逻辑变化;
- 增强的(Generator_i)从扰动逻辑形式中预测出越来越逼真的扰动句子,这给(Evaluator_i)的训练集带来了更多具有挑战性的负样本。
生成器
生成器使用预训练BART结构,包含编码器结构和解码器结构,编码器输入是能够认识到逻辑表结构的表达,输出是文本描述。
评估器
评估器会输出逻辑表与预测输出之间的逻辑一致性分数,相比于普通的评估器,这个模型会非常关注细微的逻辑变化,输入是逻辑表L、文本Q和[EOS]
标记,逻辑分数输出是:
其中(h_{d_n})是解码器最后的隐藏层,(w)表示最大池化。
数据增强
数据增强方法通过扰动逻辑表的逻辑来生成新的逻辑样式。
逻辑扰动
逻辑扰动扰动逻辑表格的逻辑,再通过扰动的表格生成新的文本。扰动规则是手动定义的:
- 逻辑转变:如把肯定句变成否定句。
- 短语和数字转变。
- 尸体插入、删除或者交换。
通过扰动的逻辑表进行推理
用预训练的seq2seq类模型训练效果会比基于规则的方法更加流畅和连贯,虽然这样可以获得大量的数据,但是它的标注依然会引入噪音。
数据构成
增强的[perturbed logic, pertubed text]既是生成器的训练样例,也是评估器的正样例,而[pertubed logic, seed text]和[seed logic, pertubed text]是评估器负样本。
结构感知编码器
结构感知的输入格式不仅能够得到文本中的序列性信息,也可以得到逻辑表的内在结构信息,此外,来自不同领域或数据集的逻辑形式在关键字上可能存在差异,因此将它们规范化为统一的形式可以弥合不同逻辑之间的差距从而提高了框架的泛化能力。因此,逻辑形式将首先逐字翻译成统一的中间半文本形式,由人工注释词典。然后将括号插入到半文本形式中,以表示相关的结构化表示(如ast)的层次结构。
逻辑一致性评估的BLEC
Bidirectional Logic Evaluation of Consistency。关键想法是关注于在逻辑评估领域的一些逻辑关键词。首先BLEC将问题中的一些关键词匹配逻辑表中的词,然后,根据匹配结果计算分数。
试验结果表明,BLEC表现出了和人类标注较高的皮尔逊相关系数。