掌桥专利:专业的专利平台
掌桥专利
首页

一种对话状态追踪方法、装置、电子设备及存储介质

文献发布时间:2023-06-19 10:11:51


一种对话状态追踪方法、装置、电子设备及存储介质

技术领域

本发明涉及互联网技术领域,尤其涉及一种对话状态追踪方法、装置、电子设备及存储介质。

背景技术

对话状态跟踪(Dialogue State Tracker,DST)是面向任务对话系统的核心组件。DST的目的是提取用户在对话中表达的目标/意图,并将其编码为对话状态的紧凑表示,即一组槽及其对应的值。而且,随着智能助理中技能或领域的增加,多领域对话状态追踪越来越引起研究者的关注。多领域对话状态追踪为对话状态追踪带来了新的挑战。

针对多领域的对话状态追踪,现有的方案主要有以下几种:1、基于picklist(选择列表)的方法,该方法将对话历史进行编码后与特定的槽表示进行拼接后送入一个分类器,分到候选列表中的某一个值。2、基于span的方法,该方法主要借鉴于阅读理解,将对话历史作为文章,将槽的表示作为问题,从对话历史中找到槽值应的跨度作为问题的答案。3、基于生成的方法,该方法基于对话历史表示与槽表示生成槽值。

但是,基于picklist的方法很难预先获得完整的本体,而且即使存在完整的本体,可能的槽值的数量也可能很大且可变;基于span的方法,一些槽对应的槽值可能在对话历史总无法找到,也就无法找到正确的span;基于生成的方法独立地为每个槽生成值,无法获取槽之间的关系,无法从槽共现中获得特征。由此可见,现有的对话状态追踪方案无法获取槽之间的关系,存在准确率及槽级别的准确率较低等问题。

发明内容

本发明实施例提供一种对话状态追踪方法、装置、电子设备及存储介质,以解决相关技术中存在对话状态追踪结果的准确率及槽级别的准确率较低的问题。

为了解决上述技术问题,本发明是这样实现的:

第一方面,本发明实施例提供了一种对话状态追踪方法,包括:

通过预先构建的对话状态追踪模型中的对话历史编码器,对历史对话数据进行编码,得到所述历史对话数据编码后的词表示数据,并对所述历史对话数据中每个对话语句进行编码,得到所述历史对话数据编码后的第一句子表示数据;

根据所述第一句子表示数据、待追踪的领域以及每个所述领域下待追踪的槽,通过对话状态追踪模型中的图神经网络模型,构建所述槽之间的关系以及所述槽与所述历史对话数据之间的关系,并获取编码后的第二句子表示数据和槽表示数据;

根据所述第二句子表示数据、所述槽表示数据和所述词表示数据,通过所述对话状态追踪模型中的槽值生成解码器,获取每个所述领域下的每个槽的槽值,得到所述历史对话数据的对话状态;

其中,所述历史对话数据包括用户会话数据、机器会话数据中的至少一种,所述对话状态追踪模型通过多个已知对话状态的样本对话数据训练得到,所述对话状态中包括每个领域下每个槽的槽值。

第二方面,本发明实施例提供了一种对话状态追踪装置,包括:

对话历史编码模块,用于通过预先构建的对话状态追踪模型中的对话历史编码器,对历史对话数据进行编码,得到所述历史对话数据编码后的词表示数据,并对所述历史对话数据中每个对话语句进行编码,得到所述历史对话数据编码后的第一句子表示数据;

槽信息编码模块,用于根据所述第一句子表示数据、待追踪的领域以及每个所述领域下待追踪的槽,通过对话状态追踪模型中的图神经网络模型,构建所述槽之间的关系以及所述槽与所述历史对话数据之间的关系,并获取编码后的第二句子表示数据和槽表示数据;

槽值生成解码模块,用于根据所述第二句子表示数据、所述槽表示数据和所述词表示数据,通过所述对话状态追踪模型中的槽值生成解码器,获取每个所述领域下的每个槽的槽值,得到所述历史对话数据的对话状态;

其中,所述历史对话数据包括用户会话数据、机器会话数据中的至少一种,所述对话状态追踪模型通过多个已知对话状态的样本对话数据训练得到,所述对话状态中包括每个领域下每个槽的槽值。

第三方面,本发明实施例另外提供了一种电子设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如第一方面所述的对话状态追踪方法的步骤。

第四方面,本发明实施例另外提供了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面所述的对话状态追踪方法的步骤。

在本发明实施例中,通过编码槽信息之间的关系以及槽信息与对话历史中的句子信息之间的关系,用编码后的信息来进行对话状态中槽值信息的生成,通过实验证明,模型可以缓解数据稀疏的问题,对于新的领域和槽具有更好的扩展性,在轮次级别对话状态追踪的准确率及槽级别的准确率上都取得了较为显著的提升,从而提高DST的准确性和扩展性。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

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

