基于神经网络的对话状态的生成方法及装置与流程

文档序号:25522497发布日期:2021-06-18 20:10阅读:85来源:国知局
基于神经网络的对话状态的生成方法及装置与流程

本申请属于任务型对话系统技术领域,尤其涉及一种基于神经网络的对话状态的生成方法及装置。



背景技术:

任务型对话系统作为自然语言处理领域的一项重要任务,也是人工智能面临的一项重要挑战,正日益获得学术界及产业界的关注。任务型对话系统指的是通过与用户多个回合的交互,来帮助用户完成某项任务的系统,对话状态跟踪(dialoguestatetracking,dst)是任务型对话系统中的重要组成部分,dst的目标是确定用户在每个回合尝试通知的目标,这些目标用槽值对表示,对话状态为槽值对的组合。

传统的dst方法假设所有候选槽值对都是预先给定的,且对本体文件中所有可能的槽值对进行评分并选择得分最高的作为预测值,这导致了当本体文件较大时每次预测对话状态时都需要遍历所有槽值对,因此,如何高效的生成当前回合的对话状态是任务型对话系统面临的急需解决的问题。



技术实现要素:

本申请实施例提供了一种基于神经网络的对话状态的生成方法及装置,可以解决每次预测对话状态时需要遍历所有槽值对而导致的效率低的问题。

第一方面,本申请实施例提供了一种基于神经网络的对话状态的生成方法,包括:获取第一回合对话、第二回合对话以及第一回合对话的对话状态,第一回合对话与第二回合对话相邻,第一回合对话的对话状态包括多个槽值对,每个槽值对包括一个槽;在状态运算预测器中根据第一回合对话、第二回合对话以及第一回合对话的对话状态,确定第一回合对话的对话状态中需要解码的目标槽;对目标槽进行解码,并根据解码结果和第一回合对话的对话状态中不需要解码的槽确定第二回合对话的对话状态。

本申请提供的基于神经网络的对话状态的生成方法,通过在状态运算预测器中根据前一回合对话状态中的多个槽确定出需要解码的槽和不需要解码的槽。根据需要解码的槽的解码结果和不需要解码的槽共同确定当前回合的对话状态。本申请通过将任务分解为两阶段的方式首先确定出需要解码的槽,然后只需要对需要解码的槽进行解码,解码器可以专注于对需要更新的槽进行更新,使得模型能够有效地生成槽值子集,而不是生成所有的槽值,这就大大提高了工作效率,并且有效的解决了现阶段全部进行解码从而生成全部槽值对所造成的爆内存的问题。

在一种可能的实现方法中,该状态运算预测器中还包括分类器,通过分类器确定多个槽值对中槽的操作类型;按照操作类型确定需要更新的槽,并将需要更新的槽作为需要解码的目标槽。在该种实现方式中,通过分类器将前一回合对话状态中的多个槽进行分类,将该多个槽分成不同的操作类型,从而确定出需要解码的槽。

在一种可能的实现方法中,每个槽值对还包括槽值,通过分类器确定多个槽值对中槽的操作类型,包括:根据计算公式计算在第t轮对话上第j个槽上的操作类型的概率值;其中,wopr为可更新的参数矩阵,表示对应的槽的输出,表示在第t轮对话上第j个槽上的操作类型的概率;从概率矩阵中确定多个概率值中最大的概率值;根据最大的概率值确定第一回合对话的对话状态中多个槽分别对应的操作类型。在该种实现方式中,通过概率分布计算概率矩阵,从而找出最大的概率值,根据最大的概率值对应的槽值确定不同的操作类型,分类器根据不同的操作类型对多个槽进行分类。

在一种可能的实现方法中,根据最大的概率值确定第一回合对话的对话状态中多个槽分别对应的操作类型,包括:查找预设的最大的概率值对应的第二回合对话的对话状态中的槽值;当最大的概率值对应的槽值为第一回合对话的对话状态中的槽值时,操作类型为不更新;或当最大的概率值对应的槽值为删除时,操作类型为空;或当最大的概率值对应的槽值为不关注时,操作类型为不关注;或当最大的概率值对应的槽值为更新时,操作类型为更新。在该种实现方式中,不同最大概率值对应不同的槽值,不同的槽值对应不同的操作类型。

