摘要

自然语言生成(NLG)是一个面向任务对话系统中的关键组成部分,它将结构化的语义表示(MR)转换为自然语言。对于大型对话系统,在具有超过数百个意图和数千个槽的情况下,基于模板的方法和基于模型的方法都不是可扩展的。最近,神经NLGs开始利用迁移学习,并在few-shot的配置中显示出有希望的结果。本文提出了AUGNLG,这是一种新的数据增强方法,通过将self-trained的神经检索模型与few-shot学习的NLU模型相结合,自动从开放领域文本构建MR-to-Text数据。所提出的系统在BLEU和槽错误率( Slot Error Rate)指标上都要优于FEWSHOTWOZ数据集上最新的方法。我们进一步确认了FEWSHOTSGD数据上的改进结果,并提供了我们系统的关键组件的全面分析结果。我们的代码和数据可在https://github.com/xinnuoxu/augnlg获得。

1.介绍


  大型会话系统能提供一个自然接口,来实现各种日常生活任务。 自然语言生成(NLG)是这个系统中的关键组成部分,用于将结构化的语义表示(MR)转换为自然语言,如图1所示。在面向任务的对话系统中,NLG通常通过填写一组由开发人员提供的模板来实现,这回导致会话系统生成的不自然。 为了使系统看起来更加人性化,基于模型的NLG方法,特别是神经模型,最近获得了越来越多的关注。 然而,对于大规模的对话系统,基于模板的方法和基于模型的方法都没有足够可扩展性,因此该系统中具有超过数百种的意图和数千个槽。
  最近,随着使用预训练LM的NLP技术的发展,神经NLG任务开始利用迁移学习并显示出一些有希望的结果。特别地,Peng et al. (2020) 提出了few-shot NLG的测试基准,并且在few-shot学习配置中,通过特定于任务的持续预训练以及利用现有的MR-to-Text数据集实现了SOTA性能。尽管性能有所改善,但当想把MR-to-Tex数据扩展到新的领域,它们的方法留下了较少的改进空间,即具有可扩展性问题。
  为了解决可扩展性这一限制,本文提出了一种新的数据增强方法,通过将self-trained的神经检索模型与few-shot学习的NLU模型相结合,自动从开放领域文本构建MR-to-Text数据。由于我们的数据增强方法与先前的迁移学习方法独立,因此可以将我们的方法与其他方法一起使用。在实验中,我们结果表明,AUGNLG提高了FEWSHOTWOZ任务上使用现有MR-to-Text数据的微调GPT-2(FTGPT)和SC-GPT的性能。此外,我们通过将AUGNLG应用于FT-GPT来构建另一个few-shot learning的测试集FEWSHOTSGD。最后,我们在系统的关键组件中提供全面的分析结果,以获得对各组件行为与各种参数之间的关系的详细观察结果。

2.相关工作

NLG for Dialogue Response Generation。在神经NLG模型上有一系列工作,并采用了各种架构,例如RNN,注意力RNN,SC-LSTM,T2G2,ADapterCL和相关变体。尽管模型的方法要比基于模板的方法更具有灵活性和自然性,但该方法需要大量的标注数据来达到良好的性能。
  Data Augmentation。数据增强已被广泛应用于各种NLP任务,包括句子分类,自然语言推理和口语理解。针对文本数据进行增强的方法主要有反向翻译,C-BERT词替换,混合标签和表示,以及paraphrase数据。然而,数据增强的范围是有限的,特别是由于现有方法的性质,在few-shot learning配置中只能利用领域内的数据。最近,Du et al. (2021) 通过从网上爬行的数据检索句子来提出self-training方法来增加NLU任务的数据。但是,它们的方法不能直接应用于NLG问题,因为它不会产生MR标注数据。相比之下,我们的方法通过将self-trained的神经检索模型与few-shot学习的NLU模型相结合来创造MR-to-Text数据。

3. Few-shot Transfer Learning for NLG


  NLG的目标是将MR A\mathcal AA转换为自然语言响应x=[x1,...,xT]x=[x^1,...,x^T]x=[x1,...,xT],其中xix^ixi是序列xxx的第iii个字符,TTT是序列长度。A\mathcal AA被定义为意图I\mathcal II和slot-value对{(si,vi)}i=1P\{(s_i,v_i)\}^P_{i=1}{(si​,vi​)}i=1P​的组合:
