对话生成方法、装置、电子设备及介质转让专利

申请号 : CN202010991996.2

文献号 : CN111831813B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 焦振宇韩磊郭洪杰孙叔琦李婷婷孙珂

申请人 : 北京百度网讯科技有限公司

摘要 :

本申请公开了对话生成方法、装置、电子设备及介质,涉及自然语言处理技术领域。具体实现方案为:通过将获取的问题信息分别输入至小样本学习模型和深度学习模型中以生成第一特征和第二特征,并将第一特征和第二特征进行组合以生成特征序列,进而将特征序列输入至融合模型以生成问题信息对应的对话信息,由此,通过联合小样本学习模型和深度学习模型以及融合模型来生成问题对应的对话信息,使得模型在较少样本和较多样本的情况下均能获得较好的效果,无需设置阈值对小样本学习模型和深度学习模型进行选择,从而不易出现随样本量增加而导致问题理解的准确率下降的问题,提高了模型的稳定性。

权利要求 :

1.一种对话生成方法,包括:

获取问题信息;

将所述问题信息输入至小样本学习模型之中以生成第一特征,其中,所述第一特征包括问题特征和支撑集特征,所述将所述问题信息输入至小样本学习模型之中以生成第一特征,包括:所述小样本学习模型对所述问题信息进行特征提取以生成所述问题特征;以及所述小样本学习模型根据所述问题特征获取所述问题信息对应的支撑集,并获取所述问题信息对应的支撑集的支撑集特征;

将所述问题信息输入至深度学习模型之中以生成第二特征;

将所述第一特征和所述第二特征进行组合以生成特征序列;以及

将所述特征序列输入至融合模型以生成所述问题信息对应的对话信息。

2.如权利要求1所述的对话生成方法,其中,所述小样本学习模型根据所述问题特征获取所述问题信息对应的支撑集,包括:所述小样本学习模型获取多个候选支撑集,并获取每个所述候选支撑集的意图特征;

所述小样本学习模型根据所述问题特征和每个所述候选支撑集的意图特征生成所述问题特征相对于所述多个候选支撑集的直接得分;以及根据所述问题特征相对于所述多个候选支撑集的直接得分从所述多个候选支撑集之中选择所述问题信息对应的支撑集。

3.如权利要求2所述的对话生成方法,其中,还包括:

根据所述每个候选支撑集的意图特征生成所述多个候选支撑集之间的上下文特征;以及根据所述问题特征、所述每个候选支撑集的意图特征和所述上下文特征生成对比得分,其中,根据所述直接得分和所述对比得分从所述多个候选支撑集之中选择所述问题信息对应的支撑集。

4.如权利要求2所述的对话生成方法,其中,所述候选支撑集包括多个问题,所述候选支撑集的意图特征通过如下步骤获得:获取所述候选支撑集之中多个问题的问题特征;以及

根据所述多个问题的问题特征生成所述候选支撑集的意图特征。

5.如权利要求1所述的对话生成方法,其中,所述小样本学习模型、所述深度学习模型和所述融合模型进行联合训练得到。

6.如权利要求1所述的对话生成方法,其中,所述第二特征包括低阶特征和高阶特征,所述将所述问题信息输入至深度学习模型之中以生成第二特征,包括:所述深度学习模型对所述问题信息进行特征提取以生成所述问题信息的特征信息;

所述深度学习模型对所述特征信息进行特征嵌入处理,生成所述问题信息的所述低阶特征;

所述深度学习模型对所述低阶特征进行特征融合,生成所述高阶特征。

7.如权利要求6所述的对话生成方法,其中,所述深度学习模型还接收所述问题信息的外部特征向量,所述外部特征向量通过预设的向量表示模型生成,所述深度学习模型对所述低阶特征进行特征融合,生成所述高阶特征,包括:所述深度学习模型对所述低阶特征和所述外部特征向量进行特征融合,生成所述高阶特征。

8.如权利要求7所述的对话生成方法,其中,所述深度学习模型还接收所述问题信息的外部知识向量,所述外部知识向量为预设训练样本中与所述问题信息匹配的目标训练样本对应的向量表示,所述深度学习模型对所述低阶特征进行特征融合,生成所述高阶特征,包括:对所述低阶特征、所述外部知识向量和所述外部特征向量进行特征融合,生成所述高阶特征。

9.如权利要求1所述的对话生成方法,其中,所述将所述第一特征和所述第二特征进行组合以生成特征序列,包括:利用预设的多个融合算子对所述第一特征和所述第二特征进行组合,生成所述特征序列,所述融合算子包括拼接算子、内积算子和双线性特征交叉积。

10.一种对话生成装置,包括:

获取模块,用于获取问题信息;

小样本学习模型,用于生成所述问题信息的第一特征;

深度学习模型,用于生成所述问题信息的第二特征,其中,所述第一特征包括问题特征和支撑集特征,所述小样本学习模型对所述问题信息进行特征提取以生成所述问题特征,以及根据所述问题特征获取所述问题信息对应的支撑集,并获取所述问题信息对应的支撑集的支撑集特征;

融合模型,用于生成所述问题信息对应的对话信息;

第一输入模块,用于将所述问题信息输入至小样本学习模型之中以生成第一特征;

第二输入模块,用于将所述问题信息输入至深度学习模型之中以生成第二特征;

组合模块,用于将所述第一特征和所述第二特征进行组合以生成特征序列;以及生成模块,用于将所述特征序列输入至融合模型以生成所述问题信息对应的对话信息。

11.如权利要求10所述的对话生成装置,其中,所述小样本学习模型获取多个候选支撑集,并获取每个所述候选支撑集的意图特征,根据所述问题特征和每个所述候选支撑集的意图特征生成所述问题特征相对于所述多个候选支撑集的直接得分,并根据所述问题特征相对于所述多个候选支撑集的直接得分从所述多个候选支撑集之中选择所述问题信息对应的支撑集。

12.如权利要求11所述的对话生成装置,其中,所述小样本学习模型根据所述每个候选支撑集的意图特征生成所述多个候选支撑集之间的上下文特征,并根据所述问题特征、所述每个候选支撑集的意图特征和所述上下文特征生成对比得分,根据所述直接得分和所述对比得分从所述多个候选支撑集之中选择所述问题信息对应的支撑集。

13.如权利要求11所述的对话生成装置,其中,所述候选支撑集包括多个问题,所述小样本学习模型获取所述候选支撑集之中多个问题的问题特征,根据所述多个问题的问题特征生成所述候选支撑集的意图特征。

14.如权利要求10所述的对话生成装置,其中,所述小样本学习模型、所述深度学习模型和所述融合模型进行联合训练得到。

15.如权利要求10所述的对话生成装置,其中,所述第二特征包括低阶特征和高阶特征,所述深度学习模型对所述问题信息进行特征提取以生成所述问题信息的特征信息,对所述特征信息进行特征嵌入处理,生成所述问题信息的所述低阶特征,并对所述低阶特征进行特征融合,生成所述高阶特征。

16.如权利要求15所述的对话生成装置,其中,所述深度学习模型还接收所述问题信息的外部特征向量,所述外部特征向量通过预设的向量表示模型生成;所述深度学习模型对所述低阶特征和所述外部特征向量进行特征融合,生成所述高阶特征。

