论文标题:

Few-shot Natural Language Generation for Task-Oriented Dialog

论文作者:

Baolin Peng, Chenguang Zhu, Chunyuan Li, Xiujun Li, Jinchao Li, Michael Zeng, Jianfeng Gao

论文链接:

https://arxiv.org/abs/2002.12328

项目链接:

https://aka.ms/scgpt


在任务导向型对话中,由于具体领域数据的缺乏,其生成质量长期以来都不够好。

本文首次在少样本(few-shot)场景下的任务导向型对话上,使用预训练提高所生成回复的流畅度与准确度,在自动测评和人工测评上大幅超越之前的模型。

任务导向型对话

现实生活中的对话有相当一部分都是“任务导向”的,即对话都指向一个明确的目的。

比如,用户说“洛杉矶飞往北京的机票还有吗?”,这句话的潜在意图就是机票(出发地:洛杉矶,到达地:北京),对于对话系统来说,它就要首先识别这个意图,然后再给出相应的回复,如“目前还有从洛杉矶到北京的机票,请问您需要订何时的机票?”

这个过程可以用下图来表示:

首先,系统理解用户的意图,然后得到“槽-值”(slot-value)对,比如上面的“出发地:洛杉矶”和“到达地:北京”,最后根据意图和槽-值对生成回复。

然而,目前的任务导向型对话要么依赖于固定的模板,要么只能在有限标注数据上训练,都不能得到很好的效果。

那么,能不能用当前流行的预训练方法去提高生成回复的质量呢?当然可以!因为无标注语料本身就内含丰富的语义,在它们之上预训练自然就可以提高生成的质量。

但是,和其他的预训练有所不同的是,任务导向型的对话往往特别依赖具体的领域,领域之间的差别会导致生成回复之间也会存在巨大的差异。

为了能够进一步实现基于领域的生成,我们还要赋予模型“识别领域”的能力,这就需要依赖标注的语料了。

在无标注和有标注的语料上训练后,最后,只需要在特定领域的少样本数据集上微调,就可以把模型运用到该领域的任务型对话中了。整个过程非常简单,但能够在流畅度和准确度上都大幅超越之前的模型,具有相当的可用性。

值得一提的是,本文的作者还搭建了一个简易的Demo,如下图所示:

用户输入意图(及一些可选的槽-值对),系统就可以自动生成各种可能的回复。可以看到,生成的文本非常流畅,并且也贴近我们输入的意图,可见其实际效果是相当不错的。

预训练+预训练+微调=更好的回复

本文提出的方法可以归纳为三个步骤:预训练,预训练和微调

  • 预训练1:首先在大规模的无标注文本上预训练。这一步和GPT-2一致。

  • 预训练2:为了让生成的文本更贴近任务导向型对话的要求,模型还进一步在标注的数据集上预训练。这里的数据来自Schema-Guided Dialogcorpus, MultiWOZ corpus, Frame corpus和Facebook Multilingual Dialog Corpus,这些都是人工标注好的人物对话型数据集,来自各个领域,共计约400K个样本。

  • 微调:最后,只需要在特定领域的少样本数据集下微调即可。

模型示意图如下。简单来说,就是给定意图和一些槽-值对,模型据此输出回复。

实验

我们的目标是要提高少样本、特定领域下的生成回复质量,为此,我们在本文创建的一个少样本基准数据集FEWSHOTWOZ上实验。

该数据集包含7个领域的数据,每个领域只有50条用于训练,其他的都用作测试。

下表是本文模型(SC-GPT)和两个基线模型(SC-LSTM、GPT-2)的实验结果:

可以看到,在所有7个领域,SC-GPT生成的文本既更流畅(BLEU更大),而且也更准确(ERR更小),超越幅度也非常大。

那么人类测评又如何呢?下表是人工测评三个模型的表现。

可以看到,就信息度(Informativeness)和自然度(Naturalness)而言,SC-GPT都比两个基线模型更好,虽然和人类表现相比仍有差距,但注意到这是在少样本下的设置,在大样本的情况下,二者几乎不存在差距。

下面是三个领域的例子,和reference相比,SC-GPT已经非常接近了,而其他模型或多或少都具有一些问题。

比如,绿色代表多余内容,红色代表错误内容,紫色代表丢失的内容。

小结

本文提出了一种简单有效的“预训练-预训练-微调”模型,用于提高任务导向型对话的生成流畅度与准确度。

首先在无标注文本上预训练,然后在标注数据上预训练,最后在特定领域的数据上微调,极大地提高所生成回复的质量。

此外,本文还构建了一个少样本基准数据集FEWSHOTWOZ,用于评估少样本下任务导向型对话模型的效果。