图1是本发明实施例中的一种对话状态追踪方法的步骤流程图;

图2是本发明实施例中的一种对话状态追踪模型的结构示意图;

图3是本发明实施例中的另一种对话状态追踪方法的步骤流程图;

图4是本发明实施例中的两种slot gate门控机制的示意图;

图5是本发明实施例中的一种对话状态追踪装置的结构示意图;

图6是本发明实施例中的另一种对话状态追踪装置的结构示意图;

图7是本发明实施例中的一种电子设备的硬件结构示意图。

具体实施方式

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

参照图1,示出了本发明实施例中一种对话状态追踪方法的步骤流程图。

步骤110,通过预先构建的对话状态追踪模型中的对话历史编码器,对所述历史对话数据进行编码,得到所述历史对话数据编码后的词表示数据,并对所述历史对话数据中每个对话语句进行编码,得到所述历史对话数据编码后的第一句子表示数据。

步骤120,根据所述第一句子表示数据、待追踪的领域以及每个所述领域下待追踪的槽,通过对话状态追踪模型中的图神经网络模型,构建所述槽之间的关系以及所述槽与所述历史对话数据之间的关系,并获取编码后的第二句子表示数据和槽表示数据。

步骤130,根据所述第二句子表示数据、所述槽表示数据和所述词表示数据,通过所述对话状态追踪模型中的槽值生成解码器,获取每个所述领域下的每个槽的槽值,得到所述历史对话数据的对话状态;其中,所述历史对话数据包括用户会话数据、机器会话数据中的至少一种,所述对话状态追踪模型通过多个已知对话状态的样本对话数据训练得到,所述对话状态中包括每个领域下每个槽的槽值。

在计算机科学中,图(Graph)是由两个部件组成的一种数据结构:顶点(vertices)和边(edges)。一个图G可以用它包含的顶点V和边E的集合来描述。顶点通常也被称为节点(nodes),边可以是有向的或无向的,这取决于顶点之间是否存在方向依赖关系。由此可见,通过在不同节点之间设置边的方式可以设置两个节点之间的信息传递。

因此,针对目前多领域对话状态追踪中所存在的问题,在本发明实施例中,提出了一种用GNN(Graph Neural Networks,图神经网络)建模槽之间关系的多领域对话状态追踪方法,该方法在编码槽信息时与历史对话信息时,以用GNN建模各个槽信息之间的关系以及槽信息与历史对话之间的关系。其目的在于,通过建模槽信息之间的关系来缓解多领域对话状态追踪中的训练数据稀疏问题。同时,使用基于历史对话和词汇表生成槽值的方法,不用预先定义本体,可以方便地扩展到新的领域,避免了槽值不在历史对话数据中出现的问题。本发明实施例所提出的对话状态追踪模型的结构可以如图2所示,其中该模型主要由三部分组成:对话历史编码器(如图2中2a所示),作为槽信息编码器的GNN(如图2中2b所示)和槽值生成解码器(如图2中2c所示)。DST(对话状态追踪)可以理解为根据所有对话历史信息推断当前对话状态和用户目标。

而且,在本发明实施例中,为了通过上述的对话状态追踪模型进行对话状态追踪,可以预先通过多个已知对话状态的样本对话数据训练得到,所述对话状态中包括每个领域下每个槽的槽值。而且,在模型训练过程中,以及模型实际使用过程中,模型内各个部分的工作机制基本一致,以下以实际对话状态追踪过程为例进行详细说明。

具体地,在进行对话状态追踪时,可以通过预先构建的对话状态追踪模型中的对话历史编码器,对所述历史对话数据进行编码,得到所述历史对话数据编码后的词表示数据,并对所述历史对话数据中每个对话语句进行编码,得到所述历史对话数据编码后的第一句子表示数据。其中,该对话历史编码器可以为任意一种可以用于文本编码的模型,例如可以为BiLSTM(Bi-directional Long Short-Term Memory)模型、LSTM(Long Short-TermMemory,长短期记忆网络)模型、RNN(Recurrent Neural Network,循环神经网络)模型,等等。而且,在实际应用中,对话状态追踪一般应用在人机对话的情况下,因此在本发明实施例中,历史对话数据包括用户会话数据、机器会话数据中的至少一种。其中,用户会话数据可以为由用户根据需求输出的会话数据,机器会话数据可以为由机器针对用户输入的会话数据所答复的会话数据。

其中,在对历史对话数据进行编码时,可以按照字为单位将历史对话数据拆分为多个字,分别对每个字进行编码,从而得到历史对话数据编码后的词表示数据,而在对所述历史对话数据中每个对话语句进行编码时,则可以历史对话数据中包含的每个对话语句为单位进行编码,从而得到所述历史对话数据编码后的第一句子表示数据。