17.如权利要求16所述的对话生成装置,其中,所述深度学习模型还接收所述问题信息的外部知识向量,所述外部知识向量为预设训练样本中与所述问题信息匹配的目标训练样本对应的向量表示;所述深度学习模型对所述低阶特征、所述外部知识向量和所述外部特征向量进行特征融合,生成所述高阶特征。

18.如权利要求10所述的对话生成装置,其中,所述组合模块利用预设的多个融合算子对所述第一特征和所述第二特征进行组合,生成所述特征序列,所述融合算子包括拼接算子、内积算子和双线性特征交叉积。

19.一种电子设备,包括:

至少一个处理器;以及

与所述至少一个处理器通信连接的存储器;其中,

所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-9中任一项所述的对话生成方法。

20.一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行权利要求1-9中任一项所述的对话生成方法。

说明书 :

对话生成方法、装置、电子设备及介质

技术领域

[0001] 本申请的实施例总体上涉及计算机技术领域,并且更具体地,涉及自然语言处理技术领域。

背景技术

[0002] 对话理解技术是任务型对话机器人的关键技术,用于理解用户所输入问题的意图。对话机器人对问题的理解,依托于对话配置平台上配置的对应场景下包含的用户可能输入的意图以及对应的样本。
[0003] 目前,针对对话理解问题,通常采用深度学习模型或者小样本学习模型来预测用户输入的问题所对应的结果。在样本量较小的情况下,主要依据小样本学习模型实现对话理解,在样本量较多的情况下,主要依据深度学习模型实现对话理解。小样本学习模型和深度学习模型的选择主要通过设定基于训练样本量的阈值来实现。
[0004] 然而,人为设定阈值来选择小样本学习模型或深度学习模型,容易导致随着样本量的增加反而使问题理解的准确率下降的问题,模型的效果不佳。

发明内容

[0005] 本申请提供了一种对话生成方法、装置、电子设备及介质。
[0006] 根据第一方面,提供了一种对话生成方法,包括:
[0007] 获取问题信息;
[0008] 将所述问题信息输入至小样本学习模型之中以生成第一特征;
[0009] 将所述问题信息输入至深度学习模型之中以生成第二特征;
[0010] 将所述第一特征和所述第二特征进行组合以生成特征序列;以及
[0011] 将所述特征序列输入至融合模型以生成所述问题信息对应的对话信息。
[0012] 根据第二方面,提供了一种对话生成装置,包括:
[0013] 获取模块,用于获取问题信息;
[0014] 小样本学习模型,用于生成所述问题信息的第一特征;
[0015] 深度学习模型,用于生成所述问题信息的第二特征;
[0016] 融合模型,用于生成所述问题信息对应的对话信息;
[0017] 第一输入模块,用于将所述问题信息输入至小样本学习模型之中以生成第一特征;
[0018] 第二输入模块,用于将所述问题信息输入至深度学习模型之中以生成第二特征;
[0019] 组合模块,用于将所述第一特征和所述第二特征进行组合以生成特征序列;以及[0020] 生成模块,用于将所述特征序列输入至融合模型以生成所述问题信息对应的对话信息。
[0021] 根据第三方面,提供了一种电子设备,包括:
[0022] 至少一个处理器;以及
[0023] 与所述至少一个处理器通信连接的存储器;其中,
[0024] 所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如第一方面所述的对话生成方法。
[0025] 根据第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行如第一方面所述的对话生成方法。
[0026] 本申请提供的对话生成方法、装置、电子设备及介质,存在如下有益效果:
[0027] 通过将获取的问题信息分别输入至小样本学习模型和深度学习模型中以生成第一特征和第二特征,并将第一特征和第二特征进行组合以生成特征序列,进而将特征序列输入至融合模型以生成问题信息对应的对话信息,由此,通过联合小样本学习模型和深度学习模型以及融合模型来生成问题对应的对话信息,使得模型在较少样本和较多样本的情况下均能获得较好的效果,无需设置阈值对小样本学习模型和深度学习模型进行选择,从而不易出现随样本量增加而导致问题理解的准确率下降的问题,提高了模型的稳定性。
[0028] 应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。

附图说明

[0029] 附图用于更好地理解本方案,不构成对本申请的限定。其中:
[0030] 图1是根据本申请第一实施例的对话生成方法的流程示意图;
[0031] 图2是根据本申请第二实施例的对话生成方法的流程示意图;
[0032] 图3是本申请实施例提供的小样本学习模型的结构示意图;
[0033] 图4是根据本申请第三实施例的对话生成方法的流程示意图;
[0034] 图5是本申请实施例的深度学习模型的结构示意图;
[0035] 图6是根据本申请第四实施例的对话生成方法的流程示意图;
[0036] 图7是小样本学习模型和深度学习模型以及融合模型联合训练的过程示例图;
[0037] 图8是根据本申请第五实施例的对话生成装置的结构示意图;
[0038] 图9是用来实现本申请实施例的对话生成方法的电子设备的框图。

具体实施方式

