专栏首页朴素人工智能大规模跨领域中文任务导向多轮对话数据集及模型CrossWOZ

大规模跨领域中文任务导向多轮对话数据集及模型CrossWOZ

本文包含以下内容

  • 2020年刚出的大规模中文多轮对话数据集的介绍
  • 多轮对话的一些常见任务
  • 多轮对话的一些常见模型

基本概念

什么是对话?

我:你好!

机器人:你也好!

多轮对话呢?

我:你好!

机器人:你也好!

我:吃饭了伐?

机器人:当然没有

(来回好几回合)

任务导向多轮对话呢?

我:帮我订一张机票!

机器人:哪里呢?

我:北京的。

机器人:订好了。

(不是闲聊,有目的性的对话)

跨领域任务导向多轮对话呢?

我:帮我订一张机票!

机器人:哪里呢?

我:北京的。

机器人:订好了。

我:再在附近订个五星酒店。

机器人:北京饭店你看可以吗? (用户有两个以上目的(订机票和酒店)要通过对话实现)

中文?突出中文是因为之前的大规模开源多轮对话数据集MultiWOZ是英文的。MultiWOZ在推动英文多轮对话诞生了很多研究。因此这次清华大学计算机系制作了中文的数据集以填补中文任务导向对话数据的空白。

论文地址:https://arxiv.org/pdf/2002.11893.pdf

数据集介绍

数据集参数

CrossWOZ包含 6K 个对话,102K 个句子,涉及 5 个领域(景点、酒店、餐馆、地铁、出租)。平均每个对话涉及 3.2 个领域,远超之前的多领域对话数据集,增添了对话管理的难度。

特点

  1. 用户在某个领域的选择可能会影响到与之相关的领域的选择,在跨领域上下文理解更有挑战。
  2. 第一个大规模中文跨领域任务导向数据集。
  3. 在用户端和系统端都有详细的对话状态记录,标注信息全面。

与其他数据集的对比

跨领域对话的数据样例

数据标注方法

  1. 基础数据库的构建。通过爬虫从网络上获取了北京市的酒店/旅游景点/饭店以及地铁和出租车信息。

比如说Attract景点有465个,景点有9个槽。Hotel和8+37个槽。比如是否要叫醒服务等。

  1. 目标构建。论文通过算法自动生成标注人员的对话目标。

上面的id1,2,3就是自动生成的目标。标注人员要以完成这三个目标(寻找免费旅游景点和订附近酒店以及出租车)作为目的和系统进行对话。

3. 数据标注。论文雇佣大量工人分别充当用户和系统。用户向系统订酒店景点,然后系统回复用户预约的相关信息。所有的对话数据都是用户生成的。同时用户在对话过程中还需要对用户状态和系统状态进行标注。具体的过程如下图。

数据和模型下载地址:https://github.com/thu-coai/CrossWOZ

常见任务

有了多轮对话数据集,而且标注这么详细,我们就有研究多轮对话的条件了。

多轮对话有以下五个研究方向:

  • 多轮对话下的自然语言理解(Natural Language Understanding)
  • 对话状态追踪(Dialogue State Tracking)
  • 对话策略学习(Dialogue Policy Learning)
  • 自然语言生成(Natural Language Generation)
  • 用户模拟器(User Simulator)

多轮对话下的自然语言理解(NLU)

多轮对话下的NLU通常是对用户的输入语句让模型填满这样一个四元组

(intent=Inform, domain=Attraction, slot=fee, value=free)

通过意图识别和ner我们就可以完成nlu。本文提出了一种BERTNLU-context的模型来做多轮对话下的nlu。BERTNLU不必多说,就是把bert作为encoder对输入文本进行编码。然后为了利用上下文信息,BERTNLU-context会把对话历史的之前三句话用sep分割作为文本输入另一个BERT模型,取出那个模型的cls位置变量作为上下文表征。然后把该上下文表征和用户输入的语句的特征向量一一concat再进行ner和文本分类,效果很好。

对话状态追踪(DST)

DST的目地是根据用户和系统的对话历史,动态识别出用户的目地,并转为预先定义好的格式。

本文介绍了两种方法做DST

  1. RuleDST。设计一些规则动态识别用户状态,比如识别到用户说任意一个槽就给它填上。
  2. TRADE。TRADE模型需要专门的篇幅来介绍它。
TRADE模型
首先它要解决的问题是如何在一个涉及多个领域的对话中利用跨领域(domain)的信息来完成一个综合的任务。举个例子:吴先生要去一家餐厅约会,使用智能助手订好了餐厅,其中收集了 餐厅名 时间 这些信息(slot),而之后吴先生还需要预约一辆出租车回家,那么此时他会期望智能助手明白上车点就是餐厅。那么问题来了,在传统的基于一个个独立领域的对话系统中,两个不同领域之间相互独立,不共享信息,你订你的餐厅,订完了说一句“我要订餐馆回家的出租车”,好嘞进入到订车的领域,从头开始问”您从哪出发呀“。显然不够聪明。TRADE就是试图所有的domain使用同一个模型,并利用起前面几句对话历史,来预测出当前吴先生说的这句话的状态(state):(domain,slot,slot value)。就能判断这是【订出租车】的domain,slot是出发点,还能从之前吴先生确认的餐馆名知道出发点就是XX大酒店。

