首页 / 专利库 / 人工智能 / 对话语料库 / 人机对话方法及装置

人机对话方法及装置

阅读:213发布:2020-05-15

专利汇可以提供人机对话方法及装置专利检索,专利查询,专利分析的服务。并且本 申请 提出一种人机对话方法及装置,其中,该方法包括:确定对话目标信息,并获取对话目标信息的多个知识信息和引导信息,以及结合对话目标信息的引导信息向用户发起对话交互,并根据对话目标信息与用户进行多轮对话交互,以及在多轮对话交互的第N轮对话过程中,针对每轮对话,根据所述第N轮对话之前的历史对话信息、所述对话目标信息和所述多个知识信息,确定第N轮对话中用户输入对话信息的目标回复信息。由此,在 人机交互 的过程中,使得人机 对话系统 中的机器可主动发起主动对话,并基于对话目标信息对人机交互过程进行主动引导,提高了人机交互中机器的主动交互能 力 ,进而提高了人机交互的智能性,提高了人机交互的用户体验度。,下面是人机对话方法及装置专利的具体信息内容。

1.一种人机对话方法,其特征在于,所述方法包括:
确定对话目标信息;
获取所述对话目标信息对应的必要信息,所述必要信息包括引导信息和多个知识信息;
基于所述引导信息向用户发起对话交互,并根据所述对话目标信息与所述用户进行多轮对话交互;
在所述多轮对话交互的第N轮对话过程中,根据所述第N轮对话之前的历史对话信息、所述对话目标信息和所述多个知识信息,确定所述第N轮对话中用户输入对话信息的目标回复信息,N为正整数。
2.根据权利要求1所述的方法,其特征在于,所述必要信息还包括对话目标类型,则所述根据所述第N轮对话之前的历史对话信息、所述对话目标信息和所述多个知识信息,确定所述第N轮对话中用户输入对话信息的目标回复信息,包括:
根据预设的对话语料库和所述对话目标类型,确定所述对话信息的多个候选回复信息;
将多个候选回复信息中的第M个候选回复信息、所述第N轮对话之前的历史对话信息和所述对话信息进行拼接处理,得到输入文本信息,M为正整数;
将所述输入文本信息、所述对话目标信息和所述多个知识信息输入至预先训练的第一对话模型中,通过所述第一对话模型确定所述第M个候选回复信息作为所述目标回复信息的概率值,并从所述多个候选回复信息中,选择概率值最大的候选回复信息作为所述目标回复信息并输出。
3.根据权利要求2所述的方法,其特征在于,所述第一对话模型包括注意层和输出层
所述通过所述第一对话模型确定所述第M个候选回复信息作为所述目标回复信息的概率值,包括:
根据所述输入文本信息、所述对话目标信息和所述多个知识信息,通过所述注意力层从多个知识信息中确定出回复所述对话信息所使用的目标知识信息;
根据所述目标知识信息,通过所述输出层确定所述第M个候选回复信息作为所述目标回复信息的概率值,并从所述多个候选回复信息中,选择概率值最大的候选回复信息作为所述目标回复信息并输出。
4.根据权利要求1所述的方法,其特征在于,所述根据第N轮对话的历史对话信息、所述对话目标信息和所述多个知识信息,确定第N轮对话中用户输入对话信息的目标回复信息,包括:
将所述对话目标信息、所述历史对话信息和所述对话信息进行拼接处理,得到输入文本信息;
将所述输入文本信息和所述多个知识信息输入至预先训练的第二对话模型,得到所述对话信息的目标回复信息。
5.根据权利要求4所述的方法,其特征在于,所述第二对话模型包括第一编码层、第二编码层、注意力层和编码层,所述将所述输入文本信息和所述多个知识信息输入至预先训练的第二对话模型,得到所述对话信息的目标回复信息,包括:
将所述输入文本信息输入至所述第一编码层,得到所述输入文本信息的第一表示向量;
将所述多个知识信息输入至所述第二编码层,得到每个所述知识信息的第二表示向量;
将所述第一表示向量和所述第二表示向量输入至所述注意力层,通过所述注意力层从所述第二表示向量中确定出用于回复所述对话信息的第三表示向量,并确定出所述第三表示向量的位置权重;
将所述第三表示向量以及所述位置权重输入至所述编码层,以生成所述对话信息的目标回复信息。
6.根据权利要求4或5所述的方法,其特征在于,在所述输入文本信息和所述多个知识信息输入至预先训练的第二对话模型,得到所述对话信息的目标回复信息之前,还包括:
根据预设的对话语料库,获取对话目标样本数据的样本对话信息,并获取所述样本对话信息对应的样本回复信息和对话历史样本数据;
将所述对话目标样本数据、样本对话信息和对话历史样本数据进行拼接处理,得到样本输入信息;
获取所述对话目标样本数据的知识信息;
根据所述对话目标样本数据的知识信息、样本输入信息以及与所述样本对话信息对应的样本回复信息,对所述第二对话模型进行训练,直至所述第二对话模型输出的回复信息与所述样本对话信息的样本回复信息匹配时,所述第二对话模型训练完成。
7.一种人机对话装置,其特征在于,所述装置包括:
确定模,用于确定对话目标信息;
第一获取模块,用于获取所述对话目标信息对应的必要信息,所述必要信息包括引导信息和多个知识信息;
对话交互模块,用于基于所述引导信息向用户发起对话交互,并根据所述对话目标信息与所述用户进行多轮对话交互;
回复确定模块,用于在所述多轮对话交互的第N轮对话过程中,根据所述第N轮对话之前的历史对话信息、所述对话目标信息和所述多个知识信息,确定所述第N轮对话中用户输入对话信息的目标回复信息,N为正整数。
8.根据权利要求7所述的装置,其特征在于,所述必要信息还包括对话目标类型,所述回复确定模块,包括:
第一确定单元,用于根据预设的对话语料库和所述对话目标类型,确定所述对话信息的多个候选回复信息;
第一拼接单元,用于将多个候选回复信息中的第M个候选回复信息、所述第N轮对话之前的历史对话信息和所述对话信息进行拼接处理,得到输入文本信息,M为正整数;
输入单元,用于将所述输入文本信息、所述对话目标信息和所述多个知识信息输入至预先训练的第一对话模型中,
第二确定单元,用于将所述输入文本信息、所述对话目标信息和所述多个知识信息输入至预先训练的第一对话模型中,通过所述第一对话模型确定所述第M个候选回复信息作为所述目标回复信息的概率值,并从所述多个候选回复信息中,选择概率值最大的候选回复信息作为所述目标回复信息并输出。
9.根据权利要求8所述的装置,其特征在于,所述第一对话模型包括注意力层和输出层;
所述第二确定单元,具体用于:
根据所述输入文本信息、所述对话目标信息和所述多个知识信息,通过所述注意力层从多个知识信息中确定出回复所述对话信息所使用的目标知识信息;
根据所述目标知识信息,通过所述输出层确定所述第M个候选回复信息作为所述目标回复信息的概率值,并从所述多个候选回复信息中,选择概率值最大的候选回复信息作为所述目标回复信息并输出。
10.根据权利要求7所述的装置,其特征在于,所述回复确定模块,包括:
第二拼接单元,用于将所述对话目标信息、所述历史对话信息和所述对话信息进行拼接处理,得到输入文本信息;
第三确定单元,用于将所述输入文本信息和所述多个知识信息输入至预先训练的第二对话模型,得到所述对话信息的目标回复信息。
11.根据权利要求10所述的装置,其特征在于,所述第二对话模型包括第一编码层、第二编码层、注意力层和编码层,所述第三确定单元,具体用于:
将所述输入文本信息输入至所述第一编码层,得到所述输入文本信息的第一表示向量;
将所述多个知识信息输入至所述第二编码层,得到每个所述知识信息的第二表示向量;
将所述第一表示向量和所述第二表示向量输入至所述注意力层,通过所述注意力层从所述第二表示向量中确定出用于回复所述对话信息的第三表示向量,并确定出所述第三表示向量的位置权重;
将所述第三表示向量以及所述位置权重输入至所述编码层,以生成所述对话信息的目标回复信息。
12.根据权利要求10或11所述的装置,其特征在于,还包括:
第二获取模块,用于根据预设的对话语料库,获取对话目标样本数据的样本对话信息,并获取所述样本对话信息对应的样本回复信息和对话历史样本数据;
拼接模块,用于将所述对话目标样本数据、样本对话信息和对话历史样本数据进行拼接处理,得到样本输入信息;
第三获取模块,用于获取所述对话目标样本数据的知识信息;
训练模块,用于根据所述对话目标样本数据的知识信息、样本输入信息以及与所述样本对话信息对应的样本回复信息,对所述第二对话模型进行训练,直至所述第二对话模型输出的回复信息与所述样本对话信息的样本回复信息匹配时,所述第二对话模型训练完成。
13.一种电子设备,其特征在于,包括:
存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-6中任一所述的人机对话方法。
14.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-6中任一所述的人机对话方法。