[0039] 以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
[0040] 下面参考附图描述本申请的对话生成方法、装置、电子设备及介质。
[0041] 对话理解技术是任务型对话机器人的关键技术,用于理解用户所输入问题的意图。对话机器人对问题的理解,依托于对话配置平台上配置的对应场景下包含的用户可能输入的意图以及对应的样本(示例)。比如在一个酒店的场景中,可能存在定房间、退房间、请求打扫等意图,开发者需要为每个意图配置一些示例表述,也就是样本来训练模型,使得对话理解模型能够正确理解用户输入的每一个问题。其中,开发者是指在对话配置平台上通过配置意图和样本等数据,从而使平台获得对话技能,进而使用对话技能服务自身客户的人。
[0042] 目前,针对对话理解问题,通常采用的方法是对对话管理平台配置模板,以及通过配置大量的样本来训练深度学习模型对输入的问题进行分类。另外还有少量对话管理平台使用小样本学习技术来构建对话理解算子,当用户的一个问题输入到对话管理平台中时,不同的对话理解算子各自产出对应的理解结果,根据不同对话理解算子的得分以及此时训练数据的样本量等情况,依靠特定的规则得出该问题的意图。
[0043] 然而,模板的配置对开发者的要求比较高,需要开发者对场景有比较深的理解,且具备一定的归纳能力,并且,人工配置的模板的覆盖面比较有限。
[0044] 此外,深度学习模型的效果依赖于大量的样本,开发者需要标注比较多的样本,才能使模型取得比较好的效果。而小样本学习模型在样本量较少的情况下能够获得较好的效果,但当样本数增多时,其效果相对于深度学习模型较差。因此一般通过设定基于训练样本量的阈值来确定小样本学习模型和深度学习模型的选择优先级,当样本量小于阈值时,主要依据小样本学习模型来实现对话理解,当样本量高于阈值时,主要依据深度学习模型来实现对话理解。
[0045] 然而,人为设定阈值来选择深度学习模型或者小样本学习模型,无法获得最优结果,而且由于样本量的增加导致模型切换,容易产生随样本量的提高,原本在少量样本时能够被正确理解的问题,反而无法再被正确回答了,模型的效果和稳定性较差。
[0046] 针对上述问题,本申请公开了一种对话生成方法,通过将获取的问题信息分别输入至小样本学习模型和深度学习模型中以生成第一特征和第二特征,并将第一特征和第二特征进行组合以生成特征序列,进而将特征序列输入至融合模型以生成问题信息对应的对话信息,由此,通过联合小样本学习模型和深度学习模型以及融合模型来生成问题对应的对话信息,使得模型在较少样本和较多样本的情况下均能获得较好的效果,无需设置阈值对小样本学习模型和深度学习模型进行选择,从而不易出现随样本量增加而导致问题理解的准确率下降的问题,提高了模型的稳定性。
[0047] 图1是根据本申请第一实施例的对话生成方法的流程示意图,该方法可以由本申请提供的对话生成装置执行,也可以由本申请提供的电子设备执行,其中,电子设备可以是服务器,也可以是智能机器人、台式电脑、笔记本电脑、智能手机、可穿戴式设备等设备。下面以由本申请提供的对话生成装置来执行本申请提供的对话生成方法为例来解释说明本申请。
[0048] 如图1所示,该对话生成方法,可以包括以下步骤:
[0049] 步骤101,获取问题信息。
[0050] 本实施例中,问题信息可以是任何问题,比如,问题信息可以是用户请求的问题,比如,用户发出问题请求“去西二旗怎么走”,则“去西二旗怎么走”即为获取的问题信息。又比如,问题信息还可以是对训练完成后的模型进行测试时,用于对模型性能进行测试的问题。
[0051] 步骤102,将问题信息输入至小样本学习模型之中以生成第一特征。
[0052] 本实施例中,获取了问题信息后,可以将获取的问题信息输入至小样本学习模型中,以生成第一特征。其中,小样本学习模型是预先训练好的模型,将问题信息输入小样本学习模型之后,小样本学习模型根据输入的问题信息,即可生成并输出与问题信息对应的第一特征,第一特征比如可以包括问题信息对应的问题特征、与问题信息匹配的意图的特征,等等。
[0053] 元学习阶段是提出小样本学习理解技术的基础阶段。元学习又被称作学会学习,是指通过对模型进行多次不同任务的训练,使得模型获得了快速适应不同任务的学习能力,当模型遇到新的任务时,能够快速适配,仅仅依赖少量数据就能够获得较好的学习效果。通过元学习产出的模型称之为元模型,元学习的目标是使元模型专注于不同任务之间共同的特征,而降低对特定任务独有特征的依赖。而本申请实施例的小样本学习模型便是基于元学习构建并经过训练后得到的。
[0054] 本申请的小样本学习模型,将输入从问题信息与训练样本中的问题进行匹配,依据训练样本中相似的问题所属的意图类别来赋予输入的问题信息相应的意图类别,输出所输入的问题信息对应的问题特征、意图特征等,并能够实现在样本量较少的情况下获得较好的预测效果。
[0055] 对话管理平台在服务大量用户的同时,也积累了大量的用户配置数据,比如问题、意图、词槽、日志等。在本申请的实施例中,可以利用对话管理平台上积累的大量用户配置数据的技能数据,来构建大量场景下多个意图分类的学习任务,每个意图可以包含多个相关的问题,并用来进行元学习训练得到小样本学习模型,从而使得小样本学习模型能够适应于真实的各个场景下的意图分类任务,在训练时还可以通过不断地采用各种任务,以使得模型对各种类型的任务都有较好的效果。并且,利用对话管理平台上积累的数据来训练小样本学习模型,能够有效地减少模板标注量,降低开发者的工作量,并能够使得模型仅依赖较少的用户标注数据即可取得较好效果,模型受用户标注样本质量的影响较小,有利于提高模型的稳定性。
[0056] 步骤103,将问题信息输入至深度学习模型之中以生成第二特征。
[0057] 本实施例中,获取了问题信息后,可以将问题信息输入至深度学习模型中,以生成第二特征。其中,深度学习模型是预先训练好的模型,将问题信息输入至深度学习模型之后,深度学习模型根据输入的问题信息,可以生成并输出与问题信息对应的第二特征,第二特征比如可以是对问题信息进行词嵌入处理生成的特征向量、对特征向量进行融合处理得到的高阶特征等。
[0058] 本实施例中,将获取的问题信息输入至深度学习模型之后,深度学习模型对问题信息进行特征提取、嵌入、融合操作之后,可以生成并输出第二特征,具体生成第二特征的过程将在后续实施例中给出,为避免重复,此处不作详细说明。
[0059] 需要说明的是,步骤102和步骤103的执行顺序不分先后,本申请实施例仅以步骤103在步骤102之后执行作为示例来解释说明本申请,而不能作为对本申请的限制。
[0060] 步骤104,将第一特征和第二特征进行组合以生成特征序列。
[0061] 本实施例中,从小样本学习模型获取了问题信息的第一特征,以及从深度学习模型获取了问题信息的第二特征之后,可以将第一特征和第二特征进行组合,得到特征序列。其中,可以采用单一的组合方式对第一特征和第二特征进行组合,也可以是采用多种不同的方式对第一特征和第二特征进行组合,本申请对此不作限制。
[0062] 作为一种示例,对第一特征和第二特征进行组合的方式可以是拼接,将第一特征和第二特征进行拼接处理,得到拼接后的特征序列。当第一特征和/或第二特征包含多个特征时,可以将包含的每个特征均与另一特征进行拼接,生成多个特征序列。比如,第一特征中包含两个特征,第二特征中包含一个特征,则第一特征中的每个特征均与第二特征进行拼接,得到两个特征序列。
[0063] 作为一种示例,可以采用拼接、内积等多种不同的方式对第一特征和第二特征进行组合,得到多个特征序列,以保证特征序列的多样性。
[0064] 步骤105,将特征序列输入至融合模型以生成问题信息对应的对话信息。
[0065] 本实施例中,获取到特征序列之后,可以将特征序列输入至融合模型中,以生成问题信息对应的对话信息。其中,对话信息比如可以是符合问题信息的意图、能够回答问题信息的答案等信息。
[0066] 比如,当问题信息为“去西二旗怎么走”时,经过前述步骤的处理后,利用融合模型可以生成该问题信息对应的对话信息为路线导航,当本申请提供的对话生成方法应用于具有导航软件的电子设备时,将确定的对话信息反馈给导航软件,导航软件还可以根据对话信息向用户提供从用户所在的位置到达西二旗的路线推荐信息。
[0067] 本申请实施例中,融合模型为预先训练好的网络模型,在对融合模型进行训练时,可以采用交叉熵损失函数对融合模型进行优化。融合模型可以采用多层全连接网络来实现,并利用softmax函数输出最终结果,softmax函数输出的是问题信息属于每个意图类别的概率,根据各个概率的大小,即可确定问题信息对应的意图类别,进而得到对话信息。
[0068] 本实施例的对话生成方法,通过获取问题信息,并将问题信息输入至小样本学习模型以生成第一特征,以及将问题信息输入至深度学习模型中以生成第二特征,进而将第一特征和第二特征进行组合以生成特征序列,并将特征序列输入至融合模型以生成问题信息对应的对话信息,由此,通过联合小样本学习模型和深度学习模型以及融合模型来生成问题对应的对话信息,使得模型在较少样本和较多样本的情况下均能获得较好的效果,无需设置阈值对小样本学习模型和深度学习模型进行选择,从而不易出现随样本量增加而导致问题理解的准确率下降的问题,提高了模型的稳定性。
[0069] 在本申请实施例一种可能的实现方式中,将问题信息输入至小样本学习模型中,小样本学习模型生成并输出的第一特征包括问题特征和支撑集特征。下面结合附图2详细说明本申请实施例中,小样本学习模型生成问题特征和支撑集特征的具体实现过程。
[0070] 图2是根据本申请第二实施例的对话生成方法的流程示意图,如图2所示,在如图1所示实施例的基础上,步骤102可以包括以下步骤:
[0071] 步骤201,小样本学习模型对问题信息进行特征提取以生成问题特征。
[0072] 本实施例中,小样本学习模型接收到输入的问题信息后,对问题信息进行特征提取,生成问题特征。其中,问题特征是与问题信息对应的,对问题信息进行特征提取得到的特征即为问题特征。
[0073] 对问题信息进行特征提取,即对问题信息进行特征编码,将问题信息编码成一个特定长度的向量,该定长的向量即为问题信息对应的问题特征,用于标识问题信息。
[0074] 作为一种示例,对问题信息进行特征提取,可以采用双向长短期记忆网络(Long Short-Term Memory,LSTM)结合自注意力机制的方式来提取问题特征,或者,也可以采用其他的特征提取网络来提取问题特征,本申请对此不作限制。
[0075] 步骤202,小样本学习模型根据问题特征获取问题信息对应的支撑集,并获取问题信息对应的支撑集的支撑集特征。
[0076] 本实施例中,小样本学习模型提取到问题信息的问题特征之后,可以进一步根据问题特征获取问题信息对应的支撑集。
[0077] 其中,支撑集是小样本学习里面的独有概念,可以理解为开发者上传的训练数据。比如开发者配置了图书馆场景的技能,这个技能包含两个意图,一个是借书,一个是还书,开发者为借书配置了3条训练样本,分别是“我想借本书”、“我想借三国演义”,以及“我明天要借高等数学”,为还书配置了2条训练样本,分别是“我要还书”和“我想后天还书”,则这两个意图合计5条训练样本就构成了图书馆场景的支撑集。而本实施例中,是要从所有的支撑集中选择出与问题信息对应的支撑集,比如,当输入的问题信息为我想借书时,根据从问题信息中提取的问题特征,可以获取到问题信息对应的支撑集,是借书意图下包含的3条训练样本,即借书意图对应的训练样本“我想借本书”、“我想借三国演义”和“我明天要借高等数学”构成了问题信息对应的支撑集。
[0078] 在本申请实施例一种可能的实现方式中,小样本学习模型根据问题特征获取问题信息对应的支撑集时,可以先获取多个候选支撑集,并获取每个候选支撑集的意图特征。其中,候选支撑集可以根据问题信息对应的场景确定,比如,当问题信息所属的应用场景为图书馆场景时,可以获取借书意图对应的支撑集和还书意图对应的支撑集作为候选支撑集。又比如,当问题信息所属的应用场景为酒店场景时,可以获取订房间意图对应的支撑集、退房间意图对应的支撑集、请求打扫意图对应的支撑集等作为候选支撑集。
[0079] 接着,获取了多个候选支撑集之后,可以进一步获取每个候选支撑集的意图特征。
[0080] 作为一种可能的实现方式,可以将每个候选支撑集对应的意图进行向量表示,将意图的向量表示结果作为该候选支撑集的意图特征。
[0081] 作为一种可能的实现方式,候选支撑集中包括多个问题,可以先获取候选支撑集之中多个问题的问题特征,再根据多个问题的问题特征生成候选支撑集的意图特征。
[0082] 其中,对于候选支撑集中的每个问题,可以对每个问题进行特征编码,比如采用双向LSTM结合自注意力机制的方式对每个问题进行编码,得到每个问题对应的问题特征。
[0083] 在根据多个问题的问题特征生成意图特征时,对于每个候选支撑集,可以通过问题信息对应的问题特征,对该候选支撑集中的每个问题的问题特征做注意力机制,得到基于该候选支撑集中不同问题向量加权的意图原型向量,由此,即得到该候选支撑集的意图特征。
[0084] 举例而言,假设a表示输入的问题信息的问题特征,x_i表示第i个意图(也就是第i个候选支撑集),n表示第i个候选支撑集下的样本量,x_ij表示第i个候选支撑集的第j个问题对应的问题特征(j=1,2,…,n),x_i_class表示第i个候选支撑集对应的意图特征,则第i个候选支撑集对应的意图特征可以表示为:
[0085] x_i_class = (cos(a, x_i1) * x_i1 + cos(a, x_i2) * x_i1+…+ cos(a, x_in) * x_in) / n;
[0086] 进一步地,当样本量较多时,为了保证少量与输入的问题信息相似度较高的样本对意图特征的影响较大,可以选择相似度最大的k个样本的问题特征来表示意图特征,即:
[0087] x_i_class = (t_1 * cos(a, x_i1) * x_i1 + … + t_n *cos(a, x_in) * x_in) / k;
[0088] 其中,t_1 t_n中,对应cos值最大的k个为1,剩余为0,由此,使得与问题信息的问~题特征之间的相似度最大的问题样本对意图特征的影响较大。
[0089] 本实施例中,通过获取候选支撑集中多个问题的问题特征,并根据多个问题的问题特征生成候选支撑集的意图特征,由此,实现了对候选支撑集对应的意图的特征表示,意图特征是基于候选支撑集中不同问题特征的加权得到的,使得小样本学习模型对于输入的不同的问题信息,均可以得到不同的意图特征。
[0090] 根据上述记载的获取候选支撑集的意图特征的实现过程,可以获取到每个候选支撑集的意图特征,进而小样本学习模型根据问题信息对应的问题特征和每个候选支撑集的意图特征,生成问题信息对应的问题特征相对于多个候选支撑集的直接得分,并根据问题信息对应的问题特征相对于多个候选支撑集的直接得分从多个候选支撑集之中选择问题信息对应的支撑集。
[0091] 作为一种示例,在生成问题信息对应的问题特征相对于多个候选支撑集的直接得分时,可以将问题信息对应的问题特征分别与每个候选支撑集对应的意图特征进行拼接,之后经过两个全连接层进行处理,再经过sigmoid函数,输出一个0 1之间的得分,该得到即~为直接得分。每个候选支撑集对应的意图特征均经过上述处理过程,得到输入的问题信息属于不同候选支撑集的直接得分,直接得分用来表示得分的表意性,代表了对分类正确的置信度,根据问题信息对应的问题特征相对于多个候选支撑集的直接得分,可以从多个候选支撑集之中选择出问题信息对应的支撑集。比如,可以选择直接得分最高的候选支撑集作为与问题信息对应的支撑集。
[0092] 本实施例中,通过获取多个候选支撑集,并获取每个候选支撑集的意图特征,进而根据问题信息对应的问题特征和每个候选支撑集的意图特征,生成问题特征相对于多个候选支撑集的直接得分,最后根据直接得分选择出问题信息对应的支撑集,由此,能够从多个候选支撑集中选择出与问题信息最匹配的支撑集,提高支撑集选择的准确率,为后续准确地理解问题信息提供了条件。
[0093] 进一步地,在本申请实施例一种可能的实现方式中,小样本学习模型还可以根据每个候选支撑集的意图特征生成多个候选支撑集之间的上下文特征,进而根据问题信息对应的问题特征、每个候选支撑集的意图特征和上下文特征生成对比得分,根据直接得分和对比得分从多个候选支撑集之中选择问题信息对应的支撑集。
[0094] 不同的候选支撑集对应的意图不同,本实施例中,可以根据每个候选支撑集的意图特征生成多个候选意图特征之间的上下文特征,以使每个候选支撑集的意图特征可以获取其他候选支撑集的意图特征,从而有助于提高不同意图的区分性。具体实现时,可以采用双向LSTM,将每一个候选支撑集的意图特征看成是序列中的一个元素,采用集合到集合(set to set)框架,对上下文进行建模,将该序列输入至双向LSTM中,从双向LSTM的输出即可得到包含上下文的上下文特征。
[0095] 接着,可以根据问题信息对应的问题特征、每个候选支撑集的意图特征和上下文特征,生成对比得分。
[0096] 作为一种示例,对于每个候选支撑集,可以将问题信息对应的问题特征、该候选支撑集的意图特征和上下文特征进行拼接后,经过全连接层输出一个得分,再根据问题信息的真实意图对应的得分和该得分,经过sigmoid函数和交叉熵损失函数,求得对比得分。
[0097] 举例而言,假设输入的问题信息a的真实意图为意图3,即问题信息a对应的支撑集应当为意图3对应的支撑集,将a的问题特征和支撑集1(对应意图1)的意图特征和上下文特征进行拼接后,经过两个全连接层,输出得分记为s1,同样地,对于意图2、意图3等每个候选支撑集的意图均可以得到一个得分,记为s2、s3等。以sigmoid(s3-s1),表示s3>s1的概率,同样地,可以计算得到s3>s2的概率、s3>s4的概率等,再通过交叉熵损失函数求得损失,得到对比得分。
[0098] 对比得分是指问题信息属于候选支撑集A大于属于候选支撑集B的得分,用来保证分类的准确率,直接得分用来表示分类正确的置信度,从而,本实施例中,根据对比得分和直接得分,可以从多个候选支撑集中选择出问题信息对应的支撑集。
[0099] 本实施例中,通过根据每个候选支撑集的意图特征生成多个候选支撑集之间的上下文特征,使得每个候选支撑集的意图特征都可以获取到其他候选支撑集的意图特征的信息,长袍儿有助于提高不同意图的区分性;通过根据问题特征、每个候选支撑集的意图特征和上下文特征生成对比得分,根据直接得分和对比得分选择问题信息对应的支撑集,保证了支撑集选择的准确率。
[0100] 接着,获取了问题信息对应的支撑集之后,可以进一步获取问题信息对应的支撑集的支撑集特征。比如,可以将上述的意图特征作为支撑集特征,也就是说,支撑集的支撑集特征,可以通过对支撑集中每个问题的问题特征做注意力机制得到。
[0101] 本实施例的对话生成方法,通过对问题信息进行特征提取以生成问题特征,并根据问题特征获取问题信息对应的支撑集,进而获取问题信息对应的支撑集的支撑集特征,由此,实现了利用小样本学习模型对问题信息进行特征提取,为后续根据提取的特征进行问题理解提供了条件。
[0102] 图3是本申请实施例提供的小样本学习模型的结构示意图。如图3所示,该小样本学习模型主要包括四个部分,分别为特征提取(即编码)部分、原型抽取部分、上下文建模部分和关系计算部分。其中,特征提取部分的主要功能是将支撑集中每个意图的每个问题以及请求的问题信息进行特征编码,将每个问题均编码成一个定长的向量,以一个定长的向量来标识对应的问题。具体采用的方式可以是双向LSTM+自注意力机制,也可以是其他的一些特征提取结构,比如transformer结构。在原型抽取部分,对支撑集中的每个意图进行向量表示,得到每个意图对应的意图向量。具体可以通过请求的问题信息对意图中的每个问题做注意力机制,得到基于该意图中不同问题的问题特征的意图特征,由此,对于每一个不同的请求问题,都可以得到不同的意图特征,这个意图向量可以看做成隐空间意图原型的一个侧面剪影,用于更好地对应请求问题。需要注意的时候,样本量更多的时候,注意力机制会集中注意力在支撑集中的部分问题上,从而使得生成的每个意图的意图特征更具代表性。由于支撑集中包含多个不同的意图,因此希望每个意图的意图特征可以获取其他意图的信息,类似于文章的上下文,从而有助于提高不同意图的区分性。在上下文建模部分,可以将每一个意图特征看成是序列中的一个元素,将该序列输入至双向LSTM,从双向LSTM的输出即可得到包含其他意图特征的每个意图的上下文特征。在关系计算部分,计算请求问题属于候选意图中的哪一意图(或者都不属于),该部分包含一个多任务学习方案,包括一个直接的问题属于某意图的直接得分以及问题属于A意图大于问题属于B意图的对比得分,对比得分用来保证分类的准确率,直接得分用来保证得分的表意性,直接得分代表模型对分类正确的置信度,从而,根据直接得分和对比得分,即可确定出请求问题所属的意图。
[0103] 在真实的对话场景中,开发者配置的不同技能包含不同的意图,同一技能不同意图间样本数也各不相同。通过对话管理平台,可以获取大量真实的用户技能,以及技能下用户配置的真实数据,这些数据也真实的反映了不同场景意图数和样本数均存在较大变化的情况。通过充分利用这些数据,本申请实施例的小样本学习模型实现了对复杂多样的场景采用同一个元学习模型来解决,保证了在多个不同场景间效果的稳定性。当用户配置具体的技能后,通过对元学习模型进行简单的微调,甚至不做微调,即可取得较好的效果。通过充分发挥对话管理平台的数据积累优势,在样本较少时,也可以通过新问题和已知训练样本的相似程度从而推断出新问题的意图,提高了模型的可用性。
[0104] 在本申请实施例一种可能的实现方式中,将问题信息输入至深度学习模型之中,深度学习模型生成并输出的第二特征包括低阶特征和高阶特征。下面结合附图4详细说明本申请实施例中,深度学习模型根据问题信息生成低阶特征和高阶特征的具体实现过程。
[0105] 图4是根据本申请第三实施例的对话生成方法的流程示意图,如图4所示,在如图1所示实施例的基础上,步骤103可以包括以下步骤:
[0106] 步骤301,深度学习模型对问题信息进行特征提取以生成问题信息的特征信息。
[0107] 本实施例中,深度学习模型对问题信息进行特征提取,提取的可以是问题信息的切词结果、词性结果、包含的命名实体等。
[0108] 作为一种示例,深度学习模型可以嵌入词法分析工具,用于对输入的问题信息进行特征提取,以获取问题信息的切词结果、词性结果、包含的命名实体等特征信息。
[0109] 其中,词法分析工具可以利用对话管理平台积累的大量数据以及其他大数据平台积累的数据进行训练得到,通过大量数据进行充分训练,使得词法分析工具具备了优秀的特征提取能力,从而帮助深度学习模型在用户配置的样本较少或有偏时,仍能取得较好的效果。
[0110] 步骤302,深度学习模型对特征信息进行特征嵌入处理,生成问题信息的低阶特征。
[0111] 本实施例中,对于提取的特征信息,可以通过进一步特征嵌入处理将其转换成神经网络能够处理的形式,形成嵌入后的特征,由于该特征靠近深度神经网络的输入层,因此可以称为低阶特征,也叫低维特征。
[0112] 其中,特征嵌入处理的方式可以采用目前比较成熟的嵌入模型实现,比如通过字典将各个特征信息映射到向量上,得到问题信息的低阶特征。本申请对特征嵌入处理的具体实现方式不作限制。
[0113] 步骤303,深度学习模型对低阶特征进行特征融合,生成高阶特征。
[0114] 本实施例中,获取了问题信息的低阶特征之后,可以对低阶特征进行特征融合,得到问题信息的高阶特征。其中,高阶特征是指靠近最终输出层的特征,比如获取全连接层输出的特征作为高阶特征。
[0115] 作为一种示例,获取了问题信息的低阶特征之后,可以将获取的每个低阶特征进行拼接,得到一个长特征向量,进而将该长特征向量经过双向LSTM,再经过最大池化,得到问题信息对应的高阶特征。
[0116] 本实施例的对话生成方法,通过深度学习模型对问题信息进行特征提取以生成问题信息的特征信息,再对特征信息进行特征嵌入处理生成问题信息的低阶特征,并对低阶特征进行特征融合,生成高阶特征,由此,实现了从深度学习模型中提取问题信息的特征,为后续根据提取的特征进行问题理解提供了条件。
[0117] 进一步地,在本申请实施例一种可能的实现方式中,深度学习模型还接收问题信息的外部特征向量,其中,外部特征向量通过预设的向量表示模型生成,预设的向量表示模型比如可以是知识增强语义表示模型(Enhanced Representation from kNowledge IntEgration,ERNIE),也可以是其他的词向量预训练模型,本申请对此不作限制。将获取的问题信息输入至ERNIE等词向量预训练模型中,即可得到对应的向量表示,该向量表示记为问题信息的外部特征向量。进而,深度学习模型对低阶特征和外部特征向量进行特征融合,生成高阶特征。其中,可以将低阶特征和外部特征向量进行拼接后,将拼接后的向量经过双向LSTM,再经过最大池化,得到高阶特征。
[0118] 由此,通过接收问题信息的外部特征向量,并对低阶特征和外部特征向量进行特征融合,生成高阶特征,使得深度学习模型在生成问题信息的高阶特征时,不仅考虑了问题信息自身的特征信息,还考虑了其他模型生成的问题信息的外部特征向量,有利于提高高阶特征提取的准确性,使得提取的高阶特征能够准确地标识问题信息。
[0119] 在本申请实施例一种可能的实现方式中,深度学习模型还接收问题信息的外部知识向量,其中,外部知识向量为预设训练样本中与问题信息匹配的目标训练样本对应的向量表示。比如,对训练数据中的样本和槽位的关系进行统计,当测试时输入的问题中包含的词槽满足相应条件时,将该样本可能的意图分布也作为输入加到模型中。为便于理解外部知识向量的抽取过程,下面对外部知识向量的抽取进行详细介绍并举例说明。
[0120] 从训练样本中抽取必要词槽、次要词槽和最小词槽三类信息,其中,必要槽位定义为:意图的对话样本中必定出现的槽位;次要槽位定义为:意图的对话样本中出现过但不是必定出现的槽位;最小槽位覆盖占比定义为:意图的样本中槽位部分的长度占整个样本长度的最小比例。
[0121] 从训练样本中为每个意图抽取上述三种信息后,当预测时新来一条对话样本时,根据信息判断是否满足意图。首先,使用训练集词表匹配和实体识别结果,把新样本上包含的所有可能的槽位,检查新样本中是否包含意图的必要槽位,如果包含必要槽位,则在样本中把其他所有可能的次要词槽都标注出,最后检查槽位覆盖占比是否大于等于意图的最小槽位覆盖占比,如果大于或等于意图的最小槽位覆盖占比,则满足意图,否则不满足意图。所有满足的意图即为获取的该新样本的意图候选知识。为了把知识和模型结合,把意图候选知识转换为一个维度和分类意图数量相等的取值为1和0的向量,向量的每个维度对应一个意图,向量每个维度的取值为0或者1。当意图出现在意图候选知识中时,对应维度为1,否则为0,该向量即为外部知识向量。
[0122] 下面举例说明上述过程。
[0123] 假设有如下四条标注训练样本,其中,第一项是对话样本,第二项是意图,后面为槽位,ROUTE是查询路线意图,TRAFFIC是询问路况意图,user_navi是导航槽位,kw_go是表示“去”槽位,user_route_arrival是目的地槽位,kw_traffic是路况关键词槽位,user_travel_type是出行方式槽位。
[0124] 训练样本1:导航去西二旗ROUTE user_navi:导航 kw_go:去 user_route_arrival:西二旗;
[0125] 训练样本2:我要驾车去西二旗的路线ROUTE kw_go:去 user_route_arrival:西二旗 user_travel_type:驾车;
[0126] 训练样本3:导航去西二旗堵吗 TRAFFIC user_navi:导航 kw_go:去 user_route_arrival:西二旗 kw_traffic:堵吗;
[0127] 训练样本4:前方路况TRAFFIC kw_traffic:路况。
[0128] 从上述四条样本中,可以抽取出ROUTE意图的必要槽位是kw_go和user_route_arrival,次要槽位是user_navi和user_travel_type,TRAFFIC意图的必要槽位是kw_traffic路况,次要槽位是user_navi、kw_go和user_route_arrival。ROUTE意图对应的两条样本的槽位覆盖占比分别是100%和54.5%,所以ROUTE的最小槽位覆盖占比是54.5%;TRAFFIC意图对应的的两条样本槽位覆盖占比分别是100%和50%,所以TRAFFIC的最小槽位占比是50%。同时还能统计到槽位词表为user_navi:{导航}、kw_go:{去}、user_route_arrival:{西二旗}、kw_traffic:{路况、堵吗}。
[0129] 当有一条新的预测样本“导航去西二旗怎么走”,通过槽位词表匹配所有可能的槽位:user_navi:导航,kw_go:去,user_route_arrival:西二旗。槽位中含有ROUTE的必要槽位kw_go和user_route_arrival,user_navi是ROUTE次要槽位,槽位覆盖占比是6/9=66.7%,大于ROUTE的最小覆盖占比54.5%,预测样本满足意图ROUTE。槽位中不包含TRAFFIC的必要槽位kw_traffic,所以预测样本不满足意图ROUTE。最后得到的意图候选知识是{ROUTE},排除了TRAFFIC这个错误的候选。假设分类的意图总量只有ROUTE和TRAFFIC两个意图,第1维代表ROUTE,第2维代表TRAFFIC,那么输出的向量是{1, 0},也就是说,问题“导航去西二旗怎么走”对应的外部知识向量为{1, 0}。
[0130] 从而,深度学习模型接收到外部知识向量后,可以进一步对低阶特征、所述外部知识向量和外部特征向量进行特征融合,生成高阶特征。其中,可以将低阶特征、外部知识向量和外部特征向量进行拼接后,将拼接后的向量经过双向LSTM,再经过最大池化,得到高阶特征。
[0131] 由此,通过深度学习模型接收问题信息的外部知识向量,对低阶特征、外部知识向量和外部特征向量进行特征融合,生成高阶特征,使得深度学习模型在生成问题信息的高阶特征时,全面考虑了问题信息自身的特征信息、外部模型输入的外部特征向量以及统计获得的外部知识向量,提高了高阶特征的组合充分性,从而有利于提高高阶特征提取的准确性,使得提取的高阶特征能够准确地标识问题信息。
[0132] 图5是本申请实施例的深度学习模型的结构示意图。如图5所示,该深度学习模型包括特征提取、特征嵌入、特征融合、意图预测和损失计算五个部分。其中,在特征提取部分,包括提取问题信息自身的特征,比如问题信息的切词结果、词性结果和包含的命名实体,问题信息自身特征的提取可以通过词法分析工具实现,还包括一些其他外部特征,比如从当前热门的预训练模型(比如ERNIE)获取的问题信息的特征,还包括一些外部知识特征,比如从训练样本中提取的一些统计知识等,其中,外部知识特征的获取参见前述相关内容的描述,此处不再赘述。得益于对话管理平台自身积累的大量数据,以及其他大数据平台积累的数据,使用的词法分析工具、预训练模型都得到了充分训练,使得其具有优秀的基础特征提取能力,从而帮助模型在用户配置样本较少或有偏时,仍能取得较好的效果。在特征嵌入部分,对于特征提取部分所提取的特征进行特征嵌入处理,将特征转化为网络模型能够处理的向量表示形式,而对于预训练模型输出的特征以及获取的外部知识特征,由于其本身即是向量表示的特征,则无需在特征嵌入部分进行进一步处理。在特征融合部分,对向量表示的各个特征进行融合处理,将特征进行充分组合,形成高阶特征,比如可以将各个向量表示的特征进行拼接得到一个长向量,将长向量经过双向LSTM,再经过最大池化,得到高阶特征。在意图预测部分,基于融合后的高阶特征,得到问题信息在每个意图上的概率,比如,将高阶特征通过全连接层,得到一个向量,该向量的维度等于意图数,通过对向量中的每一维进行逻辑斯谛函数sigmoid,得到每一意图的概率。在损失计算部分,需要不断的根据当前对问题预测的结果和问题真实结果之间的差距来计算损失,通过反向传播(Back Propagation,BP)算法持续优化模型,最终完成模型的训练过程。深度学习模型长于对特征的提取和建模,因此在样本数较多的情况下,可以充分的利用不同样本,有效建模类别,从而实现较好的区分准确率。通过利用对话管理平台的数据积累和其他大数据的数据积累训练的基础特征提取模型,可以保证效果的稳定性,使得在具体技能模型较小的情况下取得良好效果。
[0133] 为了确保第一特征和第二特征能够充分组合,提高模型的整体性能,在本申请实施例一种可能的实现方式中,可以采用多种方式将第一特征和第二特征进行组合以生成特征序列。下面结合附图6进行详细说明。
[0134] 图6是根据本申请第四实施例的对话生成方法的流程示意图,如图6所示,该对话生成方法可以包括以下步骤:
[0135] 步骤401,获取问题信息。
[0136] 步骤402,将问题信息输入至小样本学习模型之中以生成第一特征。
[0137] 步骤403,将问题信息输入至深度学习模型之中以生成第二特征。
[0138] 本实施例中,对于步骤401-步骤403的描述可以参见前述实施例中相关内容的记载,此处不再赘述。
[0139] 步骤404,利用预设的多个融合算子对第一特征和第二特征进行组合,生成特征序列,融合算子包括拼接算子、内积算子和双线性特征交叉积。
[0140] 本实施例中,从小样本学习模型获取了第一特征,以及从深度学习模型获取了第二特征之后,可以利用预设的多个融合算子对第一特征和第二特征进行组合,以生成特征序列。
[0141] 其中,融合算子可以包括但不限于拼接算子、内积算子和双线性特征交叉积。
[0142] 也就是说,本实施例中,对第一特征和第二特征进行组合时,可以采用多种不同的融合算子分别对第一特征和第二特征进行组合,以确保不同的特征之间能够充分组合,提高组合特征的多样性。
[0143] 作为一种示例,当第一特征中包括问题特征和支撑集特征,第二特征中包括低阶特征和高阶特征时,对第一特征和第二特征进行组合,则可以将每个特征,采用不同的融合算子依次与各个特征进行组合,得到多个特征序列。以问题特征为例,可以分别采用拼接算子、内积算子和双线性特征交叉积等融合算子,将问题特征依次与问题特征、支撑集特征、低阶特征和高阶特征中的至少一个特征进行组合,得到多个特征序列。
[0144] 作为一种示例,将小样本学习模型生成的第一特征与深度学习模型生成的第二特征进行组合时,可以从不同的层面进行融合,生成特征序列。不同层面的融合如下:
[0145] (1)底层特征层面,即通过将深度学习模型中的嵌入后的特征表示和小样本学习模型中得到问题特征表示与类别表示,通过预设的多个融合算子进行融合;
[0146] (2)中层特征层面,即通过将深度学习模型中融合后的特征表示与小样本学习模型中通过关系计算后的表示,通过预设的多个融合算子进行融合;
[0147] (3)高层特征层面,即通过将深度学习模型最终预测的各意图的概率与小样本学习模型中最终预测的各意图的概率分布,通过预设的多个融合算子进行融合。
[0148] 步骤405,将特征序列输入至融合模型以生成问题信息对应的对话信息。
[0149] 本实施例中,对于步骤405的描述可以参见前述实施例中对步骤105的描述,此处不再赘述。
[0150] 本实施例的对话生成方法,通过利用预设的多个融合算子对小样本学习模型生成的第一特征,以及深度学习模型生成的第二特征进行组合,生成特征序列,由此,能够使得第一特征和第二特征得到充分组合,保证了融合后的特征序列的多样性,从而有利于提高生成的对话信息的准确率。
[0151] 在本申请实施例一种可能的实现方式中,本申请实施例的小样本学习模型、深度学习模型和融合模型进行联合训练得到。具体实现时,可以将小样本学习模型和深度学习模型放入同一个端到端的融合网络中,进行整体的学习和训练,以使得模型能够随样本的不断增多,获得比较平稳的结果,不易出现之前能够理解正确的意图随样本量的增多而无法正确解析,导致问题理解的准确率下降的问题,同时,将三个模型进行联合训练得到一个整体模型,能够以单一模型在较少样本和较多样本的情况下均能获得较好的效果,提高了模型的稳定性。因此本实施例中,对小样本学习模型、深度学习模型和融合模型进行联合训练得到,能够使得训练后的模型随着样本的不断增多,获得比较平稳的结果,提高模型的稳定性。
[0152] 图7是小样本学习模型和深度学习模型以及融合模型联合训练的过程示例图。如图7所示,将小样本学习模型和深度学习模型放入同一个端到端的神经网络中,进行整体的学习与训练,将小样本学习模型产出的问题特征和支撑集特征,以及深度学习模型产出的低阶特征和高阶特征,经过多个融合算子进行充分融合后,将融合后的特征输入至融合网络中,得到最终结果。其中融合网络可以采用多层全连接层网络实现,并接softmax函数产出最终结果。在对模型进行联合训练过程中,可以通过交叉熵损失函数对模型进行优化,直至模型能够产出较好的结果。通过将小样本学习模型、深度学习模型和融合模型进行整体的学习和训练,使得模型能够随样本数的不断增多,效果逐渐提升,并且不易出现之前能够正确解析的意图随样本量增加而无法正确解析的问题,同时能够以单一模型在较少样本和较多样本时均取得较好的效果。
[0153] 根据本申请的实施例,本申请还提供了一种对话生成装置。
[0154] 图8是根据本申请第五实施例的对话生成装置的结构示意图。如图8所示,该对话生成装置50包括:获取模块510、小样本学习模型520、深度学习模型530、融合模型540、第一输入模块550、第二输入模块560、组合模块570以及生成模块580。
[0155] 其中,获取模块510,用于获取问题信息。
[0156] 小样本学习模型520,用于生成所述问题信息的第一特征。
[0157] 深度学习模型530,用于生成所述问题信息的第二特征。
[0158] 融合模型540,用于生成所述问题信息对应的对话信息。
[0159] 第一输入模块550,用于将所述问题信息输入至小样本学习模型之中以生成第一特征。
[0160] 第二输入模块560,用于将所述问题信息输入至深度学习模型之中以生成第二特征。
[0161] 组合模块570,用于将所述第一特征和所述第二特征进行组合以生成特征序列。
[0162] 生成模块580,用于将所述特征序列输入至融合模型以生成所述问题信息对应的对话信息。
[0163] 在本申请实施例一种可能的实现方式中,第一特征包括问题特征和支撑集特征,所述小样本学习模型520对所述问题信息进行特征提取以生成所述问题特征,以及根据所述问题特征获取所述问题信息对应的支撑集,并获取所述问题信息对应的支撑集的支撑集特征。
[0164] 进一步地,小样本学习模型520获取多个候选支撑集,并获取每个所述候选支撑集的意图特征,根据所述问题特征和每个所述候选支撑集的意图特征生成所述问题特征相对于所述多个候选支撑集的直接得分,并根据所述问题特征相对于所述多个候选支撑集的直接得分从所述多个候选支撑集之中选择所述问题信息对应的支撑集。
[0165] 其中,候选支撑集包括多个问题,所述小样本学习模型520获取所述候选支撑集之中多个问题的问题特征,根据所述多个问题的问题特征生成所述候选支撑集的意图特征。
[0166] 在本申请实施例一种可能的实现方式中,小样本学习模型520根据所述每个候选支撑集的意图特征生成所述多个候选支撑集之间的上下文特征,并根据所述问题特征、所述每个候选支撑集的意图特征和所述上下文特征生成对比得分,根据所述直接得分和所述对比得分从所述多个候选支撑集之中选择所述问题信息对应的支撑集。
[0167] 在本申请实施例一种可能的实现方式中,所述小样本学习模型520、所述深度学习模型530和所述融合模型540进行联合训练得到。
[0168] 在本申请实施例一种可能的实现方式中,第二特征包括低阶特征和高阶特征,所述深度学习模型530对所述问题信息进行特征提取以生成所述问题信息的特征信息,对所述特征信息进行特征嵌入处理,生成所述问题信息的所述低阶特征,并对所述低阶特征进行特征融合,生成所述高阶特征。
[0169] 进一步地,深度学习模型530还接收所述问题信息的外部特征向量,所述外部特征向量通过预设的向量表示模型生成;所述深度学习模型对所述低阶特征和所述外部特征向量进行特征融合,生成所述高阶特征。
[0170] 进一步地,深度学习模型530还接收所述问题信息的外部知识向量,所述外部知识向量为预设训练样本中与所述问题信息匹配的目标训练样本对应的向量表示;所述深度学习模型530对所述低阶特征、所述外部知识向量和所述外部特征向量进行特征融合,生成所述高阶特征。
[0171] 在本申请实施例一种可能的实现方式中,组合模块570利用预设的多个融合算子对所述第一特征和所述第二特征进行组合,生成所述特征序列,所述融合算子包括拼接算子、内积算子和双线性特征交叉积。
[0172] 需要说明的是,前述对对话生成方法实施例的解释说明,也适用于该实施例的对话生成装置,其实现原理类似,此处不再赘述。
[0173] 本申请实施例的对话生成装置,通过获取问题信息,并将问题信息输入至小样本学习模型以生成第一特征,以及将问题信息输入至深度学习模型中以生成第二特征,进而将第一特征和第二特征进行组合以生成特征序列,并将特征序列输入至融合模型以生成问题信息对应的对话信息,由此,通过联合小样本学习模型和深度学习模型以及融合模型来生成问题对应的对话信息,使得模型在较少样本和较多样本的情况下均能获得较好的效果,无需设置阈值对小样本学习模型和深度学习模型进行选择,从而不易出现随样本量增加而导致问题理解的准确率下降的问题,提高了模型的稳定性。
[0174] 根据本申请的实施例,本申请还提供了一种电子设备和一种可读存储介质。
[0175] 如图9所示,是用来实现本申请实施例的对话生成方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
[0176] 如图9所示,该电子设备包括:一个或多个处理器701、存储器702,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图9中以一个处理器701为例。
[0177] 存储器702即为本申请所提供的非瞬时计算机可读存储介质。其中,所述存储器存储有可由至少一个处理器执行的指令,以使所述至少一个处理器执行本申请所提供的对话生成方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的对话生成方法。
[0178] 存储器702作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的对话生成方法对应的程序指令/模块(例如,附图8所示的获取模块510、小样本学习模型520、深度学习模型530、融合模型540、第一输入模块550、第二输入模块560、组合模块570以及生成模块580)。处理器701通过运行存储在存储器702中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的对话生成方法。
[0179] 存储器702可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据执行对话生成方法的电子设备的使用所创建的数据等。此外,存储器702可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器702可选包括相对于处理器701远程设置的存储器,这些远程存储器可以通过网络连接至执行对话生成方法的电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
[0180] 执行对话生成方法的电子设备还可以包括:输入装置703和输出装置704。处理器701、存储器702、输入装置703和输出装置704可以通过总线或者其他方式连接,图9中以通过总线连接为例。
[0181] 输入装置703可接收输入的数字或字符信息,以及产生与执行对话生成方法的电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置704可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(LCD)、发光二极管(LED)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
[0182] 此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用ASIC(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
[0183] 这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
[0184] 为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
[0185] 可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
[0186] 计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
[0187] 根据本申请实施例的技术方案,通过将获取的问题信息分别输入至小样本学习模型和深度学习模型中以生成第一特征和第二特征,并将第一特征和第二特征进行组合以生成特征序列,进而将特征序列输入至融合模型以生成问题信息对应的对话信息,由此,通过联合小样本学习模型和深度学习模型以及融合模型来生成问题对应的对话信息,使得模型在较少样本和较多样本的情况下均能获得较好的效果,无需设置阈值对小样本学习模型和深度学习模型进行选择,从而不易出现随样本量增加而导致问题理解的准确率下降的问题,提高了模型的稳定性。
[0188] 应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
[0189] 上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。