A={I,(s1,v1),...,(sP,vP)},(1)\mathcal A=\{\mathcal I,(s_1,v_1),...,(s_P,v_P)\},\tag{1}A={I,(s1​,v1​),...,(sP​,vP​)},(1)
当I\mathcal II代表系统动作的类型时,槽值对指示要在话语中嵌入的类别名称及其值。例如,在MR中,inform(food=chinese;price=cheap)inform(food=chinese;price=cheap)inform(food=chinese;price=cheap),inform是意图,food和price是两个槽键,chinese和cheap是相应的槽值。
  给定领域内的MR-to-Text数据D={(An,xn)}n=1N\mathbb D=\{(\mathcal A_n,x_n)\}^N_{n=1}D={(An​,xn​)}n=1N​,以用于训练,其中NNN是样本的数量,使用由θθθ参数化的统计神经语言模型来计算条件概率pθ(x∣A)p_θ(x|\mathcal A)pθ​(x∣A)。通过在自回归生成上使用链式法则,以A\mathcal AA为条件来生成xxx的联合概率被分解为∏t=1Tpθ(xt∣x<t,A)\prod^T_{t=1}p_θ(x^t|x^{<t},\mathcal A)∏t=1T​pθ​(xt∣x<t,A)。训练过程(即参数θθθ的学习过程)被定义为在整个训练集中最大化条件概率的对数似然:
Lθ(D)=∑n=1∣D∣logpθ(xn∣An).\mathcal L_{\theta}(\mathbb D)=\sum^{|\mathbb D|}_{n=1}log~p_{\theta}(x_n|\mathcal A_n).Lθ​(D)=n=1∑∣D∣​log pθ​(xn​∣An​).
  在 few-shot learning设置中,训练样例NNN的数量非常小(例如N≤50N≤50N≤50),这很容易导致生成许多具有语法错误或缺少信息的非流畅句子。为了解决数据稀疏问题,受先前工作中迁移学习方法启发,我们引入了一个三阶段训练方法,逐渐将大规模预训练模型转换到针对具体领域的NLG模型(如图2所示):(1) 预训练一个具有大规模文本的通用语言模型;(2)使用自动增强的MR-to-Text数据来持续预训练模型;(3)使用有限的领域域内的MR-to-Text真实数据来微调模型。
  具体而言,在步骤(1)中,我们采用GPT-2作为我们的基本语言模型,因为GPT-2在自回归文本生成任务上展示了很好的性能,该任务与MR-to-Text生成任务接近。但是,GPT-2在OpenWebText上预训练,语言风格和主题与我们目标领域中的日常对话的语言风格和主题完全不同。此外,NLG中的生成任务是以MR为条件作为输入,而不是无条件的GPT-2预训练任务的生成。因此,为了使模型较近目标领域中的最终NLG模型,在步骤(2)中,我们使用自动构造的MR-to-Text增强数据D′={(Am,xm)}m=1M\mathbb D'=\{(\mathcal A_m,\mathcal x_m)\}^M_{m=1}D′={(Am​,xm​)}m=1M​上对GPT-2模型持续进行预训练,其中MMM是增强样本的数量,这远远大于目标领域中真实数据的数量。通过使用一个 self-trained神经检索模型从Reddit中检索大量的相关文本来实现数据增强,然后用few-shot学习的NLU模型构建MR。数据增强的细节在第4节中进行了描述。最后,在步骤(3)中,我们在有限数量的领域内真实MR-to-Text数据D\mathbb DD上对NLG模型微调以进行最终适应。

4.Data Augmentation


  数据增强过程旨在从与目标领域数据D\mathbb DD相关的开放领域文本中构建大量MR-to-Text对数据D′\mathbb D'D′。增强过程包括两个阶段 :(1)检索关键字匹配的话语并过滤领域无关的样例,(2)合成MR标注数据。图3展示出了一些示例的整体增强过程。为了进一步分析和研究,我们在 https://github.com/XinnuoXu/AugNLG/tree/master/augmented_data中开园了来自每个领域的所有中间步骤的数据。

4.1 Retrieval and Filtering

4.2 Synthetic MR Annotation

