跨领域任务导向型对话的大规模中文数据集CrossWOZ
文章标题:CrossWOZ: A Large-Scale Chinese Cross-Domain Task-Oriented Dialogue Dataset
论文链接:https://arxiv.org/pdf/2002.11893.pdf
github链接:https://github.com/thu-coai/CrossWOZ
相关链接:https://cloud.tencent.com/developer/article/1617197
Abstract:
为促进多领域(跨领域)对话建模,缓解面向任务的中文数据集的不足,我们提出了CrossWOZ,第一个大规模中文跨领域任务导向型数据集。
它包含6K的对话,包括酒店、餐厅、景点、地铁、出租车等5个领域的会话和102K个utterances。此外,语料库包含丰富的对话状态标注对话动作,用于用户和系统两方面。大约60%的对话都有跨领域用户目标,即支持域间依赖,鼓励对话中跨领域的自然过渡。我们还为pipelined的任务导向型对话系统提供了一些有助于研究人员在这个语料库上的进行比较和评估的用户模拟器和几个benchmark models 基准模型。大规模且丰富的CrossWOZ标注使它适合研究跨领域对话建模中的各种任务,例如:对话状态跟踪,策略学习,用户模拟器等。
一、 Introduction:
最近,由于神经网络架构的繁荣,出现了各种任务导向型的对话模型(Yao et al., 2013; Wen et al., 2015; Mrkšic et al. ´ , 2017; Peng et al., 2017; Lei et al., 2018; Gür et al., 2018)。然而,这项研究在很大程度上仍然受限于大规模高质量对话数据的可用性。许多语料库已经推进了面向任务导向型的对话系统的研究,其中大多数是单域对话,包括ATIS (Hemphill et al., 1990), DSTC 2 (Henderson et al., 2014), Frames (El Asri et al., 2017), KVRET (Eric et al.,2017), WOZ 2.0 (Wen et al., 2017) and M2M (Shah et al., 2018)。尽管这些对社区有重大贡献,但这些数据集在规模、语言变异或任务复杂性方面仍然受到限制。此外,现有的对话语料库与现实生活中的人类对话数据之间存在差距。在现实生活中的对话,对人类来说在不同的领域或场景之间进行转换并且同时仍然保持连贯的上下文是很自然的。因此,现实生活中的对话比那些只在单一领域中模拟的对话要复杂得多。为了解决这个问题,一些多领域语料库已经被提出(Budzianowski et al., 2018b; Rastogi et al., 2019)。最著名的语料库是MultiWOZ (Budzianowski et al., 2018b),一个由众包的人与人之间的对话组成的大规模多领域数据集。它包含了10K个对话会话和7个域的143K个utterances,并标注了系统端对话状态和对话行为。然而,状态标注是嘈杂的(Eric et al., 2019),并且用户端对话行为是缺失的。跨领域的依赖简单地体现在对不同的域施加相同的预先指定的约束,例如要求酒店和景点都位于城镇中心。令人惊讶的是,与英语对话数据的丰富性相比,目前还没有被广泛认可的中文任务导向型对话语料库。在本文中,我们提出了一个大规模的面向中文多领域(跨域)任务对话数据集CrossWOZ。一个对话的例子 如图1所示。
图 1我们比较CrossWOZ 与其他语料库如表1和表2。
表1 和 表2与其他语料库(特别是MultiWOZ (Budzianowski et al., 2018b))相比,我们的数据集具有以下特点:
-
1、域之间的依赖关系更具有挑战性,因为在一个doarXiv:2002.11893v2 [cs.CL] 28 Feb 2020中进行选择。图1:一个对话示例。用户状态由用户目标初始化:找到一个景点及其附近的酒店,然后预订一辆出租车在这两个地方之间通勤。除了表达预先指定的信息槽和填写可请求槽外,用户还需要考虑并修改跨领域信息槽(粗体),这些信息槽会随着会话的变化而变化。我们只显示了几个回合(回合数在左边),每一个回合都有当前域的用户或系统状态,这些状态在每个utterances上面都显示出来。main将影响CrossWOZ中相关域的选择。如图1和表2所示,酒店必须靠近用户在前一回合中选择的景点,这需要更准确的语境理解。
-
2、第一个包含大规模、多领域、任务导向型的中文语料库,包括5个领域(景点、餐厅、酒店、地铁和出租车)的6K次会话和102K次utterances。
-
3、在这篇文章中,我们呈现了收集对话的过程并对语料库提供详细的数据分析。
统计数据表明,我们的跨领域对话是复杂的。便于模型比较,benchmark model(基准模型)为流水线的任务导向型对话系统中的不同模块提供了基准模型,包括自然语言理解、对话状态跟踪、对话策略学习和自然语言生成。我们还提供了一个用户模拟器,这将有助于在这个语料库上开发和评估对话模型。语料库和基准测试模型可在以下网址公开获取:
https://github.com/thu-coai/CrossWOZ。
二、 相关工作:
根据对话主体是否是人或者机器,我们可以将现有的任务导向型对话数据集的收集方法分组到三个类别:
-
第一个是人与人之间的对话。
最早著名的数据集之一ATIS(Hemphill et al., 1990)使用了这个设置, 紧随其后的是El Asri et al. (2017), Eric et al. (2017), Wen et al. (2017), Lewis et al. (2017), Wei et al. (2018) and Budzianowski et al. (2018b)等人。虽然这种设置需要许多人的努力,但它可以收集自然和多样的对话。 -
第二个是人机对话。
它们需要一个现成的对话系统来与人类对话。著名的对话状态跟踪挑战提供了一组人机对话数据(Williams et al., 2013;Henderson et al., 2014)。对话系统的性能将在很大程度上影响对话数据的质量。 -
第三个是机器-机器对话。
它需要建立两个用户和系统模拟器生成对话大纲,然后使用模板(Peng et al.,2017)生成对话或进一步雇用人员对对话进行释义,使其更自然 (Shah等人,2018;Rastogi等人,2019年)。它需要更少的人力。然而,仿真器限制了对话政策的复杂性和多样性。为了探索多领域情景下的对话策略,并收集自然和多样化的对话,我们会求助于人与人之间的交流。
大多数现有的数据集在一个对话中只涉及单个域,除了MultiWOZ (Budzianowski等人,2018b)和Schema (Rastogi等人,2019)之外。MultiWOZ数据集以其庞大的规模和多领域的特点受到了广泛的关注。它至少是一个比之前的数据集大数量级, 总计有8438个对话,115K个轮次的训练集。它极大地促进了多领域对话建模的研究,如策略学习(Takanobu et al., 2019)、状态跟踪(Wu et al., 2019)和上下文到文本生成(Budzianowski et al., 2018a)。最近 Schema数据集以机器-机器的方式收集,产生16个域的16142个对话 和330K个轮次的训练集。然而,多领域依赖于这两个数据集仅仅体现在对不同的领域施加相同的预先指定的约束,如:要求餐厅和景点位于相同的区域,或酒店所在的城市 和航班的目的地相同(表 2所示)。
表1展示了我们数据集与其他任务型数据集之间的比较 。与MultiWOZ相比,我们的数据集有相当的规模:5012个对话和84K个轮次的训练集。每个对话的平均域数和轮次数比MultiWOZ要大,这表明我们的任务更复杂。在我们数据集中的跨域依赖关系是自然的,也是具有挑战性的。例如,如表2中所示:系统需要推荐用户在前几轮选择的景点附近的酒店。因此,两者的系统推荐及用户的选择都会动态地影响对话。我们还允许同一个域在用户目标中多次出现,因为游客可能想去多个景点。
为了更好地跟踪会话流并建模用户对话策略,除了系统状态和对话行为外,我们还提供了用户状态的标注。当系统状态跟踪对话历史时,用户状态由用户维护,并指示子目标是否已经完成,这可以用来预测用户的操作。这些信息将有助于用户模拟器的构建。据我们所知,CrossWOZ是任务导向型对话系统的第一个大规模中文数据集,这将在很大程度上缓解中文任务导向型对话语料库的短缺问题。
三、Data Collection - 数据采集:
我们的语料库是模拟一个旅行者寻找旅游信息并计划在北京旅行的场景。领域包括酒店、景点、餐厅、地铁和出租车。数据收集过程总结如下:
- 1. Database Construction - 创建数据库:
我们从网上抓取了北京的旅游信息,包括酒店、景点和餐馆域(以下我们将这三个领域称为HAR域)。然后,利用HAR域实体的城域信息构建城域数据库。对于出租车域,不需要存储信息。相反,如果有必要,我们可以直接调用API。
- 2. Goal Generation - 目标生成:
设计了一个基于数据库的多领域目标生成器。跨域的关系可以通过两种方式获取:一种是约束相邻的两个目标;另一种方法是使用出租车或地铁在上文提到的HAR领域的两个目标之间通勤。为了让工作人员更容易地理解任务,我们为每个结构化目标生成自然语言描述制作了模板。
- 3. Dialogue Collection - 对话收集:
在正式的数据收集开始之前,我们要求工人进行少量的对话,并对对话质量给予反馈。然后,训练有素的工人被配对,根据给定的目标进行交谈。工作人员还被要求标注用户状态和系统状态。
- 4. Dialogue Annotation - 对话标注:
我们使用一些规则根据用户状态、系统状态和对话历史自动标注对话行为。为评价对话行为和状态标注的质量,本研究聘请三位专家对50个对话行为和状态进行了手工标注。结果表明,我们的标注具有较高的质量。最后,每个对话包含一个结构化的目标、任务描述、用户状态、系统状态、对话行为和utterances。
3.1 Database Construction:
我们从网上收集了465个景点,951家餐馆,在北京有1133家酒店。表3显示了一些统计数据。
表 3每个实体有三种类型的槽:common slots通用槽,如名称和地址; binary slots酒店服务二进制槽,如叫醒服务;附近的景点/餐馆/酒店槽,包含在景点、餐馆和酒店领域中的附近实体。
因为这不寻常在酒店区域内找到附近的另一家酒店, 我们没有收集这些信息。这种邻近关系允许我们生成自然的跨域目标,比如“在第一个景点附近找到另一个景点。 ”和“在景点附近找一家餐馆”。HAR实体最近的地铁站形成地铁数据库。相反,我们为出租车域提供了伪汽车类型和车牌号码。
3.2 Goal Generation:
为了避免产生过于复杂的目标,每个目标最多有五个子目标。为了生成更自然的目标,子目标可以是相同的领域,比如两个相邻的景点。目标表示为(子目标id、域、槽、值)元组的列表,命名为语义元组。子目标id用于区分可能在同一域中的子目标。有两种类型的槽:informable slots - 是用户需要告知系统的一些约束; requestable slots - 是用户需要从系统中查询的信息。如表4所示,除了常见的信息槽(斜体值)的值是在对话之前确定的,我们还特别设计了跨领域信息槽(粗体值),其值指向其他子目标。跨领域信息槽利用子目标id连接不同的子目标。因此,实际的约束根据不同的上下文而不同,而不是预先指定的。常见informable slots的值是从数据库中随机抽样的。根据informable slots需要用户通过对话收集requestable slots的值(表4中的空白值)。
表 4目标生成有四个步骤。首先,我们在HAR领域中生成独立的子目标。对于HAR域中的每个域,我们以相同的概率P生成一个子目标,而在概率为1−P时,我们不为这个域生成任何子目标。每个子目标都有公共informable slots和requestable slots。如表5所示,HAR域的所有槽都可以是requestable slots,而带星号的槽可以是公共informable slots。
其次,我们在HAR领域中生成跨领域的子目标。对于每个生成的子目标(例如,表4中的景点子目标),如果其requestable slots包含“附近的酒店”,我们在酒店域中生成一个附加的子目标(例如,表4中的酒店子目标),其概率为P(景点→酒店)。
当然,选择的酒店必须满足与景点实体的邻近关系。同样地,在概率为1−P(景点→酒店)的情况下,我们不会在酒店域中生成任何额外的子目标。这也适用于景点和餐厅领域。 P(酒店→酒店) = 0,因为我们不允许用户这样找到一家酒店附近的酒店的做法。
第三,我们在地铁和出租车领域生成子目标。根据P(出租车)的概率,我们在出租车域生成一个子目标(例如,表4中的出租车子目标),在已经生成的HAR域的两个实体之间通勤。与地铁域类似,我们设置P(地铁) = P(出租车)。地铁或出租车域的所有槽都出现在子目标中,并且必须被填充。如表5所示,从和到槽总是跨域 的informable slots,而其他槽总是requestable slots。
最后,我们重新排列子目标的顺序,以产生更自然和逻辑的用户目标。我们要求子目标应该被其所提及的子目标尽快地跟随。
为了让工作人员意识到这个跨领域特性,我们另外用自然语言为每个用户目标提供了一个任务描述,该描述是由手工制作的模板从结构化目标生成的。
表 5与那些约束条件都是预先设定的目标相比,我们的目标在不同领域之间施加了更多的依赖性,这将显著影响对话。最后根据对话上下文确定跨域informable slots的准确值。
3.3 Dialogue Collection:
我们开发了一个专门的网站,允许两个工作人员同步交谈,并在线做标注。在网站上,工作人员可以自由选择两种角色之一:游客(用户)或系统(向导)。然后,两个成对的工作人员被送到一个聊天室。用户需要通过对话来完成分配的目标,同时向导搜索数据库以提供必要的信息并给出响应。在正式的数据收集之前,我们通过给员工反馈的方式训练他们完成少量的对话。最后,90名训练有素的工人参与了数据收集。
相比之下,MultiWOZ (Budzianowski等人,2018b)雇佣了超过1000名员工进行异步交谈。每个工人都收到了一个对话上下文来审查,每次只需要回应一个回合。收集到的对话可能是不连贯的,因为工作人员可能不能正确理解上下文,并且多个工作人员对同一个对话会话作出了贡献,这可能导致数据质量的更多差异。例如,一些工人在两个连续的用户回合中表达了两个互斥的约束,并未能消除系统在接下来的几个回合中的混乱。与MultiWOZ相比,我们的同步会话设置可以产生更连贯的对话。
- 3.3.1 User Side:
用户状态与对话开始前的用户目标相同。在每一回合中,用户需要(1)根据上一回合的系统响应修改用户状态;(2)选择用户状态下的一些语义元组,这些语义元组表示对话行为;(3)根据选择的语义元组组成utterances。
除了填充所需的值和在用户状态中使用真实值更新跨领域的informable slots外,还鼓励用户在此类约束下没有结果时修改约束。更改也将记录在用户状态中。一旦目标完成(用户状态中的所有值都已填满),用户就可以终止对话。
- 3.3.2 Wizard Side:
我们把数据库查询看作是系统状态,它记录了当前回合的各个领域约束。在每个回合中,向导需要(1)根据先前的用户响应填充查询,并在必要时搜索数据库;(2)选择检索的实体;(3)根据所选实体的信息以自然语言响应。如果没有一个实体满足所有约束,向导将尝试放松其中一些约束以获得建议,从而导致多个查询。第一个查询记录了原始的用户约束,最后一个查询记录了系统放宽的约束。
- 3.4 Dialogue Annotation:
在收集对话数据之后,我们使用一些规则来自动标注对话行为。每个utterance可以有几个对话行为。每个对话行为都是一个由意图、域、槽和值组成的元组。我们预先定义了6种类型的意图,并使用用户状态和系统状态的更新以及关键字匹配来获取对话行为。对于用户端,对话行为主要来源于语义元组的选择,其中包含域、槽和值的信息。例如,如果用户选择了表4中的(1,Attraction, fee, free),那么就标注了(Inform, Attraction, fee, free)。如果(1, Attraction, name, )被选中,那么(Request, Attraction, name, none)被标记。如果(2,Hotel, name, near (id=1))被选中,那么(Select, Hotel, src domain, Attraction)被标记。这个意图是专门为“附近”约束设计的。在系统方面,我们主要采用关键字匹配来标注对话行为。通知意图是通过将系统话语与所选实体的信息进行匹配而得到的。当向导选择多个检索到的实体并推荐它们时,推荐意图会被标记。当向导表示没有结果满足用户约束时,将标记为NoOffer。对于用户和系统两方面的“再见”、“谢谢”等一般意图,采用关键字匹配。我们还为每个处于用户状态的语义元组获得了一个二进制标签,这表明该语义元组是否已被选择由用户表示。这个标注直接说明了对话的进展。
为了评估对话行为和状态(用户和系统状态)标注的质量,我们雇佣了三位专家为相同的50个对话(806个utterances)手工标注对话行为和状态,每个目标类型10个(见第4节)。由于对话行为标注不是一个分类问题,我们没有使用Fleiss’ kappa来衡量专家之间的一致程度。我们使用对话行为F1和状态accuracy来衡量每两个专家标注之间的一致性。平均对话行为F1为94.59%,平均状态accuracy为93.55%。然后,我们将自己的标注与每位专家的标注进行了比较,这些标注被视为黄金标准。平均对话行为F1为95.36%,平均状态accuracy为94.95%,说明我们的标注质量较高。
4 Statistics:
在删除未完成的对话后,我们总共收集了6012个对话。数据集被随机分割用于training、validation、test,其中的统计数据如表6所示。在我们的数据集中,子目标的平均值为3.24,远远大于MultiWOZ (1.80) (Budzianowski et al., 2018b)和Schema (1.84) (Rastogi et al., 2019)。平均回合数(16.9)也比MultiWOZ大(13.7)。这些统计数字表明我们的对话数据更加复杂。
表 6根据用户目标的类型,我们将训练集中的对话分为5类:
-
Single-domain (S) - 【单领域】: 417对话在HAR域中只有一个子目标。
-
Independent multi-domain (M) - 【独立多领域】:在HAR域中,独立的多域(M) 1573对话具有多个子目标(2 ~ 3)。然而,这些子目标却没有跨域informable slots。
-
Independent multi-domain + traffic (M+T) -【独立多领域+交通】:在HAR域,691 次对话有多个子目标,并且在地铁或出租车领域(3 ~ 5个子目标)至少有一个子目标 。 HAR域的子目标没有跨域informable slots。
-
Cross multi-domain (CM) - 【不独立多领域】:在 HAR域的1759个对话有多个子目标(2 ~ 5) 具有跨域 informable slots。
-
Cross multi-domain + traffic (CM+T)-【不独立多领域+交通】:在 HAR域,572个对话有多个子目标的跨域informable slots, 且在地铁或出租车域上至少有一个子目标域(3∼5子目标)。
数据统计如表7所示。如3.2节所述,我们依次生成独立多领域子目标、不独立多领域子目标和不独立多领域+交通子目标。因此,在任务复杂性方面,我们有S<M<CM和M<M+T<CM+T,表7中的子目标、语义元组的平均数量和每个对话的轮数支持该方法。当目标变得更复杂时,tokens的平均数量也会变得更大。
表 7大约60%的对话(M+T、CM和CM+T)具有跨域informable slots。由于最大子目标数的限制,CM+T与CM的对话数比M+T与M的对话数比值要小。CM和CM+T比其他任务更具挑战性,因为在HAR域中额外的跨域约束是严格的,会导致更多的“NoOffer”情况(即向导没有找到满足当前约束的结果)。在这种情况下,向导将尝试放松一些约束,并发出多个查询以找到一些建议的结果,而用户将折衷并更改最初的目标。协商过程被捕获 由“无报价率”,“多查询率”,和“目标变化率"如 表7所示。此外,“多查询率 “表示M和M+T中的每个子目标 就像S中的目标一样容易完成。对话长度的分布如图2所示,这是任务复杂性的指标。大多数单域对话在10个回合内终止。M和M+T的曲线形状几乎相同,这意味着交通任务平均需要额外两个转弯才能完成任务。CM和CM+T的曲线不太相似。这可能是因为有5个子目标(约22%)的CM目标不能在交通领域中进一步生成子目标并成为CM+T目标。
图 25 Corpus Features:
我们的语料库在以下几个方面是唯一的:
-
复杂的用户目标旨在促进领域间的依赖和多个领域之间的自然转换。反过来,收集的对话对于跨领域对话任务来说更加复杂和自然。
-
一个控制良好的同步设置应用于收集人与人之间的对话。这确保了收集到的对话的高质量。
-
显式标注不仅提供在系统方面,还有用户方面。这种特性允许我们模拟用户行为或更轻松地开发用户模拟器。
6 Benchmark and Analysis:
可以在任务导向型对话系统的不同任务或设置中使用CrossWOZ。为了便于进一步研究,我们为面向任务的pipelined task-oriented对话系统(图3)的不同组件提供了benchmark models 基准模型,包括自然语言理解(NLU)、对话状态跟踪(DST)、对话策略学习和自然语言生成(NLG)。这些模型使用ConvLab-2 (Zhu et al., 2020)实现,这是一个开源的面向任务的对话系统工具包。我们还提供了一个基于规则的用户模拟器,它可以用来训练对话策略并生成模拟对话数据。benchmark models和模拟器将极大地方便研究者在语料库上比较和评价他们的模型。
- 6.1 Natural Language Understanding:
任务:面向任务的对话系统中的自然语言理解组件以一个utterance作为输入,输出相应的语义表示,即对话行为。该任务可以分为两个子任务:决定utterances意图类型的意图分类和标识槽值的槽标记。
模型:我们改编自ConvLab2. BERT (Devlin et al., 2019)的BERTNLU在许多NLP任务中表现出色。我们使用中文预训练模型BERT∗(Cui et al., 2019)进行初始化,然后对CrossWOZ上的参数进行微调。(https://github.com/ymcui/Chinese-BERT-wwm)。我们从BERT中得到词嵌入和句子表示(embedding of [CLS]) 。由于在一个utterances中可能存在不止一个意图,我们修改传统的相应的方法。对于对话行为的信息并推荐意图,例如(intent=Inform, 域名=景点,槽=费用,价值=免费)哪个值出现在句子中,我们使用MLP执行顺序标记,该MLP将单词嵌入(“free”)作为BIO模式(“B-Inform-Attraction-fee”)中的输入和输出标记 。为每个对于其他没有实际值的对话行为(例如(intent=Request, domain=Attraction, slot=fee)),我们使用另一个MLP对句子表示执行二进制分类 来预测句子是否应该被标记以用于这个对话行为。为了整合上下文信息,我们使用相同的BERT来获取后三个utterances话语的embedding。我们用[SEP]tokens分隔utterances,并在开头插入[CLS]token。然后将两个MLP的每个原始输入与上下文embedding([CLS]embedding )连接起来,作为新的输入。我们还通过去除上下文信息进行了消融试验。我们用系统端和用户端的utterances训练模型。
结果分析:对话行为预测结果(F1 score)如表8所示。我们进一步测试了不同意图类型的性能,如表9所示。一般来说,BERTNLU能够很好地处理上下文信息。
表 8 表 9跨多领域对话(CM和CM+T)的性能略有下降,这可能是由于对话数据中“General”意图的减少,“NoOffer”和“Select”意图的增加。我们还注意到,“Select”意图的F1得分明显低于其他类型,但上下文信息可以显著提高性能。由于识别域转换是跨领域对话系统的关键因素,自然语言理解模型需要更有效地利用上下文信息。
- 6.2 Dialogue State Tracking:
任务:对话状态跟踪负责从对话上下文中识别用户目标,然后将目标编码到预定义的系统状态中。传统的状态跟踪模型以自然语言理解模块解析的用户对话行为作为输入,而最近出现了直接从上下文获取系统状态的联合模型joint models。
模型:在这个实验中,我们实施了一个基于规则的模型(RuleDST),并改编了TRADE(Transferable Dialogue State Generator)† (Wu et al., 2019) 。RuleDST将以前的系统状态和最后的用户对话行为作为输入。然后,根据手工制定的规则更新系统状态。例如,如果其中一个用户对话行为是(intent=Inform, domain=Attraction, slot=fee, value=free),那么景点域中“fee”slot值就会填充上“free”。TRADE使用复制机制直接从所有以前的utterances中生成系统状态。如3.3.2节所述,系统的第一个查询通常记录了完整的用户约束,而最后一个查询记录了松弛的推荐约束。因此,最后一种方法涉及到系统策略,超出了状态跟踪的范围。我们对这些模型使用了第一个查询,并为以后的工作推荐了左状态跟踪(left state tracking)。
结果分析:我们评估了这两个模型的联合状态准确性(精确匹配百分比)(表8)。TRADE, MultiWOZ上的最新模型,在我们的数据集上表现不佳,表明需要更强大的状态跟踪器。在测试阶段,RuleDST可以访问之前的gold系统状态和用户对话行为,这使得联合状态的准确性高于TRADE。两种模型在跨多域对话(CM和CM+T)上的表现都较差。为了评估建模跨领域转换的能力,我们进一步计算了从用户接收“Select”意图的那些回合的联合状态accuracy(例如,“找到景点附近的酒店”)。RuleDST和TRADE的性能分别为11.6%和12.0%,说明它们不能很好地跟踪域转换。
- 6.3 Dialogue Policy Learning:
任务:在每轮中,对话策略接收状态 s 和输出系统动作 a 。相比由对话状态跟踪器给出的状态,s 可能含有更多信息,例如最后的用户对话行为和后端提供的实体数据库。
模型:我们采用了一种由ConvLab-2 (SL策略)以监督方式训练的vanilla policy策略。状态s包括最后的系统对话行为、最后的用户对话行为、当前回合的系统状态、满足当前域约束条件的实体数量以及表示用户目标是否完成的终端信号。动作a是当前回合的delexicalized(非定域化的;不受位置限制的)对话行为,忽略了插槽的确切值,在预测之后这些值将被填充回去。
结果分析:如表8所示,精确对话行为的F1得分与delexicalized(非定域化的;不受位置限制的)对话行为的F1得分差距较大,这意味着我们需要一个强大的系统状态跟踪器来找到正确的实体。结果还表明,多领域对话(CM和CM+T)对系统对话行为的预测更加困难。此外,当前面的用户对话行为中存在“Select”意图时,精确对话行为和delexicalized对话行为的F1得分分别为41.53%和54.39%。这表明该策略在跨领域转换方面表现不佳。
- 6.4 Natural Language Generation:
任务:自然语言生成将结构化的对话行为转换为自然语言句子。它通常将delexicalized的对话作为输入,并生成一个模板风格的句子,其中包含插槽占位符。然后,占位符将被准确的值替换,这称为词汇化。
模型:我们提供了一个基于模板的模型(命名为TemplateNLG)和SC-LSTM (semantic Conditioned LSTM) (Wen et al., 2015)用于自然语言生成。对于TemplateNLG,我们从训练集中提取模板,并手动添加一些用于不常见对话行为的模板。对于SC-LSTM,我们调整了在MultiWOZ上的implementation‡实现,并分别用系统端和用户端utterances训练了两个SC-LSTM。
结果分析:我们计算了Wen et al. (2015)使用的语料库水平的BLEU。我们将所有具有相同delexcalized对话行为的utterances作为参考(平均100个参考),得到较高的BLEU分数。对于用户端的utterances,TemplateNLG的BLEU得分是0.5780,而SC-LSTM的BLEU得分是0.7858。系统端BLEU得分分别为0.6828和0.8595。如表10所示,两个模型之间的差距可以归因于SC-LSTM生成的是通用模式,而TemplateNLG检索的是原始句子,其中包含更具体的信息。我们不提供不同目标类型(即S、M、CM等)的BLEU得分,因为不同语料库上的BLEU得分不具有可比性。
表 10- 6.5 User Simulator:
任务:用户模拟器模拟用户的行为,有助于对话策略学习和自动评估。对话行为级别的用户模拟器(如图3中的“Usr Policy”)接收系统对话行为并输出用户对话行为,而自然语言级别的用户模拟器(如图3中的左边部分)直接将系统utterance作为输入并输出用户utterance。
https://github.com/andy194673/nlg-sclstm-multiwoz
模型:我们构建了一个基于规则的用户模拟器,它运行在对话行为级别。与基于议程agenda-based(Schatzmann et al., 2007)的用户模拟器不同它维持着一个堆叠式的议程stack-like agenda,我们的模拟器直接维护用户状态(第3.3.1节)。模拟器将生成一个如章节3.2所述的用户目标。在每个用户回合,模拟器接收系统对话行为,修改其状态,并根据一些手工制定的规则输出用户对话行为。例如,如果系统告知模拟器景点是免费的,那么模拟器就会将用户状态下的“fee”槽填上“free”,并询问下一个空槽,如“address”。当所有可请求的槽都被填满,并且所有跨域信息槽都被实值填满时,模拟器终止。
结果分析:在评估过程中,我们使用之前的黄金用户状态(gold user state.)初始化了模拟器的用户状态。模拟器的输入是黄金系统(gold system)对话行为。我们使用联合状态准确率(精确匹配百分比)来评估用户状态预测,使用F1得分来评估用户对话行为的预测。结果如表8所示。我们可以观察到,复杂对话(CM和CM+T)的表现明显低于简单对话(S、M和M+T)。提供了这个简单的基于规则的模拟器来促进对话策略学习和自动评估,并且我们的语料库支持开发更精细的模拟器,因为我们提供了用户端对话状态和对话行为的标注。
- 6.6 Evaluation with User Simulation :
除了对每个模块进行基于语料库的评估外,我们还使用如上所述的用户模拟器来评估整个对话系统的性能。研究了三种配置:
DA Sim : Simulation at dialogue act level. As shown by the dashed connections in Figure 3, we used the aforementioned simulator at the user side and assembled the dialogue system with RuleDST and SL policy.
对话行为层面的模拟。如图3中的虚线连接所示,我们在用户端使用前面提到的模拟器,并使用RuleDST和SL策略组装对话系统。
NL Sim (Template): 使用TemplateNLG在自然语言级别进行模拟。如图3的实连接所示,模拟器和对话系统都另外配备了BERTNLU和TemplateNLG。
NL Sim (SC-LSTM) :使用SC-LSTM进行自然语言水平的NL Sim (SC-LSTM)模拟。在第二种配置中TemplateNLG 被替换为SC-LSTM 配置。
图 3当用户目标中的所有槽都被实值填满时,模拟器终止。这被认为是“任务完成”。值得注意的是,“任务完成”并不意味着任务成功,因为系统可能会提供错误的信息。我们对每种目标类型进行1000次模拟计算“任务完成率”(见表8)。结果总结如下:
-
1、跨多领域任务(CM和CM+T) 都很难完成。比较M和 M+T,尽管每个模块在交通域,其中的子目标域仍然很难完成。
-
2、系统级性能在很大程度上受到RuleDST和SL策略的限制。虽然基于语料库的NLU和NLG模块的性能都很高,但这两个模块仍然会对性能造成损害。因此,pipelined对话系统的所有组件都需要更强大的模型。
-
3、TemplateNLG的BLEU分数要低得多,但在在自然语言级模拟条件下性能优于SC-LSTM 水平。这可能是因为BERTNLU更喜欢模板从训练集中检索。
7 Conclusion:
在本文中,我们提出了第一个大规模的面向任务的中文对话数据集CrossWOZ。它包含5个域的6K对话和102K个utterances,并在用户和系统双方对标注对话状态和对话行为。大约60%的对话都有跨领域的用户目标,鼓励相关领域之间的自然过渡。该语料库在用户端和系统端对对话状态和对话行为进行了丰富的标注,为研究对话状态跟踪、策略学习等跨领域对话建模任务提供了新的测试平台。我们的实验表明,跨领域约束对于所有这些任务都是具有挑战性的。在相关领域之间的转换对于建模来说尤其具有挑战性。除了基于语料库的组件评估外,我们还使用用户模拟器进行系统级评估,这需要对pipelined跨领域对话系统的所有组件建立更强大的模型。
Acknowledgments-感谢:
这项工作得到了国家自然科学基金(Grant No. 61936010/61876096) 和国家重点研发计划 (Grant No. 2018YFC0830200)的支持 。 我们非常感谢THUNUS NExT JointLab的支持。我们也要感谢Ryuichi Takanobu和Fei Mi提出的建设性意见。我们非常感谢我们的行动编辑Bonnie Webber和匿名评审员的宝贵建议和反馈。
References:
略。
最后:
只供参考。
网友评论