那么,这么聪明的性能要如何做到呢?
TRADE由三部分组成:
Utterance Encoder, Slot Gate, State Genrator。
Utterance Encoder(双向GRU) :把包括当前句子的对话历史所有单词embedding拼接(l轮)编码,得到H_t=[H_1,H_2,...,H_XL]。
State Generator:首先将所有可能的domain和slot配对得到J个(domain,slot)对,将它们用用GRU解码,解码过程中得到一个隐藏层 h_dec^jk 将他映射到词汇空间P_vocab^jk,同时还用这个隐藏层来计算对话历史的attention P_history^jk,加权而后得到context vector cj0. P_vocab和P_history加权相加(权值是另一个可训练sigmoid元得出)后就是最终某个(domain,slot)对基于当前对话历史的在所有单词上的概率分布。这一过程要做J次。考虑P_history和P_vocab的目的是能让模型同时可以从对话历史中找出信息,又有机会得到未在历史中出现过的单词。
Slot Gate G_j: 每个(domain,slot)对都有一个Gate,将它们每个都对上面由对话历史得到的context vector cj0做一个计算Gj = Softmax(Wg ·(cj0)>) ∈R3,得到don't care, none,ptr三个选项的概率。如果是前两者,那么无需填入特定槽值,若为ptr则将State Generator得到的槽值填入对应槽。也即Slot Gate的工作是找出要填的哪个domain的哪个槽。而State Generator是找出这个槽的值。
至此,TRADE便利用对话历史得到了状态(domain,slot,value), 对每一段对话历史的计算都不依赖于某一个domain。

对话策略学习(DPL)

DPL就是根据之前的对话状态和用户输入,生成一个系统action。在我们做传统的基于状态机的多轮对话中,对话策略通常是基于规则的。本论文介绍了ConvLab-2对话平台下使用SL polciy完成了监督学习下的对话策略学习模型。

自然语言生成(NLG)

我们有了用户和系统的状态和对话动作,同时又有用户生成的自然语言。那么便可以制作生成模型来生成灵活的系统回复语言。本文用两种方式做这个,一个是基于模板的TemplateNLG,一个是SC-LSTM。两个效果如下:

SC-LSTM模型参考地址:https://github.com/andy194673/nlg-sclstm-multiwoz

用户模拟器

用户模拟器是用来模拟用户说话的。最简单的模拟器就是规则型的比如约定第一句话说订酒店,第二句话说要五星的。

用户模拟器对多轮对话系统的自动化评估和对话策略学习都是很有帮助的。本文也构建了一种rule-based 用户模拟器。比如当用户的目标中有未填充的槽时,用户模拟器就会不断追问该槽值,直到所有目标的槽全部填充为止。

论文结果

1 BERTNLU部分准确率都很高。

2 DST/SL policy准确率在80以下,具有很大提高空间。

3 越是跨领域,对话状态越难追踪。

本文分享自微信公众号 - 朴素人工智能(sunnyday_no1),作者:祝凯华

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-04-13

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Transformer多轮对话改写实践

    本文介绍了多轮对话存在指代和信息省略的问题,同时提出了一种新方法-抽取式多轮对话改写,可以更加实用的部署于线上对话系统,并且提升对话效果。

    朴素人工智能
  • 能跟你聊DOTA的神经对话模型:Meena&DialoGPT

    提到对话机器人或者聊天机器人,国内的朋友可能先想到的是微软小冰或者苹果Siri。这两个机器人由于需要完成一些功能性的任务,都采用了模块化设计,虽然神经网络在其中...

    朴素人工智能
  • 十分钟了解受控文本生成 1

    关于文本生成的话题聊得比较少,印象中我们之前只有一期多轮问句改写涉及到了文本生成,受控文本生成就更少了。

    朴素人工智能
  • 学界 | 谷歌提出机器对话Self-Play框架M2M,提高自动化程度

    机器之心
  • 业界 | 人机对话评测系列之一:任务驱动多轮对话评测标准

    机器之心转载 公众号:Trio 如何评测语义领域相关技术是大家共同关注的。三角兽公司基于多年理论和相关技术实践的经验,针对语义领域的 4个方向技术,将会发表一系...

    机器之心
  • 一文看懂人机对话

    人机对话(Human-Machine Conversation)是指让机器理解和运用自然语言实现人机通信的技术,如图1所示。通过人机对话交互,用户可以查询信息,...

    用户1386409
  • 周伯文对话斯坦福AI实验室负责人:下一个NLP前沿是什么?

    10 月 31 日,在北京智源大会上,京东集团副总裁兼人工智能事业部总裁、智源-京东联合实验室主任周伯文,斯坦福人工智能实验室负责人(SAIL)Christop...

    AI科技大本营
  • 论文|ACL2016最佳论文:用于口语对话系统策略优化的在线自动奖励学习

    摘要 计算正确奖励函数的能力对于通过加强学习优化对话系统十分的关键。在现实世界的应用中,使用明确的用户反馈作为奖励信号往往是不可靠的,并且收集反馈花费也十分地高...

    AI科技评论
  • 深度 | 李航:未来 5 到 10 年,自然语言对话该如何寻求突破?

    AI 科技评论按:如今,已渗透到人类生活方方面面的对话 AI ,成为了连接人类与 AI 技术最紧密的一根纽带。然而,自然语言对话技术目前存在的难以克服的挑战,也...

    AI科技评论
  • 诺亚神经响应机NRM模型:深度学习改变自然语言对话

    用户1737318

扫码关注云+社区

领取腾讯云代金券