本技术涉及人工智能,特别涉及一种角色对话模型的训练方法、对话生成方法、装置和设备。
背景技术:
1、随着人工智能的发展,人机对话技术成为一个广泛应用的技术。相关技术中,一般通过多种来源的对话语料来训练一个对话模型,通过训练得到的对话模型来完成人机交互。然而,由于对话语料的来源广泛,即对话语料多种多样,这样训练出来的对话模型仅具有泛化性,而不具备个性化特色。因此,需要一种角色对话模型的训练方法,来得到一种具有角色特性的对话模型。
技术实现思路
1、本技术实施例提供了一种角色对话模型的训练方法、对话生成方法、装置和设备,提高了角色对话模型的训练效率。技术方案如下。
2、一方面,提供了一种角色对话模型的训练方法,所述方法包括:
3、基于预训练对话模型,获取初始对话模型,所述预训练对话模型基于多组对话样本对训练得到,所述初始对话模型包括角色参数和所述预训练对话模型的模型参数,所述角色参数用于代表目标角色的对话风格;
4、获取目标角色的对话样本对,所述目标角色的对话样本对包括问话样本语句的问话样本特征和回复样本语句的回复样本特征,所述回复样本语句为所述目标角色的回复语句;
5、将所述问话样本特征输入所述初始对话模型,得到预测回复特征;
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、基于所述初始对话模型中的值权重参数,对所述样本拼接特征进行线性映射,得到值特征,所述值特征用于指示所述问话样本语句中多个词的重要程度;
42、基于所述键特征和所述值特征得到所述预测回复特征。
43、在一些实施例中,所述输入输出模块,用于:
44、基于所述键特征得到注意力分数矩阵,所述注意力分数矩阵用于指示所述问话样本语句中的每个词与所述角色参数的当前参数取值和所述问话样本语句中其他词之间的相似度;
45、对所述注意力分数矩阵进行归一化处理,得到注意力权重;
46、基于所述值特征对所述注意力权重进行加权求和,得到注意力输出特征;
47、对所述注意力输出特征进行非线性转换,得到所述预测回复特征。
48、在一些实施例中,所述注意力分数矩阵包括第一子矩阵和第二子矩阵,所述第一子矩阵用于指示所述问话样本语句中的每个词与所述角色参数的当前参数取值之间的相似度,所述第二子矩阵用于指示所述问话样本语句中的每个词与所述问话样本语句中其他词之间的相似度;所述输入输出模块,用于:
49、确定所述第一子矩阵与门控因子之积,得到第三子矩阵,所述门控因子用于控制所述角色参数对所述第二子矩阵的影响程度;
50、对所述第三子矩阵进行归一化处理,得到第一子权重,对所述第二子矩阵进行归一化处理,得到第二子权重;
51、组合所述第一子权重和所述第二子权重,得到所述注意力权重。
52、在一些实施例中,所述初始对话模型包括依次连接的多个注意力层,所述多个注意力层分别包括一个角色参数;所述输入输出模块,用于:
53、将所述问话样本特征输入第一个注意力层,通过所述第一个注意力层,拼接所述问话样本特征和所述第一个注意力层中角色参数的当前参数取值,得到样本拼接特征,基于所述样本拼接特征得到注意力输出特征;
54、将所述注意力输出特征依次输入其他注意力层,基于其他注意力层中角色参数的当前参数取值,得到其他注意力层输出的注意力输出特征;
55、对最后一个注意力层输出的注意力输出特征进行非线性转换,得到所述预测回复特征。
56、在一些实施例中,所述获取模块,用于:
57、从目标角色所属的语料库中获取所述目标角色与多个对话对象之间的对话语句;
58、从所述对话语句中获取至少两句对话语句,所述至少两句对话语句包括所述目标角色的对话语句和至少一个对话对象的对话语句,且所述至少两句对话语句的结束语句为所述目标角色的对话语句;
59、将所述结束语句作为所述回复样本语句,将所述至少两句对话语句中所述结束语句以外的其他对话语句作为所述问话样本语句,基于所述问话样本语句和所述回复样本语句分别得到问话样本特征和回复样本特征。
60、另一方面,提供了一种对话生成装置,所述装置包括:
61、获取模块,用于获取问话语句的问话语句特征;
62、输入输出模块,用于将所述问话语句特征输入角色对话模型,得到所述问话语句特征对应的回复语句特征,所述角色对话模型基于目标角色的回复语句训练得到,所述回复语句特征用于指示所述问话语句对应的回复语句,所述问话语句对应的回复语句的对话风格属于所述目标角色的对话风格。
63、在一些实施例中,所述输入输出模,用于:
64、将所述问话语句特征输入所述角色对话模型;
65、通过所述角色对话模型,拼接所述问话语句特征和所述角色对话模型中角色参数的参数取值,得到拼接特征,基于所述拼接特征,得到所述回复语句特征。
66、在一些实施例中,所述输入输出模块,用于:
67、基于所述角色对话模型中的键权重参数,对所述拼接特征进行线性映射,得到键特征,所述键特征用于指示所述问话语句中多个词的关键信息;
68、基于所述角色对话模型中的值权重参数,对所述拼接特征进行线性映射,得到值特征,所述值特征用于指示所述问话语句中多个词的重要程度;
69、基于所述键特征和所述值特征得到所述回复语句特征。
70、在一些实施例中,所述输入输出模块,用于:
71、基于所述键特征得到注意力分数矩阵,所述注意力分数矩阵用于指示所述问话语句中的每个词与所述角色参数的参数取值和所述问话语句中其他词之间的相似度;
72、对所述注意力分数矩阵进行归一化处理,得到注意力权重;
73、基于所述值特征对所述注意力权重进行加权求和,得到注意力输出特征;
74、对所述注意力输出特征进行非线性转换,得到所述回复语句特征。
75、在一些实施例中,所述注意力分数矩阵包括第一子矩阵和第二子矩阵,所述第一子矩阵用于指示所述问话语句中的每个词与所述角色参数的参数取值之间的相似度,所述第二子矩阵用于指示所述问话语句中的每个词与所述问话语句中其他词之间的相似度;所述输入输出模块,用于:
76、确定所述第一子矩阵与门控因子之积,得到第三子矩阵,所述门控因子用于控制所述角色参数对所述第二子矩阵的影响程度;
77、对所述第三子矩阵进行归一化处理,得到第一子权重,对所述第二子矩阵进行归一化处理,得到第二子权重;
78、组合所述第一子权重和所述第二子权重,得到所述注意力权重。
79、在一些实施例中,所述角色对话模型包括依次连接的多个注意力层,所述多个注意力层分别包括一个角色参数;所述输入输出模块,用于:
80、将所述问话语句特征输入第一个注意力层,通过所述第一个注意力层,拼接所述问话语句特征和所述第一个注意力层中角色参数的当前参数取值,得到拼接特征,基于所述拼接特征得到注意力输出特征;
81、将所述注意力输出特征依次输入其他注意力层,基于其他注意力层中角色参数的当前参数取值,得到其他注意力层输出的注意力输出特征;
82、对最后一个注意力层输出的注意力输出特征进行非线性转换,得到所述回复语句特征。
83、另一方面,提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器用于存储至少一段程序,所述至少一段程序由所述处理器加载并执行以实现本技术实施例中的角色对话模型的训练方法或对话生成方法。
84、另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一段程序,所述至少一段程序由处理器加载并执行以实现本技术实施例中的角色对话模型的训练方法或对话生成方法。
85、另一方面,提供了一种计算机程序产品,所述计算机程序产品包括至少一段程序,所述至少一段程序存储在计算机可读存储介质中,计算机设备的处理器从所述计算机可读存储介质读取所述至少一段程序,所述处理器执行所述至少一段程序,使得所述计算机设备执行上述任一实现方式所述的角色对话模型的训练方法或对话生成方法。
86、本技术实施例提供了一种角色对话模型的训练方法,该方法在训练好的预训练对话模型的基础上,引入一个新的角色参数,得到初始对话模型;且基于目标角色的对话样本对训练初始对话模型中的角色参数,使得训练得到的角色对话模型中的角色参数能够准确代表目标角色的对话风格,进而通过角色对话模型能够生成具有目标角色的对话风格的回复语句。该方法通过引入一个新的角色参数,使其学习目标角色的对话风格,这样仅训练一个角色参数,而无需训练其他模型参数,实现了在不损害预训练对话模型的对话性能的前提下,降低了训练成本,缩短了训练时间,从而提高了角色对话模型的训练效率。