一种对话生成模型损失参数的确定方法和装置与流程

文档序号:32252172发布日期:2022-11-19 01:58阅读:41来源:国知局
一种对话生成模型损失参数的确定方法和装置与流程

1.本技术涉及自然语言处理技术领域,尤其涉及一种对话生成模型损失参数的确定方法和装置。


背景技术:

2.对话生成是自然语言处理、信息抽取的一项子任务,其在智能问答、多轮对话、人机交互、智能客服等领域扮演者重要角色。
3.目前对话生成方法主要为生成模型,应用自然语言处理的算法,利用编码器-解码器结构进行回复。生成模型更接近人对话的过程,能自动从已有对话文本中学习如何生成文本,灵活性高。
4.但生成模型往往存在着鲁棒性、泛化性不强的问题,加入传统的对抗训练(如fgm、pgd等),虽然可以增强鲁棒性,但同时会损害模型的泛化性,造成模型泛化性差。


技术实现要素:

5.本技术实施例的目的在于提供一种对话生成模型损失参数的确定方法和装置,以解决生成对话准确度不够高的问题。具体技术方案如下:
6.第一方面,提供了一种对话生成模型损失参数的确定方法,所述方法包括:
7.通过对话数据的标注样本训练对话生成模型,得到所述对话生成模型的整体损失参数;
8.通过所述标注样本进行虚拟对抗训练,得到虚拟对抗损失参数;
9.根据所述整体损失参数和所述虚拟对抗损失参数的和值,得到所述对话生成模型的最终损失参数。
10.可选地,通过对话数据的标注样本训练对话生成模型,得到所述对话生成模型的整体损失参数包括:
11.对所述对话数据进行词性标注和句法标注,得到标注样本,其中,所述对话数据包括属于不同对话对象的第一语句和第二语句;
12.将所述第一语句输入对话生成模型,得到所述对话生成模型输出的预测结果,其中,所述预测结果包括预测的第二语句的内容、词性和句法;
13.将所述预测结果和所述第二语句进行对比,得到所述对话生成模型关于对话生成任务的第一损失参数、关于词性预测任务的第二损失参数以及关于句法预测任务的第三损失参数;
14.根据所述第一损失参数、所述第二损失参数和所述第三损失参数得到所述整体损失参数。
15.可选地,对所述对话数据进行词性标注和句法标注包括:
16.通过分词工具对所述对话数据进行分词;
17.采用词性识别方案对所述分词进行词性标注;
18.采用句法识别方案对所述分词进行句法标注,其中,所述句法标注指示所述分词在所述对话数据中的语句成分或语句关系。
19.可选地,得到所述对话生成模型关于对话生成任务的第一损失参数、关于词性预测任务的第二损失参数以及关于句法预测任务的第三损失参数包括:
20.通过所述对话生成模型的解码器隐状态层获取关于对话生成任务的第一损失参数,其中,所述对话生成模型采用编码器-解码器结构;
21.通过所述对话生成模型的解码器共享层获取关于词性预测任务的第二损失参数;
22.通过所述对话生成模型的解码器共享层获取关于句法预测任务的第三损失参数。
23.可选地,所述通过所述标注样本进行虚拟对抗训练,得到虚拟对抗损失参数包括:
24.将所述标注样本的第一语句作为非扰动输入;
25.通过对所述非扰动输入添加扰动,变换得到扰动输入;
26.根据所述对话生成模型针对所述扰动输入的扰动输出,和针对所述非扰动输入的非扰动输出,得到kl差异;
27.通过更新所述对话生成模型的权重,最小化所述kl差异,得到虚拟对抗损失参数。
28.可选地,得到所述对话生成模型的最终损失参数之后,所述方法还包括:
29.针对对话数据的前半句,通过问答库进行语义检索;
30.在无法检索到所述前半句对应的后半句时,采用具有所述最终损失参数的对话生成模型预测所述前半句的后半句。
31.可选地,所述对话生成模型为seq2seq模型。
32.第二方面,提供了一种对话生成模型损失参数的确定装置,所述装置包括:
33.训练模块,用于通过对话数据的标注样本训练对话生成模型,得到所述对话生成模型的整体损失参数;
34.虚拟对抗训练模块,用于通过所述标注样本进行虚拟对抗训练,得到虚拟对抗损失参数;
35.更新模块,用于根据所述整体损失参数和所述虚拟对抗损失参数的和值,得到所述对话生成模型的最终损失参数。
36.第三方面,提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
37.存储器,用于存放计算机程序;
38.处理器,用于执行存储器上所存放的程序时,实现任一所述的对话生成模型损失参数的确定方法步骤。
39.第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现任一所述的对话生成模型损失参数的确定方法步骤。
40.本技术实施例有益效果:
41.本技术实施例提供了一种对话生成模型损失参数的确定方法,本技术由于采用虚拟对抗训练,不使用标签信息,减少了对人工标注样本的过度依赖,采用半监督学习方式,基于虚拟对抗训练vat,得到整体损失参数和虚拟对抗损失参数的联合损失,在不牺牲模型鲁棒性的条件下,增强了对话生成模型的泛化能力和准确性。
42.当然,实施本技术的任一产品或方法并不一定需要同时达到以上的所有优点。
附图说明
43.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
44.图1为本技术实施例提供的一种对话生成模型损失参数的确定方法流程图;
45.图2为本技术实施例提供的得到整体损失参数的方法流程图;
46.图3为本技术实施例提供的对话生成模型损失参数的确定框架示意图;
47.图4为本技术实施例提供的一种对话生成模型损失参数的确定装置的结构示意图;
48.图5为本技术实施例提供的一种电子设备的结构示意图。
具体实施方式
49.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术的一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本技术保护的范围。
50.在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本技术的说明,其本身并没有特定的意义。因此,“模块”与“部件”可以混合地使用。
51.本技术实施例中的一种对话生成模型损失参数的确定方法可以由服务器来执行,用于增强对话生成模型的泛化能力和准确性。
52.下面将结合具体实施方式,对本技术实施例提供的一种对话生成模型损失参数的确定方法进行详细的说明,如图1所示,具体步骤如下:
53.步骤101:通过对话数据的标注样本训练对话生成模型,得到对话生成模型的整体损失参数。
54.在本技术实施例中,服务器针对对话数据进行词性标注和句法标注,得到标注样本,服务器通过标注样本训练对话生成模型,得到对话生成模型的整体损失参数。
55.步骤102:通过标注样本进行虚拟对抗训练,得到虚拟对抗损失参数。
56.在本技术实施例中,虚拟对抗训练是一种数据增强技术,不需要先前的领域知识。在虚拟对抗训练中,不使用标签信息,仅使用模型输出生成扰动,产生扰动使得扰动输入的输出不同于原始输入的模型输出。
57.服务器通过标注样本进行虚拟对抗训练,得到虚拟对抗损失参数。
58.步骤103:根据整体损失参数和虚拟对抗损失参数的和值,得到对话生成模型的最终损失参数。
59.在本技术实施例中,服务器计算整体损失参数和虚拟对抗损失参数的和值,得到对话生成模型的最终损失参数。这样对话生成模型的最终损失参数中既包括自身的整体损失参数,也包括虚拟对抗训练的虚拟对抗损失参数。
60.计算最终损失参数的公式如下:
61.total_loss=model_loss+vat_loss
62.其中,total_loss为最终损失参数,model_loss为整体损失参数,vat_loss为虚拟对抗损失参数。
63.本技术由于采用虚拟对抗训练,不使用标签信息,减少了对人工标注样本的过度依赖,采用半监督学习方式,基于虚拟对抗训练vat,得到整体损失参数和虚拟对抗损失参数的联合损失,在不牺牲模型鲁棒性的条件下,增强了对话生成模型的泛化能力和准确性。
64.作为一种可选的实施方式,如图2所示,通过对话数据的标注样本训练对话生成模型,得到对话生成模型的整体损失参数包括:
65.步骤201:对对话数据进行词性标注和句法标注,得到标注样本。
66.其中,对话数据包括属于不同对话对象的第一语句和第二语句。
67.在本技术实施例中,对话数据包括属于不同对话对象的第一语句和第二语句,第一语句和第二语句可以采用语义切割得到。服务器对对话数据进行分词后,进行词性标注和句法标注,得到标注样本。
68.可选地,对对话数据进行词性标注和句法标注包括:通过分词工具对对话数据进行分词;采用词性识别方案对分词进行词性标注;采用句法识别方案对分词进行句法标注,其中,句法标注指示分词在对话数据中的语句成分或语句关系。
69.服务器采用分词工具对对话数据进行分词,然后采用词性识别方案对分词进行词性标注,词性标注指示分词的词性,如名词、代词、连词等,图3为词性对照表。
70.rnwpucvpdma代词名词标点助词连词动词介词副词数词形容词
71.服务器采用句法识别方案对分词进行句法标注,句法标注指示分词在对话数据中的语句成分或语句关系,如前置宾语、主谓关系或动宾关系,图4为句法对照表。
72.sbvvobiobfobdblattadv主谓关系动宾关系间宾关系前置宾语兼语定中关系状中结构
73.其中,本技术对分词工具、词性识别方案和句法识别方案不做限定,示例性地,本技术可以采用ltp工具、stanza、jieba等其他自然语言处理工具进行分词、词性标注和句法标注。
74.步骤202:将第一语句输入对话生成模型,得到对话生成模型输出的预测结果。
75.其中,预测结果包括预测的第二语句的内容、词性和句法。
76.在本技术实施例中,服务器构建基于编码器-解码器结构的对话生成模型,示例性地,对话生成模型为seq2seq模型。服务器将第一语句输入对话生成模型,得到对话生成模型输出的预测结果,预测结果包括预测的第二语句的内容、词性和句法。
77.步骤203:将预测结果和第二语句进行对比,得到对话生成模型关于对话生成任务的第一损失参数、关于词性预测任务的第二损失参数以及关于句法预测任务的第三损失参数。
78.在本技术实施例中,服务器将预测结果和第二语句进行对比,根据对比结果,通过对话生成模型的解码器隐状态层获取关于对话生成任务的第一损失参数model_loss1,通过解码器共享层获取关于词性预测任务的第二损失参数model_loss2,通过解码器共享层
获取关于句法预测任务的第三损失参数model_loss3。
79.步骤204:根据第一损失参数、第二损失参数和第三损失参数得到整体损失参数。
80.在本技术实施例中,服务器获取预设的三个超参数,根据每个损失参数和对应的超参数,得到整体损失参数。
81.model_loss=a*model_loss1+b*model_loss2+c*model_loss3
82.其中,model_loss为整体损失参数,a、b、c为超参数。
83.在本技术中,服务器将词性预测任务、句法预测任务加入到模型中,求取多任务约束的整体损失参数,强化了对话输出语句的语法约束,相对于采用生成模型,改善了输出语句不完整、出现连续的重复词、语句不通顺等问题。
84.另外,相对于现有技术采用规则模板进行回复,本技术无需设定大量模板,采用对话生成模型即可自动回复,相对于现有技术中采用检索模型无法捕捉到语义的真实含义,本技术通过强化对话输出语句的语法约束,能够有效抓取语义真实含义,提高回复准确度。
85.作为一种可选的实施方式,通过标注样本进行虚拟对抗训练,得到虚拟对抗损失参数包括:将标注样本的第一语句作为非扰动输入;通过对非扰动输入添加扰动,变换得到扰动输入;根据对话生成模型针对扰动输入的扰动输出,和针对非扰动输入的非扰动输出,得到kl差异;通过更新对话生成模型的权重,最小化kl差异,得到虚拟对抗损失参数。
86.1)将标注样本的第一语句作为非扰动输入,从非扰动输入x开始,通过添加小的扰动r来变换x,变换的扰动输入为t(x)=x+r;
87.2)扰动输入t(x)的模型输出应该与非扰动输入的输出不同,两个输出之间的kl差异应该是最大的,同时确保r的l2范数很小。从所有的扰动r,让rv-adv成为对抗方向的扰动。
88.δ
kl
(r,x
(n)
,θ)≡kl[p(y|x
(n)
,θ)||p(y|x
(n)
+r,θ)]
ꢀꢀ
公式(1)
[0089]
其中,δ
kl
(r,x
(n)
,θ)为扰动输出和非扰动输出之间的kl差异,p(y|x
(n)
,θ)为非扰动输出,p(y|x
(n)
+r,θ)为扰动输出,x(n):表示某一个输入(或样本点),θ是模型参数,r是对于输入的一个扰动。
[0090]
公式(1)使用x
(n)
与x
(n)
+r的输出分布的kl散度表示这两个分布之间的差异。
[0091][0092]
其中,是对抗扰动。公式(2)是在r的l2范数小于一定值的情况下,找到使第公式(1)最大的r,即找到使这两个分布差异最大的扰动方向,也就是找到训练模型在输入为x
(n)
时的局部分布最不平滑的方向。
[0093]
3)在找到对抗扰动和扰动输入之后,更新对话生成模型的权重,使得kl散度最小化。这将使对话生成模型对不同的扰动具有鲁棒性。通过梯度下降最小化以下损失,得到虚拟对抗损失参数。
[0094][0095]
公式(3)是定义x
(n)
的局部分布平滑度(lds)为:x
(n)
的最大扰动方向扰动后的x
(n)
输入的输出分布与x
(n)
输入的输出分布之间的kl散度的相反数。
[0096]
作为一种可选的实施方式,得到对话生成模型的最终损失参数之后,方法还包括:针对对话数据的前半句,通过问答库进行语义检索;在无法检索到前半句对应的后半句时,采用具有最终损失参数的对话生成模型预测前半句的后半句。
[0097]
在多语言预训练项目中,针对对话数据的前半句,服务器先利用问答库进行语义检索,从问答库中挑选合适的回复;如果问答库中找不到相应的回复,则调用对话生成模型,进行后半句的预测。
[0098]
传统的seq2seq生成式对话算法rouge-l值约为33.5%,采用本技术基于改进的半监督学习的对话生成方法,rouge-l值约为34.7%,并且训练过程中损失值的波动在一定范围内减小。
[0099]
图3为对话生成模型损失参数的确定框架示意图。可以看出,通过对对话数据补充词性标注和句法标注,然后采用多任务约束,再进行虚拟对抗训练,最后求取联合损失,能够得到最终模型参数。
[0100]
基于相同的技术构思,本技术实施例还提供了一种对话生成模型损失参数的确定对话生成模型损失参数的确定装置,如图4所示,该装置包括:
[0101]
训练模块401,用于通过对话数据的标注样本训练对话生成模型,得到对话生成模型的整体损失参数;
[0102]
虚拟对抗训练模块402,用于通过标注样本进行虚拟对抗训练,得到虚拟对抗损失参数;
[0103]
更新模块403,用于根据整体损失参数和虚拟对抗损失参数的和值,得到对话生成模型的最终损失参数。
[0104]
可选地,训练模块401包括:
[0105]
标注单元,用于对对话数据进行词性标注和句法标注,得到标注样本,其中,对话数据包括属于不同对话对象的第一语句和第二语句;
[0106]
输入输出单元,用于将第一语句输入对话生成模型,得到对话生成模型输出的预测结果,其中,预测结果包括预测的第二语句的内容、词性和句法;
[0107]
对比单元,用于将预测结果和第二语句进行对比,得到对话生成模型关于对话生成任务的第一损失参数、关于词性预测任务的第二损失参数以及关于句法预测任务的第三损失参数;
[0108]
得到单元,用于根据第一损失参数、第二损失参数和第三损失参数得到整体损失参数。
[0109]
可选地,标注单元用于:
[0110]
通过分词工具对对话数据进行分词;
[0111]
采用词性识别方案对分词进行词性标注;
[0112]
采用句法识别方案对分词进行句法标注,其中,句法标注指示分词在对话数据中的语句成分或语句关系。
[0113]
可选地,对比单元用于:
[0114]
通过对话生成模型的解码器隐状态层获取关于对话生成任务的第一损失参数,其中,对话生成模型采用编码器-解码器结构;
[0115]
通过对话生成模型的解码器共享层获取关于词性预测任务的第二损失参数;
device,pld)、现场可编程门阵列(field-programmable gate array,fpga)、通用处理器、控制器、微控制器、微处理器、用于执行本技术所述功能的其它电子单元或其组合中。
[0135]
对于软件实现,可通过执行本文所述功能的单元来实现本文所述的技术。软件代码可存储在存储器中并通过处理器执行。存储器可以在处理器中或在处理器外部实现。
[0136]
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
[0137]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0138]
在本技术所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0139]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0140]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
[0141]
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0142]
以上所述仅是本技术的具体实施方式,使本领域技术人员能够理解或实现本技术。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本技术的精神或范围的情况下,在其它实施例中实现。因此,本技术
将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1