基于混合知识管理的对话方法、装置和电子设备

文档序号:26007614发布日期:2021-07-23 21:26阅读:67来源:国知局
基于混合知识管理的对话方法、装置和电子设备

本发明涉及自然语言处理技术领域,尤其涉及一种基于混合知识管理的对话方法、装置和电子设备。



背景技术:

构建智能对话系统,使其能够用自然语言与人类进行交流,是人工智能的一个重要研究方向。特别地,任务型对话系统用于帮助人类在特定领域下完成特定任务,在自助终端、智能客服等业务中有着广泛的应用前景,因而得到了研究界和工业界的重点关注。现阶段的任务型对话系统普遍管理结构化的知识(例如表格、数据库等),来指导其在生成回复时为用户提供有用的信息。一般而言,任务型对话系统的工作流程可以描述为:系统首先对来自用户的语句进行语义理解,并分析追踪用户的意图,将其表示为状态关键词;然后,系统根据状态关键词进行结构化数据查询,搜索得到相关的信息;最后,系统根据对话上下文、状态关键词以及数据查询结果生成自然语言回复。

然而,在现实应用当中,用户与系统之间的对话经常会涉及非结构化的知识。例如,用户会询问某家餐馆中最受顾客欢迎的菜品是什么,而这需要系统参考该餐馆的客户评论加以回复,这些客户评论通常是非结构化的形式。由于不能有效管理非结构化的知识,现阶段的任务型对话系统无法很好的处理上述的对话情形。这种缺陷往往会导致对话进程的中断,给用户意图的追踪以及系统回复的生成带来困难。

因此,如何避免现阶段的任务型对话系统对于用户非结构化的询问语句无法处理导致的系统回复语句生成困难的情况,仍然是本领域技术人员亟待解决的问题。



技术实现要素:

本发明提供一种基于混合知识管理的对话方法、装置和电子设备,用以解决现阶段的任务型对话系统对于用户非结构化的询问语句无法处理导致的系统回复语句生成困难的问题,通过在进行电磁暂态仿真求解电压和电流的每一个时步也对移频频率进行优化更新,使得移动频率随着时步的推移逐渐达到最优,即和设置的时步最匹配能使仿真准确率最高,因此,在达到最优移频频率后续进行电磁暂态仿真则可以输出准确的电流、电压结果。

本发明提供一种基于混合知识管理的对话方法,该方法包括:

将当前轮次询问语句和对话模型上一轮次输出的回复语句拼接后进行向量化预处理,得到输入向量;

将所述输入向量和所述对话模型上一轮次输出状态关键词向量输入所述对话模型,输出当前轮次的回复语句和状态关键词向量;

其中,所述对话模型是基于对话数据集进行训练得到的,所述对话数据集中的每个对话数据均包括多轮询问语句样本,对应的多轮回复语句标签和多轮状态关键词标签,所述对话模型训练时以所述对话数据为单位进行训练,所述询问语句样本为结构化分词语句或非结构化分词语句。

根据本发明提供的一种基于混合知识管理的对话方法,

所述对话模型的网络结构包括依次连接的上下文编码器、状态关键词解码器、混合知识管理库、文档编码器和回复解码器,所述对话模型还包括状态关键词编码器,所述状态关键词解码器、所述状态关键词编码器和所述回复解码器依次连接。

根据本发明提供的一种基于混合知识管理的对话方法,

所述对话模型的网络结构包括依次连接的上下文编码器、状态关键词解码器、混合知识管理库、文档编码器和回复解码器,所述对话模型还包括状态关键词编码器,所述状态关键词解码器、所述状态关键词编码器和所述回复解码器依次连接,具体包括:

所述对话模型的训练过程中,

所述上下文编码器将输入向量进行编码输出查询向量至所述回复解码器和所述状态关键词解码器,所述输入向量基于上一轮次的回复语句标签和当前轮次询问语句拼接后进行向量化预处理得到;

所述状态关键词解码器将上一轮次输出状态关键词向量进行解码输出预测状态关键词;

将当前轮次的状态关键词标签输入所述混合知识管理库输出查询结果至所述文档编码器,所述文档编码器输出查询结果向量至所述回复解码器;

将当前轮次的状态关键词标签输入所述状态关键词编码器进行编码生成当前轮次的状态关键词向量,所述状态关键词向量用于输入所述回复解码器和下一轮次的所述状态关键词解码器。

所述回复解码器基于输入的所述查询结果向量、查询向量和所述状态关键词向量进行解码输出当前轮次的预测回复语句;

所述回复解码器基于输入的所述查询结果向量、查询向量和所述预测状态关键词向量进行解码输出当前轮次的预测回复语句。

根据本发明提供的一种基于混合知识管理的对话方法,

所述对话模型训练过程中,任一对话数据中的每一轮次的询问回复训练结果均用于调节下一轮次的神经网络中的待优化参数;

对应地,所述对话模型训练过程中的损失函数l通过如下公式计算:

其中,为任一轮次的预测状态关键词在第i个位置分词的状态标签对应的向量,pb,i为所述任一轮次的状态关键词标签在第i个位置分词的状态标签对应的向量,为所述任一轮次的预测回复语句在第i个位置分词的回复标签对应的向量,pr,i为所述任一轮次的回复语句标签在第i个位置分词的回复标签对应的向量,tb为所述预测状态关键词包括的分词数量,tr为所述预测回复语句包括的分词数量。

根据本发明提供的一种基于混合知识管理的对话方法,

所述对话模型训练过程中,对于任一对话数据,所有轮次询问回复训练结果总合用于调节下一对话数据进行训练时的神经网络中的待优化参数;