最后,本文作者也发布了一个可用的在线Demo,用于展现模型效果,读者可以前往项目地址(https://aka.ms/scgpt)自行探索。

????

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

进入知乎首页搜索「PaperWeekly」

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

关于PaperWeekly

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

预训练依旧强大:少样本条件下的任务导向型对话生成相关推荐

  1. CancerGPT:使用大型预训练语言模型进行少样本药物配对协同作用预测

    文章目录 一.论文关键信息 二.基础概念 三.主要内容 1. Motivations 2. Insights 3. 解决方案的关键 4. 实验结果 四.总结与讨论

  2. ICML2020:预训练的GAN在有限数据下的生成器

    生成对抗网络可以生成高度逼真的图像,通常与真实图像是无法区分的.这样生成的大多数图像都没有包含在训练数据集中,说明用GAN生成的数据对增强数据集的能力很强.尽管在数据有限的情况下这种情况特别重要,但是 ...

  3. KDD 2022 | 图“预训练、提示、微调”范式下的图神经网络泛化框架

    ©作者 | 社媒派SMP 来源 | 社媒派SMP 本文是SIGKDD 2022入选论文"GPPT: Graph Pre-training and Prompt Tuning to Gener ...

  4. NLP精选10个实现项目推荐-涉及预训练、知识图谱、智能问答、机器翻译、对话等...

    自然语言处理技术近几年发展非常快,像BERT.GPT-3.图神经网络.知识图谱等技术被大量应用于项目实践中. 今年大厂的NLP面试中对项目方面的考察深度也随之提升了很多,经常会被面试官揪着细节一步一步 ...

  5. 自训练:超越预训练,展现强大互补特性的上分新范式!

    文 | 香侬科技 编 | 兔子酱 背景 预训练(Pre-training)模型自BERT问世以来就一发不可收拾,目前已经在自然语言理解和生成两个方面取得了突破性成就.但是,作为它的一个"兄弟 ...

  6. 自训练 + 预训练 = 更好的自然语言理解模型

    论文标题: Self-training Improves Pre-training for Natural Language Understanding 论文作者: Jingfei Du, Edoua ...

  7. 阿里云力夺FewCLUE榜首!知识融入预训练+小样本学习的实战解析

    简介: 7月8日,中文语言理解权威评测基准CLUE公开了中文小样本学习评测榜单最新结果,阿里云计算平台PAI团队携手达摩院智能对话与服务技术团队,在大模型和无参数限制模型双赛道总成绩第一名,决赛答辩总 ...

  8. ACL'22丨预训练语言模型能否像人一样解释明喻

    每天给你送来NLP技术干货! 来自:知识工场 前言 明喻是人们日常生活中一类常见的表述形式,解释明喻可以帮助机器更好地理解自然语言.因此,明喻解释(SimileInterpretation)是自然语言 ...

  9. 《预训练周刊》第43期: 视觉提示、提示零样本、AI蛋白折叠革命

    No.43 智源社区 预训练组 预 训 练 研究 观点 资源 活动 周刊订阅 告诉大家一个好消息,<预训练周刊>已经开启"订阅功能",以后我们会向您自动推送最新版的&l ...

最新文章

  1. python画板颜色_教你在python中用不同的方式画不同颜色的画布
  2. python互斥锁_Python多线程如何使用互斥锁
  3. idea破解,Maven配置web步骤
  4. 【Lucene4.8教程之五】Luke
  5. 【OpenCV 例程200篇】72. 一维离散傅里叶变换
  6. P1422 小玉家的电费--2022.03.15
  7. 北语20春oracle数据开发2,北语20春《Oracle数据库开发》作业3题目【标准答案】
  8. 程序以html形式发送邮件注意问题
  9. 嵌入式Linux入门4:版本控制git的使用
  10. 互联网人必读 | 大数据思维的十大核心原理
  11. c#.net利用RNGCryptoServiceProvider产生任意范围强随机数的办法
  12. 三次握手与accept()函数
  13. mediaplay抓图
  14. pytorch实现NS方程求解-基础PINN
  15. 什么是微信二次开发,如何进行微信二次开发?
  16. android关机铃声代码,android系统添加关机铃声
  17. b样条和三次样条_B样条(贝塞尔曲线和b样条曲线)
  18. FileUpload1上传控件
  19. 图神经网络的困境,用微分几何和代数拓扑解决
  20. Vue 使用Excel表格导入导出

热门文章

  1. python多个list合并成一个table_python – 将同一表模式的多个备份合并到一个主表中...
  2. php 右下脚弹窗,纯js的右下角弹窗实例代码
  3. bread是可数还是不可数_​面包bread是可数名词还是不可数
  4. 移动端的1px边框问题
  5. Java基础(三十四)String、StringBuffer类和数据缓冲区Buffer类
  6. AngularJS2 环境搭建:
  7. MessagePack 学习笔记
  8. 版本号比较函数-js
  9. 探索Javascript 异步编程
  10. GridControl详解(八)菜单