在一种可能的实现方式中,第二回合对话的对话状态包括:当操作类型为空,操作类型为不关注,操作类型为不更新时,该多个槽值对对应的槽不需要解码,操作类型为更新时,该槽值对对应的槽需要进行解码。在该种实现方式中,操作类型分类四类时,只有操作类型为更新时需要进行解码。

在一种可能的实现方法中,操作类型为更新时,多个槽值对对应的槽需要解码,方法包括,根据解码器在k时刻的隐藏状态计算预设词表中词汇的第一概率分布;基于编码器的输出概率分布和第一概率分布确定词汇的最终概率分布;基于词汇的最终概率分布确定最终概率分布的最大概率值对应的第一位置;根据第一位置,查找预设词表中第一位置对应的槽值,第一位置对应的槽值为第一回合对话的对话状态中需要更新的槽的槽值。在该种实现方式中,基于编码器的输出和编码器隐状态的输出概率共同确定最后的概率分布,从而更精确的找出词表中最匹配的槽值。

第二方面,提供了一种对话状态的生成装置,该过对话状态的生成装置包括用于执行以上第一方面或者第一方面的任意一方面可能的实现方法。

第三方面,提供了一种对话状态的生成装置,该装置包括至少一个处理器和存储器,该至少一个处理器用于执行以上第一方面或第一方面的任意可能的实现方式中的方法。

第四方面,提供了一种对话状态的生成装置,该对话状态的生成装置包括至少一个处理器和接口电路,该至少一个处理器用于执行以上第一方面或者第一方面中的任意一方面可能的实现方式中的方法。

第五方面,提供了对话状态的生成设备,该对话状态的生成设备包括上述第二方面、第三方面或者第四方面提供的任对话状态的生成装置。

第六方面,提供了一种计算机程序产品,该计算机程序产品包括计算机程序,该计算机程序在被处理器执行时,用于执行第一方面或第一方面的任意可能的实现方式中的方法。

第七方面,提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,当该计算机程序被执行时,用于执行第一方面或第一方面的任意可能的实现方式中的方法。

第八方面,提供了一种芯片或者集成电路,该芯片或者集成电路包括:处理器,用于从存储器中调用并运行计算机程序,使得安装有该芯片或者集成电路的设备执行第一方面或第一方面的任意可能的实现方式中的方法。

可以理解的是,上述第二方面至第八方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。

本申请实施例与现有技术相比存在的有益效果是:

本申请提供的基于神经网络的对话状态的生成方法,通过在状态运算预测器中根据前一回合对话状态中的多个槽确定出需要解码的槽和不需要解码的槽。根据需要解码的槽的解码结果和不需要解码的槽共同确定第二回合的对话状态。本申请通过将任务分解为两阶段的方式首先确定出需要解码的槽,然后只需要对需要解码的槽进行解码,解码器可以专注于对需要更新的槽进行更新,使得模型能够有效地生成槽值子集,而不是生成所有的槽值,这就大大提高了工作效率,并且有效的解决了现阶段全部进行解码从而生成全部槽值对所造成的爆内存的问题。

附图说明

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

图1是本申请提供的对话状态的生成方法一个实施例提供的流程图;

图2是本申请提供的对话状态生成方法的模型结构示意图;

图3是本申请提供的对话状态生成装置示意图;

图4是本申请提供的对话状态生成设备的结构示意图。

具体实施方式

随着现代信息技术的发展,人机交互式对话系统在生活有了越来越多的应用,诸如siri、cortana和alexa等语音助手已经在我们生活中普及。而面向任务的对话系统的需求也日益增长,比如智能客服,智能个人助理等,可以用于预定机票、查找餐厅和制定行程等服务。传统的任务型的对话系统中,整个对话系统只使用一个编码-解码模型,其中编码器将对话的上下文信息,编码成一个隐向量,用于表示该对话的当前状态,然后解码器对该对话状态进行解码,进而生成对话系统的回复。这种方式通常需要大量的手工工作,因此很难将系统扩展到新的应用领域。

