对话状态跟踪方法、系统及人机对话方法与流程

文档序号:22500572发布日期:2020-10-13 09:32阅读:217来源:国知局
对话状态跟踪方法、系统及人机对话方法与流程

本发明涉及人工智能技术领域,尤其涉及一种对话状态跟踪方法、系统及人机对话方法。



背景技术:

对话状态跟踪(dst,dialoguestatetracking)是面向任务的对话系统的关键部分,受到越来越多的关注。预期dst可以准确总结用户的意图并提取对话状态的紧凑表示形式。对话状态是一组领域-槽-值三元组,它记录了用户的所有条件,例如,train-leaveat-13:45(火车于13:45出发)表示用户想要订购在13:45出发的火车票。

dst的传统方法依赖手工制定的规则和丰富的专家知识。最近,数据驱动的对话状态跟踪器实现了出色的性能改进。当前基于深度学习的模型可以分为两类:分类方法和生成方法。分类方法假设任务中预定义了所有本体,而对话状态跟踪程序只需要将dst视为分类问题。例如,对于火车领域中的预订日槽,它告诉我们火车何时发车,所有可能的值都可以提前知道。生成方法使用开放词汇的设置进行值搜索。他们假设可以从对话上下文中复制某些值,并且可以从公开词汇中提取所有值。但是,当需要复杂的推理才能获得正确答案时,生成方法就很难处理该问题了。



技术实现要素:

本发明实施例提供一种对话状态跟踪方法、系统及人机对话方法,用于至少解决上述技术问题之一。

第一方面,本发明实施例提供一种对话状态跟踪方法,应用于对话状态跟踪系统,所述对话状态跟踪系统包括输入编码模块,上下文感知槽嵌入模块,多跃点门控记忆网络和槽门分类器,所述方法包括:

所述输入编码模块将历史对话状态、当前对话语句作为输入,并输出所述输入中的每个字符的表示;

所述上下文感知槽嵌入模块根据当前对话语句所对应的当前领域和当前槽确定上下文感知槽表示;

所述多跃点门控记忆网络根据所述上下文感知槽表示查找相关值;

所述槽门分类器确定所述相关值的类别。

第二方面,本发明实施例提供一种人机对话方法,采用本发明中任一实施例所述的对话状态跟踪方法进行对话状态跟踪。

第三方面,本发明实施例提供一种对话状态跟踪系统,包括输入编码模块,上下文感知槽嵌入模块,多跃点门控记忆网络和槽门分类器,所述方法包括:

所述输入编码模块,配置为将历史对话状态、当前对话语句作为输入,并输出所述输入中的每个字符的表示;

所述上下文感知槽嵌入模块,配置为根据当前对话语句所对应的当前领域和当前槽确定上下文感知槽表示;

所述多跃点门控记忆网络,配置为根据所述上下文感知槽表示查找相关值;

所述槽门分类器,配置为确定所述相关值的类别。

第四方面,本发明实施例提供一种存储介质,所述存储介质中存储有一个或多个包括执行指令的程序,所述执行指令能够被电子设备(包括但不限于计算机,服务器,或者网络设备等)读取并执行,以用于执行本发明上述任一项对话状态跟踪方法和/或人机对话方法。

第五方面,提供一种电子设备,其包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器,其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明上述任一项对话状态跟踪方法和/或人机对话方法。

第六方面,本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括存储在存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,使所述计算机执行上述任一项对话状态跟踪方法和/或人机对话方法。

本发明实施例的有益效果在于:使用记忆网络作为对话状态跟踪器的解码器。使用对话编码器为记忆网络的输入生成查询。将在最后跃点获得的注意力得分用作对话状态的概率分布,并将在最后跃点的查询用于对话状态门分类。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明的对话状态跟踪方法的一实施例的流程图;

图2为本发明的对话状态跟踪系统的一实施例的示意图;

图3为本发明的对话状态跟踪系统与trade在multiwoz2.1的测试集上关于特定槽精度的对比示意图;

图4为本发明中的对话状态跟踪系统使用不同数量的记忆跃点的具有和不具有门的联合精度对比示意图;

图5为本发明中来自与<hotel-bookstay>相关的不同跃点的注意力得分;

图6为本发明的电子设备的一实施例的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。

本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、元件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。

