回复模型的获取方法、回复语句的获取方法、装置及设备与流程

文档序号:29515076发布日期:2022-04-06 20:54阅读:94来源:国知局
回复模型的获取方法、回复语句的获取方法、装置及设备与流程

1.本技术涉及人工智能技术领域,特别涉及一种回复模型的获取方法、回复语句的获取方法、装置及设备。


背景技术:

2.对话系统是一种能够针对输入的发言(utterance)语句输出回复(response)语句的系统。由于人们期望提高输出的回复语句的质量,因而kgd(knowledge-grounded dialog generation,基于知识的对话生成)系统应运而生。kgd系统在生成回复语句时会考虑与发言语句相关的知识(knowledge)。
3.在相关技术中,kgd系统是知识外化(knowledge externalization)的kgd系统。在训练知识外化的kgd系统时,将与发言语句对应的知识语句输入知识外化的kgd系统。
4.然而,由于相关技术在训练过程中使用的是与发言语句对应的知识语句,而与发言语句对应的知识语句是粗粒度的知识,因而知识外化的kgd系统学习到的是粗粒度的知识。因此,在获取回复语句的过程中,需要在知识库中搜索与发言语句相关的知识语句,该搜索过程需要消耗较长的时间,从而使得通过知识外化的kgd系统获取回复语句的效率较低。并且,通过知识外化的kgd系统获取的回复语句仅考虑了粗粒度的知识,因而获取的回复语句的质量也较低。


技术实现要素:

5.本技术实施例提供了一种回复模型的获取方法、回复语句的获取方法、装置及设备,以解决通过相关技术中的知识外化的kgd系统获取回复语句的效率较低、获取的回复语句的质量也较低的问题。技术方案如下:
6.一方面,提供了一种回复模型的获取方法,方法包括:
7.获取第一训练样本,第一训练样本基于参考发言语句、参考回复语句和参考发言语句中的各个第一词汇对应的第一知识语句生成;
8.基于第一训练样本训练得到回复模型,回复模型包括编码子模型和解码子模型,编码子模型用于将输入的目标发言语句编码为目标向量,解码子模型用于根据目标向量输出目标回复语句。
9.在示例性实施例中,基于第五向量和第二正训练样本中的第一知识语句确定第三函数值,基于第五向量和第二负训练样本中的第一知识语句确定第四函数值,包括:
10.将第二正训练样本中的第一知识语句编码为第三向量组,对第三向量组进行池化得到第六向量,将第二负训练样本中的第一知识语句编码为第四向量组,对第四向量组进行池化得到第七向量;
11.对第五向量、第六向量和第七向量进行映射及归一化,得到长度相同的更新后的第五向量,更新后的第六向量和更新后的第七向量;
12.计算更新后的第五向量和更新后的第六向量之间的点积,得到第三函数值,计算
更新后的第五向量和更新后的第七向量之间的点积,得到第四函数值。
13.一方面,提供了一种回复语句的获取方法,方法包括:
14.获取需要回复的目标发言语句;
15.将目标发言语句输入回复模型中的编码子模型,编码子模型用于将目标发言语句编码为目标向量,回复模型中还包括解码子模型,解码子模型用于根据目标向量输出目标回复语句,其中,编码子模型和解码子模型是基于第一训练样本训练得到的,第一训练样本基于参考发言语句、参考回复语句和参考发言语句中的各个第一词汇对应的第一知识语句生成;
16.获得回复模型中的解码子模型输出的目标回复语句。
17.一方面,提供了一种回复模型的获取装置,装置包括:
18.获取模块,用于获取第一训练样本,第一训练样本基于参考发言语句、参考回复语句和参考发言语句中的各个第一词汇对应的第一知识语句生成;
19.训练模块,用于基于第一训练样本训练得到回复模型,回复模型包括编码子模型和解码子模型,编码子模型用于将输入的目标发言语句编码为目标向量,解码子模型用于根据目标向量输出目标回复语句。
20.在示例性实施例中,获取模块,用于获取参考发言语句,确定参考发言语句中的各个第一词汇对应的第一知识语句,基于参考发言语句中的各个第一词汇对应的第一知识语句生成第一子训练样本;确定参考发言语句对应的参考回复语句,基于参考回复语句生成第二子训练样本;
21.训练模块,用于基于第一子训练样本和第二子训练样本,训练得到编码子模型和解码子模型。
22.在示例性实施例中,获取模块,用于将参考发言语句输入检索模型,检索模型用于将参考发言语句中的各个第一词汇分别编码为第一向量,输出各个第一向量,各个第一词汇与各个第一向量一一对应,其中,检索模型是基于第二训练样本训练得到的,第二训练样本基于第二词汇、第二词汇所在的语句和第二词汇对应的第二知识语句生成;获得检索模型输出的各个第一向量,对于任一第一向量,从知识库包括的备选知识语句中检索得到与任一第一向量相关性最高的备选知识语句,得到任一第一向量对应的第一知识语句。
23.在示例性实施例中,获取模块,还用于获取词条对应的描述语句,描述语句包括至少一个针对词条的描述词汇;对于任一描述词汇,将任一描述词汇确定为第二词汇,将描述语句确定为第二词汇所在的语句和第二词汇对应的第二知识语句;基于第二词汇、第二词汇所在的语句和第二词汇对应的第二知识语句生成第二训练样本,基于第二训练样本训练得到检索模型。
24.在示例性实施例中,第二训练样本包括第一正训练样本和第一负训练样本,获取模块,用于对于任一第二词汇,将任一第二词汇、任一第二词汇所在的语句和第二词汇对应的第二知识语句组成第一正训练样本,将任一第二词汇、任一第二词汇所在的语句和其他第二词汇对应的第二知识语句组成第一负训练样本,其他第二词汇对应的第二知识语句与任一第二词汇不相关。
25.在示例性实施例中,获取模块,用于对于任一第二词汇,将任一第二词汇所在的语句输入第一初始模型,得到第一初始模型输出的任一第二词汇对应的第二向量;确定第二
向量与第一正训练样本中的第二知识语句之间的第一函数值,确定第二向量与第一负训练样本中的第二知识语句之间的第二函数值;基于第一函数值和第二函数值确定第一损失函数值,基于第一损失函数值将第一初始模型更新为检索模型。
26.在示例性实施例中,获取模块,用于将第一正训练样本中的第二知识语句编码为第一向量组,对第一向量组进行池化得到第三向量,将第一负训练样本中的第二知识语句编码为第二向量组,对第二向量组进行池化得到第四向量;对第二向量、第三向量和第四向量进行映射及归一化,得到长度相同的更新后的第二向量、更新后的第三向量和更新后的第四向量;计算更新后的第二向量和更新后的第三向量之间的点积,得到第一函数值,计算更新后的第二向量和更新后的第四向量之间的点积,得到第二函数值。
27.在示例性实施例中,训练模块,用于将第一子训练样本中的第一词汇输入第二初始模型,得到第二初始模型输出的第一子训练样本中的第一词汇对应的第五向量,基于第五向量和第一子训练样本中的第一知识语句确定第二损失函数值;将各个第一词汇对应的第五向量输入第三初始模型,确定第三损失函数值,第三损失函数值用于指示第三初始模型基于各个第一词汇对应的第五向量输出第二子训练样本中的参考回复语句的概率;基于第二损失函数值和第三损失函数值确定第四损失函数值,基于第四损失函数值,将第二初始模型更新为编码子模型,将第三初始模型更新为解码子模型。
28.在示例性实施例中,第一子训练样本包括第二正训练样本和第二负训练样本,获取模块,用于对于任一第一词汇,将任一第一词汇与任一第一词汇对应的第一知识语句组成第二正训练样本,将任一第一词汇与其他第一词汇对应的第一知识语句组成第二负训练样本,其他第一词汇对应的第一知识语句与任一第一词汇不相关。
29.在示例性实施例中,训练模块,用于对于任一第一词汇,将任一第一词汇输入第二初始模型,得到第二初始模型输出的任一第一词汇对应的第五向量;基于第五向量和第二正训练样本中的第一知识语句确定第三函数值,基于第五向量和第二负训练样本中的第一知识语句确定第四函数值;基于第三函数值和第四函数值确定第二损失函数值。
30.在示例性实施例中,训练模块,用于将第二正训练样本中的第一知识语句编码为第三向量组,对第三向量组进行池化得到第六向量,将第二负训练样本中的第一知识语句编码为第四向量组,对第四向量组进行池化得到第七向量;对第五向量、第六向量和第七向量进行映射及归一化,得到长度相同的更新后的第五向量,更新后的第六向量和更新后的第七向量;计算更新后的第五向量和更新后的第六向量之间的点积,得到第三函数值,计算更新后的第五向量和更新后的第七向量之间的点积,得到第四函数值。
31.一方面,提供了一种回复语句的获取装置,装置包括:
32.获取模块,用于获取需要回复的目标发言语句;
33.输入模块,用于将目标发言语句输入回复模型中的编码子模型,编码子模型用于将目标发言语句编码为目标向量,回复模型中还包括解码子模型,解码子模型用于根据目标向量输出目标回复语句,其中,编码子模型和解码子模型是基于第一训练样本训练得到的,第一训练样本基于参考发言语句、参考回复语句和参考发言语句中的各个第一词汇对应的第一知识语句生成;
34.获得模块,用于获得回复模型中的解码子模型输出的目标回复语句。
35.一方面,提供了一种计算机设备,计算机设备包括存储器及处理器;存储器中存储
有至少一条指令,至少一条指令由处理器加载并执行,以使计算机设备实现本技术的任一种示例性实施例所提供的回复模型的获取方法或者回复语句的获取方法。
36.一方面,提供了一种计算机可读存储介质,计算机可读存储介质中存储有至少一条指令,指令由处理器加载并执行,以使计算机实现本技术的任一种示例性实施例所提供的回复模型的获取方法或者回复语句的获取方法。
37.另一方面,提供了一种计算机程序或计算机程序产品,计算机程序或计算机程序产品包括:计算机指令,计算机指令被计算机执行时,使得计算机实现本技术的任一种示例性实施例所提供的回复模型的获取方法或者回复语句的获取方法。
38.本技术实施例提供的技术方案带来的有益效果至少包括:
39.本实施例中,用于训练得到回复模型的训练样本中包括发言语句中各个词汇对应的知识语句。由于词汇对应的知识语句是细粒度的知识,因而回复模型在训练过程中便能够学习到细粒度的知识。因此,在使用训练好的回复模型输出回复语句时,无需额外检索知识并输入回复模型,提高了获取回复语句的效率。并且,所输出的回复语句考虑了细粒度的知识,具有较高的质量。
附图说明
40.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
41.图1是本技术实施例提供的实施环境的示意图;
42.图2是本技术实施例提供的回复模型的获取方法的流程图;
43.图3是本技术实施例提供的回复模型的结构示意图;
44.图4是本技术实施例提供的回复语句的获取方法的流程图;
45.图5是本技术实施例提供的回复模型的获取装置的结构示意图;
46.图6是本技术实施例提供的回复语句的获取装置的结构示意图;
47.图7是本技术实施例提供的电子设备的结构示意图;
48.图8是本技术实施例提供的服务器的结构示意图。
具体实施方式
49.为使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术实施方式作进一步地详细描述。
50.本技术实施例提供了一种回复模型的获取方法和回复语句的获取方法。这两种方法均可应用于如图1所示的实施环境中。图1中,包括至少一个电子设备11和服务器12,电子设备11与服务器12进行通信连接。
51.对于回复模型的获取方法:响应于该方法应用于电子设备11,则电子设备11从服务器12上获取训练样本,或通过其他方式获取训练样本,从而基于训练样本训练得到回复模型。响应于该方法应用于服务器12,则服务器12从电子设备11上获取训练样本,或通过其他方式获取训练样本,从而基于训练样本训练得到回复模型。
52.对于回复语句的获取方法:响应于该方法应用于电子设备11,则电子设备11从服务器12上下载回复模型。在电子设备11获取需要回复的目标发言语句之后,基于从服务器12上下载的回复模型获取针对该目标发言语句的回复语句。之后,电子设备11还可以输出获取到的回复语句。或者,响应于该方法应用于服务器12,则电子设备11获取需要回复的目标发言语句之后,将该目标发言语句传输至服务器12,服务器12基于回复模型获取针对该目标发言语句的回复语句。之后,服务器12还可以向电子设备11返回该回复语句,以便于电子设备11输出该回复语句。
53.示例性地,电子设备11可以是任何一种可与用户通过键盘、触摸板、触摸屏、遥控器、语音交互或手写设备等一种或多种方式进行人机交互的电子产品,例如pc(personal computer,个人计算机)、电脑、手机、智能手机、pda(personal digital assistant,个人数字助手)、可穿戴设备、掌上电脑ppc(pocket pc)、平板电脑、智能车机、智能电视、智能音箱、智能语音交互设备、智能家电和车载终端等。
54.示例性地,服务器12可以是一台服务器,也可以是由多台服务器组成的服务器集群,或者是一个云计算服务中心。
55.本领域技术人员应能理解上述电子设备11和服务器12仅为举例,其他现有的或今后可能出现的电子设备或服务器如可适用于本技术,也应包含在本技术保护范围以内,并在此以引用方式包含于此。
56.基于上述图1所示的实施环境,参见图2,本技术实施例提供了一种回复语句的获取方法,该方法可应用于计算机设备中,计算机设备包括图1所示的电子设备或服务器中。如图2所示,该方法包括如下的步骤。
57.201,获取第一训练样本,第一训练样本基于参考发言语句、参考回复语句和参考发言语句中的各个第一词汇对应的第一知识语句生成。
58.其中,第一训练样本用于训练得到回复模型。由于生成第一训练样本的过程中使用了参考发言语句各个第一词汇对应的第一知识语句,而各个第一词汇对应的第一知识语句属于细粒度的知识,因而第一训练样本中包括细粒度的知识。基于此种第一训练样本训练得到的回复模型具有较好的性能。基于此种第一训练样本训练得到回复模型的过程参见后文202中的说明,此处首先对获取第一训练样本的过程进行说明。
59.在示例性实施例中,第一训练样本包括第一子训练样本和第二子训练样本。获取第一训练样本,包括如下的步骤2011-2013。
60.2011,获取参考发言语句,确定参考发言语句中的各个第一词汇对应的第一知识语句。
61.示例性地,获取参考发言语句,包括:从公开或私有的数据集中采集得到参考发言语句,本实施例不对获取参考发言语句的方式加以限定。但是,无论是公开还是私有的数据集,均不包括本实施例需要的细粒度的知识,也即是不包括参考发言语句中各个第一词汇对应的第一知识语句。因此,本实施例提供一种检索模型,以通过该检索模型挖掘得到上述细粒度的知识。
62.首先,通过如下的步骤20111-20114说明训练得到检索模型的过程。
63.20111,获取词条对应的描述语句,描述语句包括至少一个针对词条的描述词汇。
64.示例性地,词条例如为维基百科、百度百科或者其他百科中的词条,本实施例不对
词条的获取方式加以限定。词条对应有描述语句,例如词条“香蕉”对应的描述语句为“香蕉是一种黄色弯曲的水果”。描述语句中包括至少一个针对词条的描述词汇,例如描述语句“香蕉是一种黄色弯曲的水果”中包括三个针对词条“香蕉”的描述词汇:“黄色”、“弯曲”和“水果”。
65.20112,对于任一描述词汇,将任一描述词汇确定为第二词汇,将描述语句确定为第二词汇所在的语句和第二词汇对应的第二知识语句。
66.其中,检索模型是基于第二训练样本训练得到的。第二训练样本基于第二词汇、第二词汇所在的语句和第二词汇对应的第二知识语句生成。本实施例在获取词条对应的描述语句之后,将描述词汇作为第二词汇,将描述语句作为第二词汇所在的语句,且将描述语句作为第二词汇对应的第二知识语句。
67.以20111中的举例为例,将描述词汇“黄色”作为第二词汇,将描述语句“香蕉是一种黄色弯曲的水果”作为第二词汇所在的语句,且将描述语句“香蕉是一种黄色弯曲的水果”作为第二词汇对应的第二知识语句。对于描述词汇“弯曲”和“水果”,此处不再进行赘述。
68.20113,基于第二词汇、第二词汇所在的语句和第二词汇对应的第二知识语句生成第二训练样本。
69.在一些实施方式中,第二训练样本包括第一正训练样本和第一负训练样本,基于第二词汇、第二词汇所在的语句和第二词汇对应的第二知识语句生成第二训练样本,包括:对于任一第二词汇,将任一第二词汇、任一第二词汇所在的语句和第二词汇对应的第二知识语句组成第一正训练样本。将任一第二词汇、任一第二词汇所在的语句和其他第二词汇对应的第二知识语句组成第一负训练样本,其他第二词汇对应的第二知识语句与任一第二词汇不相关。能够看出,基于一个第二词汇能够组成相对应的第一正训练样本和第一负训练样本,相对应的第一正训练样本和第一负训练样本中,第二词汇和第二词汇所在的语句相同。
70.在第一正训练样本中,第二词汇和第二词汇对应的第二知识语句相关。其原因在于,本实施例将描述词汇作为第二词汇,将包括该描述词汇所在的描述语句作为第二词汇对应的第二知识语句。由于描述词汇和该描述词汇所在的描述语句相关,因而第二词汇和第二词汇对应的第二知识语句相关。以20111中的举例为例,则第一正训练样本例如为《黄色,香蕉是一种黄色弯曲的水果,香蕉是一种黄色弯曲的水果》。
71.在第一负训练样本中,第二词汇和其他第二词汇对应的第二知识语句不相关,本实施例不对其他第二词汇加以限定。仍以20111中的举例为例,则第一负训练样本例如为《黄色,香蕉是一种黄色弯曲的水果,茄子是紫色的》,“茄子是紫色的”即为其他第二词汇对应的第二知识语句。
72.在另一些实施方式中,第二训练样本可以仅包括第一正训练样本。组成第一正训练样本的方式参见上文中的说明,此处不再进行赘述。
73.20114,基于第二训练样本训练得到检索模型。
74.在一些实施方式中,第二训练样本包括第一正训练样本和第一负训练样本。在该实施方式中,基于第二训练样本训练得到检索模型的过程称为对比学习(contrastive learning)。对比学习的方式不仅增加了第二训练样本的数量,还增加了训练难度,从而保
证了训练得到的检索模型的准确性。示例性地,基于第二训练样本训练得到检索模型,包括如下的步骤201141-201143。
75.201141,对于任一第二词汇,将任一第二词汇所在的语句输入第一初始模型,得到第一初始模型输出的任一第二词汇对应的第二向量。
76.其中,在第二词汇所在的语句中,包括第二词汇的上文和下文中的至少一个。例如,第二词汇为“弯曲”,第二词汇所在的语句为“香蕉是一种黄色弯曲的水果”,则第二词汇的上文为“香蕉”和“黄色”,第二词汇的下文为“水果”。将一个第二词汇所在的语句输入第一初始模型,则第一初始模型能够结合第二词汇的上文和下文中的至少一个输出该第二词汇对应的第二向量。
77.将第二词汇所在的语句表示为s={s1,s2,

,sw},w为不小于1的正整数,w用于指示第二词汇所在的语句中包括的第二词汇的数量。将第二词汇sj(j∈w)输入第一初始模型,得到第一初始模型输出的第二向量uj。
78.201142,确定第二向量与第一正训练样本中的第二知识语句之间的第一函数值,确定第二向量与第一负训练样本中的第二知识语句之间的第二函数值。
79.根据上文对于第二训练样本的说明可知,基于一个第二词汇组成的相对应的第一正训练样本和第一负训练样本中,第二词汇和第二词汇所在的语句相同。因此,一个第二词汇对应的第二向量可以分别与第一正训练样本中的第二知识语句和第一负训练样本中的第二知识语句进行计算,从而得到上述第一函数值和第二函数值。
80.在示例性实施例中,确定第二向量与第一正训练样本中的第二知识语句之间的第一函数值,确定第二向量与第一负训练样本中的第二知识语句之间的第二函数值,包括:将第一正训练样本中的第二知识语句编码为第一向量组,对第一向量组进行池化得到第三向量,将第一负训练样本中的第二知识语句编码为第二向量组,对第二向量组进行池化得到第四向量。对第二向量、第三向量和第四向量进行映射及归一化,得到长度相同的更新后的第二向量、更新后的第三向量和更新后的第四向量。计算更新后的第二向量和更新后的第三向量之间的点积,得到第一函数值,计算更新后的第二向量和更新后的第四向量之间的点积,得到第二函数值。
81.其中,第一正训练样本中的第二词汇表示为sj,第一正训练样本中的第二知识语句表示为pj,将pj编码为第一向量组,对第一向量组进行池化得到第三向量g(pj)。将第一负训练样本中的第二知识语句表示为p
j-,将p
j-编码为第二向量组,对第二向量组进行池化得到第四向量g(p
j-)。之后,对第二向量进行映射及归一化,得到更新后的第二向量f1(uj)。对第三向量g(pj)进行映射及归一化,得到更新后的第三向量f2(g(pj))。对第四向量g(p
j-)进行映射及归一化,得到更新后的第四向量f2(g(p
j-))。更新后的第二向量f1(uj)、更新后的第三向量f2(g(pj))和更新后的第四向量f2(g(p
j-))长度相同。
82.接着,按照如下的公式(1)计算更新后的第二向量f1(uj)和更新后的第三向量f2(g(pj))之间的点积,得到第一函数值r(sj,pj):
83.r(sj,pj)=f1(uj)
t
·
f2(g(pj))
ꢀꢀ
(1)
84.按照如下的公式(2)计算更新后的第二向量f1(uj)和更新后的第四向量f2(g(p
j-))之间的点积,得到第二函数值r(sj,pj):
85.r(sj,p
j-)=f1(uj)
t
·
f2(g(p
j-))
ꢀꢀ
(2)
86.201143,基于第一函数值和第二函数值确定第一损失函数值,基于第一损失函数值将第一初始模型更新为检索模型。
87.其中,本实施例不对基于第一函数值和第二函数值确定第一损失函数值的方式加以限定。例如,本实施例对第一函数值和第二函数值进行加权求和,得到第一损失函数值。又例如,本实施例通过nce(noise-contrastive estimation,噪声对比估计)loss(损失)函数确定第一损失函数值,nce loss函数包括但不限于infonce loss函数。再例如,本实施例通过合页损失(hinge loss)函数确定第一损失函数值,hinge loss函数又称最大边际(maximum-margin)函数。
88.通过hinge loss函数确定第一损失函数值,包括:基于第一函数值和第二函数值计算第一差值,计算第一差值与第一超参数之和,得到更新后的第一差值。将更新后的第一差值和第一参考数值中较大的数值确定为第一损失函数值。其中,本实施例不对第一超参数和第一参考数值加以限定,第一超参数例如为0.1,第一参考数值例如为0。通过hinge loss函数确定第一损失函数值的方式能够表示为如下的公式(3):
[0089][0090]
在公式(3)中,为第一损失函数值,α1为第一参考数值,β1为第一超参数。r(sj,pj)为第一函数值,r(sj,p
j-)为第二函数值,因而β
1-r(sj,pj)+r(sj,p
j-)为上述更新后的第一差值。max{
·
}表示在{
·
}内的元素中取最大值,{
·
}内的元素即为第一参考数值α1和更新后的第一差值β
1-r(sj,pj)+r(sj,p
j-)。
[0091]
示例性地,第一初始模型和用于将第二知识语句编码为向量组(用于将第一正训练样本中的第二知识语句编码为第一向量组,或用于将第一负训练样本中的第二知识语句编码为第二向量组)的模型为两个不同的bert(transformers-based bidirectional encoder,基于transformer的双向编码器),transformer是一种模型的名称。其中,bert包括两种不同尺寸:基础(base)尺寸和大型(large)尺寸,bert还可以分为两种不同类型:不区分大小写(uncased)的类型和区分大小写(cased)的类型。示例性地,上述两个不同的bert为两个不同的、已预训练的bert-base-uncased,即基础尺寸且不区分大小写的bert。本实施例不对第一初始模型和用于将第二知识语句编码为向量组的模型加以限定。
[0092]
在基于第一函数值和第二函数值确定第一损失函数值之后,基于第一损失函数值将第一初始模型更新为检索模型,包括:对第一损失函数值进行最小化,再通过反向梯度传播过程对第一初始模型进行更新,从而得到检索模型。该检索模型能够基于输入的语句输出该语句包括的各个词汇对应的向量。
[0093]
在另一些实施方式中,第二训练样本仅包括第一正训练样本,不包括第一负训练样本。此种实施方式中,在按照201141确定第二词汇对应的第二向量之后,按照201142确定第二向量与第一正训练样本中的第二知识语句之间的第一函数值,而不再确定上述第二函数值。之后,直接基于第一函数值确定第一损失函数值,例如删除上述公式(3)中的r(sj,p
j-),得到更新的公式(3),根据更新的公式(3)确定第一损失函数值。基于第一损失函数值将第一初始模型更新为检索模型的方式参见上文说明,此处不再进行赘述。
[0094]
以上的20111-20114说明了训练得到检索模型的过程,该训练过程为弱监督训练
过程。接着,通过如下的20115-20116对使用检索模型来确定参考发言语句中的各个第一词汇对应的第一知识语句的过程进行说明。使用检索模型的过程可以看作最大内积搜索(maximum inner product search)问题,示例性地,本实施例在计算机设备中通过faiss(一种搜索软件)实现使用检索模型的过程。
[0095]
20115,将参考发言语句输入检索模型,检索模型用于将参考发言语句中的各个第一词汇分别编码为第一向量,输出各个第一向量,各个第一词汇与各个第一向量一一对应。
[0096]
根据20114中的说明可知,检索模型能够基于输入的语句输出该语句包括的各个词汇对应的向量。因此,将参考发言语句输入检索模型之后,检索模型能够将参考发言语句中的各个第一词汇分别编码为第一向量,使得第一词汇与第一向量一一对应。之后,检索模型便能够输出各个第一向量。
[0097]
20116,获得检索模型输出的各个第一向量,对于任一第一向量,从知识库包括的备选知识语句中检索得到与任一第一向量相关性最高的备选知识语句,得到任一第一向量对应的第一知识语句。
[0098]
其中,知识库中包括至少一个备选知识语句。对于一个第一词汇,分别确定该第一词汇与知识库中的各个备选知识语句之间的相关性,将与该第一词汇的相关性最高的一个备选知识语句作为第一向量对应的第一知识语句。
[0099]
示例性地,将参考发言语句表示为x={x1,x2,

,xn},n为不小于1的正整数,用于指示参考发言语句中包括的第一词汇的数量。将检索模型输出的第一词汇xi(i∈n)对应的第一向量表示为vi,对第一向量进行映射及归一化得到更新后的第一向量f1(vi)。将知识库中的备选知识语句k编码为备选向量组,再对备选向量组进行池化得到备选向量g(k),对该备选向量进行映射及归一化得到更新后的备选向量f2(g(k))。之后,按照如下的公式(4)计算更新后的第一向量f1(vi)和更新后的备选向量f2(g(k))之间的点积r{xi,k),该点积用于指示第一词汇与备选知识语句之间的相关性。
[0100]
r(xi,k)=f1(vi)
t
·
f2(g(k))
ꢀꢀ
(4)
[0101]
由于点积r(xi,k)越大,则指示第一词汇与备选知识语句之间的相关性越高,因而与第一词汇的相关性最高的备选知识语句ki表示为如下的公式(5),该备选知识语句ki即为第一向量对应的第一知识语句:
[0102][0103]
当然,根据点积确定第一词汇与备选知识语句之间的相关性的方式仅为举例,本实施例不对确定相关性的方式加以限定。例如,本实施例还可以计算上述第一向量f1(vi)和备选向量g(k)之间的欧式距离。欧式距离越小,则指示第一词汇与备选知识语句之间的相关性越高。因此,将与第一向量之间的欧式距离最小的备选向量对应的备选知识语句作为第一向量对应的第一知识语句。
[0104]
能够理解的是,通过检索模型确定参考发言语句中的各个第一词汇对应的第一知识语句的方式仅为举例,本实施例不对各个第一词汇对应的第一知识语句的确定方式加以限定。例如,在获取参考发言语句之后,还可以通过人工标注的方式确定各个第一词汇对应的第一知识语句。
[0105]
2012,基于参考发言语句中的各个第一词汇对应的第一知识语句生成第一子训练样本。
[0106]
在一些实施方式中,第一子训练样本包括第二正训练样本和第二负训练样本,基于参考发言语句中的各个第一词汇对应的第一知识语句生成第一子训练样本,包括:对于任一第一词汇,将任一第一词汇与任一第一词汇对应的第一知识语句组成第二正训练样本,将任一第一词汇与其他第一词汇对应的第一知识语句组成第二负训练样本,其他第一词汇对应的第一知识语句与任一第一词汇不相关。能够看出,基于一个第一词汇能够组成相对应的第二正训练样本和第二负训练样本,也即是相对应的第二正训练样本和第二负训练样本中具有相同的第一词汇。
[0107]
在第二正训练样本中,第一词汇和该第一词汇对应的第一知识语句相关。参考发言语句表示为x={x1,x2,

,xn},将第一词汇表示为xi,将该第一词汇对应的第一知识语句表示为ki,则第二正训练样本表示为(xi,ki)。在第二负训练样本中,第一词汇和其他第一词汇对应的第一知识语句不相关。将其他第一词汇对应的第一知识语句表示为则第二负训练样本表示为
[0108]
对组成第二正训练样本和第二负训练样本的过程进行举例说明:一个参考发言语句中包括第一词汇a和第一词汇b,第一词汇a对应第一知识语句a,第一词汇b对应第一知识语句b。由此,能够组成第二正训练样本(第一词汇a,第一知识语句a)和(第一词汇b,第一知识语句b),组成第二负训练样本(第一词汇a,第一知识语句b)和(第一词汇b,第一知识语句a)。
[0109]
需要说明的是,在组成第二负训练样本时,只要保证第二负训练样本中的第一词汇与第一知识语句不相关即可。因此,第二负训练样本中的第一知识语句不仅局限于上述说明中的其他第一词汇对应的第一知识语句,第二负训练样本中的第一知识语句也可以是随机采样得到的、与第二负训练样本中的第一词汇不相关的任意知识语句。
[0110]
在另一些实施方式中,第一子训练样本仅包括第二正训练样本,组成第二正训练样本的过程参见上文说明,此处不再进行赘述。
[0111]
2013,确定参考发言语句对应的参考回复语句,基于参考回复语句生成第二子训练样本。
[0112]
示例性地,本实施例从公开或者私有的数据集中确定参考发言语句对应的参考回复语句,从而将参考回复语句作为第二子训练样本,本实施例不对生成第二子训练样本的方式加以限定。
[0113]
以上的2011-2013说明了获取第一训练样本的方式,该第一训练样本包括第一子训练样本和第二子训练样本。在获取第一训练样本,便能够基于该第一训练样本训练得到回复模型,参见202中的说明。
[0114]
202,基于第一训练样本训练得到回复模型,回复模型包括编码子模型和解码子模型,编码子模型用于将输入的目标发言语句编码为目标向量,解码子模型用于根据目标向量输出目标回复语句。
[0115]
在对基于第一训练样本训练得到回复模型的过程进行说明之前,首先对本技术实施例中的回复模型的结构和使用该回复模型所能获得的效果进行说明。
[0116]
参见图3中的使用过程,示出了一种示例性的回复模型的结构示意图。图3中,回复模型包括串联的编码子模型和解码子模型,编码子模型又称编码器(encoder),解码子模型又称解码器(decoder)。将目标发言语句输入编码子模型之后,编码子模型将目标发言语句
编码为目标向量。其中,目标向量为向量序列,向量序列中包括多个向量,向量与目标发言语句中的词汇一一对应,一个向量是该向量对应的词汇在低维空间中的表示。编码子模型将目标发言语句编码为目标向量之后,输出该目标向量,该目标向量用于作为解码子模型的输入。将目标向量输入解码子模型之后,解码子模型根据目标向量输出目标回复语句。
[0117]
其中,上述目标发言语句是需要回复的语句。本实施例基于该目标发言语句生成目标回复语句,从而使用目标回复语句回复目标发言语句。在一些实施方式中,响应于在对话界面检测到输入的语句,则将输入的语句作为目标发言语句。示例性地,输入的语句为用户通过键盘键入的语句,或者为对用户通过麦克风输入的语音进行语音识别得到的语句。在另一些实施方式中,从数据集中选取得到目标发言语句,数据集包括任意一个公开或私有的数据集。能够理解的是,以上目标发言语句均为举例,本实施例不对获取目标发言语句的方式加以限定。
[0118]
由于本实施例中编码子模型和解码子模型是基于第一训练样本训练得到的,而第一训练样本是基于参考发言语句、参考回复语句和参考发言语句中的各个第一词汇对应的第一知识语句生成的,因而编码子模型和解码子模型在训练过程中便能够学习到知识,所学习到的知识记忆在编码子模型和解码子模型的模型参数中。在完成训练之后,将目标发言语句输入编码子模型,编码子模型对目标发言语句进行编码时会考虑与该目标发言语句相关的知识,得到已考虑知识的目标向量。解码子模型基于已考虑知识的目标向量输出目标回复语句,能够使得所输出的目标回复语句与知识相关,从而提高了目标回复语句的质量。
[0119]
并且,由于第一训练样本包括参考发言语句中的各个第一词汇对应的第一知识语句,因而训练过程中编码子模型和解码子模型学习到的知识是词汇对应的知识,词汇对应的知识是细粒度的知识。而在相关技术中,知识外化的kgd系统所学习的指示是发言语句对应的知识,发言语句对应的知识是粗粒度的知识。因此,相比于相关技术,本实施例学习了更细粒度的知识,从而进一步提高了目标回复语句的质量。
[0120]
示例性地,上述说明中目标回复语句的质量与目标回复语句的多样性和目标回复语句中知识的丰富程度相关。目标回复语句的多样性越强,目标回复语句的质量越高。目标回复语句中知识的丰富程度越高,或者说目标回复语句中包括的知识数量越多,目标回复语句的质量越高。
[0121]
需要说明的是,由于编码子模型和解码子模型在训练过程中学习到了细粒度的知识,或者说训练过程中已经将细粒度的知识记忆在编码子模型和解码子模型的模型参数中,因而本实施例在针对目标发言语句输出目标回复语句的过程中,无需再像相关技术中知识外化的kgd系统一样检索与目标发言语句相关的知识,也无需将目标发言语句和与目标发言语句相关的知识一起输入编码子模型,而是仅将目标发言语句输入编码子模型即可。因此,本实施例在输出目标回复语句的过程中省略了检索知识的步骤,节约了时间,提高了目标回复语句的获取效率,且获取效率的提高是以保证目标回复语句的质量为前提的。其中,在训练过程中将知识记忆在编码子模型和解码子模型的模型参数中的过程称为知识内化(knowledge internalization,ki)的过程,本实施例中包括编码子模型和解码子模型的回复模型称为知识内化的kgd系统。
[0122]
接下来,基于图3示出的回复模型的结构,对基于第一训练样本训练得到编码子模
型和解码子模型的过程进行说明。示例性地,第一训练样本包括第一子训练样本和第二子训练样本,则基于第一训练样本训练得到回复模型,包括:基于第一子训练样本和第二子训练样本,训练得到编码子模型和解码子模型。其中,基于第一子训练样本和第二子训练样本,训练得到编码子模型和解码子模型,包括如下的步骤2021-2023。
[0123]
2021,将第一子训练样本中的第一词汇输入第二初始模型,得到第二初始模型输出的第一子训练样本中的第一词汇对应的第五向量,基于第五向量和第一子训练样本中的第一知识语句确定第二损失函数值。
[0124]
在一些实施方式中,参见图3,第一子训练样本中包括第二正训练样本和第二负训练样本,则2021包括如下的步骤20211-20213。
[0125]
20211,对于任一第一词汇,将任一第一词汇输入第二初始模型,得到第二初始模型输出的任一第一词汇对应的第五向量。
[0126]
其中,将第一词汇xi输入第二初始模型,则第二初始模型对xi进行编码,得到第一词汇对应的第五向量hi。第五向量hi是第一词汇xi在低维空间中的表示。
[0127]
20212,基于第五向量和第二正训练样本中的第一知识语句确定第三函数值,基于第五向量和第二负训练样本中的第一知识语句确定第四函数值。
[0128]
根据上文说明可知,基于一个第一词汇组成的相对应的第二正训练样本和第二负训练样本中具有相同的第一词汇。因此,一个第一词汇对应的第五向量可以分别与第一正训练样本中的第一知识语句和第二负训练样本中的第一知识语句进行计算,从而得到上述第三函数值和第四函数值。
[0129]
在示例性实施例中,基于第五向量和第二正训练样本中的第一知识语句确定第三函数值,基于第五向量和第二负训练样本中的第一知识语句确定第四函数值,包括:将第二正训练样本中的第一知识语句编码为第三向量组,对第三向量组进行池化得到第六向量,将第二负训练样本中的第一知识语句编码为第四向量组,对第四向量组进行池化得到第七向量。对第五向量、第六向量和第七向量进行映射及归一化,得到长度相同的更新后的第五向量,更新后的第六向量和更新后的第七向量。计算更新后的第五向量和更新后的第六向量之间的点积,得到第三函数值,计算更新后的第五向量和更新后的第七向量之间的点积,得到第四函数值。
[0130]
其中,第二正训练样本表示为(xi,ki),将第二正训练样本中的第一知识语句ki编码为第三向量组,对第三向量组进行池化得到第六向量g(ki)。第二负训练样本表示为将第二负训练样本中的第一知识语句编码为第四向量组,对第四向量组进行池化得到第七向量之后,对第一词汇xi对应的第五向量hi进行映射及归一化,得到更新后的第五向量f1(hi)。对第六向量进行映射及归一化,得到更新后的第六向量f2(g(ki))。对第七向量进行映射及归一化,得到更新后的第七向量其中,更新后的第五向量f1(hi)、更新后的第六向量f2(g(ki))和更新后的第七向量的长度相同。
[0131]
接着,根据如下的公式(6)计算更新后的第五向量和更新后的第六向量之间的点积,得到第三函数值r(xi,ki):
[0132]
r(xi,ki)=f1(hi)
t
·
f2(g(ki))
ꢀꢀ
(6)
[0133]
其中,该第三函数值越大,则说明第二初始模型对第一词汇xi编码得到的hi与第二正训练样本中的第一知识语句ki(即与第一词汇xi相关的第一知识语句)之间的相关性越高。
[0134]
根据如下的公式(7)计算更新后的第五向量和更新后的第七向量之间的电极,得到第四函数值
[0135][0136]
其中,该第四函数值越小,则说明第二初始模型对第一词汇xi编码得到的hi与第二负训练样本中的第一知识语句(即与第一词汇xi不相关的第一知识语句)之间的相似度越低。
[0137]
20213,基于第三函数值和第四函数值确定第二损失函数值。
[0138]
本实施例不对基于第三函数值和第四函数值确定第二损失函数值的方式加以限定。以通过hinge loss函数确定第二损失函数值为例,对确定第二损失函数值的方式进行说明。示例性地,基于第三函数值和第四函数值计算第二差值,计算第二差值与第二超参数之和,得到更新后的第二差值。将更新后的第二差值和第二参考数值中较大的数值确定为第二损失函数值。其中,本实施例不对第二超参数和第二参考数值加以限定,第二超参数例如为0.1,第二参考数值例如为0。通过hinge loss函数确定第二损失函数值的方式能够表示为如下的公式(8):
[0139][0140]
在公式(8)中,为第二损失函数值,α2为第二参考数值,β2为第二超参数。r(xi,ki)为第三函数值,为第四函数值,因而为第四函数值,因而为上述更新后的第二差值。max{
·
}表示在{
·
}内的元素中取最大值,{
·
}内的元素即为第二参考数值α2和更新后的第二差值
[0141]
在另一些实施方式中,第一子训练样本中仅包括第二正训练样本,不包括第二负训练样本。此种方式中,在按照20211确定第一词汇对应的第五向量之后,按照20212确定第五向量与第二正训练样本中的第一知识语句之间的第三函数值,而不再确定第四函数值。之后,直接基于第三函数值确定第二损失函数值,例如删除上述公式(8)中的得到更新后的公式(8),根据更新后的公式(8)确定第二损失函数值。
[0142]
2022,参见图3,将各个第一词汇对应的第五向量输入第三初始模型,确定第三损失函数值,第三损失函数值用于指示第三初始模型基于各个第一词汇对应的第五向量输出第二子训练样本中的参考回复语句的概率。
[0143]
其中,一个第一词汇xi对应的一个第五向量表示为hi,则各个第一词汇对应的第五向量表示为h(x)={h1,h2,

,hn}。另外,将第二子训练样本中的参考回复语句表示为y={y1,y2,

,ym},m为不小于1的正整数,用于指示参考回复语句中包括的词汇数量。
[0144]
对于参考回复语句中的一个词汇yq(q∈m)而言,第三初始模型基于各个第一词汇对应的第五向量h(x)和该词汇之前的各个词汇y
<q
生成该词汇yq。当然,对于参考回复语句中的第一个词汇y1而言,由于该第一个词汇之前不存在其他词汇,因而第一个词汇仅基于
各个第一词汇对应的第五向量h(x)生成。基于此,第三初始模型中一个词汇yq的生成概率表示为如下的公式(9):
[0145][0146]
示例性地,本实施例基于公式(9)计算nll(negative log-likelihood,负对数似然)损失,得到第三损失函数值,该第三损失函数值指示第三初始模型基于各个第一词汇对应的第五向量输出第二子训练样本中的参考回复语句的概率。则得到第三损失函数值均过程表示为如下的公式(10):
[0147][0148]
2023,基于第二损失函数值和第三损失函数值确定第四损失函数值,基于第四损失函数值,将第二初始模型更新为编码子模型,将第三初始模型更新为解码子模型。
[0149]
示例性地,本实施例将第二损失函数值和第三损失函数值的加权求和值确定为第四损失函数值参见如下的公式(11):
[0150][0151]
其中,γ为第三损失函数值对应的权重,本实施例不对γ的取值加以限定,γ例如为1。
[0152]
示例性地,基于第四损失函数值将第二初始模型更新为编码子模型,将第三初始模型更新为解码子模型,包括:对第四损失函数值进行最小化,再通过反向梯度传播过程对第二初始模型进行更新得到编码子模型,以及对第三初始模型进行更新得到解码子模型。
[0153]
综上所述,本技术实施例中用于训练得到回复模型的训练样本中包括发言语句中各个词汇对应的知识语句。由于词汇对应的知识语句是细粒度的知识,因而回复模型在训练过程中便能够学习到细粒度的知识。因此,在使用回复模型输出回复语句时,无需额外检索知识并输入回复模型,提高了获取回复语句的效率。并且,所输出的回复语句考虑了细粒度的知识,具有较高的质量。
[0154]
本技术实施例还提供了一种回复语句的获取方法,参见图4,该方法包括如下的步骤401-403。
[0155]
401,获取需要回复的目标发言语句。
[0156]
其中,获取需要回复的目标发言语句的方式参见上文202中的说明,此处不再进行赘述。
[0157]
402,将目标发言语句输入回复模型中的编码子模型,编码子模型用于将目标发言语句编码为目标向量,回复模型中还包括解码子模型,解码子模型用于根据目标向量输出目标回复语句,其中,编码子模型和解码子模型是基于第一训练样本训练得到的,第一训练样本基于参考发言语句、参考回复语句和参考发言语句中的各个第一词汇对应的第一知识语句生成。
[0158]
在402中,包括有编码子模型和解码子模型的回复模型是通过上文201和202训练得到的模型。
[0159]
403,获得回复模型中的解码子模型输出的目标回复语句。
[0160]
将目标发言语句输入回复模型中的编码子模型之后,回复模型中的解码子模型会输出目标发言语句对应的目标回复语句。该目标回复语句的质量较高,且获得该目标回复语句的效率也较高。其中,输出目标回复语句的过程参见上文202中的说明,此处不再进行赘述。
[0161]
本技术实施例所提供的方法能够应用于地图领域。例如,本技术实施例所提供的方法应用于地图领域中的车载场景下的语音交互过程。在该语音交互过程中,对用户发出的语音进行语音识别,得到需要回复的发言语句。之后,执行上述步骤402和403,得到目标回复语句。接着,通过文字、语音等方式将目标回复语句返回给用户,从而完成一次语音交互。
[0162]
如前所述,本实施例中的回复模型是知识内化的kgd系统。也即是,本实施例通过知识内化(ki)过程实现了回复语句的获取。接下来,结合实际数据对知识内化过程所具备的有益效果进行说明。
[0163]
在一种相关技术中,提供了seq2seq、transformer等典型对话系统。这些典型对话系统采用编码器-解码器结构,因而能够与本实施例中的知识内化过程相结合,得到seq2seq+ki和transformer+ki。将seq2seq、transformer、seq2seq+ki和transformer+ki分别在不同的数据集上训练,得到如下表1、表2、表3和表4所示的结果。
[0164]
表1
[0165][0166]
表1示出了在数据集dailydialog上训练的结果。表1中,ppl用于指示回复语句的困惑度,bleu-4用于指示回复语句的精确率,rouge用于指示回复语句的召回率,distinc-1/2用于指示回复语句的多样性。能够看出,seq2seq+ki生成的回复语句的多样性(3.36/14.10)高于seq2seq生成的回复语句的多样性(2.85/11.74),transformer+ki生成的回复语句的多样性(4.39/21.88)高于transformer生成的回复语句的多样性(1.48/5.10)。因此,本实施例中的知识内化过程能够提高回复语句的多样性,从而提高了回复语句的质量。
[0167]
表2
[0168][0169]
表2示出了在数据集crd上训练的结果。能够看出,seq2seq+ki生成的回复语句的多样性(1.86/7.73)高于seq2seq生成的回复语句的多样性(1.13/4.47),transformer+ki生成的回复语句的多样性(3.24/17.81)高于transformer生成的回复语句的多样性(2.01/7.40)。因此,本实施例中的知识内化过程能够提高回复语句的多样性,从而提高了回复语句的质量。
[0170]
表3
[0171][0172]
表3示出了在数据集wow test seen上训练的结果。其中,wikif1用于指示回复语句的知识丰富程度。能够看出,seq2seq+ki生成的回复语句的知识丰富程度(9.59)高于seq2seq生成的回复语句的知识丰富程度(6.15),seq2seq+ki生成的回复语句的多样性(4.99/17.32)高于seq2seq生成的回复语句的多样性(1.81/5.48)。transformer+ki生成的回复语句的知识丰富程度(10.69)高于transformer生成的回复语句的知识丰富程度(6.83),transformer+ki生成的回复语句的多样性(5.66/18.68)高于transformer生成的回复语句的多样性(1.95/4.44)。因此,本实施例中的知识内化过程既能够提高回复语句的多样性,又能够提高回复语句包括的知识的丰富程度,从而提高了回复语句的质量。
[0173]
表4
[0174][0175]
表4示出了在数据集wow test unseen上训练的结果。能够看出,seq2seq+ki生成
的回复语句的知识丰富程度(7.09)高于seq2seq生成的回复语句的知识丰富程度(6.11),seq2seq+ki生成的回复语句的多样性(3.12/12.05)高于seq2seq生成的回复语句的多样性(2.58/10.25)。transformer+ki生成的回复语句的知识丰富程度(7.13)高于transformer生成的回复语句的知识丰富程度(5.43),transformer+ki生成的回复语句的多样性(3.82/12.98)高于transformer生成的回复语句的多样性(1.43/3.27)。因此,本实施例中的知识内化过程既能够提高回复语句的多样性,又能够提高回复语句包括的知识的丰富程度,从而提高了回复语句的质量。
[0176]
需要说明的是,将典型对话系统与知识内化过程相结合,并不会引入额外的开销。因此,回复语句的获取效率仍然较高,高于相关技术中知识外化的kgd系统。参见如下的表5,以transformer和transformer+ki为例,对比说明结合知识内化过程后的回复语句的获取效率。
[0177]
表5
[0178][0179]
在表5中,sent/s表示测试过程中每秒解码的语句(sentence)数量,tok/s表示测试过程中每秒解码的字符(token)数量,time表示完成测试过程所需消耗的总时间。能够看出,在数据集dailydialog上,transformer+ki消耗的时间(35.1)相比于transformer消耗的时间(31.4)仅增加了3.7秒。在数据集wow unseen上,transformer+ki消耗的时间(24.3)相比于transformer消耗的时间(22.4)仅增加了1.9秒。而在数据集crd上,transformer+ki消耗的时间(108.8)小于transformer消耗的时间(126.7)。在数据集wow seen上,transformer+ki消耗的时间(25.4)也小于transformer消耗的时间(25.9)。因此,将典型对话系统与知识内化过程相结合,能够保证回复语句的获取效率。
[0180]
综合如上的表1-表5可知,将典型对话系统与本实施例提供的知识内化过程相结合,能够提高回复语句的多样性,还能够提高回复语句包括的知识的丰富程度,且不会造成额外的开销,保证了回复语句的获取效率。
[0181]
在另一种相关技术中,提供了知识外化的kgd系统:diffks。由于diffks也采用编码器-解码器结构,因而能够与本实施例中的知识内化过程相结合,得到diffks+ki。将diffks和diffks+ki分别在不同的数据集上训练,得到如下表6和表7所示的结果。
[0182]
表6
[0183][0184]
表6示出了在数据集wow test seen上训练的结果。其中,diffks+ki生成的回复语句的知识丰富程度(7.09)高于diffks生成的回复语句的知识丰富程度(6.11,diffks+ki生成的回复语句的多样性(3.12/12.05)高于diffks生成的回复语句的多样性(2.58/10.25)。因此,本实施例中的知识内化过程既能够提高回复语句的多样性,又能够提高回复语句包括的知识的丰富程度,从而提高了回复语句的质量。
[0185]
表7
[0186][0187]
表7示出了在数据集wow test seen上训练的结果。其中,diffks+ki生成的回复语句的知识丰富程度(7.09)高于diffks生成的回复语句的知识丰富程度(6.11),diffks+ki生成的回复语句的多样性(3.12/12.05)高于diffks生成的回复语句的多样性(2.58/10.25)。因此,本实施例中的知识内化过程既能够提高回复语句的多样性,又能够提高回复语句包括的知识的丰富程度,从而提高了回复语句的质量。
[0188]
综合如上的表6和表7可知,将知识外化的kgd系统与本实施例提供的知识内化过程相结合,能够提高回复语句的多样性,还能够提高回复语句包括的知识的丰富程度。
[0189]
本技术实施例提供了一种回复模型的获取装置,参见图5,该装置包括如下的模块。
[0190]
获取模块501,用于获取第一训练样本,第一训练样本基于参考发言语句、参考回复语句和参考发言语句中的各个第一词汇对应的第一知识语句生成;
[0191]
训练模块502,用于基于第一训练样本训练得到回复模型,回复模型包括编码子模型和解码子模型,编码子模型用于将输入的目标发言语句编码为目标向量,解码子模型用于根据目标向量输出目标回复语句。
[0192]
在示例性实施例中,获取模块501,用于获取参考发言语句,确定参考发言语句中的各个第一词汇对应的第一知识语句,基于参考发言语句中的各个第一词汇对应的第一知识语句生成第一子训练样本;确定参考发言语句对应的参考回复语句,基于参考回复语句生成第二子训练样本;
[0193]
训练模块502,用于基于第一子训练样本和第二子训练样本,训练得到编码子模型和解码子模型。
[0194]
在示例性实施例中,获取模块501,用于将参考发言语句输入检索模型,检索模型用于将参考发言语句中的各个第一词汇分别编码为第一向量,输出各个第一向量,各个第
一词汇与各个第一向量一一对应,其中,检索模型是基于第二训练样本训练得到的,第二训练样本基于第二词汇、第二词汇所在的语句和第二词汇对应的第二知识语句生成;获得检索模型输出的各个第一向量,对于任一第一向量,从知识库包括的备选知识语句中检索得到与任一第一向量相关性最高的备选知识语句,得到任一第一向量对应的第一知识语句。
[0195]
在示例性实施例中,获取模块501,还用于获取词条对应的描述语句,描述语句包括至少一个针对词条的描述词汇;对于任一描述词汇,将任一描述词汇确定为第二词汇,将描述语句确定为第二词汇所在的语句和第二词汇对应的第二知识语句;基于第二词汇、第二词汇所在的语句和第二词汇对应的第二知识语句生成第二训练样本,基于第二训练样本训练得到检索模型。
[0196]
在示例性实施例中,第二训练样本包括第一正训练样本和第一负训练样本,获取模块501,用于对于任一第二词汇,将任一第二词汇、任一第二词汇所在的语句和第二词汇对应的第二知识语句组成第一正训练样本,将任一第二词汇、任一第二词汇所在的语句和其他第二词汇对应的第二知识语句组成第一负训练样本,其他第二词汇对应的第二知识语句与任一第二词汇不相关。
[0197]
在示例性实施例中,获取模块501,用于对于任一第二词汇,将任一第二词汇所在的语句输入第一初始模型,得到第一初始模型输出的任一第二词汇对应的第二向量;确定第二向量与第一正训练样本中的第二知识语句之间的第一函数值,确定第二向量与第一负训练样本中的第二知识语句之间的第二函数值;基于第一函数值和第二函数值确定第一损失函数值,基于第一损失函数值将第一初始模型更新为检索模型。
[0198]
在示例性实施例中,获取模块501,用于将第一正训练样本中的第二知识语句编码为第一向量组,对第一向量组进行池化得到第三向量,将第一负训练样本中的第二知识语句编码为第二向量组,对第二向量组进行池化得到第四向量;对第二向量、第三向量和第四向量进行映射及归一化,得到长度相同的更新后的第二向量、更新后的第三向量和更新后的第四向量;计算更新后的第二向量和更新后的第三向量之间的点积,得到第一函数值,计算更新后的第二向量和更新后的第四向量之间的点积,得到第二函数值。
[0199]
在示例性实施例中,训练模块502,用于将第一子训练样本中的第一词汇输入第二初始模型,得到第二初始模型输出的第一子训练样本中的第一词汇对应的第五向量,基于第五向量和第一子训练样本中的第一知识语句确定第二损失函数值;将各个第一词汇对应的第五向量输入第三初始模型,确定第三损失函数值,第三损失函数值用于指示第三初始模型基于各个第一词汇对应的第五向量输出第二子训练样本中的参考回复语句的概率;基于第二损失函数值和第三损失函数值确定第四损失函数值,基于第四损失函数值,将第二初始模型更新为编码子模型,将第三初始模型更新为解码子模型。
[0200]
在示例性实施例中,第一子训练样本包括第二正训练样本和第二负训练样本,获取模块501,用于对于任一第一词汇,将任一第一词汇与任一第一词汇对应的第一知识语句组成第二正训练样本,将任一第一词汇与其他第一词汇对应的第一知识语句组成第二负训练样本,其他第一词汇对应的第一知识语句与任一第一词汇不相关。
[0201]
在示例性实施例中,训练模块502,用于对于任一第一词汇,将任一第一词汇输入第二初始模型,得到第二初始模型输出的任一第一词汇对应的第五向量;基于第五向量和第二正训练样本中的第一知识语句确定第三函数值,基于第五向量和第二负训练样本中的
第一知识语句确定第四函数值;基于第三函数值和第四函数值确定第二损失函数值。
[0202]
在示例性实施例中,训练模块502,用于将第二正训练样本中的第一知识语句编码为第三向量组,对第三向量组进行池化得到第六向量,将第二负训练样本中的第一知识语句编码为第四向量组,对第四向量组进行池化得到第七向量;对第五向量、第六向量和第七向量进行映射及归一化,得到长度相同的更新后的第五向量,更新后的第六向量和更新后的第七向量;计算更新后的第五向量和更新后的第六向量之间的点积,得到第三函数值,计算更新后的第五向量和更新后的第七向量之间的点积,得到第四函数值。
[0203]
本技术实施例提供了一种回复语句的获取装置,参见图6,该装置包括如下的模块。
[0204]
获取模块601,用于获取需要回复的目标发言语句;
[0205]
输入模块602,用于将目标发言语句输入回复模型中的编码子模型,编码子模型用于将目标发言语句编码为目标向量,回复模型中还包括解码子模型,解码子模型用于根据目标向量输出目标回复语句,其中,编码子模型和解码子模型是基于第一训练样本训练得到的,第一训练样本基于参考发言语句、参考回复语句和参考发言语句中的各个第一词汇对应的第一知识语句生成;
[0206]
获得模块603,用于获得回复模型中的解码子模型输出的目标回复语句。
[0207]
综上所述,本技术实施例中用于训练得到回复模型的训练样本中包括发言语句中各个词汇对应的知识语句。由于词汇对应的知识语句是细粒度的知识,因而回复模型在训练过程中便能够学习到细粒度的知识。因此,在使用回复模型输出回复语句时,无需额外检索知识并输入回复模型,提高了获取回复语句的效率。并且,所输出的回复语句考虑了细粒度的知识,具有较高的质量。
[0208]
需要说明的是,上述实施例提供的装置在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
[0209]
参见图7,其示出了本技术实施例提供的一种电子设备700的结构示意图。该电子设备700可以是便携式移动电子设备,比如:智能手机、平板电脑、mp3播放器(moving picture experts group audio layer iii,动态影像专家压缩标准音频层面3)、mp4(moving picture experts group audio layer iv,动态影像专家压缩标准音频层面4)播放器、笔记本电脑或台式电脑。电子设备700还可能被称为用户设备、便携式电子设备、膝上型电子设备、台式电子设备等其他名称。
[0210]
通常,电子设备700包括有:处理器701和存储器702。
[0211]
处理器701可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器701可以采用dsp(digital signal processing,数字信号处理)、fpga(field-programmable gate array,现场可编程门阵列)、pla(programmable logic array,可编程逻辑阵列)所组成的群组中的至少一种硬件形式来实现。处理器701也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称cpu(central processing unit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功
耗处理器。在一些实施例中,处理器701可以集成有gpu(graphics processing unit,图像处理器),gpu用于负责显示屏705所需要显示的内容的渲染和绘制。一些实施例中,处理器701还可以包括ai(artificial intelligence,人工智能)处理器,该ai处理器用于处理有关机器学习的计算操作。
[0212]
存储器702可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器702还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器702中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器701所执行以实现本技术中方法实施例提供的回复模型的获取方法或者回复语句的获取方法。
[0213]
在一些实施例中,电子设备700还可选包括有:外围设备接口703和至少一个外围设备。处理器701、存储器702和外围设备接口703之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口703相连。具体地,外围设备包括:射频电路704、显示屏705、摄像头组件706、音频电路707、定位组件708和电源709所组成的群组中的至少一种。
[0214]
外围设备接口703可被用于将i/o(input/output,输入/输出)相关的至少一个外围设备连接到处理器701和存储器702。在一些实施例中,处理器701、存储器702和外围设备接口703被集成在同一芯片或电路板上;在一些其他实施例中,处理器701、存储器702和外围设备接口703中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
[0215]
射频电路704用于接收和发射rf(radio frequency,射频)信号,也称电磁信号。射频电路704通过电磁信号与通信网络以及其他通信设备进行通信。射频电路704将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路704包括:天线系统、rf收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路704可以通过至少一种无线通信协议来与其它电子设备进行通信。该无线通信协议包括但不限于:城域网、各代移动通信网络(2g、3g、4g及7g)、无线局域网和/或wi-fi(wireless fidelity,无线保真)网络。在一些实施例中,射频电路704还可以包括nfc(near field communication,近距离无线通信)有关的电路,本技术对此不加以限定。
[0216]
显示屏705用于显示ui(user interface,用户界面)。该ui可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏705是触摸显示屏时,显示屏707还具有采集在显示屏705的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器701进行处理。此时,显示屏705还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏705可以为一个,设置在电子设备700的前面板;在另一些实施例中,显示屏705可以为至少两个,分别设置在电子设备700的不同表面或呈折叠设计;在另一些实施例中,显示屏705可以是柔性显示屏,设置在电子设备700的弯曲表面上或折叠面上。甚至,显示屏705还可以设置成非矩形的不规则图形,也即异形屏。显示屏705可以采用lcd(liquid crystal display,液晶显示屏)、oled(organic light-emitting diode,有机发光二极管)等材质制备。
[0217]
摄像头组件706用于采集图像或视频。可选地,摄像头组件706包括前置摄像头和
后置摄像头。通常,前置摄像头设置在电子设备的前面板,后置摄像头设置在电子设备的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及vr(virtual reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件706还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
[0218]
音频电路707可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器701进行处理,或者输入至射频电路704以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在电子设备700的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器701或射频电路704的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路707还可以包括耳机插孔。
[0219]
定位组件708用于定位电子设备700的当前地理位置,以实现导航或lbs(location based service,基于位置的服务)。定位组件708可以是基于美国的gps(global positioning system,全球定位系统)、中国的北斗系统、俄罗斯的格雷纳斯系统或欧盟的伽利略系统的定位组件。
[0220]
电源709用于为电子设备700中的各个组件进行供电。电源709可以是交流电、直流电、一次性电池或可充电电池。当电源709包括可充电电池时,该可充电电池可以支持有线充电或无线充电。该可充电电池还可以用于支持快充技术。
[0221]
在一些实施例中,电子设备700还包括有一个或多个传感器710。该一个或多个传感器710包括但不限于:加速度传感器711、陀螺仪传感器712、压力传感器713、指纹传感器714、光学传感器717以及接近传感器716。
[0222]
加速度传感器711可以检测以电子设备700建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器711可以用于检测重力加速度在三个坐标轴上的分量。处理器701可以根据加速度传感器711采集的重力加速度信号,控制显示屏705以横向视图或纵向视图进行用户界面的显示。加速度传感器711还可以用于游戏或者用户的运动数据的采集。
[0223]
陀螺仪传感器712可以检测电子设备700的机体方向及转动角度,陀螺仪传感器712可以与加速度传感器711协同采集用户对电子设备700的3d动作。处理器701根据陀螺仪传感器712采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变ui)、拍摄时的图像稳定、游戏控制以及惯性导航。
[0224]
压力传感器713可以设置在电子设备700的侧边框和/或显示屏707的下层。当压力传感器713设置在电子设备700的侧边框时,可以检测用户对电子设备700的握持信号,由处理器701根据压力传感器713采集的握持信号进行左右手识别或快捷操作。当压力传感器713设置在显示屏705的下层时,由处理器701根据用户对显示屏705的压力操作,实现对ui界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件所组成的群组中的至少一种。
[0225]
指纹传感器714用于采集用户的指纹,由处理器701根据指纹传感器714采集到的指纹识别用户的身份,或者,由指纹传感器714根据采集到的指纹识别用户的身份。在识别出用户的身份为可信身份时,由处理器701授权该用户执行相关的敏感操作,该敏感操作包括解锁屏幕、查看加密信息、下载软件、支付及更改设置等。指纹传感器714可以被设置在电子设备700的正面、背面或侧面。当电子设备700上设置有物理按键或厂商logo时,指纹传感器714可以与物理按键或厂商logo集成在一起。
[0226]
光学传感器717用于采集环境光强度。在一个实施例中,处理器701可以根据光学传感器717采集的环境光强度,控制显示屏705的显示亮度。具体地,当环境光强度较高时,调高显示屏705的显示亮度;当环境光强度较低时,调低显示屏705的显示亮度。在另一个实施例中,处理器701还可以根据光学传感器717采集的环境光强度,动态调整摄像头组件706的拍摄参数。
[0227]
接近传感器716,也称距离传感器,通常设置在电子设备700的前面板。接近传感器716用于采集用户与电子设备700的正面之间的距离。在一个实施例中,当接近传感器716检测到用户与电子设备700的正面之间的距离逐渐变小时,由处理器701控制显示屏705从亮屏状态切换为息屏状态;当接近传感器716检测到用户与电子设备700的正面之间的距离逐渐变大时,由处理器701控制显示屏705从息屏状态切换为亮屏状态。
[0228]
本领域技术人员可以理解,图7中示出的结构并不构成对电子设备700的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
[0229]
图8为本技术实施例提供的服务器的结构示意图,该服务器800可因配置或性能不同而产生比较大的差异,可以包括一个或多个处理器801和一个或多个的存储器802,其中,该一个或多个存储器802中存储有至少一条程序代码,该至少一条程序代码由该一个或多个处理器801加载并执行,以使服务器实现上述各个方法实施例提供的回复模型的获取方法或者回复语句的获取方法。当然,该服务器800还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该服务器800还可以包括其他用于实现设备功能的部件,在此不做赘述。
[0230]
本技术实施例提供了一种计算机设备,计算机设备包括存储器及处理器;存储器中存储有至少一条指令,至少一条指令由处理器加载并执行,以使计算机设备实现本技术的任一种示例性实施例所提供的回复模型的获取方法或者回复语句的获取方法。
[0231]
本技术实施例提供了一种计算机可读存储介质,计算机可读存储介质中存储有至少一条指令,指令由处理器加载并执行,以使计算机实现本技术的任一种示例性实施例所提供的回复模型的获取方法或者回复语句的获取方法。
[0232]
本技术实施例提供了一种计算机程序或计算机程序产品,计算机程序或计算机程序产品包括:计算机指令,计算机指令被计算机执行时,使得计算机实现本技术的任一种示例性实施例所提供的回复模型的获取方法或者回复语句的获取方法。
[0233]
上述所有可选技术方案,可以采用任意结合形成本技术的可选实施例,在此不再一一赘述。
[0234]
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0235]
以上所述仅为本技术的实施例,并不用以限制本技术,凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1