用于问答匹配的神经网络模型的训练方法和装置
技术领域
本说明书一个或多个实施例涉及计算机领域,尤其涉及用于问答匹配的神经网络模型的训练方法和装置。
背景技术
自然语言处理(natural language processing,NLP),是一门研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法的科学。在NLP中,一个典型的应用就是针对用户问句的问答匹配,以实现由客服机器人根据问答匹配的结果回答用户问题。
在客服机器人***中,出于准确识别用户问句的目的,通常地,用于问答匹配的神经网络模型结构复杂,非常消耗计算资源,处理速度慢,导致出现服务超时的情况。
因此,希望能有改进的方案,能够在准确识别用户问句的基础上,降低资源消耗,提升处理速度。
发明内容
本说明书一个或多个实施例描述了一种用于问答匹配的神经网络模型的训练方法和装置,能够在准确识别用户问句的基础上,降低资源消耗,提升处理速度。
第一方面,提供了一种用于问答匹配的神经网络模型的训练方法,方法包括:
获取样本集合中的各个用户问句以及各个用户问句对应的分类标签;
利用已训练的第一神经网络模型,预测各个用户问句在各个分类上的第一概率得分,其中所述第一神经网络模型的层数为N;
利用待训练的第二神经网络模型,预测各个用户问句在各个分类上的第二概率得分,其中,所述第二神经网络模型的层数为M,M<N;
根据所述第二概率得分和所述第一概率得分,得到第一损失函数;
根据所述第二概率得分和各个用户问句的分类标签,得到第二损失函数;
将所述第一损失函数与所述第二损失函数进行组合,得到总损失函数;
根据所述总损失函数,对所述第二神经网络模型进行训练,得到初步训练的第二神经网络模型。
在一种可能的实施方式中,所述第一神经网络模型通过以下方式预先训练:
将各个用户问句以及各个用户问句对应的分类标签作为一组训练样本,对所述第一神经网络模型进行训练,得到所述已训练的第一神经网络模型。
在一种可能的实施方式中,所述根据所述第二概率得分和所述第一概率得分,得到第一损失函数,包括:
将所述第二概率得分除以预定参数后,经过归一化处理,得到各个用户问句的第一输出值;
根据各个用户问句的第一输出值和各个用户问句的第一概率得分,得到第一损失函数;所述第一概率得分为除以所述预定参数,并经过归一化处理后得到的。
在一种可能的实施方式中,所述根据所述第二概率得分和各个用户问句的分类标签,得到第二损失函数,包括:
将所述第二概率得分经过归一化处理,得到各个用户问句的第二输出值;
根据各个用户问句的第二输出值和各个用户问句的分类标签,得到第二损失函数。
在一种可能的实施方式中,所述将所述第一损失函数与所述第二损失函数进行组合,得到总损失函数,包括:
将所述第一损失函数乘以第一权重,将所述第二损失函数乘以第二权重,对二者求和,得到总损失函数,其中,第一权重大于第二权重。
在一种可能的实施方式中,所述得到初步训练的第二神经网络模型之后,所述方法还包括:
将各个用户问句以及各个用户问句对应的分类标签作为一组训练样本,对初步训练的第二神经网络模型继续进行训练,得到继续训练后的第二神经网络模型。
进一步地,所述方法还包括:
利用所述继续训练后的第二神经网络模型,预测当前用户问句所属的类别。
在一种可能的实施方式中,所述待训练的第二神经网络模型为经过预训练的上下文全向预测模型,所述第二神经网络模型的预训练任务包括完形填空与上下句判断两个任务。
在一种可能的实施方式中,所述第二神经网络模型的层数为2。
第二方面,提供了一种用于问答匹配的神经网络模型的训练装置,装置包括:
获取单元,用于获取样本集合中的各个用户问句以及各个用户问句对应的分类标签;
第一预测单元,用于利用已训练的第一神经网络模型,预测各个用户问句在各个分类上的第一概率得分,其中所述第一神经网络模型的层数为N;
第二预测单元,用于利用待训练的第二神经网络模型,预测各个用户问句在各个分类上的第二概率得分,其中,所述第二神经网络模型的层数为M,M<N;
第一比较单元,用于根据所述第二预测单元预测的第二概率得分和所述第一预测单元预测的第一概率得分,得到第一损失函数;
第二比较单元,用于根据所述第二预测单元预测的第二概率得分和所述获取单元获取的各个用户问句的分类标签,得到第二损失函数;
组合单元,用于将所述第一比较单元得到的第一损失函数与所述第二比较单元得到的第二损失函数进行组合,得到总损失函数;
第一训练单元,用于根据所述组合单元得到的总损失函数,对所述第二神经网络模型进行训练,得到初步训练的第二神经网络模型。
第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面的方法。
第四方面,提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面的方法。
通过本说明书实施例提供的方法和装置,与通常的训练问答匹配模型的方式不同,在对第二神经网络模型进行训练时,利用了已训练的第一神经网络模型的预测结果,其中,第一神经网络模型相对于第二神经网络模型来说,结构复杂,通过引入第一神经网络模型的预测结果,诱导第二神经网络模型的训练,实现知识迁移,从而使得第二神经网络模型能够在准确识别用户问句的基础上,降低资源消耗,提升处理速度,也就是说,通过这种训练问答匹配模型的方式,节省了大量运算资源而模型效果与之前基本没有大的差异。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本说明书披露的一个实施例的实施场景示意图;
图2示出根据一个实施例的用于问答匹配的神经网络模型的训练方法流程图;
图3示出根据一个实施例的用于问答匹配的神经网络模型的训练装置的示意性框图。
具体实施方式
下面结合附图,对本说明书提供的方案进行描述。
图1为本说明书披露的一个实施例的实施场景示意图。该实施场景涉及用于问答匹配的神经网络模型的训练,该神经网络模型也可称为问答匹配模型。长期以来,问答匹配模型对用户问句识别的准确性与处理速度之间是一对矛盾。如果使用层数较多的大模型(Big Model(s)),则用户问句识别的准确性较高,但处理速度慢;如果使用层数较少的小模型(Smal Model),则处理速度快,但用户问句识别的准确性低。而对于问答匹配模型来说,由于其通常应用于机器人客服对用户问句的实时解答,因此对用户问句识别的准确性和处理速度均有较高的要求。本说明书实施例,针对这一矛盾提出了解决方案,将知识蒸馏的思想引入对问答匹配模型的训练过程中,从而使用训练后的小模型可以实现对用户问句识别的准确性和处理速度均能符合需求。
知识蒸馏,通过引入与教师网络相关的软目标(soft target)作为总损失函数(total loss)的一部分,以诱导学生网络的训练,实现知识迁移。其中,教师网络复杂、但推理性能优越;学生网络精简、低复杂度。
如图1所示,教师网络(即大模型)的预测输出除以预设参数T(divided by T)之后、再做归一化处理(例如softmax变换),可以获得软化的概率分布(即软目标),例如,si[0.1,0.6,…,0.1],预设参数T数值介于0~1之间,取值分布较为缓和。预设参数T数值越大,分布越缓和;而预设参数T数值过小,可能会放大错误分类的概率,引入不必要的噪声。硬目标(hard target)则是样本的真实标注,可以用one-hot矢量表示,例如yi[0,1,…,0]。总损失函数(total loss)设计为软目标与硬目标所对应的交叉熵的加权平均,其中软目标交叉熵的加权系数λ越大,表明迁移诱导越依赖教师网络的贡献,这对训练初期阶段是很有必要的,有助于让学生网络更轻松的鉴别简单样本,但训练后期需要适当减小软目标的比重,让真实标注帮助鉴别困难样本。另外,教师网络的推理性能通常要优于学生网络,而模型容量则无具体限制,且教师网络推理精度越高,越有利于学生网络的学习。
本说明书实施例,通过知识迁移,从而通过训练好的大模型得到更加适合推理的小模型。使用训练好的小模型就可以对用户问句进行问答匹配了,也就是说预测(prediction)用户问句的类别。可以理解的是,模型的输入可以为用户问句的向量(vector)。
图2示出根据一个实施例的用于问答匹配的神经网络模型的训练方法流程图,该方法可以基于图1所示的应用场景。如图2所示,该实施例中用于问答匹配的神经网络模型的训练方法包括以下步骤:步骤21,获取样本集合中的各个用户问句以及各个用户问句对应的分类标签;步骤22,利用已训练的第一神经网络模型,预测各个用户问句在各个分类上的第一概率得分,其中所述第一神经网络模型的层数为N;步骤23,利用待训练的第二神经网络模型,预测各个用户问句在各个分类上的第二概率得分,其中,所述第二神经网络模型的层数为M,M<N;步骤24,根据所述第二概率得分和所述第一概率得分,得到第一损失函数;步骤25,根据所述第二概率得分和各个用户问句的分类标签,得到第二损失函数;步骤26,将所述第一损失函数与所述第二损失函数进行组合,得到总损失函数;步骤27,根据所述总损失函数,对所述第二神经网络模型进行训练,得到初步训练的第二神经网络模型。下面描述以上各个步骤的具体执行方式。
首先在步骤21,获取样本集合中的各个用户问句以及各个用户问句对应的分类标签。可以理解的是,该分类标签可以理解为图1所示应用场景中的硬目标,当存在多个分类时,各个用户问句对应的分类标签是唯一确定的。例如,各个用户问句对应的分类标签可以如表一所示。
表一:用户问句与分类标签的对应关系表
用户问句 |
分类标签 |
用户问句1 |
分类1 |
用户问句2 |
分类1 |
用户问句3 |
分类2 |
用户问句4 |
分类3 |
参见表一,用户问句1和用户问句2对应的分类标签为分类1,也就是说,不同的用户问句可以对应同一分类标签,但是一个用户问句对应的分类标签是唯一的。
接着在步骤22,利用已训练的第一神经网络模型,预测各个用户问句在各个分类上的第一概率得分,其中所述第一神经网络模型的层数为N。可以理解的是,该第一神经网络模型可以理解为图1所示应用场景中的大模型,该第一概率得分可以理解为图1所示应用场景中的软目标。
在一个示例中,所述第一神经网络模型通过以下方式预先训练:
将各个用户问句以及各个用户问句对应的分类标签作为一组训练样本,对所述第一神经网络模型进行训练,得到所述已训练的第一神经网络模型。
在一个示例中,第一神经网络模型使用完整的基于转换器的双向编码器表征(bidirectional encoder representations from transformers,bert)模型,对用户问句进行分类,并输出用户问句匹配的知识点。
然后在步骤23,利用待训练的第二神经网络模型,预测各个用户问句在各个分类上的第二概率得分,其中,所述第二神经网络模型的层数为M,M<N。可以理解的是,该第二神经网络模型可以理解为图1所示应用场景中的小模型,该第二概率得分可以理解为待训练的第二神经网络模型的预测结果,由于第二神经网络模型还未经过训练,因此第二概率得分相对于第一概率得分来讲不够准确。
在一个示例中,所述待训练的第二神经网络模型为经过预训练的上下文全向预测模型,例如bert模型,所述第二神经网络模型的预训练任务包括完形填空与上下句判断两个任务。
在一个示例中,所述第二神经网络模型的层数为2,例如2层的bert模型,其对于计算资源的消耗,约是完整的bert模型的六分之一。
再在步骤24,根据所述第二概率得分和所述第一概率得分,得到第一损失函数。可以理解的是,上述第一损失函数可以但不限于采用交叉熵损失函数(cross entropyloss)。
参见图1所示的应用场景,在一个示例中,将所述第二概率得分除以预定参数后,经过归一化处理,得到各个用户问句的第一输出值;根据各个用户问句的第一输出值和各个用户问句的第一概率得分,得到第一损失函数;所述第一概率得分为所述第一神经网络模型预设层级的输出除以所述预定参数,并经过归一化处理后得到的。
再在步骤25,根据所述第二概率得分和各个用户问句的分类标签,得到第二损失函数。可以理解的是,上述第二损失函数可以但不限于采用交叉熵损失函数。
参见图1所示的应用场景,在一个示例中,将所述第二概率得分经过归一化处理,得到各个用户问句的第二输出值;根据各个用户问句的第二输出值和各个用户问句的分类标签,得到第二损失函数。
再在步骤26,将所述第一损失函数与所述第二损失函数进行组合,得到总损失函数。可以理解的是,组合的方式可以但不限于采用加权求和的方式。
在一个示例中,将所述第一损失函数乘以第一权重,将所述第二损失函数乘以第二权重,对二者求和,得到总损失函数,其中,第一权重大于第二权重。
最后在步骤27,根据所述总损失函数,对所述第二神经网络模型进行训练,得到初步训练的第二神经网络模型。可以理解的是,可以通过最小化损失函数求解和评估模型。
在一个示例中,在步骤27之后,将各个用户问句以及各个用户问句对应的分类标签作为一组训练样本,对初步训练的第二神经网络模型继续进行训练,得到继续训练后的第二神经网络模型。
可以理解的是,总损失函数设计为软目标与硬目标所对应的交叉熵的加权平均,其中软目标交叉熵的加权系数越大,表明迁移诱导越依赖教师网络的贡献,这对训练初期阶段是很有必要的,有助于让学生网络更轻松的鉴别简单样本,但训练后期需要适当减小软目标的比重,让分类标签帮助鉴别困难样本。
进一步地,利用所述继续训练后的第二神经网络模型,预测当前用户问句所属的类别。
通过本说明书实施例提供的方法,与通常的训练问答匹配模型的方式不同,在对第二神经网络模型进行训练时,利用了已训练的第一神经网络模型的预测结果,其中,第一神经网络模型相对于第二神经网络模型来说,结构复杂,通过引入第一神经网络模型的预测结果,诱导第二神经网络模型的训练,实现知识迁移,从而使得第二神经网络模型能够在准确识别用户问句的基础上,降低资源消耗,提升处理速度,也就是说,通过这种训练问答匹配模型的方式,节省了大量运算资源而模型效果与之前基本没有大的差异。
根据另一方面的实施例,还提供一种用于问答匹配的神经网络模型的训练装置,该装置用于执行本说明书实施例提供的用于问答匹配的神经网络模型的训练方法。图3示出根据一个实施例的用于问答匹配的神经网络模型的训练装置的示意性框图。如图3所示,该装置300包括:
获取单元31,用于获取样本集合中的各个用户问句以及各个用户问句对应的分类标签;
第一预测单元32,用于利用已训练的第一神经网络模型,预测各个用户问句在各个分类上的第一概率得分,其中所述第一神经网络模型的层数为N;
第二预测单元33,用于利用待训练的第二神经网络模型,预测各个用户问句在各个分类上的第二概率得分,其中,所述第二神经网络模型的层数为M,M<N;
第一比较单元34,用于根据所述第二预测单元33预测的第二概率得分和所述第一预测单元32预测的第一概率得分,得到第一损失函数;
第二比较单元35,用于根据所述第二预测单元33预测的第二概率得分和所述获取单元31获取的各个用户问句的分类标签,得到第二损失函数;
组合单元36,用于将所述第一比较单元34得到的第一损失函数与所述第二比较单元35得到的第二损失函数进行组合,得到总损失函数;
第一训练单元37,用于根据所述组合单元36得到的总损失函数,对所述第二神经网络模型进行训练,得到初步训练的第二神经网络模型。
可选地,作为一个实施例,所述第一神经网络模型通过以下方式预先训练:
将各个用户问句以及各个用户问句对应的分类标签作为一组训练样本,对所述第一神经网络模型进行训练,得到所述已训练的第一神经网络模型。
可选地,作为一个实施例,所述第一比较单元34,具体用于:
将所述第二概率得分除以预定参数后,经过归一化处理,得到各个用户问句的第一输出值;
根据各个用户问句的第一输出值和各个用户问句的第一概率得分,得到第一损失函数;所述第一概率得分为除以所述预定参数,并经过归一化处理后得到的。
可选地,作为一个实施例,所述第二比较单元35,具体用于:
将所述第二概率得分经过归一化处理,得到各个用户问句的第二输出值;
根据各个用户问句的第二输出值和各个用户问句的分类标签,得到第二损失函数。
可选地,作为一个实施例,所述组合单元36,具体用于将所述第一比较单元34得到的第一损失函数乘以第一权重,将所述第二比较单元35得到的第二损失函数乘以第二权重,对二者求和,得到总损失函数,其中,第一权重大于第二权重。
可选地,作为一个实施例,所述装置还包括:
第二训练单元,用于在所述第一训练单元得到初步训练的第二神经网络模型之后,将所述获取单元31获取的各个用户问句以及各个用户问句对应的分类标签作为一组训练样本,对所述第一训练单元得到的初步训练的第二神经网络模型继续进行训练,得到继续训练后的第二神经网络模型。
进一步地,所述装置还包括:
预测单元,用于利用所述第二训练单元得到的继续训练后的第二神经网络模型,预测当前用户问句所属的类别。
可选地,作为一个实施例,所述待训练的第二神经网络模型为经过预训练的上下文全向预测模型,所述第二神经网络模型的预训练任务包括完形填空与上下句判断两个任务。
可选地,作为一个实施例,所述第二神经网络模型的层数为2。
通过本说明书实施例提供的装置,与通常的训练问答匹配模型的方式不同,在对第二神经网络模型进行训练时,利用了已训练的第一神经网络模型的预测结果,其中,第一神经网络模型相对于第二神经网络模型来说,结构复杂,通过引入第一神经网络模型的预测结果,诱导第二神经网络模型的训练,实现知识迁移,从而使得第二神经网络模型能够在准确识别用户问句的基础上,降低资源消耗,提升处理速度,也就是说,通过这种训练问答匹配模型的方式,节省了大量运算资源而模型效果与之前基本没有大的差异。
根据另一方面的实施例,还提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行结合图2所描述的方法。
根据再一方面的实施例,还提供一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现结合图2所描述的方法。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。