对应地,所述对话模型训练过程中的损失函数l通过如下公式计算:

其中,为任一对话数据第t轮次的预测状态关键词在第i个位置分词的状态标签对应的向量,为所述任一对话数据第t轮次的状态关键词标签在第i个位置分词的状态标签对应的向量,为任一对话数据第t轮次的的预测回复语句在第i个位置分词的回复标签对应的向量,为任一对话数据第t轮次的的回复语句标签在第i个位置分词的回复标签对应的向量,所述第i轮次的状态关键词标签对应的向量,tb为所述预测状态关键词包括的分词数量,tr为所述预测回复语句包括的分词数量,t=1,2,…,n,n为所述任一对话数据中询问回复次数。

根据本发明提供的一种基于混合知识管理的对话方法,所述上下文编码器的网络结构为双向gru;对应地,所述状态关键词解码器的网络结构为单向gru,所述状态关键词编码器的网络结构为双向gru,所述回复解码器的网络结构为单向gru,所述文档编码器的网络结构为双向gru。

根据本发明提供的一种基于混合知识管理的对话方法,所述状态关键词编码器和所述状态关键词解码器之间使用了注意力机制和拷贝机制,所述上下文编码器、所述文档编码器、所述状态关键词编码器和所述回复解码器之间使用了注意力机制和拷贝机制。

本发明还提供一种基于混合知识管理的对话装置,包括:

预处理单元,用于将当前轮次询问语句和对话模型上一轮次输出的回复语句拼接后进行向量化预处理,得到输入向量;

回复单元,用于将所述输入向量和所述对话模型上一轮次输出状态关键词向量输入所述对话模型,输出当前轮次的回复语句和状态关键词向量;

其中,所述对话模型是基于对话数据集进行训练得到的,所述对话数据集中的每个对话数据均包括多轮询问语句样本,对应的多轮回复语句标签和多轮状态关键词标签,所述对话模型训练时以所述对话数据为单位进行训练,所述询问语句样本为结构化分词语句或非结构化分词语句。

本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述的基于混合知识管理的对话方法的步骤。

本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述的基于混合知识管理的对话方法的步骤。

本发明提供的基于混合知识管理的对话方法、装置和电子设备,通过将当前轮次询问语句和对话模型上一轮次输出的回复语句拼接后进行向量化预处理,得到输入向量;将所述输入向量和所述对话模型上一轮次输出状态关键词向量输入所述对话模型,输出当前轮次的回复语句和状态关键词向量;其中,所述对话模型是基于对话数据集进行训练得到的,所述对话数据集中的每个对话数据均包括多轮询问语句样本,对应的多轮回复语句标签和多轮状态关键词标签,所述对话模型训练时以所述对话数据为单位进行训练,所述询问语句样本为结构化分词语句或非结构化分词语句。由于在对话模型的训练过程中使用的询问语句样本有结构化和非结构化的,因此,训练出的对话模型也有提取非结构化询问语句的状态关键词的功能,如此,对话模型获取了处理非结构化询问语句的能力。因此,本发明实施例提供的方法、装置和电子设备,能处理用户非结构化的询问语句并生成相应的回复语句,扩大了能处理的自然语言的范围。

附图说明

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

图1为本发明提供的基于混合知识管理的对话方法的流程示意图;

图2为本发明提供的对话模型的网络结构示意图;

图3为本发明提供的使用混合式知识管理进行任务型对话的示例图;

图4为本发明提供的基于混合知识管理的对话装置的结构示意图;

图5为本发明提供的一种电子设备的实体结构示意图。

具体实施方式

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

由于现阶段的任务型对话系统普遍存在对于用户非结构化的询问语句无法处理导致的系统回复语句生成困难的问题。下面结合图1-图3描述本发明的一种基于混合知识管理的对话方法。图1为本发明提供的基于混合知识管理的对话方法的流程示意图,如图1所示,该方法包括:

步骤110:将当前轮次询问语句和对话模型上一轮次输出的回复语句拼接后进行向量化预处理,得到输入向量。

具体地,本发明提供的基于混合知识管理的对话方法是在基于机器学习训练好的对话模型上实现的,本发明提供的基于混合知识管理的对话方法的执行主体为基于混合知识管理的对话装置。上述对话装置不是单一询问给出对应答复的装置,而是可以实现多轮次问答的对话装置,通常,该对话装置的使用不是用来回复一个询问语句,而是用来回复某一个用户的多轮次询问,同一用户向上述对话装置依次输入多条询问语句,对话装置针对第一条询问语句没有可以参考的前轮次问答信息,直接生成第一轮次问答的状态关键词和回复语句,在用户进行第二条至第n条询问语句的输入时,对话装置需要参考当前轮次询问输入的询问语句还要考虑上一轮次问答的信息,生成当前轮次的答复语句。即本发明提供的对话方法,在进行每一轮次(除了初始轮次)的作答时,还要考虑历史问答中的信息,得出最准确的答复语句。因此,在使用所述对话模型时,需要将输入的数据构建好,对于非初始轮次的任一轮次的询问,需要将当前轮次的询问语句与对话模型上一轮次输出的回复语句拼接后进行向量化预处理,得到输入向量。其中,向量化预处理包括对拼接后的语句进行分词和预设规则分词向量化的处理,所述预设规则分词向量化可以通过现有的多种对分词的编码处理实现,此处不对预设规则分词向量化作具体限定。

步骤120,将所述输入向量和所述对话模型上一轮次输出状态关键词向量输入所述对话模型,输出当前轮次的回复语句和状态关键词向量;