基于神经网络的方法在建立聊天型对话系统中的卓越表现,本申请通过将任务分解为两阶段的方式,首先确定出需要解码的槽,然后只需要对需要解码的槽进行解码,解码器可以专注于对需要更新的槽进行更新,使得模型能够有效地生成槽值子集,而不是生成所有的槽值,这就大大提高了工作效率,并且有效的解决了现阶段全部进行解码从而生成全部槽值对所造成的爆内存的问题。

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

首先,在介绍本申请提供的对话状态生成的方法及装置的实施例之前,需要对下文中即将提及的部分术语进行说明。当本申请体积术语“第一”、“第二”等序数词时仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本申请实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。

下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。

参照下面的描述和附图,将清楚本发明的实施例的这些和其他方面。在这些描述和附图中,具体公开了本发明的实施例中的一些特定实施方式,来表示实施本发明的实施例的原理的一些方式,但是应当理解,本发明的实施例的范围不受此限制。相反,本发明的实施例包括落入所附加权利要求书的精神和内涵范围内的所有变化、修改和等同物。

本申请实施例提供的对话状态的生成方法可以应用于手机、平板电脑、可穿戴设备、车载设备、增强现实(augmentedreality,ar)/虚拟现实(virtualreality,vr)设备、笔记本电脑、超级移动个人计算机(ultra-mobilepersonalcomputer,umpc)、上网本、个人数字助理(personaldigitalassistant,pda)等终端设备上,本申请实施例对终端设备的具体类型不作任何限制。

下面结合具体实施例,对本申请提供的对话状态生成方法进行示例性的说明。

参见图1,本申请提供的基于神经网络的对话状态的生成方法的一个实施例的流程图,如图1所述,该方法包括:

s101,获取第一回合对话、第二回合对话以及第一回合对话的对话状态,第一回合对话与第二回合对话相邻,第一回合对话的对话状态包括多个槽值对,每个槽值对包括一个槽。

首先,获取第一回合对话、第二回合对话以及第一回合对话的对话状态。该第一回合对话是指与第二回合对话相邻的上一个对话。第一回合对话、第二回合对话是指用户和机器人输入的自然语言,第一回合对话的对话状态是指第一回合对话中的多个槽值对,其中,一个槽值对由一个槽和多个槽值组成,多个槽值对则包括可多个槽和该多个槽相对应的槽值。首先定义对话状态为其中sj是槽,为槽值,也就是说对话状态bt为槽值对组合,t表示第t轮对话,j表示第j个槽。

s102,在状态运算预测器中根据第一回合对话、第二回合对话以及第一回合对话的对话状态,确定第一回合对话的对话状态中需要解码的目标槽。

本申请实施例中对根据第一回合对话、第二回合对话以及第一回合对话的对话状态确定第一回合对话的对话状态中需要解码的目标槽的方式不做限定。

可选的,在一种可能的实现方式中,通过在状态运算预测器中加入分类器从而确定第一回合对话的对话状态中的多个槽分别对应的操作类型,从而最终确定需要解码的目标槽。

本申请对该分类器不做限定,例如,可以是神经网络中的全连接层或者神经网络中的softmax分类器、支持向量机(supportvectormachine,svm)等。

可选的,在一种可能的实现方式中,通过在状态预算预测器的bert(bidirectionalencoderrepresentationsfromtransformer)模型中输入第一回合对话和第二回合对话以及第一回合对话状态,进行编码。全连接层将编码后的第一回合对话中对应的多个槽值对中的槽分成不同的操作类型。

可选的,在另一种可能的实现方式中,通过在状态预算预测器的bert模型中输入第一回合对话和第二回合对话以及第一回合对话状态,进行编码。softmax分类器将解码后的第一回合对话中对应的多个槽值对中的槽分成不同的操作类型。

其中,bert模型的目标是利用大规模无标注语料训练、获得文本的包含丰富语义信息的representation,即:文本的语义表示,然后将文本的语义表示在特定自然语言处理任务中作微调,最终应用于该自然语言任务。

本申请对该分类方式不做限定,例如分类器可以根据概率计算得到第二回合对话的对话状态中的槽值,根据该槽值确定该多个槽具体对应哪种操作类型。