而且,在本发明实施例中,可以通过任何可用方式获取历史对话数据,对此本发明实施例不加以限定。例如,针对任一会话,可以在每次进行会话状态追踪时,获取当前时刻之前预设时间段的对话数据,作为相应会话当前的历史对话数据;或者,也可以获取当前时刻相应会话内的全部对话数据,作为相应会话当前的历史对话数据;或者,可以在获取第T轮对话的对话状态时,可以获取相应会话中前T轮对话的对话数据即为当前的历史对话数据,等等。

例如,首先定义X={(U

其中,对话语句的划分方式可以根据需求进行自定义设置,对此本发明实施例不加以限定。例如,可以以句号为标记对历史对话数据进行划分,以相邻两个句号之间的内容为一个对话语句,或者也可以句号逗号、感叹号、问号等任意相邻两个用于断句的符号之间的内容为一个对话语句,等等。而且,在本发明实施例中,可以通过任何可用方法对历史会话数据进行分词,以获取其中包含的每个字,也可以采用任何可用方式获取其中包含的对话语句,对此本发明实施例不加以限定。

进一步地,对了获取不同槽之间的关系,以及槽与对话语句之间的关系,则可以根据对话历史编码器输出的第一句子表示数据,以及当前待追踪的各个领域和每个所述领域下待追踪的槽,通过对话状态追踪模型中的图神经网络模型,构建所述槽之间的关系以及所述槽与所述历史对话数据之间的关系并进行信息传递,从而得到图神经网络模型输出的编码后的第二句子表示数据和槽表示数据。

其中,图神经网络是一种直接作用于图结构上的神经网络。图神经网络有以下特点:忽略节点的输入顺序;在计算过程中,节点的表示受其周围邻居节点的影响,而图本身连接不变;图结构的表示,使得可以进行基于图的推理。图神经网络模型可以为任意一种图神经网络模型,例如可以为门控图神经网络(Gated Graph Neural Network)、图卷积神经网络(Graph Convolutional Network,GCN),等等。而且,图神经网络的内部结构可以根据当前的历史对话数据中包含的对话语句的数量,以及当前待追踪的槽的数量适应性调整,对此本发明实施例不加以限定。

在获取得到经过信息传递后的第二句子表示数据和槽表示数据之后,则可以进一步根据所述第二句子表示数据、所述槽表示数据和所述词表示数据,通过所述对话状态追踪模型中的槽值生成解码器,获取每个所述领域下的每个槽的槽值,进而可以基于每个所述领域下的每个槽的槽值,得到所述历史对话数据的对话状态。

其中,槽值生成解码器可以为任意一种可以用于解码的模型,对此本发明实施例不加以限定。例如,可以设置槽值生成解码器为GRU(Gated Recurrent Unit,门控循环单元)、BiLSTM、RNN,等等。

需要说明的是,在本发明实施例中,对话状态追踪模型中各个部分可以单独训练,那么此时则可以分别获取用于训练对话状态追踪模型的每个样本对话数据对应的词表示数据、第一句子表示数据,以训练对话历史编码器,相应地可以获取每个样本对话数据对应的第二句子表示数据和槽表示数据,以训练图神经网络模型,也可以根据每个样本对话数据对应的对话状态和第二句子表示数据、槽表示数据、词表示数据,训练槽值生成解码器;等等。当然,对话状态追踪模型也可以作为整体进行联合训练,对此本发明实施例不加以限定。

参照图3,在另一实施例中,所述步骤120进一步可以包括:

步骤121,根据所述历史对话数据中包含的对话语句的数量,待追踪的领域以及每个所述领域下待追踪的槽,在所述图神经网络模型中构建对应每个对话语句的句子节点,以及对应每个槽的槽节点,并设置每个节点之间传递信息的边;

步骤122,根据所述第一句子表示数据、待追踪的领域以及每个所述领域下待追踪的槽,通过构建完成的图神经网络模型,获取编码后的第二句子表示数据和槽表示数据。

如上述,在本发明实施例中,为了构建槽之间的关系以及所述槽与所述历史对话数据之间的关系,可以在图神经网络模型中构建对应部分对话语句的句子节点,和/或对应部分槽的槽节点。具体构建的句子节点数量、槽节点数量可以根据需求进行自定义设置,对此本发明实施例不加以限定。

优选地,在一实施例中,为了充分构建所述槽之间的关系以及所述槽与所述历史对话数据之间的关系,可以根据所述历史对话数据中包含的对话语句的数量,待追踪的领域以及每个所述领域下待追踪的槽,在所述图神经网络模型中构建对应每个对话语句的句子节点,以及对应每个槽的槽节点,并设置每个节点之间传递信息的边。

其中,设置边的节点可以为句子节点、槽节点中的任意至少一种。而且,在本发明实施例中,可以在任意两个节点之间设置用于传递信息的边,也可以仅设置部分节点之间的边,具体需要设置边的节点可以根据需求进行自定义设置,对此本发明实施例不加以限定。

在构建完成构建完成的图神经网络模型之后,则可以进一步根据所述第一句子表示数据、待追踪的领域以及每个所述领域下待追踪的槽,通过构建完成的图神经网络模型,获取编码后的第二句子表示数据和槽表示数据。

可选地,在本发明实施例中,所述步骤121进一步可以包括:

步骤1211,针对每个所述句子节点,在所述句子节点与所述句子节点对应的目标句子节点之间设置用于进行信息传递的边,和/或,在所述句子节点与每个所述槽节点之间设置用于进行信息传递的边;和/或,

步骤1212,针对每个所述槽节点,在所述槽节点与每个与所述槽节点所属领域相同的槽节点之间设置用于进行信息传递的边,和/或,在所述槽节点与每个与所述槽节点具有相同槽值类型的槽节点之间设置用于进行信息传递的边;

其中,所述目标句子节点包括所述句子节点对应的句子之前的M个句子的句子节点、所述句子节点对应的句子之后的N个句子的句子节点中的至少一种,所述M、N均为自然数。

一般而言,对话中的前后对话语句之间有一定的关联,每个对话语句可能与所有的槽存在一定关联,同属于一个领域下的各个槽之间可能存在一定关联,具有相同槽值类型(例如,时间,地点)的各个槽之间可能存在一定关联。

因此,优选地,在一实施例中,在设置各个节点之间的边时,可以采用以下至少一种方式设置边:

针对每个所述句子节点,在所述句子节点与所述句子节点对应的目标句子节点之间设置用于进行信息传递的边,和/或,在所述句子节点与每个所述槽节点之间设置用于进行信息传递的边;和/或,针对每个所述槽节点,在所述槽节点与每个与所述槽节点所属领域相同的槽节点之间设置用于进行信息传递的边,和/或,在所述槽节点与每个与所述槽节点具有相同槽值类型的槽节点之间设置用于进行信息传递的边;

其中,所述目标句子节点包括所述句子节点对应的句子之前的M个句子的句子节点、所述句子节点对应的句子之后的N个句子的句子节点中的至少一种,所述M、N均为自然数。

其中,槽值类型的划分方式可以根据需求进行自定义设置,对此本发明实施例不加以限定。例如可以设置槽值类型包括上述的时间,地点,等等。

例如,可以将历史对话数据中的每句对话语句作为一个节点,也即上述的句子,将每个槽作为一个节点,也即上述的槽节点,而且可以设置每个句子节点与其前面M个及后面的N个对话语句的句子节点进行信息的传递,每个句子节点与所有的槽节点进行信息的传递,每个槽节点与同属于一个领域的槽节点之间进行信息的传递,同时每个槽节点与具有相同槽值类型(例如,时间,地点)的槽节点进行信息的传递。其中,M、N的取值可以相同,也可以有所不同,对此本发明实施例不加以限定。

另外,在本发明实施例中,也可以根据需求设置各个领域下的槽,例如可以按照业务类型(例如看房业务、招聘业务、点餐业务、二手车业务等等)划分领域,并且设置各个业务类型下的槽。而且,在本发明实施例中,为了区分不同的领域和槽,根据需求可以获取各个领域的领域标识等任何可以表征领域身份的领域信息,也可以获取各个槽的槽标识等任何可以表征槽身份的槽信息,对此本发明实施例不加以限定。

可选地,在另一实施例中,所述步骤130进一步可以包括:将

其中,在针对任意一个槽进行槽值解码时,循环执行以下步骤,直至针对所述槽的槽值解码结束,然后进入针对下一个槽的槽值解码流程:

S1,当解码任一领域下第j个槽的槽值中的第k个词时,获取其在每个备选词下的概率分布,所述备选词包括所述历史对话数据中包含的每个词,以及预设的词汇表中的每个词;

S2,获取概率最大的备选词作为所述第j槽的第k个槽值;

其中,所述j、k均为正整数,所述

在实际应用中,某一槽的槽值可能包含多个词,也即由多个词组成。例如,对于某一关于城市名称的槽而言,假设其槽值为“北京”,也即此时其槽值由两个词组成,“北”为第一个词,“京”为第二个词。而且在针对某一槽的槽值进行解码时,可以依次解码其中包含的各个词,得到最终的槽值。因此,在一实施例中,可以针对每个槽进行槽值解码时,可以循环执行上述的步骤S1-S2,以依次获取每个槽的槽值中的每个词,直至针对所述槽的槽值解码结束,也即解码得到相应槽的槽值中的全部词,然后进入针对下一个槽的槽值解码流程,直至全部槽的槽值解码结束。

例如,可以将

当解码第j个(domain,slot)对的第k步(也即槽值中的第k个词)时,可以通过槽值生成解码器获取第k个词的具体值在每个备选词下的概率分布,所述备选词包括所述历史对话数据中包含的每个词,以及预设的词汇表中的每个词;进而可以获取概率最大的备选词作为所述第j槽的的槽值中的第k个词。

其中,词汇表可以在对话状态追踪模型的训练过程中学习得到,也可以根据需求进行自定义设置,对此本发明实施例不加以限定。

而且,可以通过任何可用方式确定槽值解码结束,对此本发明实施例不加以限定。例如,针对任一槽,可以在执行上述步骤S1-S2的过程中,如果获取其当前位置的词为空,或者为预设结束符的情况下,或者是当前位置的词在每个备选槽值备选词下的概率分布均低于预设概率的情况下,则可以认定相应槽的槽值解码结束。

可选地,在本发明实施例中,所述对话历史编码器为BiLSTM网络模型,所述图神经网络模型为图卷积神经网络模型(GCN,Graph Convolutional Network),所述槽值生成解码器为门控循环单元(GRU,Gated Recurrent Unit)。

相应地,对于对话历史编码器而言,如果输入对话历史数据

还可以将历史对话数据中的每个对话语句依次送入BiLSTM,得到BiLSTM的输出即为历史对话数据经编码后的第一句子表示数据

需要说明的是,在本发明实施例中,对话历史编码器中可以包括两个BiLSTM网络模型,以分别对历史对话数据进行编码,得到所述历史对话数据编码后的词表示数据,以及对所述历史对话数据中每个对话语句进行编码,得到所述历史对话数据编码后的第一句子表示数据,如图2所示的对话状态追踪模型中,其对话历史编码器中即包含两个BiLSTM网络模型,其中每层的RNN模型序列标识一个BiLSTM网络模型。

而如果所述图神经网络模型为图卷积神经网络模型进行槽信息之间的交互,将对话历史中的每句话作为节点,将每个槽作为节点,每个句子节点与其前面及后面的部分句子节点进行信息的传递,每个句子节点与所有的槽节点进行信息的传递,每个槽节点与同属于一个领域的槽节点之间进行信息的传递,同时每个槽节点与具有相同槽值类型(例如,时间,地点)的槽节点进行信息的传递。

可以得到第一句子表示数据经GCN编码后的第二句子表示数据为

门控循环单元是一种常用的门控循环神经网络,而门控循环神经网络(gatedrecurrent neural network)的提出,是为了更好地捕捉时间序列中时间步距离较大的依赖关系。门控循环单元(GRU)是循环神经网络(RNN)中的一种门控机制,与其他门控机制相似,其旨在解决标准RNN中的梯度消失/爆炸问题并同时保留序列的长期信息。GRU在许多诸如语音识别的序列任务上与LSTM同样出色,不过它的参数比LSTM少,仅包含一个重置门(reset gate)和一个更新门(update gate)。

可选地,在本发明实施例中,所述步骤S1进一步可以包括:

步骤S11,当解码任一领域下第j个槽的槽值中的第k个词时,根据所述第j个槽的槽值中的第k个词对应的隐状态数据,分别获取所述第j个槽的槽值中的第k个词在所述历史对话数据中包含的每个词下的第一概率分布,以及所述第j个槽的槽值中的第k个词在所述词汇表下的第二概率分布;

步骤S12,根据所述第一概率分布、所述第二概率分布,获取所述第j个槽的槽值中的第k个词最终在每个备选词下的概率分布。

而且,在一实施例中,在备选词同时包含历史对话数据中包含的每个词,以及词汇表的情况下,为了获取任一领域下第j个槽的槽值中的第k个词最终在全部备选词下的概率分布,可以分别通过槽值生成解码器获取其在所述历史对话数据中包含的每个词下的第一概率分布,以及所述第k个槽值在所述词汇表下的第二概率分布,进而根据所述第一概率分布、所述第二概率分布,获取所述第j个槽的槽值中的第k个词最终在每个备选词下的概率分布。其中,第一概率分布、所述第二概率分布,与第k个槽值最终在每个备选词下的概率分布之间的对应关系可以根据需求、槽值生成解码器的具体类型等进行自定义设置,对此本发明实施例不加以限定。

在槽值生成解码器为门控循环单元的情况下,当解码任一领域下第j个槽的第k步时,可以用其对应的隐状态(hidden state),也即其上一步传递下来的隐状态

第一概率分布

第二概率分布

最终的概率分布为:

其中,E是指词汇表的表示矩阵,|V|表示词汇表中包含的词的数量,

可选地,在本发明实施例中,所述对话状态追踪模型中还包括分类器,所述分类器与所述槽值生成解码器连接,所述步骤130进一步可以包括:

步骤A1,针对每个所述领域下的每个槽,根据所述分类器,预测每个所述槽的类别标识;

步骤A2,针对类别标识为指定类别标识的每个槽,根据所述第二句子表示数据、所述槽表示数据和所述词表示数据,通过所述对话状态追踪模型中的槽值生成解码器,获取每个所述槽的槽值,到所述历史对话数据的对话状态。

在实际应用中,在每次进行对话状态追踪时,可能存在部分槽的槽值不存在当前的历史对话数据、词汇表中,也即无法基于当前的对话历史数据、词汇表确定其槽值,而如果针对上述槽同样执行上述获取其槽值的步骤,容易导致资源浪费,而且影响对话状态追踪的效率。

因此优选地,在一实施例中,可以设置对话状态追踪模型中还包括分类器,所述分类器与所述槽值生成解码器连接,从而通过分类器过滤掉上述的无需确定槽值的槽。具体地,可以针对每个所述领域下的每个槽,根据所述分类器,预测每个所述槽的类别标识;进而仅针对类别标识为指定类别标识的每个槽,根据所述第二句子表示数据、所述槽表示数据和所述词表示数据,通过所述对话状态追踪模型中的槽值生成解码器,获取每个所述槽的槽值,到所述历史对话数据的对话状态。而且分类器的输入可以包括槽信息、领域信息、槽表示数据、第一句子表示数据、第二句子表示数据、词表示数据中的至少一种,当然也可以包括其他任何所需数据,分类器的输入数据可以根据需求以及分类器的具体类型等进行自定义设置,对此本发明实施例不加以限定。分类器的输出则可以为相应槽的类别标识。其中类别标识的形式可以根据需求进行自定义设置,对此本发明实施例不加以限定。

需要说明的是,在本发明实施例中,分类器可以单独训练,也可以与对话状态追踪模型中包含的其他各个部分进行联合训练,对此本发明实施例不加以限定。而且为了训练分类器,还可以获知用于训练对话状态追踪模型的每个领域下的每个槽的类别标识。

需要说明的是,其中需要获取槽值的槽所属的指定类别标识也可以根据需求进行自定义设置,对此本发明实施例不加以限定。而且分类器可以为任意一种可以训练作为分类器的模型,而且分类器可以为二分类器、三分类器等等,对此本发明实施例均不加以限定。

可选地,在本发明实施例中,所述步骤A1进一步可以包括:

步骤A11,针对每个所述领域下的每个槽,根据所述槽在初始状态下对应的隐状态数据,分别获取所述槽在初始状态下在所述历史对话数据中包含的每个词下的第一概率分布;

步骤A12,根据所述初始状态下的第一概率分布,以及所述第一句子表示数据,获取用于进行类别预测的预测参数;

步骤A13,根据所述预测参数,通过所述分类器,获取所述槽的类别标识。

以上述的第j个(domain,slot)对为例,可以通过分类器将c

而且参照上述c

可选地,在本发明实施例中,所述分类器可以为一种slot gate门控机制,其结构可以根据需求进行自定义设置,例如二分类器、三分类器等都可以为一种slot gate门控机制。

slot gate门控机制,其关注于学习intent(意图)和slot attention(槽注意力)向量之间的关系,通过全局优化获得更好的semantic frame(语义框架)。slot-gate有助于分析槽位和意图的关系。

如图4所示为两种slot gate门控机制的示意图,其中4(a)表示具有全注意力机制的slot gate门控机制(slot-gated model with full attention),4(b)表示具有意图注意力机制的slot gate门控机制(slot-gated model with intent attention)。

例如,假设分类器为slot gate门控机制,且分类器为三分类器,可选的类别标识包括ptr,none,dontcare三种,基于当前的分类器可以得到第j个(domain,slot)对对应的槽的预测结果为

如果分类器的预测结果,也即分类标识为none,则表明该槽不在当前对话状态中,无需获取其槽值,如果预测结果为dontcare,则可以直接设置该槽的槽值为dontcare,也无需执行上述获取槽值的过程,如果预测结果为ptr,则进行槽值的解码生成。

在本发明实施例中,通过编码槽信息之间的关系以及槽信息与对话历史中的句子信息之间的关系,用编码后的信息来进行对话状态中槽值信息的生成,通过实验证明,模型可以缓解数据稀疏的问题,对于新的领域和槽具有更好的扩展性,在轮次级别对话状态追踪的准确率及槽级别的准确率上都取得了较为显著的提升,从而提高DST的准确性和扩展性。

参照图5,示出了本发明实施例中一种对话状态追踪装置的结构示意图。

本发明实施例的对话状态追踪装置包括:对话历史编码模块210、槽信息编码模块220和槽值生成解码模块230。

下面分别详细介绍各模块的功能以及各模块之间的交互关系。

对话历史编码模块210,用于通过预先构建的对话状态追踪模型中的对话历史编码器,对历史对话数据进行编码,得到所述历史对话数据编码后的词表示数据,并对所述历史对话数据中每个对话语句进行编码,得到所述历史对话数据编码后的第一句子表示数据;

槽信息编码模块220,用于根据所述第一句子表示数据、待追踪的领域以及每个所述领域下待追踪的槽,通过对话状态追踪模型中的图神经网络模型,构建所述槽之间的关系以及所述槽与所述历史对话数据之间的关系,并获取编码后的第二句子表示数据和槽表示数据;

槽值生成解码模块230,用于根据所述第二句子表示数据、所述槽表示数据和所述词表示数据,通过所述对话状态追踪模型中的槽值生成解码器,获取每个所述领域下的每个槽的槽值,得到所述历史对话数据的对话状态;

其中,所述历史对话数据包括用户会话数据、机器会话数据中的至少一种,所述对话状态追踪模型通过多个已知对话状态的样本对话数据训练得到,所述对话状态中包括每个领域下每个槽的槽值。

参照图6,在一实施例中,所述槽信息编码模块220,进一步可以包括:

图神经网络模型设置子模块221,用于根据所述历史对话数据中包含的对话语句的数量,待追踪的领域以及每个所述领域下待追踪的槽,以在所述图神经网络模型中构建对应每个对话语句的句子节点,以及对应每个槽的槽节点,并设置每个节点之间传递信息的边;

槽信息编码子模块222,用于根据所述第一句子表示数据、待追踪的领域以及每个所述领域下待追踪的槽,通过构建完成的图神经网络模型,获取编码后的第二句子表示数据和槽表示数据。

可选地,所述图神经网络模型设置子模块222,具体可以用于:

针对每个所述句子节点,在所述句子节点与所述句子节点对应的目标句子节点之间设置用于进行信息传递的边,和/或,在所述句子节点与每个所述槽节点之间设置用于进行信息传递的边;

和/或,针对每个所述槽节点,在所述槽节点与每个与所述槽节点所属领域相同的槽节点之间设置用于进行信息传递的边,和/或,在所述槽节点与每个与所述槽节点具有相同槽值类型的槽节点之间设置用于进行信息传递的边;

其中,所述目标句子节点包括所述句子节点对应的句子之前的M个句子的句子节点、所述句子节点对应的句子之后的N个句子的句子节点中的至少一种,所述M、N均为自然数。

可选地,所述槽值生成解码模块230,具体可以用于:

其中,在针对任意一个槽进行槽值解码时,循环执行以下步骤,直至针对所述槽的槽值解码结束,然后进入针对下一个槽的槽值解码流程:

S1,当解码任一领域下第j个槽的槽值中的第k个词时,获取其在每个备选词下的概率分布,所述备选词包括所述历史对话数据中包含的每个词,以及预设的词汇表中的每个词;

S2,获取概率最大的备选词作为所述第j槽的槽值中的第k个词;

其中,所述j、k均为正整数,所述

可选地,所述对话历史编码器为BiLSTM网络模型,所述图神经网络模型为图卷积神经网络模型,所述槽值生成解码器为门控循环单元。

可选地,所述槽值生成解码模块230,还可以用于:

当解码任一领域下第j个槽的槽值中的第k个词时,根据所述第j个槽的槽值中的第k个词对应的隐状态数据,分别获取所述第j个槽的槽值中的第k个词在所述历史对话数据中包含的每个词下的第一概率分布,以及所述第j个槽的槽值中的第k个词在所述词汇表下的第二概率分布;

根据所述第一概率分布、所述第二概率分布,获取所述第j个槽的槽值中的第k个词最终在每个备选词下的概率分布。

可选地,所述对话状态追踪模型中还包括分类器,所述分类器与所述槽值生成解码器连接,所述槽值生成解码模块230,进一步可以包括:

类别标识预测子模块,用于针对每个所述领域下的每个槽,根据所述分类器,预测每个所述槽的类别标识;

槽值生成解码子模块,用于针对类别标识为指定类别标识的每个槽,根据所述第二句子表示数据、所述槽表示数据和所述词表示数据,通过所述对话状态追踪模型中的槽值生成解码器,获取每个所述槽的槽值,到所述历史对话数据的对话状态。

可选地,所述类别标识预测子模块,具体用于:

针对每个所述领域下的每个槽,根据所述槽在初始状态下对应的隐状态数据,分别获取所述槽在初始状态下在所述历史对话数据中包含的每个词下的第一概率分布;

根据所述初始状态下的第一概率分布,以及所述第一句子表示数据,获取用于进行类别预测的预测参数;

根据所述预测参数,通过所述分类器,获取所述槽的类别标识。

可选地,所述分类器为slot gate门控机制。

本发明实施例提供的对话状态追踪装置能够实现图1和图3的方法实施例中实现的各个过程,为避免重复,这里不再赘述。

优选的,本发明实施例还提供了一种电子设备,包括:处理器,存储器,存储在存储器上并可在处理器上运行的计算机程序,该计算机程序被处理器执行时实现上述对话状态追踪方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。

本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述对话状态追踪方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等。

图7为实现本发明各个实施例的一种电子设备的硬件结构示意图。

该电子设备500包括但不限于:射频单元501、网络模块502、音频输出单元503、输入单元504、传感器505、显示单元506、用户输入单元507、接口单元508、存储器509、处理器510、以及电源511等部件。本领域技术人员可以理解,图7中示出的电子设备结构并不构成对电子设备的限定,电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。在本发明实施例中,电子设备包括但不限于手机、平板电脑、笔记本电脑、掌上电脑、车载终端、可穿戴设备、以及计步器等。

应理解的是,本发明实施例中,射频单元501可用于收发信息或通话过程中,信号的接收和发送,具体的,将来自基站的下行数据接收后,给处理器510处理;另外,将上行的数据发送给基站。通常,射频单元501包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器、双工器等。此外,射频单元501还可以通过无线通信系统与网络和其他设备通信。

电子设备通过网络模块502为用户提供了无线的宽带互联网访问,如帮助用户收发电子邮件、浏览网页和访问流式媒体等。

音频输出单元503可以将射频单元501或网络模块502接收的或者在存储器509中存储的音频数据转换成音频信号并且输出为声音。而且,音频输出单元503还可以提供与电子设备500执行的特定功能相关的音频输出(例如,呼叫信号接收声音、消息接收声音等等)。音频输出单元503包括扬声器、蜂鸣器以及受话器等。

输入单元504用于接收音频或视频信号。输入单元504可以包括图形处理器(Graphics Processing Unit,GPU)5041和麦克风5042,图形处理器5041对在视频捕获模式或图像捕获模式中由图像捕获装置(如摄像头)获得的静态图片或视频的图像数据进行处理。处理后的图像帧可以显示在显示单元506上。经图形处理器5041处理后的图像帧可以存储在存储器509(或其它存储介质)中或者经由射频单元501或网络模块502进行发送。麦克风5042可以接收声音,并且能够将这样的声音处理为音频数据。处理后的音频数据可以在电话通话模式的情况下转换为可经由射频单元501发送到移动通信基站的格式输出。

电子设备500还包括至少一种传感器505,比如光传感器、运动传感器以及其他传感器。具体地,光传感器包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板5061的亮度,接近传感器可在电子设备500移动到耳边时,关闭显示面板5061和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别电子设备姿态(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;传感器505还可以包括指纹传感器、压力传感器、虹膜传感器、分子传感器、陀螺仪、气压计、湿度计、温度计、红外线传感器等,在此不再赘述。

显示单元506用于显示由用户输入的信息或提供给用户的信息。显示单元506可包括显示面板5061,可以采用液晶显示器(Liquid Crystal Display,LCD)、有机发光二极管(Organic Light-Emitting Diode,OLED)等形式来配置显示面板5061。

用户输入单元507可用于接收输入的数字或字符信息,以及产生与电子设备的用户设置以及功能控制有关的键信号输入。具体地,用户输入单元507包括触控面板5071以及其他输入设备5072。触控面板5071,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板5071上或在触控面板5071附近的操作)。触控面板5071可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器510,接收处理器510发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板5071。除了触控面板5071,用户输入单元507还可以包括其他输入设备5072。具体地,其他输入设备5072可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆,在此不再赘述。

进一步的,触控面板5071可覆盖在显示面板5061上,当触控面板5071检测到在其上或附近的触摸操作后,传送给处理器510以确定触摸事件的类型,随后处理器510根据触摸事件的类型在显示面板5061上提供相应的视觉输出。虽然在图7中,触控面板5071与显示面板5061是作为两个独立的部件来实现电子设备的输入和输出功能,但是在某些实施例中,可以将触控面板5071与显示面板5061集成而实现电子设备的输入和输出功能,具体此处不做限定。

接口单元508为外部装置与电子设备500连接的接口。例如,外部装置可以包括有线或无线头戴式耳机端口、外部电源(或电池充电器)端口、有线或无线数据端口、存储卡端口、用于连接具有识别模块的装置的端口、音频输入/输出(I/O)端口、视频I/O端口、耳机端口等等。接口单元508可以用于接收来自外部装置的输入(例如,数据信息、电力等等)并且将接收到的输入传输到电子设备500内的一个或多个元件或者可以用于在电子设备500和外部装置之间传输数据。

存储器509可用于存储软件程序以及各种数据。存储器509可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器509可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

处理器510是电子设备的控制中心,利用各种接口和线路连接整个电子设备的各个部分,通过运行或执行存储在存储器509内的软件程序和/或模块,以及调用存储在存储器509内的数据,执行电子设备的各种功能和处理数据,从而对电子设备进行整体监控。处理器510可包括一个或多个处理单元;优选的,处理器510可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器510中。

电子设备500还可以包括给各个部件供电的电源511(比如电池),优选的,电源511可以通过电源管理系统与处理器510逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。

另外,电子设备500包括一些未示出的功能模块,在此不再赘述。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。

上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本发明的保护之内。

本领域普通技术人员可以意识到,结合本发明实施例中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

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

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

相关技术
  • 一种对话状态追踪方法、装置、电子设备及存储介质
  • 一种对话状态追踪方法、装置、设备及存储介质
技术分类

06120112456092