其中,所述对话模型是基于对话数据集进行训练得到的,所述对话数据集中的每个对话数据均包括多轮询问语句样本,对应的多轮回复语句标签和多轮状态关键词标签,所述对话模型训练时以所述对话数据为单位进行训练,所述询问语句样本为结构化分词语句或非结构化分词语句。

具体地,在构建好当前轮次输入对话模型的输入向量后,还将对话模型上一轮次输出的状态关键词向量和当前轮次的输入向量一起输入对话模型,对话模型进行针对当前轮次问答的状态关键词提取、回复结果搜索和回复语句生成后,输出当前轮次问答的回复语句和状态关键词向量。其中,对话模型是基于大量对话数据构成的对话数据集作为训练集进行训练得到的,而每一个对话数据包括多轮询问语句样本,对应的多轮回复语句标签和多轮状态关键词标签。由于本发明对对话模型的需求是可以完成多个轮次的用户咨询的答复,因此,训练数据并不是零散相互之间没有关联的问答语句对,而是以一个用户从开始咨询到结束咨询的多轮次的问答语句作为一个训练数据,该训练数据中,任一轮次的答复都是在当前轮次输入的咨询语句加上前一轮次的答复信息的基础上作答的。例如,以下为一个训练数据:

轮次一询问:城北面积最大的书店是哪一家?

轮次一答复:城北面积最大的书店是诚品书店;轮次一状态关键词:书店-位置-城北,书店-面积-最大。

轮次二询问:这个书店的营业时间是什么时候?

轮次二答复:诚品书店的营业时间是工作日11:00-20:00,节假日10:00-23:00;轮次二状态关键词没有更新,还是维持第一轮次讯问答复的状态关键词:书店-位置-城北,书店-面积-最大。

轮次三询问:可以带宠物进店吗?

轮次三答复:不能;轮次三状态关键词:书店-位置-城北,书店-面积-最大,书店-ruk-诚品书店,携带宠物。

上述举例对话以及其中包括的状态关键词总和为一个对话数据,作为一个训练数据,即所述对话模型训练时以所述对话数据为单位进行训练,上述举例的对话作为一个训练数据,第一轮次的询问语句样本为“城北面积最大的书店是哪一家”,对应的第一轮次回复语句标签为“城北面积最大的书店是诚品书店”和状态关键词标签为“书店-位置-城北,书店-面积-最大”,第二轮次的询问语句样本为“这个书店的营业时间是什么时候”,对应的第二轮次回复语句标签为“诚品书店的营业时间是工作日11:00-20:00,节假日10:00-23:00”和状态关键词标签为“书店-位置-城北,书店-面积-最大”,第三轮次的询问语句样本为“可以带宠物进店吗”,对应的第三轮次回复语句标签为“书店-位置-城北,书店-面积-最大,书店-ruk-诚品书店,携带宠物”。其中,“ruk”用于标识非结构化多元组,指示后续的查询操作需要在非结构化数据库中完成。

其中,第一轮次的询问语句为结构化语句,满足构建该对话数据集时设定的约束范围:三元组中的一个元素用于标识场所,第二个元素和第三个元素用于分别标识某项特性属性和对应的属性程度,通常一个询问语句中若包括多种属性和对应的属性程度,那么该询问语句通过多个三元组标识其关键词状态。例如,若询问语句为“城北面积最大的佛学书店是哪一家?”,那么依照上述构建三元组的规则,该询问语句对应的关键词状态为“书店-位置-城北,书店-面积-大,书店-种类-佛学”,即询问语句中包括多少属性描述,则构建的状态关键词中有多少个三元组。而第二轮询问语句问的是当前书店的营业时间,由于营业时间是书店的基本信息,存储于结构化数据库,因此,在第一轮询问语句搜索出诚品书店后,诚品书店对应的基本信息也会从结构化数据库中直接提取出来,刚好第二轮询问语句问的是“营业时间”这种基本信息,于是,第二轮询问不会生成新的三元组用于更新原来的状态关键词,维持第一轮的状态关键词“书店-位置-城北,书店-面积-最大”,第三轮询问语句问书店是否可以携带宠物,由于携带宠物的相关规定不属于书店的基本信息,被存储于非结构化数据库,因此,第三轮询问语句会生成对应的非结构化三元组用于更新前轮次询问答复的状态关键词,第三轮次询问的状态关键词被更新为“书店-位置-城北,书店-面积-最大,书店-ruk-诚品书店,携带宠物”,每一轮的状态都是在前轮次状态基础上的更新,因此,状态关键词里面的三元组通常会随着轮次的增加而增加。在训练过程中对于逐渐增加元素的状态关键词会提前使用一个高维度向量进行存储,对于初期元素小于该高维度的状态关键词,采用padding方式对高维度向量后面空出部分补零。

以上举例只是对话数据集中的一个对话数据,而对话数据集由大量的对话数据构建,该大量对话数据可以是人工构建,也可以是基于预设规则写成代码自动生成,用于训练的对话数据需要确定就是状态关键词中的状态三元组每一组元素对应范围的训练,例如,上述例子给出的状态关键词中的三元组对应的约束范围分别是场所、属性、属性值,以上述状态关键词的提取方法对于“城中心最便宜的意大利餐厅”就会提取出“餐厅-种类-意大利,餐厅-位置-城中心,餐厅-价格-便宜”这样的状态关键词,因此,用于训练的对话数据的构建过程中需要注意状态关键词标签制作时满足统一的约束范围。