可选的,通过以下选择概率分布计算公式计算在第t轮对话上第j个槽上的槽值的概率值;

其中,wopr为可更新的参数矩阵,表示对应的槽的输出,表示在第t轮对话上第j个槽上的操作类型的概率;根据计算的概率的具体结果选择相对应的槽值,从而确定该槽值对应的槽的操作类型。

示例性的,当j=4时,计算得到的该四个槽的最大概率分别为0.1,0.2,0.3,0.4,查找预设的最大的概率值对应的第二回合对话的对话状态中的槽值。这四个概率分别对应的槽值为第一回合对话的对话状态中的槽值、删除、不关注、更新。该四个槽值分别对应的操作类型为不更新、空、不关注、更新。也就是说,操作类型为不更新时是指第二回合状态的槽值等于第一回合状态的槽值;操作类型为空是指第二回合状态的槽值为删除时;操作类型为不关注是指第二回合状态的槽值为不关注;操作类型为更新是指本槽的槽值为更新。当操作类型为删除、操作类型为不关注和操作类型为不更新时该多个槽值对对应的槽不需要解码,当操作类型为更新时,多个槽值对对应的槽需要解码。

s103,对目标槽进行解码,并根据解码结果和第一回合对话的对话状态中不需要解码的槽确定第二回合对话的对话状态。

本申请实施例中对该多个槽中需要解码的目标槽的解码方式不做限定。

可选的,在一种可能的实现方式中,使用门控神经网络中的门控循环单元(gatedrecurrentunit,gru)进行解码,其初始化输入为当门控网络在零时刻时的输入的表示编码器中整个输入序列整体的聚合,表示在解码分类后需要更新的槽。

在gru网络中k时刻的隐藏状态为

基于gru网络中的k时刻的隐藏状态计算词汇的概率分布其中e为词向量矩阵。

计算编码器的输出ht的概率分布

通过对gru网络中k时刻的隐藏状态进行加权求和并使用sigmoid激活得到一个0-1的常数α,根据该常数,对的结果进行加权平均,计算得到最终的概率分布根据最终的概率分布确定该最终概率矩阵中的最大概率值对应的位置,根据该位置,选出词表库中在该位置处的槽值,作为需要更新的槽值,对第一回合对话的对话状态中需要更新的槽的槽值进行更新。

根据第一回合对话中多个槽的操作类型为空、操作类型为不关注和操作类型为不更新时的槽和第一回合对话中多个槽的操作类型为更新,且得到更新结果的槽最终确定第二回合对话的对话状态。

图2是本申请提供的对话状态生成的模型结构示意图,从图2可以看出,通过在状态运算预测器中输入第一回合对话dt-1、第二回合对话dt以及第一回合对话的对话状态bt-1,通过状态运算预测器中的分类器将第一回合对话的对话状态中的多个槽值对中的槽进行分类,得到多个槽值对对应的槽的操作类型,ht[slot]j代表的是第j个槽的分类结果,carryover表示操作类型为不更新,delete表示操作类型为删除,dotcare表示操作类型为不关注,update表示操作类型为更新。其中,操作类型为不更新时是指第二回合对话的槽值等于第一回合对话的槽值;操作类型为空是指第二回合对话的槽值为删除时;操作类型为不关注是指第二回合对话的槽值为不关注;操作类型为更新是指第一回合的槽的槽值需要更新。当操作类型为空、操作类型为不关注和操作类型为不更新时该多个槽值对对应的槽不需要解码,当操作类型为更新时,多个槽值对对应的槽需要解码。将只需要解码的槽输入至槽值生成器中进行解码。

图3是本申请提供的一种对话状态生成的装置示意图。该装置包括处理单元301。

处理单元301用于获取第一回合对话、第二回合对话以及第一回合对话的对话状态。在状态运算预测器中根据第一回合对话、第二回合对话以及第一回合对话的对话状态,确定第一回合对话的对话状态中需要解码的目标槽。对目标槽进行解码,并根据解码结果和第一回合对话的对话状态中不需要解码的槽确定第二回合对话的对话状态。