在本发明中,“模块”、“装置”、“系统”等指应用于计算机的相关实体,如硬件、硬件和软件的组合、软件或执行中的软件等。详细地说,例如,元件可以、但不限于是运行于处理器的过程、处理器、对象、可执行元件、执行线程、程序和/或计算机。还有,运行于服务器上的应用程序或脚本程序、服务器都可以是元件。一个或多个元件可在执行的过程和/或线程中,并且元件可以在一台计算机上本地化和/或分布在两台或多台计算机之间,并可以由各种计算机可读介质运行。元件还可以根据具有一个或多个数据包的信号,例如,来自一个与本地系统、分布式系统中另一元件交互的,和/或在因特网的网络通过信号与其它系统交互的数据的信号通过本地和/或远程过程来进行通信。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”,不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

如图1所示,本发明的实施例提供一种对话状态跟踪方法,应用于对话状态跟踪系统,所述对话状态跟踪系统包括输入编码模块,上下文感知槽嵌入模块,多跃点门控记忆网络和槽门分类器,所述方法包括:

s10、输入编码模块将历史对话状态、当前对话语句作为输入,并输出所述输入中的每个字符的表示;示例性地,当前对话语句包括响应于历史对话状态的响应语句rt和用户所说的新的对话语句ut。

s20、上下文感知槽嵌入模块根据当前对话语句所对应的当前领域和当前槽确定上下文感知槽表示;

s30、多跃点门控记忆网络根据所述上下文感知槽表示查找相关值;

s40、槽门分类器确定所述相关值的类别。

在本实施例中使用记忆网络作为对话状态跟踪器的解码器。使用对话编码器为记忆网络的输入生成查询。将在最后跃点获得的注意力得分用作对话状态的概率分布,并将在最后跃点的查询用于对话状态门分类。

在本发明中,我们将对话状态跟踪规定为基于预定义本体的分类问题。我们使用记忆网络来存储预定义的本体,并使用基于注意力的查询生成器来生成对话上下文的可识别槽的摘要。我们的模型将对话状态跟踪任务分解为三个单独的子任务:(1)对话摘要生成,该对话摘要生成基于领域-槽对和对话话语之间的注意力得分生成查询,(2)槽值预测,计算存储在记忆层中的可能值的概率分布,并为每个跃点更新查询,以及(3)槽状态预测,预测槽状态是{值,无关,无}中的哪个。通过顺序更新查询,可以将对话信息和本体知识集成在一起。这非常容易理解,因为有时我们需要遍历(2)中的所有可能值来确定(3)中的答案。

为了提高对话状态跟踪器的推理能力,我们通过将预定义的本体合并到记忆网络中提出了一种新的结构。记忆网络是用于机器读取任务的通用范例。在本发明中,我们采用门控记忆网络,该网络在相邻记忆层之间添加了记忆门。

我们提出了用于多领域任务导向对话跟踪的记忆注意力神经网络。可解释性和兼容性是我们提出的模型的两个主要优点。主要贡献概括为:

–我们通过建立状态分类器记忆网络来利用先验知识,这是第一次对预定义本体进行建模。

–我们提出了一种仅通过注意力(attention)机制实现的架构,从而构建了具有计算效率的多领域dst,这也显示了性能的提升。

–我们在将大型预训练的上下文词嵌入方面的最新进展应用于对话状态跟踪,并获得了兼容的性能。

–我们对记忆跃点和记忆门进行消融研究,并对结果进行全面的误差分析。

在一些实施例中,所述输入编码模块将历史对话状态st-1、当前对话语句作为输入,并输出所述输入中的每个字符的表示包括:

预先根据所述历史对话状态生成历史对话序列;

将所述历史对话序列、响应语句和新的对话语句构成联合输入序列输入至所述输入编码模块;

所述输入编码模块输出所述联合输入中的每个字符的表示。

在一些实施例中,输入编码模块采用预训练bert模块;上下文感知槽嵌入模块根据当前对话语句所对应的当前领域和当前槽确定上下文感知槽表示通过以下公式实现:

其中,cj为上下文感知槽表示,watt∈rd×d和batt∈rd是可训练的参数,d是向量的维数,sj是对应于第一预定字符的向量表示,hk是所述联合输入序列中第k个字符的向量表示,n是所述联合输入序列中字符的数量。第一预定字符为[cls]。