本发明提供的基于混合知识管理的对话方法,通过将当前轮次询问语句和对话模型上一轮次输出的回复语句拼接后进行向量化预处理,得到输入向量;将所述输入向量和所述对话模型上一轮次输出状态关键词向量输入所述对话模型,输出当前轮次的回复语句和状态关键词向量;其中,所述对话模型是基于对话数据集进行训练得到的,所述对话数据集中的每个对话数据均包括多轮询问语句样本,对应的多轮回复语句标签和多轮状态关键词标签,所述对话模型训练时以所述对话数据为单位进行训练,所述询问语句样本为结构化分词语句或非结构化分词语句。由于在对话模型的训练过程中使用的询问语句样本有结构化和非结构化的,因此,训练出的对话模型也有提取非结构化询问语句的状态关键词的功能,如此,对话模型获取了处理非结构化询问语句的能力。因此,本发明实施例提供的方法,能处理用户非结构化的询问语句并生成相应的回复语句,扩大了能处理的自然语言的范围。

基于上述实施例,该方法中,

所述对话模型的网络结构包括依次连接的上下文编码器、状态关键词解码器、混合知识管理库、文档编码器和回复解码器,所述对话模型还包括状态关键词编码器,所述状态关键词解码器、所述状态关键词编码器和所述回复解码器依次连接。

具体地,所述对话模型的网络结构中包括依次连接的上下文编码器、状态关键词解码器、混合知识管理库、文档编码器和回复解码器,所述对话模型还包括状态关键词编码器,所述状态关键词解码器、所述状态关键词编码器和所述回复解码器依次连接。图2为本发明提供的对话模型的网络结构示意图,如图2所示,上下文编码器连接状态关键词解码器和回复解码器,状态关键词解码器、混合知识管理库、文档编码器和回复编码器依次连接,状态关键词解码器、状态关键词编码器和回复解码器依次连接。其中,状态关键词编码器和状态关键词解码器互为关联编解码器,上下文编码器、状态关键词编码器、文档编码器和最后的回复解码器也互为三对一的编解码器,对对话模型的训练相当于对两组编解码器的训练,其中一组是一对一的状态关键词编码器和状态关键词解码器,另外一组是三对一的上下文编码器、状态关键词编码器、文档编码器和最后的回复解码器。

基于上述实施例,该方法中,所述对话模型的网络结构包括依次连接的上下文编码器、状态关键词解码器、混合知识管理库、文档编码器和回复解码器,所述对话模型还包括状态关键词编码器,所述状态关键词解码器、所述状态关键词编码器和所述回复解码器依次连接,具体包括:

所述对话模型的训练过程中,

所述上下文编码器将输入向量进行编码输出查询向量至所述回复解码器和所述状态关键词解码器,所述输入向量基于上一轮次的回复语句标签和当前轮次询问语句拼接后进行向量化预处理得到;

所述状态关键词解码器将上一轮次输出状态关键词向量进行解码输出预测状态关键词;

将当前轮次的状态关键词标签输入所述混合知识管理库输出查询结果至所述文档编码器,所述文档编码器输出查询结果向量至所述回复解码器;

将当前轮次的状态关键词标签输入所述状态关键词编码器进行编码生成当前轮次的状态关键词向量,所述状态关键词向量用于输入所述回复解码器和下一轮次的所述状态关键词解码器;

所述回复解码器基于输入的所述查询结果向量、查询向量和所述状态关键词向量进行解码输出当前轮次的预测回复语句。

具体地,如图2所示,图中除了展示了对话模型中的主要部件,还展示了数据的流向,其中,在训练过程中,整个对话模型的训练是将两组编解码器一起训练的,其中一组编解码器是状态关键词解码器和状态关键词编码器,另外一组编解码器是上下文编码器、状态关键词编码器、文档编码器和最后的回复解码器,针对两组编解码器,也提供了两种标签,状态关键词标签用于计算状态关键词解码器输出的预测状态关键词和真实状态关键词(即状态关键词标签)之间的误差,状态关键词标签还用于作为训练所述另外一组编解码器的输入样本,即回复解码器连接的文档编码器和状态关键词编码器的输入都是状态关键词标签。如此,可以在两组编解码器在共用上下文编码器的输出结果的情况下做到一定的独立训练,不然训练过程中状态关键词编解码器的误差会造成回复编解码器的额外误差,两者之间耦合过于严重,无法得到准确的训练结果。

训练完成后,使用对话模型时,不需要再引入状态关键词标签,只需要有询问语句的不断输入,回复语句生成过程中,状态关键词解码器就会生成当前轮次询问的状态关键词,然后该状态关键词输入至混合知识库和状态关键词编码器,混合知识库输出查询得到的回复结果,状态关键词编码器输出当前轮次的状态关键词向量。然后,回复解码器基于上下文编码器输出的查询向量、文档编码器输出的查询结果向量和状态关键词编码器输出的状态关键词向量进行解码生成自然回复语句,状态关键词编码器输出的状态关键词向量用于下一轮次的询问回复作为输入回传至状态关键词解码器。图2中rt-1为上一轮次询问答复的答复语句,rt为对话模型输出的当前轮次询问答复的答复语句,ut为当前轮次询问答复输入的询问语句,rt-1°ut为将当前轮次询问语句ut和对话模型上一轮次输出的回复语句rt-1拼接后进行向量化预处理得到的输入向量,为状态关键词解码器生成的当前轮次的状态关键词,为上一轮次询问答复时对话模型输出的状态关键词向量,为当前轮次询问答复时对话模型输出的状态关键词向量,mt为所述混合知识管理库输出的针对结构化询问语句对应的三元组状态关键词搜索所述混合知识管理库中的结构化知识库得到的结构化回复结果,dt为所述混合知识管理库输出的针对非结构化询问语句对应的缺省三元组状态关键词搜索所述混合知识管理库中的非结构化知识库得到的非结构化回复结果,dt经过文档编码器的编码后得到与mt同规则的编码,然后将mt和编码后的dt都输入所述回复解码器,最终回复解码器基于上下文编码器输出的查询向量、文档编码器输出的查询结果向量和状态关键词编码器输出的状态关键词向量进行解码,生成自然语言的回复语句。