说明书全文

人机对话方法及装置

技术领域

[0001] 本申请涉及人工智能技术领域,尤其涉及一种人机对话方法及装置。

背景技术

[0002] 人机对话系统是指人与机器通过自然语言进行信息交互的系统,目前市场上基于人机对话系统所提供的产品有很多,有的以个人助理形态出现(siri,度秘等),有的以聊天机器人出现,还有的则内置在智能音箱、智能车载设备、智能电视等终端内。
[0003] 人机对话系统的一般交互过程为:用户发起一个聊天,然后对话系统对用户输入的内容进行回答,这样一问一答,从而实现人机交互。也就是说,人机对话系统中的机器在接收到用户输入的问题信息后,根据该问题信息来输出对应的回复信息。由此,可以看出,相关技术中在进行人机交互的过程中,人机对话系统中的机器大多是被动对话形式,若用户不向人机对话系统不输入对话信息,人机对话系统无法人机之间的智能交互,用户的人机交互体验不理想。发明内容
[0004] 本申请旨在至少在一定程度上解决相关技术中的技术问题之一。
[0005] 为此,本申请的第一个目的在于提出一种人机对话方法。
[0006] 本申请的第二个目的在于提出一种人机对话装置。
[0007] 本申请的第三个目的在于提出一种电子设备。
[0008] 本申请的第四个目的在于提出一种计算机可读存储介质。
[0009] 本申请的第五个目的在于提出一种计算机程序产品。
[0010] 为达上述目的,本申请第一方面实施例提出了一种人机对话方法,包括:确定对话目标信息;获取所述对话目标信息对应的必要信息,所述必要信息包括引导信息和多个知识信息;基于所述引导信息向用户发起对话交互,并根据所述对话目标信息与所述用户进行多轮对话交互;在所述多轮对话交互的第N轮对话过程中,根据所述第N轮对话之前的历史对话信息、所述对话目标信息和所述多个知识信息,确定所述第N轮对话中用户输入对话信息的目标回复信息,N为正整数。
[0011] 本申请实施例的人机对话方法,确定对话目标信息,并获取对话目标信息的多个知识信息和引导信息,以及结合对话目标信息的引导信息向用户发起对话交互,并根据对话目标信息与用户进行多轮对话交互,以及在多轮对话交互的第N轮对话过程中,针对每轮对话,根据第N轮对话之前的历史对话信息、对话目标信息和多个知识信息,确定第N轮对话中用户输入对话信息的目标回复信息。由此,在人机交互的过程中,使得人机对话系统中的机器可主动发起主动对话,并基于对话目标信息对人机交互过程进行主动引导,提高了人机交互中机器的主动交互能,进而提高了人机交互的智能性,提高了人机交互的用户体验度。
[0012] 为达上述目的,本申请第三方面实施例提出了一种人机对话装置,包括:确定模,用于确定对话目标信息;第一获取模块,用于获取所述对话目标信息对应的必要信息,所述必要信息包括引导信息和多个知识信息;对话交互模块,用于基于所述引导信息向用户发起对话交互,并根据所述对话目标信息与所述用户进行多轮对话交互;回复确定模块,用于在所述多轮对话交互的第N轮对话过程中,根据所述第N轮对话之前的历史对话信息、所述对话目标信息和所述多个知识信息,确定所述第N轮对话中用户输入对话信息的目标回复信息,N为正整数。
[0013] 本申请实施例提供的人机对话装置,确定对话目标信息,并获取对话目标信息的多个知识信息和引导信息,以及结合对话目标信息的引导信息向用户发起对话交互,并根据对话目标信息与用户进行多轮对话交互,以及在多轮对话交互的第N轮对话过程中,针对每轮对话,根据第N轮对话之前的历史对话信息、对话目标信息和多个知识信息,确定第N轮对话中用户输入对话信息的目标回复信息。由此,在人机交互的过程中,使得人机对话系统中的机器可主动发起主动对话,并基于对话目标信息对人机交互过程进行主动引导,提高了人机交互中机器的主动交互能力,进而提高了人机交互的智能性,提高了人机交互的用户体验度。
[0014] 为达上述目的,本申请第三方面实施例提出了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上所述的人机对话方法。
[0015] 为了实现上述目的,本申请第四方面实施例提出了一种计算机可读存储介质,当所述存储介质中的指令被处理器执行时,实现如上所述的人机对话方法。
[0016] 为了实现上述目的,本申请第五方面实施例提出了一种计算机程序产品,当所述计算机程序产品中的指令处理器执行时,实现如上所述的资质审核方法。
[0017] 本申请附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。附图说明
[0018] 本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
[0019] 图1是根据本申请一个实施例的人机对话方法的流程示意图;
[0020] 图2是图1所示实施例中步骤104的细化流程示意图一;
[0021] 图3是训练第一对话模型的流程示意图;
[0022] 图4是第一对话模型的模型结构示例图;
[0023] 图5是图1所示实施例中步骤104的细化流程示意图二。
[0024] 图6是步骤502的细化流程示意图;
[0025] 图7是训练第二对话模型的流程示意图;
[0026] 图8是第二对话模型的模型结构示例图;
[0027] 图9是本申请一个具体实施例的人机对话方法的流程示意图;
[0028] 图10是根据本申请一个实施例的人机对话装置的结构示意图;
[0029] 图11是根据本申请另一个实施例的人机对话装置的结构示意图;
[0030] 图12是根据本申请另一个实施例的人机对话装置的结构示意图;
[0031] 图13是根据本申请另一个实施例的人机对话装置的结构示意图;
[0032] 图14是根据本申请一个实施例的电子设备的结构示意图。