在一些实施例中,所述多跃点门控记忆网络根据所述上下文感知槽表示查找相关值包括:所述多跃点门控记忆网络包括多层支持存储器,每个所述支持存储器又由一组带有存储单元的输入和输出存储表示组成;在第l层,通过使用两个可训练的嵌入al∈rd×k和el∈rd×k转换本体中的候选值{v1,...,vk}来获得输入和输出存储单元。

本发明实施例还提供一种人机对话方法,该人机对话方法采用前述任一实施例所述的对话状态跟踪方法进行对话状态跟踪。该人机对话方法可以应用于终端设备,终端设备可以是智能手机、智能手表、平板电脑、车机、智能音箱等,本发明对此不作限定。

在一些实施例中,本发明还提供一种对话状态跟踪系统,包括输入编码模块,上下文感知槽嵌入模块,多跃点门控记忆网络和槽门分类器,所述方法包括:

输入编码模块,配置为将历史对话状态、当前对话语句作为输入,并输出所述输入中的每个字符的表示;示例性地,当前对话语句包括响应于所述历史对话状态的响应语句和用户所说的新的对话语句。

上下文感知槽嵌入模块,配置为根据当前对话语句所对应的当前领域和当前槽确定上下文感知槽表示;

多跃点门控记忆网络,配置为根据上下文感知槽表示查找相关值;

槽门分类器,配置为确定所述相关值的类别。

在一些实施例中,输入编码模块将历史对话状态st-1、当前对话语句作为输入,并输出输入中的每个字符的表示包括:

预先根据历史对话状态生成历史对话序列;

将历史对话序列、响应语句和新的对话语句构成联合输入序列输入至输入编码模块;

输入编码模块输出联合输入中的每个字符的表示。

在一些实施例中,输入编码模块采用预训练bert模块;上下文感知槽嵌入模块根据当前对话语句所对应的当前领域和当前槽确定上下文感知槽表示通过以下公式实现:

其中,cj为上下文感知槽表示,watt∈rd×d和batt∈rd是可训练的参数,d是向量的维数,sj是对应于第一预定字符的向量表示,hk是所述联合输入序列中第k个字符的向量表示,n是所述联合输入序列中字符的数量。第一预定字符为[cls]。

在一些实施例中,所述多跃点门控记忆网络根据所述上下文感知槽表示查找相关值包括:所述多跃点门控记忆网络包括多层支持存储器,每个所述支持存储器又由一组带有存储单元的输入和输出存储表示组成;在第l层,通过使用两个可训练的嵌入al∈rd×k和el∈rd×k转换本体中的候选值{v1,...,vk}来获得输入和输出存储单元。

在一些实施例中,对于这两种嵌入al和el,都可以使用bert使用上下文表示来初始化其第i列向量,即,将领域,槽和第i个候选值vi以及两个标记“[cls]”和“[sep]”连接在一起作为bert的输入:

其中hi[cls]是“[cls]”的上下文表示,并且用作初始嵌入向量。

mh-gmn将cj作为初始查询向量q0,并将其从一个跃点更新到下一跃点。在第l跃点处,我们使用ql计算输入存储单元的每个条目上的点积注意力得分pil(1≤i≤k),

其中ali是输入嵌入矩阵al的第i列向量,即它是第i个候选值vi的输入嵌入向量。随后,我们通过应用注意力得分和输出存储单元的加权总和来计算输出存储:

其中,eli是输出嵌入矩阵el的第i列向量。

在更新过程中,我们使用了端到端的内存访问调节机制。我们将忘记门定义为:

其中,wgl∈rd×d和bgl∈rd是第l跃点的特定跃点可训练参数,而σ是s型函数。查询向量的更新规则由以下方式定义:

ql+1=ol⊙(1-gl)+ql⊙gl

其中,⊙表示两个向量的逐元素乘积。

最后,我们将最后跃点的注意力得分pli(1≤i≤k)作为槽值分布。

为更加清楚的介绍本发明的技术方案,也为更直接地证明本发明的可实时性以及相对于现有技术的有益性,以下将对本发明的技术背景、技术方案以及所进行的实验等进行更为详细的介绍。