下面针对对话模型的使用,使用更具体的数学公式进行描述:

a、以序列到序列(seq2seq)的方式生成一个扩展的状态关键词;

b、根据扩展的状态关键词进行混合式知识操作(hybridknowledgeoperations);

c、根据对话上下文以及步骤a和b的输出结果,以序列到序列(seq2seq)的方式生成自然语言回复。

进一步地,所述步骤a具体是通过执行以下步骤实现的:

a1:对于每一轮对话,使用一个上下文编码器(contextencoder)将输入系统的用户语句ut连同前一轮的系统回复rt-1进行编码。

a2:基于步骤a1的编码结果以及前一轮编码的扩展状态关键词使用一个状态关键词解码器(beliefstatedecoder)生成当前轮次扩展的状态关键词训练对话模型构建训练数据集时定义的扩展状态关键词在不同类型的对话轮次中包含不同的内容。

a21:在基于结构化知识的对话轮次中,扩展的状态关键词与一般的状态关键词相同,包含多个对话领域(domain)-属性槽(slot)-属性值(value)三元组,例如“餐厅-价格-便宜”,用以表示追踪到的用户意图。

a22:在基于非结构化知识的对话轮次中,扩展的状态关键词包含有一个额外的属性槽“ruk”,用以表示当前对话需要参考非结构化知识进行处理,它与当前轮次涉及的对话领域(domain)和实体名(entityname)构成一个额外的三元组,例如“餐厅-ruk-必胜客”。此外,还包含一个额外的字词序列,用以描述当前轮次中用户语句的主题(topic),例如“菜品最受喜爱”。

步骤a可以公式化为:

进一步地,所述步骤b具体是通过执行以下步骤实现的:

b1:根据扩展状态关键词中的三元组信息查询结构化数据库,得到条目匹配结果mt。

b2:根据扩展状态关键词中与属性槽“ruk”关联的对话领域和实体名,并结合中用户语句的主题,搜索非结构化知识(文档)库,得到相关的非结构化知识(文档)dt。非结构化知识库中的知识(文档)被按照不同的对话领域和相关实体进行了分类。为了便于搜索,我们也对这些知识(文档)进行了预处理,提取了其中的关键词作为其主题,用以和进行匹配。

进一步地,所述步骤c具体是通过执行以下步骤实现的:

c1:使用一个状态关键词编码器(beliefstateencoder)将扩展的状态关键词编码为隐状态向量

c2:使用一个文档编码器(documentencoder)将步骤b2中搜索得到的非结构化知识(文档)dt编码为隐状态向量

c3:基于步骤a1、c1、c2的编码结果,以及步骤b1的输出结果,使用一个自然语言回复解码器(responsedecoder)生成当前轮次的系统自然语言恢复rt。

步骤c可以公式化为:

对话模型在进行模型训练时,所有的seq2seq结构都采用有监督的训练方式。首先根据数据集中提供的非结构化对话轮次及其相关知识,进行状态关键词标签的扩展。之后以扩展后的状态关键词标签和数据集中提供的标准系统回复作为训练参考,计算它们与解码器生成的预测值之间的误差,之后将各个误差相加得到最终的损失函数,进行端到端的联合优化。

基于上述实施例,该方法中,所述对话模型训练过程中,任一对话数据中的每一轮次的询问回复训练结果均用于调节下一轮次的神经网络中的待优化参数;

其中,为任一轮次的预测状态关键词在第i个位置分词的状态标签对应的向量,pb,i为所述任一轮次的状态关键词标签在第i个位置分词的状态标签对应的向量,为所述任一轮次的预测回复语句在第i个位置分词的回复标签对应的向量,pr,i为所述任一轮次的回复语句标签在第i个位置分词的回复标签对应的向量,tb为所述预测状态关键词包括的分词数量,tr为所述预测回复语句包括的分词数量。

具体地,对话模型的训练过程,可以是任一对话数据进行训练时,每一轮次询问回复输出的预测值和标签值之间的误差都用来调节下一轮次询问回复的训练的神经网络中的待优化参数。如此,对话模型训练过程中的损失函数l通过如下公式计算:

其中,为任一轮次的预测状态关键词在第i个位置分词的状态标签对应的向量,pb,i为所述任一轮次的状态关键词标签在第i个位置分词的状态标签对应的向量,为所述任一轮次的预测回复语句在第i个位置分词的回复标签对应的向量,pr,i为所述任一轮次的回复语句标签在第i个位置分词的回复标签对应的向量,tb为所述预测状态关键词包括的分词数量,tr为所述预测回复语句包括的分词数量。

上述调节属于比较精细的调节,从询问回复的每一轮次出发进行调节,对话中任一轮次回复的结果都会马上反应到下一轮次的询问回复对对话模型的训练中。其中,tb为所述预测状态关键词包括的分词数量,预测状态关键词和同一轮次的状态关键词标签中分词数量相同,因此,同一轮次的状态关键词标签包括的分词数量也是tb,可以将每个分词对应的交叉熵进行同一数量的累加,同理,tr为所述预测回复语句包括的分词数量,预测回复语句和同一轮次的回复语句标签中分词标签数量相同,因此,同一轮次的回复语句标签包括的分词标签数量也是tb,可以将每个分词对应的交叉熵进行同一数量的累加。