AUGNLG: Few-shot Natural Language Generation using Self-trained Data Augmentation翻译相关推荐

  1. Semantically Conditioned LSTM-based Natural Language Generation for Spoken Dialogue Systems(阅读理解)

    大多数的NLG(Natural language generation)系统都使用规则和启发式,并且倾向于在没有人类语言的自然变化的情况下产生单一风格,本文提出了一种基于语义控制的长短时记忆网络(LS ...

  2. 基于生成对抗网络的自然语言生成(Natural language generation with Generative Adversarial Networks)

    作者:禅与计算机程序设计艺术 基于生成对抗网络的自然语言生成(Natural language generation with Generative Adversarial Networks) 引言 ...

  3. 【论文阅读笔记】BART: Denoising Sequence-to-Sequence Pre-training for Natural Language Generation, Translati

    BART:去噪序列到序列的预训练自然语言生成.翻译和理解 动力 自监督方法在广泛的NLP任务中取得了显著的成功.最成功的方法是masked language model的变体去噪的自编码器.训练去噪的 ...

  4. 【Coling 2022】Context-Tuning: Learning Contextualized Prompts for Natural Language Generation

    如何根据上下文生成好的prompt? 摘要 近年来,预训练语言模型在语言生成方面取得了很大的成功.为了利用预训练语言模型中丰富的知识,一种简单而强大的范式是使用离散token形式或连续embeddin ...

  5. [文献阅读]——Bridging Subword Gaps in Pretrain-Finetune Paradigm for Natural Language Generation

    前言 核心问题是:预训练-微调框架,瓶颈在哪里? 该框架的一个特点就是:下游的任务需要继承上游预训练模型的词表.有两个问题: 预训练模型通常需要覆盖较大范围的词表,而下游任务不需要那么大,造成seri ...

  6. Deep Learning in Natural Language Processing中文连载(一)

    前言: 感谢邓力.刘洋博士能够提供给广大NLP从业者.爱好者提供了这本全面.通俗易懂的好书,以及其他专家前辈在具体章节.领域做出的贡献. 本书共338页,涵盖了NLP基本问题的介绍,以及深度学习在对话 ...

  7. 自然语言处理(Natural language processing) 1

    2009-08-17 16:43:17|  分类: 计算语言学|举报|字号 订阅 原文来自Wikipedia自由的百科全书(From Wikipedia, the free encyclopedia) ...

  8. 论文解读: Exploiting Cloze Questions for Few Shot Text Classification and Natural Language Inference

    前言:在自然语言研究领域,某些自然语言处理任务可以利用"预训练模型+任务描述"方式的无监督学习来解决.然而,已有的"预训练模型+任务描述"的无监督学习方法不如有 ...

  9. 论文解读:Exploiting Cloze Questions for Few Shot Text Classification and Natural Language Inference

    论文解读:Exploiting Cloze Questions for Few Shot Text Classification and Natural Language Inference   随着 ...

最新文章

  1. 好想学python怎么猜人_学手艺我好想学个手艺哦可是脑子怎么想也想 – 手机爱问...
  2. CodeForces 660B Seating On Bus
  3. C/C++中传值和传地址(引用)
  4. NHibernate+MySql (erro 解决方法)
  5. 2013年7月28日web前端学习笔记-------head相关标签应用
  6. 《DBNotes:single_table访问方法、MRR多范围读取优化、索引合并》
  7. 案例 员工信息维护系统 c# 1613925570
  8. UE4暴露游戏元素给蓝图
  9. 中柏平板触摸驱动_要成绩也要玩乐,聊聊学生买平板那些事儿
  10. adb连接 vivo_vivo手机驱动
  11. C#对STK11.4二次开发的Hello World
  12. 基于matlab的双闭环直流调速系统,基于MATLAB的双闭环直流调速系统建模与仿真.PDF...
  13. Android图片剪裁库:uCrop
  14. MathJax 支持的 Latex 符号总结
  15. 2021年中国人口数量、人口结构现状、男女比例及人口增长情况分析[图]
  16. 【MySQL-关键字】MySQL中的desc什么意思?有哪些作用?
  17. 【老罗笔记】哪来的天才——练习中的平凡与伟大
  18. mysql 查看备份工具_MariaDB/MySQL备份和恢复(一):mysqldump工具用法详述【转】
  19. Navicat下载,安装,PJ和简单使用的详细图文教程
  20. 当时若爱韩公子,埋骨成灰恨未休

热门文章

  1. 小米盒子 刷系统 参考方法
  2. 借助于栈结构将一个单链表逆置
  3. 微服务选择Spring Cloud还是Dubbo?
  4. 催眠曲用计算机怎么弹,在电脑中巧播“催眠曲”
  5. 淘集集怎么就破产了呢?
  6. Raspberry Pi (树莓派) - 图形化界面启动和命令行界面启动
  7. java心形动画效果_java swing实现动态心形图案的代码下载
  8. python人脸识别表情检测器(2):基本框架的制作
  9. linux下查java版本_linux如何检查Java版本
  10. 淘宝十年资深架构师吐血总结淘宝的数据库架构设计和采用的技术手段。