在面向任务的对话系统中,对话状态跟踪器旨在在整个对话话语上生成结构化的摘要(领域-槽-值三元组)。但是,现有方法通常无法充分利用预定义的本体。在本发明中提出了一种新颖的记忆注意力状态跟踪器,其将本体视为先验知识,并利用记忆网络来存储此类信息。我们的模型由语句编码器,基于注意力的查询生成器,槽门分类器和用于每个领域-槽对的本体存储网络组成。为了与以前的方法进行公平的比较,我们还使用rnn代替了预先训练的bert作为编码器进行了实验。实证结果表明,我们的模型在multiwoz2.0数据集和multiwoz2.1数据集上实现了兼容的联合精度。

1、介绍

最近出现了大规模的多领域对话数据集(multiwoz2.0),通过修复multiwoz2.0中的许多注释错误,又提出了multiwoz2.1。这些数据集是目前可用的最大的两个多域对话数据集。主要有两个挑战使任务变得困难。第一个挑战是跨领域角色。如人机对话示例1中,用户可以首先向系统询问有关预订火车的信息,然后转到询问旅馆房间的问题,这要求域转换能力具有灵活性。而且,像火车发车和火车终点这样的槽很容易混淆,因为它们有很多相似之处。总共在multiwoz2.0中有1879个可能的值,在multiwoz2.1中有1934个可能的值,它们创建了大量的组合。在这种情况下,我们的模型必须首先确定要跟踪的正确的领域-槽对,然后准确指出正确的值。另一个挑战是在多回合对话中需要复杂的推理。如人机对话示例1中,显示了整个对话中可能需要多回合推理的原因。例如,此对话中包含的状态旅馆-区域-无所谓(由sys2和user4确定),我们甚至需要进行跨域推理才能获得正确的预测。

以下给出多域对话状态跟踪的人机对话示例1:

user1:ineedatrainleavingkingslynnafter13:45.

我需要13:45离开kingslynn的火车。

sys1:whatdaywillyoubetraveling?

你哪天出发?

user2:thiswillbeforwednesday.

周三。

……

user3:icanleavanytimeafter13:45goingtocambridge.willyoucheckthescheduleagainplease?

我可以在13:45之后的任何时间离开去剑桥。你能再次查看一下时间表吗?

……

sys2:whatareaoftownwouldyouliketobein?

你想要去什么区域的小镇?

user4:itdoesntmatter.ijustwantittobeacheapguesthousewithwifiincluded.

区域无所谓。我只想要一间有wifi的便宜的小型家庭旅馆。

sys3:icanrecommendtheallenbell.itistheeast,ischeapyethasa4starratingandfreewifiandparking.canihelpyoubook?

我建议allenbell。它在东边,便宜,还是4星级,有免费wifi和停车。我可以帮你预定吗?

user5:noijustneedthephonenumber.thanks.

不用了,我只需要电话号码。谢谢。

上述对话中,user代表用户,sys代表系统,其后的数字仅仅用于区分不同的语句。其中,由user1可以确定两个三元组train-departure-kingslynn(火车-离开-kingslynn)和train-leaveat-13:45(火车-离开时间-13:45)。由sys1和user2可以确定三元组train-day-wednesday(火车-日期-周三)。由user3可以确定三元组train-destination-cambridge(火车-目的地-剑桥)。由sys2和user4可以确定三元组hotel-area-dontcare(旅馆-区域-无所谓)。由user4和sys3确定三元组hotel-internet-yes(旅馆-网络-是)。由sys3可以确定两个三元组hotel-type-guesthouse(旅馆-类型-小型家庭旅馆)和hotel-name-allenbell(旅馆-名称-allenbell)。

2、相关工作

对话状态跟踪

传统的对话状态跟踪方法通常基于手工制定的规则,其中主要重点是建立一组语义解析规则。这些基于规则的方法已广泛用于商业系统中。但是,传统模型的性能在很大程度上依赖于大量的专家知识,这是劳动密集型且昂贵的。此外,由于手工规则的自然局限性,传统方法倾向于在实际实践中犯错误。

统计对话状态跟踪器基于语义解析模型的输出,计算真实对话状态的假设的概率分布。与传统方法相比,统计模型在许多情况下都更可靠。最近的方法使用端到端的体系结构来结合自然语言理解和对话状态跟踪器。这些方法可以进一步分为固定词汇和开放词汇。固定词汇方法通常假定所有本体都是预先已知的,并且模型仅需从本体中选择正确的值。开放词汇的方法通常始于对可能值的零知识,并从开放词汇中生成候选值。