基于上述实施例,该方法中,所述对话模型训练过程中,对于任一对话数据,所有轮次询问回复训练结果总合用于调节下一对话数据进行训练时的神经网络中的待优化参数;

对应地,所述对话模型训练过程中的损失函数l通过如下公式计算:

其中,为任一对话数据第t轮次的预测状态关键词在第i个位置分词的状态标签对应的向量,为所述任一对话数据第t轮次的状态关键词标签在第i个位置分词的状态标签对应的向量,为任一对话数据第t轮次的的预测回复语句在第i个位置分词的回复标签对应的向量,为任一对话数据第t轮次的的回复语句标签在第i个位置分词的回复标签对应的向量,所述第i轮次的状态关键词标签对应的向量,tb为所述预测状态关键词包括的分词数量,tr为所述预测回复语句包括的分词数量,t=1,2,…,n,n为所述任一对话数据中询问回复次数。

具体地,对话模型的训练过程,可以是任一对话数据进行训练时,将该对话数据所有预测值和标签值进行统一误差计算后再进行对话模型的神经网络中的待优化参数的调整。即在一个对话数据进行训练时,其中不论训练到哪一轮次的询问回复,对话模型的神经网络的待优化参数不变,只有进行下一个对话数据的训练时,才将当前对话数据训练时积累的误差求和得到误差总和,用于调节下一对话数据训练时使用的对话模型神经网络的待优化参数。对应地,所述对话模型训练过程中的损失函数l通过如下公式计算:

其中,为任一对话数据第t轮次的预测状态关键词在第i个位置分词的状态标签对应的向量,为所述任一对话数据第t轮次的状态关键词标签在第i个位置分词的状态标签对应的向量,为任一对话数据第t轮次的的预测回复语句在第i个位置分词的回复标签对应的向量,为任一对话数据第t轮次的的回复语句标签在第i个位置分词的回复标签对应的向量,所述第i轮次的状态关键词标签对应的向量,tb为所述预测状态关键词包括的分词数量,tr为所述预测回复语句包括的分词数量,t=1,2,…,n,n为所述任一对话数据中询问回复次数。

上述调节属于比较粗的调节,从对话数据整体出发进行调节,只有一个对话数据中的所有轮次询问回复都训练完,采用累积的误差总和去调节下一个用于训练对话模型的对话数据使用的神经网络中的待优化参数。其中,tb为所述预测状态关键词包括的分词数量,预测状态关键词和同一轮次的状态关键词标签中分词数量相同,因此,同一轮次的状态关键词标签包括的分词数量也是tb,可以将每个分词对应的交叉熵进行同一数量的累加,同理,tr为所述预测回复语句包括的分词数量,预测回复语句和同一轮次的回复语句标签中分词标签数量相同,因此,同一轮次的回复语句标签包括的分词标签数量也是tb,可以将每个分词对应的交叉熵进行同一数量的累加。

还可选地,对话模型在进行模型训练时,所有的seq2seq结构都采用有监督的训练方式。首先根据数据集中提供的非结构化对话轮次及其相关知识,进行对话状态标签的扩展。之后以扩展后的对话状态标签和数据集中提供的标准系统回复作为训练参考,计算它们与解码器生成的概率分布之间的交叉熵,之后将各个交叉熵相加得到最终的损失函数,进行端到端的联合优化,该方案中,以交叉熵作为构建损失函数的方式。

基于上述实施例,该方法中,所述上下文编码器的网络结构为双向gru;

对应地,所述状态关键词解码器的网络结构为单向gru,所述状态关键词编码器的网络结构为双向gru,所述回复解码器的网络结构为单向gru,所述文档编码器的网络结构为双向gru。

具体地,编码器优选双向gru,对应的解码器优选单向gru,更进一步,所述上下文编码器的网络结构为1且隐层神经元数量为200的双向gru,所述状态关键词解码器的网络结构为层数为1且隐层神经元数量为200的单向gru,所述状态关键词编码器的网络结构为1且隐层神经元数量为200的双向gru,所述回复解码器的网络结构为1且隐层神经元数量为200的单向gru,所述文档编码器的网络结构为1且隐层神经元数量为200的双向gru。

基于上述实施例,该方法中,所述状态关键词编码器和所述状态关键词解码器之间使用了注意力机制和拷贝机制,所述上下文编码器、所述文档编码器、所述状态关键词编码器和所述回复解码器之间使用了注意力机制和拷贝机制。

具体地,在基于序列到序列(seq2seq)的模型框架下,对话模型在各个编码器与解码器之间应用了注意(attention)和拷贝(copy)机制,这使得各个解码器可以更充分的利用输入编码器的序列信息(例如从“我要找一家便宜的餐馆”中着重注意或拷贝关键词“餐馆”和“便宜”),从而增强解码器对于对话上下文的认知与理解,提高其解码对话状态和自然语言回复的准确率。

基于上述实施例,本发明提供一种使用已经训练完成的对话模型完成一次对话的举例说明。

假设在某一次对话中,用户在第一轮输入“我想找一家便宜的餐厅吃饭。”,得到相应的餐厅推荐后,接着在第二轮询问“这家餐厅最受顾客喜爱的菜是什么?”,以此为例,本发明通过以下s1到s8步骤所述的技术方案来进行实施:

s1:系统对用户第一轮的输入进行分词、向量化等预处理后,使用层数为1、隐层神经元数量为200的双向gru作为上下文编码器对用户语句进行编码。