可选的,处理单元301还用于通过分类器确定多个槽值对中槽的操作类型;按照操作类型确定需要更新的槽。

可选的,处理单元301还用于使得分类器根据计算公式计算在第t轮对话上第j个槽上的槽值的概率值;从概率矩阵中确定多个概率值中最大的概率值;根据最大的概率值和预设的所最大的概率值对应的第二回合对话的对话状态中的槽值确定第一回合对话的对话状态中多个槽分别对应的操作类型。

可选的,处理单元301还用于判当最大的概率值对应的槽值为第一回合对话的对话状态中的槽值时,判断操作类型为不更新;当最大的概率值对应的槽值为删除时,判断操作类型为空;或当最大的概率值对应的槽值为不关注时,判断操作类型为不关注;或当最大的概率值对应的槽值为更新时,判断操作类型为更新。

可选的,处理单元301还用于基于编码器的输出概率和门控网络的隐状态求词汇的概率分布,确定词汇的最终概率分布;根据最终概率值确定前一回合对话状态中需要更新的槽的槽值。

处理单元301还用于根据其他类型中不需要解码的槽和当前更新完的槽得到第二回合对话的对话状态。

装置300执行对话状态的生成方法的具体方式以及产生的有益效果可以参见方法实施例中的相关描述。

图4示出了本申请提供的一种对话状态生成设备的结构示意图。设备400可用于实现上述方法实施例中描述的方法,设备400可以是终端设备或者服务器或者芯片。

设备400包括一个或者多个处理器401,该一个或者多个处理器401可支持设备400实现图1所对应方法实施例中的方法。处理器401可以是中央处理单元(centralprocessingunit,cpu),该处理器401还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

例如,设备400可以是芯片,通信单元403可以是该芯片的输入和/或输出电路,或者,通信单元403可以是该芯片的通信接口,该芯片可以作为终端设备或网络设备或其它电子设备的组成部分。

又例如,设备400可以是终端设备或服务器,通信单元403可以是该终端设备或该服务器的收发器,或者,通信单元403可以是该终端设备或该服务器的收发电路。

设备400中可以包括一个或多个存储器402,其上存有程序代码4021,程序代码4021可被处理器401运行,生成指令,使得处理器401根据指令执行上述方法实施例中描述的方法。

可选地,存储器402中还可以存储有数据(如多任务神经网络)。可选地,处理器401还可以读取存储器402中存储的数据,该数据可以与程序代码4021存储在相同的存储地址,该数据也可以与程序代码4021存储在不同的存储地址。

处理器401和存储器402可以单独设置,也可以集成在一起,例如,集成在终端设备的系统级芯片(systemonchip,soc)上。

处理器401执行对话状态生成的方法的具体方式可以参见方法实施例中的相关描述。

该存储器402可以包括只读存储器和随机存取存储器,并向处理器401提供指令和数据。存储器402还可以包括非易失性随机存取存储器。该存储器402可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-onlymemory,rom)、可编程只读存储器(programmablerom,prom)、可擦除可编程只读存储器(erasableprom,eprom)、电可擦除可编程只读存储器(electricallyeprom,eeprom)或闪存。易失性存储器可以是随机存取存储器(randomaccessmemory,ram),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的ram可用,例如静态随机存取存储器(staticram,sram)、动态随机存取存储器(dram)、同步动态随机存取存储器(synchronousdram,sdram)、双倍数据速率同步动态随机存取存储器(doubledatadatesdram,ddrsdram)、增强型同步动态随机存取存储器(enhancedsdram,esdram)、同步连接动态随机存取存储器(synchlinkdram,sldram)和直接内存总线随机存取存储器(directrambusram,drram)。

该总线404除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图4中将各种总线都标为总线404。

上述实施例,可以全部或部分地通过软件、硬件、固件或其他任意组合来实现。当使用软件实现时,上述实施例可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载或执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以为通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集合的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质。半导体介质可以是固态硬盘(solidstatedrive,ssd)。

本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现可实现上述各个方法实施例中的步骤。

本申请实施例提供了一种计算机程序产品,当计算机程序产品在移动终端上运行时,使得移动终端执行时实现可实现上述各个方法实施例中的步骤。

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

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