基于记忆网络的dst

记忆网络已被证明在机器读取任务中很有用,因为该模型能够执行复杂的推理。先前的一些工作在对话状态跟踪任务中使用了记忆网络。例如,在早期的工作中,对话状态跟踪被规定为机器阅读任务,其中通过阅读理解任务完成对话状态的检索。

在本发明中,我们使用记忆网络作为对话状态跟踪器的解码器。使用对话编码器为记忆网络的输入生成查询。将在最后跃点获得的注意力得分用作对话状态的概率分布,并将在最后跃点的查询用于对话状态门分类。

3、建议的框架

在多领域对话系统中,存在一组用户和系统可以交谈的领域d。对于每个领域d∈d,都有nd个槽。每个槽s对应于用户意图的特定方面(例如,价格),并且可以从领域本体o定义的候选值集中获取值v(例如,便宜)。对话状态s可以定义为(d,s,v)三元组,例如{(旅馆,价格范围,便宜),(餐馆,区域,西部)}。

在第t次对话时,对话状态为st,这被用作构成数据库查询的约束。根据数据库查询结果和对话状态st,系统向用户提供响应rt+1。然后,用户输入新的句子ut+1。然后,状态跟踪器根据rt+1和ut+1将对话状态从st更新至st+1。整个对话过程可以表示为一组三元组{(s0,r1,u1),(s1,r2,u2),...,(st-1,rt,ut)}。

传统上,许多dst模型根据最新的整个对话上下文来预测对话状态。他们没有明确建模对话状态更新过程。相反,我们提出的模型根据rt+1和ut+1将对话状态从st显式更新为st+1,

st+1=fdst(st,rt+1,ut+1)(1)

具体而言,我们提出的dst模型将三元组(st,rt+1,ut+1)作为输入,并预测每个槽的所有候选值的概率分布。

如图2所示,为本发明的对话状态跟踪系统的一实施例的示意图,该实施例中对话状态跟踪模型包括:输入编码模块,上下文感知插槽嵌入,多跃点门控记忆网络和插槽门分类器。

3.1、输入编码模块

输入编码模块将先前的对话状态st-1和当前对话语句rt和ut作为输入,并输出输入中的每个字符的表示。

如上所述,对话状态st-1是一组领域-槽-值三元组。因此,我们将先前状态表示为st-1=z1t-1⊕z2t-1⊕…zjt-1,其中j是对话状态中的三元组数。每个三元组被表示为子序列,即zit-1=d⊕s⊕v,例如。{(酒店,价格范围,便宜的餐厅),(餐厅,区域,西边)}被转化成一个序列“酒店价格范围西边的便宜餐厅区”。然后将状态序列与当前对话语句联系起来得到联合输入序列,作为编码器的输入。在这里,我们利用深度上下文预训练bert语言模型作为编码器:

ht=bert([cls]⊕st-1⊕[sep]⊕rt⊕ut⊕[sep])(2)

其中,[cls]和[sep]是用于在bert中分离的特殊字符。ht={htk}nk=1,其中,htk是联合输入序列中第k个字符的表示向量,n是输入序列中字符的数量(为了简便起见,后续将省略htk的下标t)。

3.2、上下文感知槽嵌入

3.1节中描述的输入序列通常包含一个以上槽的信息。对于第j个(领域,插槽)对,我们需要收集其相关信息。首先,我们使用预训练的bert对领域和槽字符进行编码,并将相应的“[cls]”表示向量作为初始槽嵌入sj。然后,根据注意力机制获得上下文感知槽表示cj,

其中,watt∈rd×d和batt∈rd是可训练的参数,d是向量的维数,并且sj在训练过程中也会更新。

从第j个(领域,插槽)对的角度来看,这种上下文感知槽嵌入cj可以看作是对话上下文的摘要,并且可以用作查询向量来检索本体内存中的相关值。

3.3、多跃点门控记忆网络

对于第j个(领域,插槽)对,我们利用多跃点门控记忆网络(mh-gmn)根据上下文感知槽嵌入cj查找相关值。mh-gmn由多层支持存储器组成,每个支持存储器又由一组带有存储单元的输入和输出存储表示组成。在第l层,通过使用两个可训练的嵌入al∈rd×k和el∈rd×k转换本体中的候选值{v1,...,vk}来获得输入和输出存储单元。对于这两种嵌入,都可以使用bert使用上下文表示来初始化其第i列向量,即,将领域,槽和第i个候选值vi以及两个标记“[cls]”和“[sep]”连接在一起作为bert的输入:

其中hi[cls]是“[cls]”的上下文表示,并且用作初始嵌入向量。

mh-gmn将cj作为初始查询向量q0,并将其从一个跃点更新到下一跃点。在第l跃点处,我们使用ql计算输入存储单元的每个条目上的点积注意力得分pil(1≤i≤k),

其中ali是输入嵌入矩阵al的第i列向量,即它是第i个候选值vi的输入嵌入向量。随后,我们通过应用注意力得分和输出存储单元的加权总和来计算输出存储:

其中,eli是输出嵌入矩阵el的第i列向量。

在更新过程中,我们使用了端到端的内存访问调节机制。我们将忘记门定义为:

其中,wgl∈rd×d和bgl∈rd是第l跃点的特定跃点可训练参数,而σ是s型函数。查询向量的更新规则由以下方式定义:

ql+1=ol⊙(1-gl)+ql⊙gl,(9)

其中,⊙表示两个向量的逐元素乘积。

最后,我们将最后跃点的注意力得分pli(1≤i≤k)作为槽值分布。

3.4、槽门分类器

此处使用了一个槽门来预测两个特定的槽值dontcare和none。我们使用上下文感知的门分类器将上下文查询映射为三个类{value,dontcare,none}。对于第j个(领域,插槽)对,门分类器将最终查询向量ql作为输入,并预测其属于哪个类:

pc=softmax(wc·ql)(10)

其中,wc∈r3×d是三向线性层的参数。

4、实验设置

4.1、数据集

我们在multiwoz2.0和multiwoz2.1上进行了实验,它们是最大的公开可用的多领域面向任务的对话数据集。这两个数据集都包含涉及7个领域的超过10,000个对话。multiwoz2.1是multiwoz2.0的更新版本,它纠正了一些错误的注释和不正确的发音。multiwoz2.1通过将话语中的槽位值规范化为数据集本体中的值,在40%的对话回合中纠正了超过32%的状态注释,并修复了146种对话话语。

我们仅使用全部七个领域中的五个领域(餐厅,火车,酒店,出租车,景点),因为其他两个领域(医院,公交车)仅构成训练集的一小部分,甚至没有出现在测试集。我们没有压缩整个对话的语音,而是通过合并当前对话状态和当前回合的语音对数据集进行预处理。在大多数以前的作品中,最长的输入序列是879个字符,而现在我们只需要处理最多150个字符,这使得训练过程更加有效。

4.2、训练细节

我们对语句编码器,记忆(memory)层初始化和领域-槽嵌入初始化采用了预训练的bert-base-uncase。记忆层的嵌入大小和领域-槽嵌入大小为768,这在无bert的情况下预定义。我们使用adam作为优化器。

对于记忆层初始化和领域-槽嵌入初始化,我们使用与[cls]字符相对应的bert输出。例如,我们使用“[cls]酒店价格范围便宜[sep]”的输出h[cls]来表示三元组“hotel-pricerange-cheap”。

对于语句编码器和记忆网络,我们使用不同的学习率。对于语句编码器,我们将学习速率设置为1e-5;对于记忆网络,我们将学习速率设置为1e-4。我们使用16的批量大小,并将辍学率设置为0.2。最大序列长度固定为256。

表1.我们的方法的主要结果以及multiwoz2.0和multiwoz2.1测试集上的一些基准。

在训练期间,我们将模型视为分支的多层体系结构,其中每个域时隙子任务共享编码器参数,并具有相应的唯一记忆网络。由于我们在记忆网络实现中使用了相邻的体系结构,因此l跳记忆网络具有l+1个不同的层。为了防止过度拟合,我们会顺序冻结除一层以外的所有层,并仅将该层训练一个时期。我们使用教师强迫来训练记忆网络。

在我们的模型中,对话上下文使用bert编码,内存嵌入和领域-槽嵌入也使用bert初始化。为了与以前的模型进行公平的比较,我们还进行了实验,将bigru替换为bert,并通过合并glove嵌入和字符嵌入来初始化语句词嵌入,内存嵌入和领域-槽嵌入,其中每个词的维度为400。