s2:基于步骤s1的编码结果,系统判断当前对话轮次基于结构化知识,并使用层数为1、隐层神经元数量为200的单向gru作为对话状态解码器生成对话状态,表示为三元组“餐厅-价格-便宜”。

s3:系统使用步骤s2解码得到的三元组作为约束查询结构化数据库,得到符合条件的餐厅匹配结果。

s4:系统使用层数为1、隐层神经元数量为200的双向gru作为对话状态编码器对步骤s2生成的对话状态进行编码,并结合步骤s1的编码结果和步骤s3的查询结果,利用层数为1、隐层神经元数量为200的单向gru作为自然语言回复解码器生成回复“必胜客是一家便宜的餐馆。您还有什么问题吗?”

s5:系统将用户在第二轮的输入与前一轮(步骤s4)生成的回复进行拼接,进行分词、向量化等预处理后,使用上下文编码器编码。

s6:基于步骤s5的编码结果,系统判断当前对话轮次基于非结构化知识,并结合前一轮(步骤s4)编码的对话状态,使用对话状态解码器生成更新的对话状态,表示为“餐厅-价格-便宜,餐厅-ruk-必胜客,最受喜爱”。

s7:基于步骤s6生成的对话状态中扩展的部分,系统在非结构化文档库中进行搜索,得到有关的最喜爱菜品的顾客评价作为搜索到的相关文档。

s8:系统使用层数为1、隐层神经元数量为200的双向gru作为文档编码器对步骤s7查询得到的相关文档进行编码,并用对话状态编码器对步骤s6更新的对话状态进行编码,再结合步骤s5的编码结果,用自然语言回复解码器生成回复“超级至尊披萨在必胜客非常受欢迎,您可以尝试一下。”

基于上述实施例,本发明提供使用混合式知识管理进行任务型对话的示例,图3为本发明提供的使用混合式知识管理进行任务型对话的示例图,如图3所示,用户输入询问语句“帮我在城中心找一家便宜的意大利餐馆”,对话模型提取对应的状态关键词(extendedbeliefstate)“餐厅-种类-意大利,餐厅-位置-城中心,餐厅-价格-便宜”,由于询问语句为结构化语句,于是生成了对应的三元组状态,使用该三元组状态去结构化数据库(structureddatabase)中进行回复结果的搜索,搜索结果为“必胜客餐馆”,然后机器组织成自然语言回复“必胜客是城中心最便宜的意大利餐馆,还有其他需要我帮您的吗?”,用户接着问“这个餐馆的最受喜爱的菜品是什么?”,对话模型提取对应的状态关键词,由于当前的询问语句不是结构化语句,因此,提取出的状态关键词也不是标准三元组,而是非结构标识“ruk”的状态关键词“餐厅-种类-意大利,餐厅-位置-城中心,餐厅-价格-便宜,餐厅-ruk-必胜客餐馆,最受喜爱的菜品”,使用该不规则状态关键词去非结构化数据库中搜索回复结果,得到“至尊披萨”搜索结果,然后机器组织成自然语言回复“必胜客餐馆中最受喜爱的菜品是至尊披萨”。

下面对本发明提供的基于混合知识管理的对话装置进行描述,下文描述的基于混合知识管理的对话装置与上文描述的一种基于混合知识管理的对话方法可相互对应参照。

图4为本发明提供的基于混合知识管理的对话装置的结构示意图,如图4所示,包括预处理单元410和回复单元420,其中,

所述预处理单元410,用于将当前轮次询问语句和对话模型上一轮次输出的回复语句拼接后进行向量化预处理,得到输入向量;

所述回复单元420,用于将所述输入向量和所述对话模型上一轮次输出状态关键词向量输入所述对话模型,输出当前轮次的回复语句和状态关键词向量;

其中,所述对话模型是基于对话数据集进行训练得到的,所述对话数据集中的每个对话数据均包括多轮询问语句样本,对应的多轮回复语句标签和多轮状态关键词标签,所述对话模型训练时以所述对话数据为单位进行训练,所述询问语句样本为结构化分词语句或非结构化分词语句。

本发明提供的基于混合知识管理的对话装置,通过将当前轮次询问语句和对话模型上一轮次输出的回复语句拼接后进行向量化预处理,得到输入向量;将所述输入向量和所述对话模型上一轮次输出状态关键词向量输入所述对话模型,输出当前轮次的回复语句和状态关键词向量;其中,所述对话模型是基于对话数据集进行训练得到的,所述对话数据集中的每个对话数据均包括多轮询问语句样本,对应的多轮回复语句标签和多轮状态关键词标签,所述对话模型训练时以所述对话数据为单位进行训练,所述询问语句样本为结构化分词语句或非结构化分词语句。由于在对话模型的训练过程中使用的询问语句样本有结构化和非结构化的,因此,训练出的对话模型也有提取非结构化询问语句的状态关键词的功能,如此,对话模型获取了处理非结构化询问语句的能力。因此,本发明实施例提供的装置,能处理用户非结构化的询问语句并生成相应的回复语句,扩大了能处理的自然语言的范围。

在上述实施例的基础上,该装置中,

所述对话模型的网络结构包括依次连接的上下文编码器、状态关键词解码器、混合知识管理库、文档编码器和回复解码器,所述对话模型还包括状态关键词编码器,所述状态关键词解码器、所述状态关键词编码器和所述回复解码器依次连接。

在上述实施例的基础上,该装置中,