具体实施方式

[0033] 下面详细描述本申请的实施例,实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本申请,而不能理解为对本申请的限制。
[0034] 相关技术中的人机对话系统中机器通常采用被动对话形式,如果人机对话系统中未接收到用户输入,人机对话系统中的机器无法引领用户进行主动对话。这种人机对话系统仅支持被动对话形式的交互方式,影响了用户的人机交互体验。
[0035] 为此,本申请提出了一种人机对话方法,该方法确定对话目标信息,并获取对话目标信息的必要信息,以及结合对话目标信息的引导信息向用户发起对话交互,并根据对话目标信息与用户进行多轮对话交互,以及在多轮对话交互的第N轮对话过程中,针对每轮对话,根据第N轮对话的历史对话信息、对话目标信息和多个知识信息,确定第N轮对话中用户输入对话信息的目标回复信息。由此,在人机交互的过程中,使得人机对话系统中的机器可主动发起主动对话,并基于对话目标信息对人机交互过程进行主动引导,提高了人机交互中机器的主动交互能力,进而提高了人机交互的智能性,提高了人机交互的用户体验度。
[0036] 下面参考附图描述本申请实施例的人机对话方法、装置和电子设备。
[0037] 图1是根据本申请一个实施例的人机对话方法的流程示意图。其中,需要说明的是,本实施例提供的人机对话方法应用在人机对话系统中,该人机对话方法的执行主体可以人机对话系统中机器的控制器,也可以为人机对话系统的服务器,该实施例对此不作限定。
[0038] 如图1所示,该人机对话方法可以包括:
[0039] 步骤101,确定对话目标信息。
[0040] 具体地,在确定需要人机对话系统中的机器发起主动对话,可确定机器发起主动对话所需要的对话目标信息。
[0041] 其中,确定需要机器发起主动对话的实现方式有多种,例如,用户通过触发相应控制控件来发送需要机器发起主动对话请求,或者,在检测到人机对话系统启动后的预设时间内没有接收到用户输入的对话信息,此时,可确定需要机器发起主动对话。
[0042] 在本申请的一个实施例中,为了使得所确定的对话目标信息满足用户需求,可确定待交互用户的兴趣信息,并结合该用户的兴趣信息,确定机器的对话目标信息。
[0043] 其中,对话目标信息包括人机对话系统中机器主动引领对话所需要的对话话题信息。
[0044] 对话话题信息可以包括一个对话话题,还可以包括多个话题。可以理解的是,在对话话题信息包括多个话题时,对话话题信息中还可以包括话题跳转指示信息,话题跳转指示信息用于表示多个话题的话题跳转顺序。
[0045] 对话话题可以包括但不限于经济、电影、小说等,该实施对对话话题不作限定。
[0046] 例如,通过分析用户的兴趣信息,确定用户喜欢看“明星A”演的电影,如果该明星A最近上映了一个新电影B,在确定需要机器发起主动对话时,可将该新电影B作为对话目标信息。
[0047] 步骤102,获取对话目标信息对应的必要信息,必要信息包括引导信息和多个知识信息。
[0048] 具体地,可根据预存的对话目标信息与必要信息之间的对应关系,获取该对话目标信息对应的必要信息。
[0049] 在本实施例中,在不同应用场景中,获取对话目标信息的多个知识信息的方式不同,举例说明如下:
[0050] 作为一种可能的实现方式,可根据预先保存的对话目标信息与知识信息之间的对应关系,获取该对话目标信息的多个知识信息。
[0051] 作为另一种可能的实现方式,可结合预先构建的知识图谱,获取该对话目标信息的多个知识信息。
[0052] 其中,知识图谱中由节点和边组成,知识图谱中保存了实体与实体之间的关系信息,以及每个实体各自对应的属性信息
[0053] 具体地,可确定出对话话题中的实体,并从预先构建的知识图谱获取该实体的属性信息,并将该实体的属性信息作为该对话目标信息的多个知识信息。
[0054] 接上例,在将新电影B作为对话目标信息后,如果知识图谱中电影B节点对应的属性信息包括上映时间信息、导演情况信息、评论情况信息、幕后花絮信息等,此时,根据知识图谱,可获取该新电影B的知识信息可以包括上映时间、导演情况、评论情况、幕后花絮信息等。
[0055] 其中,引导信息是根据对话目标信息中的对话话题预先设置的。
[0056] 可以理解的是,对话目标信息中对话话题的话题类型不同,其对应的引导信息通常是不同的,例如,话题类型为小说,对应的引导信息可以为“你喜欢看什么类型的小说?”,又例如,话题类型为电影,对应的引导信息可以为“你喜欢看什么类型的电影”等。
[0057] 在本实施例中,获取对话目标信息的引导信息的实现方式有多种,例如,可根据预先保存的对话目标信息与引导信息之间的对应关系,获取该对话目标信息的引导信息,或者,根据对话目标信息中对话话题的话题类型,基于预设引导信息生成规则,生成该对话目标信息的引导信息。
[0058] 步骤103,基于引导信息向用户发起对话交互,并根据对话目标信息与用户进行多轮对话交互。
[0059] 在本实施例中,在获取对话目标信息的引导信息后,可控制机器以引导信息向用户发起对话交互,并根据对话目标信息与用户进行多轮对话交互。
[0060] 其中,机器可以以语音和/或文字方式输出引导信息,以向用户发起主动对话交互。
[0061] 步骤104,在多轮对话交互的第N轮对话过程中,根据第N轮对话之前的历史对话信息、对话目标信息和多个知识信息,确定第N轮对话中用户输入对话信息的目标回复信息,N为正整数。
[0062] 其中,第N轮对话之前的历史对话信息为在第N轮对话之前,所有与对话目标信息有关的人机对话记录。
[0063] 在本实施例中,在多轮对话交互的第N轮对话过程中,根据第N轮对话的历史对话信息、对话目标信息和多个知识信息,确定第N轮对话中用户输入对话信息的目标回复信息的实现方式有多种,例如,可将第N轮对话的历史对话信息、对话目标信息和多个知识信息,输入到带复制机制的循环神经网络中输入与输出序列长度不同(Seq2Seq)模型中,通过Seq2Seq模型,确定第N轮对话中用户输入对话信息的目标回复信息。当然,在具体实现时,还可以采用其他方式确定出第N轮对话中用户输入对话信息的目标回复信息。
[0064] 关于步骤104的其他具体实现方式将在下述实施例中进行详细描述。
[0065] 在本申请的一个实施例中,为了通过Seq2Seq模型准确确定出对话信息所对应的目标回复信息,在使用Seq2Seq模型之前,可结合利用对话目标样本数据以及其样本对话信息和知识信息对Seq2Seq模型进行训练,直至Seq2Seq模型输出的回复信息,与相应样本对话信息的样本回复信息匹配时,Seq2Seq模型训练结束。
[0066] 其中,可以理解的是,在本实施例中,在根据对话目标信息与用户进行多轮对话交互完成对话目标信息后,可确定出人机对话的下一个对话目标信息,并基于下一个对话目标信息继续进行人机对话直至人机对话结束。
[0067] 作为一种示例,为了提高对话交互的流畅性,在确定下一个对话目标信息时,可根据对话目标信息中的对话话题信息,确定与该对话话题具有关联关系的另一个对话话题,并将所确定出的对应对话话题作为下一个对话目标信息,并控制机器以所确定出的对话话题与用户继续进行人机交互。
[0068] 例如,对话目标信息包含两个对话话题,对话话题1为电影A,对话话题2为该电影A的主演演员B,在控制机器与用户进行多轮对话完成对话目标信息后,可基于该对话目标信息,确定出该对话目标信息的下一个对话目标信息,假设,下一个对话目标信息,对话话题3为主演演员B的爱人C,对话话题D为爱人C的主演电影信息。本申请实施例的人机对话方法,确定对话目标信息,并获取对话目标信息的多个知识信息和引导信息,以及结合对话目标信息的引导信息向用户发起对话交互,并根据对话目标信息与用户进行多轮对话交互,以及在多轮对话交互的第N轮对话过程中,针对每轮对话,根据第N轮对话之前的历史对话信息、对话目标信息和多个知识信息,确定第N轮对话中用户输入对话信息的目标回复信息。由此,在人机交互的过程中,使得人机对话系统中的机器可主动发起主动对话,并基于对话目标信息对人机交互过程进行主动引导,提高了人机交互中机器的主动交互能力,进而提高了人机交互的智能性,提高了人机交互的用户体验度。
[0069] 如图2所示,在一个实施例中,在必要信息还包括对话目标类型时,上述步骤104的具体实现过程可以包括:
[0070] 步骤201,根据预设的对话语料库和对话目标类型,确定对话信息的多个候选回复信息。
[0071] 其中,对话语料库中保存了大量对话语料信息,对话语料信息包括各个对话目标信息,以及对应对话目标信息的多个人机对话,每个人机对话由用户对话信息和人机对话系统向用户返回的回复信息组成。
[0072] 对话目标类型是根据对话目标信息中话题类型进行分类的,还可以根据对话话题信息中话题类型跳转关系进行分类的,例如,对话目标信息中包括两个对话话题,从电影跳转到关于人的话题,其对应一种对话目标类型,从一个电影话题跳转到另一个电影话题对应另一种对话目标类型。
[0073] 其中,对话语料库中的对话语料信息可以是通过多种方式预先确定出的,例如,可通过自动挖掘对话数据的方式获取对话语料,还可以根据标注平台中对应标注人员之间的对话数据获取对话语料。
[0074] 在本实施例中,为了提高对话语料的准确性,本实施例以根据标注平台中对应标注人员之间的对话数据获取对话语料为例进行描述。
[0075] 其中,标注平台开展对话标注的具体过程为:标注平台生成对话标注任务,并将对话标注任务发送给对应的两个标注人员,两个标注人员标注其中之一扮演机器色根据提供的对话标注任务主动引领对话进程完成设定的对话目标,另一个标注人员扮演真实用户角色响应机器角色的对话即可。其中,对话标注任务中包括对话目标信息以及对话目标信息的知识信息。
[0076] 步骤202,将多个候选回复信息中的第M个候选回复信息、第N轮对话之前的历史对话信息和对话信息进行拼接处理,得到输入文本信息,M为正整数。
[0077] 步骤203,将输入文本信息、对话目标信息和多个知识信息输入至预先训练的第一对话模型中,通过第一对话模型确定第M个候选回复信息作为目标回复信息的概率值,并从多个候选回复信息中,选择概率值最大的候选回复信息作为目标回复信息并输出。
[0078] 其中,可以理解的是,在对话目标信息中包括一个对话话题时,可将该对话话题中实体的实体名称信息输入到第一对话模型中。另外,在对话目标信息包括两个对话话题时,可将每个对话话题的实体名称,以及两个对话话题中实体之间的关系信息输入到第一对话模型。
[0079] 在一个实施例中,第一对话模型包括注意力层和输出层,通过第一对话模型确定第M个候选回复信息作为目标回复信息的概率值的具体实现方式可以为:根据输入文本信息、对话目标信息和多个知识信息,通过注意力层从多个知识信息中确定出回复对话信息所使用的目标知识信息;根据目标知识信息,通过输出层确定候选回复信息作为目标回复信息的概率值。
[0080] 具体地,在第一对话模型在接收到输入文本信息、对话目标信息和多个知识信息后,可通过第一对话模型中的第一编码层结合对话目标信息对多个知识信息进行编码处理,以得到每个知识信息对应的第一表示向量,对应地,通过第二编码层对输入文本信息进行编码,以得到输入文本信息的第二表示向量。然后,第一对话模型中的注意力层结合第一表示向量和第二表示信息,确定出用于回复该对话信息的第三表示向量,并根据第三表示向量,确定出回复该对话信息所需要的目标知识信息,并通过输出层确定目标知识信息与候选回复信息之间的相关度,如果两者之间的相关度越高,其对应候选回复信息作为目标回复信息的概率值越高。
[0081] 在本实施例中,在获取每个候选回复信息作为目标回复信息的概率值后,可基于概率值对多个候选回复信息进行排序,并选择概率值最大的候选回复信息作为目标回复信息。
[0082] 对应地,在确定出第N轮对话用户输入对话信息的目标回复信息后,可控制人机对话系统输出该目标回复信息。
[0083] 其中,上述第一对话模型是预先训练的,训练第一对话模型的具体过程将在后续实施例中描述。
[0084] 下面结合图3和图4对第一对话模型的训练过程进行描述。
[0085] 如图3所示,可以包括:
[0086] 步骤301,根据预设的对话语料库,获取对话目标样本数据的样本对话信息,并获取样本对话信息对应的样本回复信息和对话历史样本数据。
[0087] 步骤302,将样本对话信息和样本对话信息进行拼接处理,得到样本输入信息。
[0088] 步骤303,获取对话目标样本数据的知识信息。
[0089] 在本实施例中,可根据预先构建的知识图谱,获取对话目标样本数据的知识信息。
[0090] 步骤303,根据对话目标样本数据、样本回复信息和样本输入信息,对第一对话模型进行训练,直至第一对话模型输出的回复信息与样本对话信息的样本回复信息匹配时,第一对话模型训练完成。
[0091] 其中,第一对话模型中对应的模型结构示意图,如图4所示,其中,图4中的知识1-知识3表示对话目标goalG的知识信息,本示例中第一编码层为知识编码器,知识编码器对对话目标goalG和对应知识信息进行编码,以得到每个知识对应的表示向量,k1-k3表示对应知识的表示向量,通过第一编码层中的编码器分别对样本输入信息X和样本回复信息Y进行编码,以得到其各自对应的表示向量,并结合上述所得到的表示向量对第一对话模型中多层神经网络MLP的网络参数进行训练,直至第一对话模型输出的回复信息与样本对话信息的样本回复信息匹配时,第一对话模型训练结束。第一对话模型训练结束即说明确定出了网络参数。
[0092] 如图5所示,在本申请的另一个实施例中,上述步骤104的具体实现过程可以包括:
[0093] 步骤501,将对话目标信息、历史对话信息和对话信息进行拼接处理,得到输入文本信息。
[0094] 步骤502,将输入文本信息和多个知识信息输入至预先训练的第二对话模型,得到对话信息的目标回复信息。
[0095] 在本申请一个实施例中,第二对话模型可以包括第一编码层、第二编码层、注意力层和编码层,如图6所示,上述步骤502的具体实现过程可以为:
[0096] 步骤601,将输入文本信息输入至第一编码层,得到输入文本信息的第一表示向量。
[0097] 步骤602,将多个知识信息输入至第二编码层,得到每个知识信息的第二表示向量。
[0098] 步骤603,将第一表示向量和第二表示向量输入至注意力层,通过注意力层从第二表示向量中确定出用于回复对话信息的第三表示向量,并确定出第三表示向量的位置权重。
[0099] 步骤604,将第三表示向量以及位置权重输入至编码层,以生成对话信息的目标回复信息。
[0100] 下面结合图7和图8对训练第二对话模型的具体过程进行描述。
[0101] 步骤701,根据预设的对话语料库,获取对话目标样本数据的样本对话信息,并获取样本对话信息对应的样本回复信息和对话历史样本数据。
[0102] 步骤702,将对话目标样本数据、样本对话信息和对话历史样本数据进行拼接处理,得到样本输入信息。
[0103] 步骤703,获取对话目标样本数据的知识信息。
[0104] 步骤704,根据对话目标样本数据的知识信息、样本输入信息以及与样本对话信息对应的样本回复信息,对第二对话模型进行训练,直至第二对话模型输出的回复信息与样本对话信息的样本回复信息匹配时,第二对话模型训练完成。
[0105] 其中,第二对话模型对应的模型机构的示意图,如图8所示,通过图8可以看出,本示例中在训练第二对话模型时,使用样本回复信息Y中的后验知识信息指导模型进行先验知识选择,即让先验知识分布p(ki|x)拟合后验知识分布p(ki|x,y),训练时将这两个分布向量的KL散度作为Loss的一部分。KL散度计算方法公式如下:
[0106]
[0107] 其中,N表示样本总数。
[0108] 为避免在计算后验知识分布时存在严重信息损失,借鉴自编码的思想,训练阶段让样本回复信息Y计算的后验知识分布能解码出样本回复信息Y本身,即用后验分布预测样本回复信息Y的每个词,预测结果的BOW Loss也作为整体Loss的一部分,BOW Loss计算如下:
[0109]
[0110] 其中,yt表示预测回复信息中的第t个词,kc表示预测结果中需要使用到的知识信息向量,该方法中对话目标作为输入信息的一部分共同参与知识信息的选择和回复的解码。
[0111] 其中,需要说明的是,图8中的goalG表示样本对话目标数据,样本对话信息X,样本回复信息Y。
[0112] 例如,比如对话历史及用户当前输入“....,我喜欢科幻电影”,样本回复信息是“那你觉得《某某地球》电影怎么样,票房有46亿呢”。样本对话目标信息的对话话题为某某地球,且某某地球的知识信息有“某某地球的主演是吴某”,“某某地球票房46亿”。编码器把对话历史和当前输入编码成一个向量x=[0.023,0.011,0.045,...],知识编码器把每条知识到编码成向量有k1,k2。知识编码器也会把标准回复Y编码成一个向量y,先验知识分布就是用x作为给定向量,计算在目标向量k1,k2的权重[w1,w2],后验知识分布就是用y作为给定向量计算在目标向量k1,k2的权重[w1,w2’]。模型训练以缩小[w1,w2]和[w1’,w2’]的差异为目标。也就是说,在示例中可使用KL算法计算两个向量的距离,将这个距离作为损失函数。
[0113] 为了本领域技术人员更加清楚地了解本申请,下面结合图9对本申请实施例的人机对话方法进行进一步描述。
[0114] 图9是本申请一个具体实施例的人机对话方法的流程示意图。
[0115] 步骤901,系统启动后,加载离线流程预先训练好的对话模型。
[0116] 其中,需要说明的是,本实施例中的对话模型可以是本实施例中第一对话模型、第二对话模型和Seq2Seq模型中的任意一个。
[0117] 步骤902,判断是否需要重新设置机器的对话目标信息,如果是,则执行步骤903。
[0118] 步骤903,确定机器的对话目标信息以及其对应的知识信息。
[0119] 在本实施例中,机器的对话目标信息可以是根据待对话用户的兴趣信息确定的。
[0120] 步骤904,根据对话历史和对话目标信息及知识信息,使用对话模型预测当前对话的回复信息。
[0121] 其中,对话历史为设定机器对话目标信息后机器和人类所有的对话记录。
[0122] 步骤905,控制机器输出回复信息,等待用户的输入。
[0123] 步骤906,判断用户是否回复该回复信息,若是,则执行步骤902。
[0124] 具体地,在控制机器输出回复信息,如果获取到用户针对该回复信息的用户输入,则跳转至步骤902根据新的对话历史预测机器的回复。
[0125] 图10是根据本申请一个实施例的人机对话装置的结构示意图。
[0126] 图10所示,该人机对话装置包括确定模块110、第一获取模块120、对话交互模块130和回复确定模块140,其中:
[0127] 确定模块110,用于确定对话目标信息。
[0128] 第一获取模块120,用于获取对话目标信息对应的必要信息,必要信息包括引导信息和多个知识信息。
[0129] 对话交互模块130,用于基于引导信息向用户发起对话交互,并根据对话目标信息与用户进行多轮对话交互。
[0130] 回复确定模块140,用于在多轮对话交互的第N轮对话过程中,根据第N轮对话之前的历史对话信息、对话目标信息和多个知识信息,确定第N轮对话中用户输入对话信息的目标回复信息,N为正整数。
[0131] 在本申请一个实施例中,在图10所示的装置实施例的基础上,如图11所示,必要信息还包括对话目标类型,该回复确定模块140可以包括:
[0132] 第一确定单元141,用于根据预设的对话语料库和对话目标信息的对话目标类型,确定对话信息的多个候选回复信息。
[0133] 第一拼接单元142,用于将多个候选回复信息中的第M个候选回复信息、第N轮对话之前的历史对话信息和对话信息进行拼接处理,得到输入文本信息,M为正整数。
[0134] 第二确定单元143,用于将输入文本信息、对话目标信息和多个知识信息输入至预先训练的第一对话模型中,通过第一对话模型确定第M个候选回复信息作为目标回复信息的概率值,并从多个候选回复信息中,选择概率值最大的候选回复信息作为目标回复信息并输出。
[0135] 在本申请一个实施例中,第一对话模型包括注意力层和输出层。
[0136] 第二确定单元143,具体用于:根据输入文本信息、对话目标信息和多个知识信息,通过注意力层从多个知识信息中确定出回复对话信息所使用的目标知识信息;根据目标知识信息,通过输出层确定第M个候选回复信息作为目标回复信息的概率值,并从多个候选回复信息中,选择概率值最大的候选回复信息作为目标回复信息并输出。
[0137] 在本申请一个实施例中,在图10所示的装置实施例的基础上,如图12所示,该回复确定模块140,可以包括:
[0138] 第二拼接单元144,用于将对话目标信息、历史对话信息和对话信息进行拼接处理,得到输入文本信息。
[0139] 第三确定单元145,用于将输入文本信息和多个知识信息输入至预先训练的第二对话模型,得到对话信息的目标回复信息。
[0140] 在本申请一个实施例中,第二对话模型包括第一编码层、第二编码层、注意力层和编码层,第三确定单元145具体用于:将输入文本信息输入至第一编码层,得到输入文本信息的第一表示向量。将多个知识信息输入至第二编码层,得到每个知识信息的第二表示向量。将第一表示向量和第二表示向量输入至注意力层,通过注意力层从第二表示向量中确定出用于回复对话信息的第三表示向量,并确定出第三表示向量的位置权重。将第三表示向量以及位置权重输入至编码层,以生成对话信息的目标回复信息。
[0141] 在本申请一个实施例中,在图12所示的装置实施例的基础上,如图13所示,该装置还可以包括:
[0142] 第二获取模块150,用于根据预设的对话语料库,获取对话目标样本数据的样本对话信息,并获取样本对话信息对应的样本回复信息和对话历史样本数据。
[0143] 拼接模块160,用于将对话目标样本数据、样本对话信息和对话历史样本数据进行拼接处理,得到样本输入信息。
[0144] 第三获取模块170,用于获取对话目标样本数据的知识信息。
[0145] 训练模块180,用于根据对话目标样本数据的知识信息、样本输入信息以及与样本对话信息对应的样本回复信息,对第二对话模型进行训练,直至第二对话模型输出的回复信息与样本对话信息的样本回复信息匹配时,第二对话模型训练完成。
[0146] 其中,需要说明的是,前述对人机对话方法实施例的解释说明也适用于该实施例的人机对话装置,其实现原理类似,此处不再赘述。
[0147] 本申请实施例的人机对话装置,确定对话目标信息,并获取对话目标信息的多个知识信息和引导信息,以及结合对话目标信息的引导信息向用户发起对话交互,并根据对话目标信息与用户进行多轮对话交互,以及在多轮对话交互的第N轮对话过程中,针对每轮对话,根据第N轮对话之前的历史对话信息、对话目标信息和多个知识信息,确定第N轮对话中用户输入对话信息的目标回复信息。由此,在人机交互的过程中,使得人机对话系统中的机器可主动发起主动对话,并基于对话目标信息对人机交互过程进行主动引导,提高了人机交互中机器的主动交互能力,进而提高了人机交互的智能性,提高了人机交互的用户体验度。
[0148] 图14是根据本申请一个实施例的电子设备的结构示意图。该电子设备包括:
[0149] 存储器1001、处理器1002及存储在存储器1001上并可在处理器1002上运行的计算机程序。
[0150] 处理器1002执行程序时实现上述实施例中提供的人机对话方法。
[0151] 进一步地,电子设备还包括:
[0152] 通信接口1003,用于存储器1001和处理器1002之间的通信。
[0153] 存储器1001,用于存放可在处理器1002上运行的计算机程序。
[0154] 存储器1001可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
[0155] 处理器1002,用于执行程序时实现上述实施例的人机对话方法。
[0156] 如果存储器1001、处理器1002和通信接口1003独立实现,则通信接口1003、存储器1001和处理器1002可以通过总线相互连接并完成相互间的通信。总线可以是工业标准体系结构(Industry Standard Architecture,简称为ISA)总线、外部设备互连(Peripheral Component,简称为PCI)总线或扩展工业标准体系结构(Extended Industry Standard Architecture,简称为EISA)总线等。总线可以分为地址总线数据总线、控制总线等。为便于表示,图14中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0157] 可选的,在具体实现上,如果存储器1001、处理器1002及通信接口1003,集成在一块芯片上实现,则存储器1001、处理器1002及通信接口1003可以通过内部接口完成相互间的通信。
[0158] 处理器1002可能是一个中央处理器(Central Processing Unit,简称为CPU),或者是特定集成电路(Application Specific Integrated Circuit,简称为ASIC),或者是被配置成实施本申请实施例的一个或多个集成电路。
[0159] 本实施例还提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如上的人机对话方法。
[0160] 在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
[0161] 此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本申请的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
[0162] 流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。
[0163] 在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得程序,然后将其存储在计算机存储器中。
[0164] 应当理解,本申请的各部分可以用硬件软件固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。如,如果用硬件来实现和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
[0165] 本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
[0166] 此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
[0167] 上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