5、实验结果

5.1、基准模型

trade在对话状态序列生成中使用复制机制对对话上下文进行编码并解码每个时隙的值。它也能够转移到看不见的领域。

comer是第一个对话状态跟踪模型,具有关于本体中域,时隙和值的数量的恒定推理时间复杂度。

som-dst将对话状态视为显式的固定大小的内存,并采用选择性覆盖机制以获得更有效的dst。

ds-dst采用了基于预定义本体的dst和基于开放词汇的dst的混合方法。它定义了用于分类的基于选择列表的时隙,以及用于跨度提取的基于跨度的时隙。

dst-picklist是与ds-dst一起提出的,但是该模型假定完整的本体可用,并且仅执行基于选择列表的dst。

5.2、联合目标准确性

我们将我们的方法与几个基准进行了比较。对于性能评估,我们使用联合目标准确性,这是一种评估指标,用于检查所有广告位的预测值是否与地面真实情况的预测值完全匹配。表1列出了multiwoz2.1和multiwoz2.0测试集的实验结果。我们可以看到,我们的模型在multiwoz2.0上达到50.15%的联合精度,在multiwoz2.1上达到52.70%的联合精度,这在使用bert的模型之间是兼容的。为了与以前的无bert模型进行公平比较,我们使用gru而不是bert进行了实验。无bert版本在multiwoz2.0和multiwoz2.1上分别达到49.85%和52.70%的联合精度,这证明了我们的模型在以前的无bert模型中的有效性。有趣的是,与大多数以前的工作相反,我们的模型在multiwoz2.1上实现的性能比在multiwoz2.0上更高。这种现象与som-dst的报告一致。正如他们所假设的那样,显式使用对话状态标签作为输入的模型(例如som-dst和我们的模型)受益于multiwoz2.1中对状态注释的错误校正。

5.3、特定于插槽的精度

图3显示了在multiwoz2.1的测试集上,trade与我们模型的bert版本之间的特定槽精度的比较,括号中的数字表示领域-槽对下有多少个可能的值。其中,领域-槽对包括:hotel-internet(4),即,旅馆-网络(4);hotel-parking(4),即,旅馆-停车(4);hotel-type(5),即,旅馆-类型(5);restaurant-pricerange(5),即,宾馆-价格区间(5);hotel-area(7),即,旅馆-区域(7);attraction-area(7),即,吸引-区域(7);restaurant-area(7),即,宾馆-区域(7);hotel-bookpeople(8),即,旅馆-预定人数(8);hotel-pricerange(8),即,旅馆-价格区间(8);train-day(8),即,火车-日期(8);hotel-stars(9),即,旅馆-星级(9);restaurant-bookpeople,即,宾馆-预定人数;hotel-bookstay(10),即,旅馆-预定停留(10);train-bookpeople(12),即,火车-预定人数(12);hotel-bookday(13),即,旅馆-预定日期(13);train-destination(27),即,火车-目的地(27);train-departure(31),即,火车-离开(31);attraction-type(33),即,吸引-类型(33);restaurant-booktime(72),即,宾馆-预定时间(72);hotel-name(89),即,旅馆-名称(89);taxi-arriveby(97)计程车-到达时间(97);taxi-leaveat(108),即,计程车-离开时间(108);restaurant-food(109),即,宾馆-食物(109);train-arriveby(157),即,火车-到达时间(157);attraction-name(164),即,吸引-名字(164);restaurant-name(190),即,宾馆-名称(190);train-leavat(203),即,火车-离开时间(203);taxi-destination(252),即,计程车-目的地(252);taxi-departure(254),即,计程车-离开(254)。图中可以观察到本发明的模型几乎在所有的领域-槽对上的精度都高于trade。

我们可以得出结论,就几乎所有子任务而言,我们的模型都比trade模型具有更好的性能。具体来说,在提供许多可能值的火车停靠,餐厅名称,滑行目的地和滑行出发的情况下,我们的模型比trade的准确性高2%以上。我们可以得出结论,即使面对许多干扰因素,我们的模型也显示出鲁棒性。

5.4、记忆门的消融研究