所述对话模型的网络结构包括依次连接的上下文编码器、状态关键词解码器、混合知识管理库、文档编码器和回复解码器,所述对话模型还包括状态关键词编码器,所述状态关键词解码器、所述状态关键词编码器和所述回复解码器依次连接,具体包括:

所述对话模型的训练过程中,

所述上下文编码器将输入向量进行编码输出查询向量至所述回复解码器和所述状态关键词解码器,所述输入向量基于上一轮次的回复语句标签和当前轮次询问语句拼接后进行向量化预处理得到;

所述状态关键词解码器将上一轮次输出状态关键词向量进行解码输出预测状态关键词;

将当前轮次的状态关键词标签输入所述混合知识管理库输出查询结果至所述文档编码器,所述文档编码器输出查询结果向量至所述回复解码器;

将当前轮次的状态关键词标签输入所述状态关键词编码器进行编码生成当前轮次的状态关键词向量,所述状态关键词向量用于输入所述回复解码器和下一轮次的所述状态关键词解码器;

所述回复解码器基于输入的所述查询结果向量、查询向量和所述状态关键词向量进行解码输出当前轮次的预测回复语句。

在上述实施例的基础上,该装置中,

所述对话模型训练过程中,任一对话数据中的每一轮次的询问回复训练结果均用于调节下一轮次的神经网络中的待优化参数;

对应地,所述对话模型训练过程中的损失函数l通过如下公式计算:

其中,为任一轮次的预测状态关键词在第i个位置分词的状态标签对应的向量,pb,i为所述任一轮次的状态关键词标签在第i个位置分词的状态标签对应的向量,为所述任一轮次的预测回复语句在第i个位置分词的回复标签对应的向量,pr,i为所述任一轮次的回复语句标签在第i个位置分词的回复标签对应的向量,tb为所述预测状态关键词包括的分词数量,tr为所述预测回复语句包括的分词数量。

在上述实施例的基础上,该装置中,

所述对话模型训练过程中,对于任一对话数据,所有轮次询问回复训练结果总合用于调节下一对话数据进行训练时的神经网络中的待优化参数;

对应地,所述对话模型训练过程中的损失函数l通过如下公式计算:

其中,为任一对话数据第t轮次的预测状态关键词在第i个位置分词的状态标签对应的向量,为所述任一对话数据第t轮次的状态关键词标签在第i个位置分词的状态标签对应的向量,为任一对话数据第t轮次的的预测回复语句在第i个位置分词的回复标签对应的向量,为任一对话数据第t轮次的的回复语句标签在第i个位置分词的回复标签对应的向量,所述第i轮次的状态关键词标签对应的向量,tb为所述预测状态关键词包括的分词数量,tr为所述预测回复语句包括的分词数量,t=1,2,…,n,n为所述任一对话数据中询问回复次数。

在上述实施例的基础上,该装置中,

所述上下文编码器的网络结构为双向gru;

对应地,所述状态关键词解码器的网络结构为单向gru,所述状态关键词编码器的网络结构为双向gru,所述回复解码器的网络结构为单向gru,所述文档编码器的网络结构为双向gru。

在上述实施例的基础上,该装置中,

所述状态关键词编码器和所述状态关键词解码器之间使用了注意力机制和拷贝机制,所述上下文编码器、所述文档编码器、所述状态关键词编码器和所述回复解码器之间使用了注意力机制和拷贝机制。

图5为本发明提供的一种电子设备的实体结构示意图,如图5所示,该电子设备可以包括:处理器(processor)510、通信接口(communicationsinterface)520、存储器(memory)530和通信总线540,其中,处理器510,通信接口520,存储器530通过通信总线540完成相互间的通信。处理器510可以调用存储器530中的逻辑指令,以执行基于混合知识管理的对话方法,该方法包括:将当前轮次询问语句和对话模型上一轮次输出的回复语句拼接后进行向量化预处理,得到输入向量;将所述输入向量和所述对话模型上一轮次输出状态关键词向量输入所述对话模型,输出当前轮次的回复语句和状态关键词向量;其中,所述对话模型是基于对话数据集进行训练得到的,所述对话数据集中的每个对话数据均包括多轮询问语句样本,对应的多轮回复语句标签和多轮状态关键词标签,所述对话模型训练时以所述对话数据为单位进行训练,所述询问语句样本为结构化分词语句或非结构化分词语句。

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

另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法所提供的基于混合知识管理的对话方法,该方法包括:将当前轮次询问语句和对话模型上一轮次输出的回复语句拼接后进行向量化预处理,得到输入向量;将所述输入向量和所述对话模型上一轮次输出状态关键词向量输入所述对话模型,输出当前轮次的回复语句和状态关键词向量;其中,所述对话模型是基于对话数据集进行训练得到的,所述对话数据集中的每个对话数据均包括多轮询问语句样本,对应的多轮回复语句标签和多轮状态关键词标签,所述对话模型训练时以所述对话数据为单位进行训练,所述询问语句样本为结构化分词语句或非结构化分词语句。

又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的基于混合知识管理的对话方法,该方法包括:将当前轮次询问语句和对话模型上一轮次输出的回复语句拼接后进行向量化预处理,得到输入向量;将所述输入向量和所述对话模型上一轮次输出状态关键词向量输入所述对话模型,输出当前轮次的回复语句和状态关键词向量;其中,所述对话模型是基于对话数据集进行训练得到的,所述对话数据集中的每个对话数据均包括多轮询问语句样本,对应的多轮回复语句标签和多轮状态关键词标签,所述对话模型训练时以所述对话数据为单位进行训练,所述询问语句样本为结构化分词语句或非结构化分词语句。

以上所描述的服务器实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

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

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

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