图4,使用不同数量的记忆跃点的具有和不具有门的联合精度变化。我们对使用记忆门(memorygates)进行了消融研究,结果如图4所示。从图中可以看出,通常使用记忆门可以提高性能。通过两跃点记忆网络,使用记忆门可使联合精度的性能提高4%以上。有趣的是,在单跃点记忆网络下,使用记忆门对性能的影响很小。据推测,这是因为对于单跃点记忆网络,仅使用一个记忆门,而从存储更新机制中获得的好处很小。

5.5记忆跃点数消融研究

我们使用不同数量的记忆跃点进行了实验,结果如图4所示。可以建议,无论有没有记忆门,我们的模型都可以使用两个记忆跃点来实现最佳性能。有趣的是,当记忆跃点数增加时,我们模型的性能下降,这与直觉是矛盾的。推测这是因为对话信息由于查询更新而变得模糊。当使用4跃点记忆层时,我们模型的性能会急剧下降,这表明进行复杂推理和正确理解对话信息具有同等重要性。

图5为来自与<hotel-bookstay>相关的不同跃点的注意力得分。对话语句是:我推荐剑桥假日酒店,我应该预定哪一天?从星期六开始。顺便说一下,我需要6个人住5个晚上。

图5给出了一个示例,显示了记忆网络在进行复杂推理时如何强大。此示例摘自multiwoz2.1的测试集,其中涉及一个试图预订酒店房间的客户。乍一看,记忆网络似乎被我们的客户想要预订6人的信息所误导。在查询更新机制的帮助下,模型可以在第二跃点处进行自我校正。

6、结论

在这项工作中,我们提出了一种用于多域对话状态跟踪的新颖模型,该模型结合了门控内存网络和预训练的bert,以提高复杂推理的能力。我们还对基于rnn的实现进行了实验,而不是将bert用作语句编码器,以便与以前的无bert模型进行公平的比较。实验表明,我们的方法与以前的方法相比具有兼容的性能,并且在无bert的模型中达到了最新的性能。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作合并,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在一些实施例中,本发明实施例提供一种非易失性计算机可读存储介质,所述存储介质中存储有一个或多个包括执行指令的程序,所述执行指令能够被电子设备(包括但不限于计算机,服务器,或者网络设备等)读取并执行,以用于执行本发明上述任一项对话状态跟踪方法和/人机或对话方法。

在一些实施例中,本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括存储在非易失性计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,使所述计算机执行上述任一项对话状态跟踪方法和/人机或对话方法。

在一些实施例中,本发明实施例还提供一种电子设备,其包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器,其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行对话状态跟踪方法和/人机或对话方法。

在一些实施例中,本发明实施例还提供一种存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现对话状态跟踪方法和/人机或对话方法。

图6是本申请另一实施例提供的执行对话状态跟踪方法和/人机或对话方法的电子设备的硬件结构示意图,如图6所示,该设备包括:

一个或多个处理器610以及存储器620,图6中以一个处理器610为例。

执行对话状态跟踪方法和/人机或对话方法的设备还可以包括:输入装置630和输出装置640。

处理器610、存储器620、输入装置630和输出装置640可以通过总线或者其他方式连接,图6中以通过总线连接为例。

存储器620作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本申请实施例中的对话状态跟踪方法和/人机或对话方法对应的程序指令/模块。处理器610通过运行存储在存储器620中的非易失性软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例对话状态跟踪方法和/人机或对话方法。

存储器620可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据对话状态跟踪装置和/人机或对话装置的使用所创建的数据等。此外,存储器620可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器620可选包括相对于处理器610远程设置的存储器,这些远程存储器可以通过网络连接至对话状态跟踪装置和/人机或对话装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

输入装置630可接收输入的数字或字符信息,以及产生与对话状态跟踪装置和/人机或对话装置的用户设置以及功能控制有关的信号。输出装置640可包括显示屏等显示设备。

所述一个或者多个模块存储在所述存储器620中,当被所述一个或者多个处理器610执行时,执行上述任意方法实施例中的对话状态跟踪方法和/人机或对话方法。

上述产品可执行本申请实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本申请实施例所提供的方法。

本申请实施例的电子设备以多种形式存在,包括但不限于:

(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iphone)、多媒体手机、功能性手机,以及低端手机等。

(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:pda、mid和umpc设备等,例如ipad。

(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放器(例如ipod),掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。

(4)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。

(5)其他具有数据交互功能的电子装置。

以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。

最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1