掌桥专利:专业的专利平台
掌桥专利
首页

深度学习模型的训练方法、装置和FAQ相似度判别方法

文献发布时间:2023-06-19 10:16:30


深度学习模型的训练方法、装置和FAQ相似度判别方法

技术领域

本申请涉及文本处理领域,特别是涉及一种深度学习模型的训练方法、深度学习模型的训练装置、FAQ相似度判别方法、电子装置和存储介质。

背景技术

文本相似度计算是一种度量两个文本语义相似性的方法;而经常问到的问题(Frequently Asked Questions,简称为FAQ)文本生成是根据用户输入的文本生成多个语义相近的文本。文本相似度计算和文本生成这两种技术被广泛应用于金融、教育和法律等多个业务领域的问答场景中。在FAQ问答场景,在相关技术中一般是通过计算用户提问与知识库中已经总结好的待匹配问题之间的文本相似度,从知识库中选择出与用户提问相似度最大的问题,并将其所对应的答案返回给用户,作为回答用户提问的答案。

在相关技术中,一般都是使用Bert、统一语言模型(Unified Language Model,简称为UniLM)和GPT-2等模型来完成文本生成任务和文本相似度计算任务的。然而在研究过程中发现,上述模型对应的模型参数量非常庞大,导致了模型计算效率低的问题。

目前针对相关技术中模型计算效率低的问题,尚未提出有效的解决方案。

发明内容

本申请实施例提供了一种深度学习模型的训练方法、深度学习模型的训练装置、FAQ相似度判别方法、电子装置和存储介质,以至少解决相关技术中模型计算效率低的问题。

第一方面,本申请实施例提供了一种深度学习模型的训练方法,包括:获取文本样本,其中,所述文本样本包括第一文本、第二文本和标签,所述标签用于表示所述第一文本与所述第二文本是否为相似文本;对所述文本样本进行第一类计算,获取第一类训练损失,根据所述第一类训练损失更新用于所述第一类计算的第一类训练参数,其中,所述第一类计算包括第一类文本生成计算和第一类文本相似度计算;对所述文本样本进行第二类计算,获取第二类训练损失;根据所述第一类训练损失与所述第二类训练损失,获取第三类训练损失;根据所述第三类训练损失更新用于所述第二类计算的第二类训练参数,其中,所述第二类计算包括第二类文本生成计算和第二类文本相似度计算,所述第二类训练参数的数量少于所述第一类训练参数的数量。

在其中一些实施例中,根据所述第一类训练损失与所述第二类训练损失,获取第三类训练损失包括:确定所述第一类训练损失与所述第二类训练损失的加权和,将所述加权和作为所述第三类训练损失。

在其中一些实施例中,根据所述第一类训练损失与所述第二类训练损失,获取第三类训练损失包括:确定所述第一类训练损失与所述第二类训练损失的损失距离;确定所述损失距离、所述第一类训练损失以及所述第二类训练损失的加权和,将所述加权和作为所述第三类训练损失。

在其中一些实施例中,用于所述第一类计算的第一神经网络模型包括第一数量的Transformer单元,用于所述第二类计算的第二神经网络模型包括第二数量的Transformer单元;所述第一神经网络模型中的Transformer单元的网络维度大于所述第二神经网络模型中的Transformer单元的网络维度。

在其中一些实施例中,所述第一类训练损失包括第一类文本生成训练损失和第一类文本相似度训练损失;所述第二类训练损失包括第二类文本生成训练损失和第二类文本相似度训练损失;

其中,对所述文本样本进行第一类计算,获取第一类训练损失,根据所述第一类训练损失更新用于所述第一类计算的第一类训练参数包括:在所述第一文本与所述第二文本为相似文本的情况下,对所述第一文本进行第一类文本生成计算,获取第一类预测文本;根据所述第一类预测文本和所述第二文本确定第一类文本生成训练损失;对所述第一文本与所述第二文本进行第一类文本相似度计算,获取第一类文本相似度;根据所述第一类文本相似度和所述标签确定所述第一类文本相似度训练损失;根据所述第一类文本生成训练损失和所述第二类文本相似度训练损失,更新所述第一类训练参数,所述第一类训练参数包括用于所述第一类文本生成计算的训练参数和用于所述第一类文本相似度计算的训练参数;

其中,对所述文本样本进行第二类计算,获取第二类训练损失包括:在所述第一文本与所述第二文本为相似文本的情况下,对所述第一文本进行第二类文本生成计算,获取第二类预测文本;根据所述第二类预测文本和所述第二文本确定第一类文本生成训练损失;对所述第一文本与所述第二文本进行第二类文本相似度计算,获取第二类文本相似度;根据所述第二类文本相似度和所述标签确定所述第一类文本相似度训练损失。

第二方面,本申请实施例还提供了一种深度学习模型的训练装置,所述装置包括:获取模块,用于获取文本样本,其中,所述文本样本包括第一文本、第二文本和标签,所述标签用于表示所述第一文本与所述第二文本是否为相似文本;第一类计算模块,用于对所述文本样本进行第一类计算,获取第一类训练损失,其中,所述第一类计算包括第一类文本生成计算和第一类文本相似度计算;第一类更新模块,用于根据所述第一类训练损失更新用于所述第一类计算的第一类训练参数;第二类计算模块,用于对所述文本样本进行第二类计算,获取第二类训练损失,其中,所述第二类计算包括第二类文本生成计算和第二类文本相似度计算;确定模块,用于根据所述第一类训练损失与所述第二类训练损失,获取第三类训练损失;第二类更新模块,用于根据所述第三类训练损失更新用于所述第二类计算的第二类训练参数,其中,所述第二类训练参数的数量少于所述第一类训练参数的数量。

第三方面,本申请实施例还提供了一种FAQ相似度判别方法,包括:获取用户提问文本;从预先构建的提问数据库中获取预设提问文本,对所述用户提问文本和所述预设提问文本进行第二类文本相似度计算,得到第二类文本相似度;根据所述第二类文本相似度确定所述用户提问文本与所述预设提问文本是否为相似文本;其中,用于所述第二类文本相似度计算的训练参数基于第一方面所述的深度学习模型的训练方法获得。

在其中一些实施例中,所述预设提问文本包括标准提问文本和与所述标准提问文本相似的扩展提问文本;所述方法还包括:获取问答对,所述问答对包括标准提问文本和答案;对所述标准提问文本进行所述第二类文本生成计算,得到与所述扩展提问文本;将所述扩展提问文本和所述答案作为扩展问答对,存储到所述提问数据库;以及将所述标准提问文本和所述答案作为标准问答对,存储到所述提问数据库。

第四方面,本申请实施例还提供了一种电子装置,包括:处理器以及存储器;所述存储器用于存储所述处理器的可执行指令;所述处理器配置为经由执行所述可执行指令来执行第一方面所述的深度学习模型的训练方法,和/或,第三方面所述的FAQ相似度判别方法。

第五方面,本申请实施例提供了一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行第一方面所述的深度学习模型的训练方法,和/或,第三方面所述的FAQ相似度判别方法。

相比于相关技术,本申请实施例提供的深度学习模型的训练方法、深度学习模型的训练装置、FAQ相似度判别方法、电子装置和存储介质,通过使用相同的文本样本进行第一类文本生成计算、第一类文本相似度计算、第二类文本生成计算以及第二类文本相似度计算,并且将第一类文本生成计算和第一类文本相似度计算得到的第一类训练损失也用于第二类文本生成计算以及第二类文本相似度计算的第二类训练参数的更新,一方面实现了文本生成计算的训练参数和文本相似度计算的训练参数的共同训练和更新,另一方面训练得到的第二类训练参数的参数规模相比第一类训练参数的参数规模小,但基于该第二类训练参数能够获得与第一类训练参数相匹敌的预测结果,解决了相关技术中模型计算效率低的问题,提高了模型计算效率。

本申请的一个或多个实施例的细节在以下附图和描述中提出,以使本申请的其他特征、目的和优点更加简明易懂。

附图说明

此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1是本申请实施例的深度学习模型的训练方法的终端的硬件结构框图;

图2是根据本申请实施例的深度学习模型的训练方法的流程图;

图3是根据本申请实施例的深度学习模型的训练装置的结构框图;

图4是根据本申请实施例的FAQ相似度判别方法的流程图;

图5是根据本申请优选实施例的深度学习模型的训练及应用的示意图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行描述和说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。基于本申请提供的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。此外,还可以理解的是,虽然这种开发过程中所作出的努力可能是复杂并且冗长的,然而对于与本申请公开的内容相关的本领域的普通技术人员而言,在本申请揭露的技术内容的基础上进行的一些设计,制造或者生产等变更只是常规的技术手段,不应当理解为本申请公开的内容不充分。

在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域普通技术人员显式地和隐式地理解的是,本申请所描述的实施例在不冲突的情况下,可以与其它实施例相结合。

除非另作定义,本申请所涉及的技术术语或者科学术语应当为本申请所属技术领域内具有一般技能的人士所理解的通常意义。本申请所涉及的“一”、“一个”、“一种”、“该”等类似词语并不表示数量限制,可表示单数或复数。本申请所涉及的术语“包括”、“包含”、“具有”以及它们任何变形,意图在于覆盖不排他的包含;例如包含了一系列步骤或模块(单元)的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可以还包括没有列出的步骤或单元,或可以还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。本申请所涉及的“连接”、“相连”、“耦接”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电气的连接,不管是直接的还是间接的。本申请所涉及的“多个”是指大于或者等于两个。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。本申请所涉及的术语“第一”、“第二”、“第三”等仅仅是区别类似的对象,不代表针对对象的特定排序。

本实施例提供的方法实施例可以在终端、计算机或者类似的运算装置中执行。以运行在终端上为例,图1是本申请实施例的深度学习模型的训练方法的终端的硬件结构框图。如图1所示,终端可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器104,可选地,上述终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述终端的结构造成限定。例如,终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。

存储器104可用于存储计算机程序,例如,应用软件的软件程序、模块以及深度学习模型等,如本发明实施例中的深度学习模型的训练方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

传输设备106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括终端的通信供应商提供的无线网络。在一个实例中,传输设备106包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。

本实施例提供了一种深度学习模型的训练方法,图2是根据本申请实施例的深度学习模型的训练方法的流程图,如图2所示,该流程包括如下步骤:

步骤S201,获取文本样本。

本实施例中获取的文本样本包括两个文本,分别被称为第一文本和第二文本,文本样本还包括用于表示这两个文本是否为相似文本的标签。例如,其中一种文本样本可以是:文本A1和文本A2,标签为1,表示这两个文本A1和文本A2是相似文本。再例如,其中一种文本样本可以是:文本A1和文本B1,标签为0,表示这两个文本A1和文本B1是不相似文本。

上述的文本样本可以是人工搜集整理并手动标注的,也可以是通过相似文本生成方法生成的相似文本并自动标注的;在本申请中并不限制文本样本的获取方式。

需要说明的是,上述的相似文本是指意义相似或者相同的文本。例如,“什么是正逆回购方”与“正回购方是什么意思”构成了相似文本。再例如:“提现没有到账怎么办”与“提现什么时候才能到账”也构成了相似文本。而“怎样才能看到大盘走势”与“大盘走势是什么意思”这两个文本虽然个别字词相同,但意义不相近,构成了不相似文本。

步骤S202,对文本样本进行第一类计算,获取第一类训练损失,根据第一类训练损失更新用于第一类计算的第一类训练参数。

步骤S203,对文本样本进行第二类计算,获取第二类训练损失;根据第一类训练损失与第二类训练损失,获取第三类训练损失;根据第三类训练损失更新用于第二类计算的第二类训练参数。

上述的步骤S202和步骤S203可以是并行执行的,对于每个文本样本,都会进行第一类计算和第二类计算;进行第一类计算将获取到第一类训练损失,进行第二类计算将获取到第二类训练损失;对于用于第一类计算的第一类训练参数而言,直接根据第一类训练损失使用诸如Stochastic Gradient Descend(随机梯度下降算法)、Momentum update(物理模拟算法)、Adagrad(学习率衰减算法)、RMSprop、Adam等任意的参数更新方法进行第一类训练参数更新。

而对于用于第二类计算的第二类训练参数而言,则不是直接使用第二类训练损失对第二类训练参数进行更新,而是将第二类训练损失与第一类训练损失相融合得到第三类训练损失,根据第三类训练损失更新该第二类训练参数。参数更新使用的参数更新方法与第一类训练损失采用的参数更新方法相同。

其中,用于进行第一类计算的计算模块在概念上被理解为一个深度学习模型,用于进行第二类计算的计算模块在概念上也被理解为另一个深度学习模型。在本实施例中,第一类计算和第二类计算的计算逻辑是完全相同的,也就是说第一类计算对应的深度学习模型和第二类计算对应的深度学习模型具有相同的架构,二者的主要区别在于第一类训练参数的参数规模(即参数的数量)大于第二类训练参数的参数规模。在使用上述的参数更新方式,基于融合了第一类训练损失和第二类训练损失得到的第三类训练损失,对第二类训练参数进行更新,使得第二类训练参数的更新能够参考参数规模更大的深度学习模型的训练结果。

在本实施例中,用于第一类计算的第一神经网络模型和用于第二类计算的神经网络模型都是基于在文本处理方面表现优异的Transformer单元构建的。其中,用于第一类计算的第一神经网络模型包括第一数量的Transformer单元,用于第二类计算的第二神经网络模型包括第二数量的Transformer单元。在一些实施例中,第一数量大于第二数量。

Transformer单元是由谷歌提出的一种网络结构的基础单元,每个Transformer单元都包括编码器和解码器,在每个编码器中包括多个编码层,在每个解码器中包括多个解码层,编码层和解码层的数量相同。在训练阶段,Transformer单元的输入被第一个编码层处理后输出句子向量作为第二个编码层的输入,以此类推,直至最后一个编码层处理后输出句子向量,该句子向量作为每个解码层输入的一部分,最终通过最后一个解码层输出结果。其中,句子向量 的维度越大,模型训练结果越准确,但也会占用更多的计算资源和计算时间。在本实施例中,第一神经网络模型中的Transformer单元输出句子的向量维度大于第二神经网络模型中的Transformer单元输出句子的向量维度。

在本实施例中,第二神经网络模型相比第一神经网络模型而言,Transformer单元数量更少、输出句子的向量维度更低,因此第二神经网络模型的参数规模小于第一神经网络模型的参数规模。

在本实施例中,第一类训练参数的更新不受到第二类训练参数的更新的影响,那么就可以将第一类训练参数看成是一个独立的深度学习模型训练过程。而用于第一类计算的第一类训练参数的规模可以不用考虑训练完成后的应用问题,即可以不用模型应用过程的计算效率高低的问题,而将第一类训练参数的参数规模设计得比较大。大规模的训练参数意味着一旦训练参数达到收敛,根据这些训练参数计算得到的结果也将更准确。基于上述的原理,基于融合了第一类训练损失和第二类训练损失得到的第三类训练损失,对第二类训练参数进行更新也就相当于将更准确的计算结果对应的训练损失作为小规模的训练参数更新的依据之一,从而可以将小规模的训练参数的计算结果的准确度也提高到与大规模的训练参数的计算结果相匹敌的程度,并且由于第二训练参数的参数规模较小,在实际的模型部署应用场景下,计算效率得到了提升,减少了模型计算耗费是时间。

另外值得一提的是,在上述的实施例中,第一类计算包括第一类文本生成计算和第一类文本相似度计算,第二类计算包括第二类文本生成计算和第二类文本相似度计算。也就是说在第一类计算可以看成同时进行了文本生成计算和文本相似度计算,计算结果产生的训练损失则也分别包括文本生成训练损失和文本相似度训练损失。第二类计算也可以看成同时进行了文本生成计算和文本相似度计算,计算结果产生的训练损失则也分别包括文本生成训练损失和文本相似度训练损失。通过将文本生成计算和文本相似度计算的训练参数共同进行训练,一方面有效利用了包括第一文本、第二文本和标签的三元组文本样本;另一方面将文本生成的训练过程与文本相似度计算的训练过程相结合,同时实现了文本生成计算的训练参数和文本相似度计算的训练参数的更新,也就是说能够同时得到用于两个任务的深度学习模型。这种能够用于两个任务的深度学习模型中,文本生成计算可以用于对诸如FAQ的提问数据库的扩展,文本相似度计算则可以用于FAQ的文本匹配,实现了对FAQ应用场景的有效支持。

在上述实施例中,融合第一类训练损失与第二类训练损失,得到第三类训练损失的方式可以采用训练损失加权和的方式,也可以采用损失距离的方式。

在采用加权和方式时,通过设置第一类训练损失与第二类训练损失的权重,来调整第一类训练损失和第二类训练损失在更新第二类训练参数中所占的比重;根据该权重计算的加权和作为用于第二类训练参数更新的第三类训练损失。

在采用损失距离的方式时,可以先确定第一类训练损失与第二类训练损失的损失距离,然后将损失距离、第一类训练损失以及第二类训练损失按照预先设定的权重进行加权求和,求得的加权和作为用于第二类训练参数更新的第三类训练损失。相比于直接对训练损失求加权和的方式而言,通过损失距离能够获得第一类训练损失和第二类训练损失之间的相对偏差,有助于将第一类计算的计算结果和第二类计算的计算结果之间的相对偏差减小到期望值以内,从而使得第二类计算的计算结果与第一类计算的计算结果趋于更接近。

需要说明的是,由于第一类计算包括第一类文本生成计算和第一类文本相似度计算,第二类计算包括第二类文本生成计算和第二类文本相似度计算。上述的计算中将分别获得:第一类文本生成计算产生的第一类文本生成训练损失,第一类文本相似度计算产生的第一类文本相似度训练损失,第二类文本生成计算产生的第二类文本生成训练损失,第二类文本相似度计算产生的第二类文本相似度训练损失。对于每种类型的训练损失,在本实施例中分别计算第三类训练损失,第三类训练损失包括第三类文本生成训练损失和第三类文本相似度训练损失。例如,根据第一类文本生成训练损失和第二类文本生成训练损失,获取第三类文本生成训练损失;根据第一类文本相似度训练损失和第二类文本相似度训练损失,获取第三类文本相似度训练损失。

在上述实施例中,文本样本是包括第一文本、第二文本和标签的三元数据。在采用上述的三元数据进行深度学习模型的训练时,在第一文本和第二文本为相似文本时,也就是在标签表示该文本样本为相似文本样本时,该文本样本可以用于文本生成计算,其中,第一文本作为输入数据,第二文本作为目标(或称为金标准),以实现对文本生成计算的训练参数的更新。在第一文本和第二文本为不相似文本时,也就是在标签表示该文本样本为不相似文本样本时,则该文本样本不用于文本生成计算。而进行文本相似度计算时,则不论标签表示该文本样本是否为相似文本样本,都可以作为文本相似度计算的输入数据。

在其中一些实施例中,对文本样本进行第一类计算,获取第一类训练损失,根据第一类训练损失更新用于第一类计算的第一类训练参数包括下列步骤:

步骤1,对于获取的文本样本中在第一文本与第二文本为相似文本的情况下,对第一文本进行第一类文本生成计算,获取第一类预测文本;根据第一类预测文本和第二文本确定第一类文本生成训练损失;

步骤2,对于获取到的所有的文本样本,对第一文本与第二文本进行第一类文本相似度计算,获取第一类文本相似度;根据第一类文本相似度和标签确定第一类文本相似度训练损失;

步骤3,根据第一类文本生成训练损失和第二类文本相似度训练损失,更新第一类训练参数,第一类训练参数包括用于第一类文本生成计算的训练参数和用于第一类文本相似度计算的训练参数。

在其中 一些实施例中,对文本样本进行第二类计算,获取第二类训练损失包括下列步骤:

步骤1,对于获取的文本样本中第一文本与第二文本为相似文本的情况下,对第一文本进行第二类文本生成计算,获取第二类预测文本;根据第二类预测文本和第二文本确定第一类文本生成训练损失;

步骤2,对于获取到的所有的文本样本,对第一文本与第二文本进行第二类文本相似度计算,获取第二类文本相似度;根据第二类文本相似度和标签确定第一类文本相似度训练损失。

本实施例还提供了一种深度学习模型的训练装置,图3是根据本申请实施例的深度学习模型的训练装置的结构示意图,如图3所示,该装置包括:获取模块31、第一类计算模块32、第一类更新模块33、第二类计算模块34、确定模块35和第二类更新模块36。其中,第一类计算模块32和第二类计算模块34的输入端均与获取模块31连接,第一类计算模块32的输出端分别与第一类更新模块33和确定模块35连接,第二类计算模块34的输出端与确定模块35连接,确定模块35还与第二类更新模块36连接。

获取模块31,用于获取文本样本,其中,所述文本样本包括第一文本、第二文本和标签,所述标签用于表示所述第一文本与所述第二文本是否为相似文本。

第一类计算模块32,用于对所述文本样本进行第一类计算,获取第一类训练损失,其中,所述第一类计算包括第一类文本生成计算和第一类文本相似度计算。

第一类更新模块33,用于根据所述第一类训练损失更新用于所述第一类计算的第一类训练参数。

第二类计算模块34,用于对所述文本样本进行第二类计算,获取第二类训练损失,其中,所述第二类计算包括第二类文本生成计算和第二类文本相似度计算。

确定模块35,用于根据所述第一类训练损失与所述第二类训练损失,获取第三类训练损失。

第二类更新模块36,用于根据所述第三类训练损失更新用于所述第二类计算的第二类训练参数,其中,所述第二类训练参数的数量少于所述第一类训练参数的数量。

在其中一些实施例中,确定模块35,用于确定第一类训练损失与第二类训练损失的加权和,将加权和作为第三类训练损失。

在其中一些实施例中,确定模块35,用于确定第一类训练损失与第二类训练损失的损失距离;确定损失距离、第一类训练损失以及第二类训练损失的加权和,将加权和作为第三类训练损失。

在其中一些实施例中,用于第一类计算的第一神经网络模型包括第一数量的Transformer单元,用于第二类计算的第二神经网络模型包括第二数量的Transformer单元;第一神经网络模型中的Transformer单元输出句子的向量维度大于第二神经网络模型中的Transformer单元输出句子的向量维度。

在其中一些实施例中,第一类训练损失包括第一类文本生成训练损失和第一类文本相似度训练损失;第二类训练损失包括第二类文本生成训练损失和第二类文本相似度训练损失。

第一类计算模块32,用于在第一文本与第二文本为相似文本的情况下,对第一文本进行第一类文本生成计算,获取第一类预测文本;根据第一类预测文本和第二文本确定第一类文本生成训练损失;对第一文本与第二文本进行第一类文本相似度计算,获取第一类文本相似度;根据第一类文本相似度和标签确定第一类文本相似度训练损失。

第一类更新模块33,用于根据第一类文本生成训练损失和第二类文本相似度训练损失,更新第一类训练参数,其中,第一类训练参数包括用于第一类文本生成计算的训练参数和用于第一类文本相似度计算的训练参数。

第二类计算模块34,用于在第一文本与第二文本为相似文本的情况下,对第一文本进行第二类文本生成计算,获取第二类预测文本;根据第二类预测文本和第二文本确定第一类文本生成训练损失;对第一文本与第二文本进行第二类文本相似度计算,获取第二类文本相似度;根据第二类文本相似度和标签确定第一类文本相似度训练损失。

本实施例还提供了一种基于上述的深度学习模型的训练方法的FAQ相似度判别方法。图4是根据本申请实施例的相似度判别方法的流程图,如图4所示,该流程包括如下步骤:

步骤S401,获取用户提问文本。

在本实施例中,可以根据上述的深度学习模型的训练方法训练得到的第二类训练参数,建立第二类深度学习模型,并将该第二类深度学习模型部署在终端或者网络平台上。在FAQ应用场景下,用户向终端或网络平台输入用户提问文本,用户希望获得终端或者网络平台反馈的用户提问文本的答案。

步骤S402,从预先构建的提问数据库中获取预设提问文本,对用户提问文本和预设提问文本进行第二类文本相似度计算,得到第二类文本相似度。

终端或者网络平台在接收到用户提问文本之后,将会从预先构建的提问数据库中获取预设提问文本,然后将该预设提问文本与用户提问文本进行第二类文本相似度计算,得到第二类文本相似度。在提问数据库中存储有多对问答对,每对问答对包括一个预设提问文本及一个预设答案。

步骤S403,根据第二类文本相似度确定用户提问文本与预设提问文本是否为相似文本。

在本实施例中,可以将提问数据库中每个预设提问文本都与用户提问文本进行相似度计算,选取与用户提问文本相似度最高的预设提问文本作为与用户提问文本的相似文本。最后将该相似文本对应的答案作为用户提问文本的答案,输出给用户。

其中,用于第二类文本相似度计算的训练参数基于上述的深度学习模型的训练方法获得,采用该第二类文本相似度计算的训练参数的优势在于参数规模小,运算效率高,占用的运算资源少,并且基于第二类文本相似度计算的训练参数计算得到的相似度计算结果能够匹敌第一类文本相似度计算的训练参数计算得到的相似度计算结果,提高了预测结果的准确性。

在其中一些实施例中,还可以对提问数据库进行扩展,通过对标准提问文本进行文本生成,得到多个与标准提问文本相似的扩展提问文本,所有相似的标准提问文本和扩展提问文本都对应于同一个预设答案,从而可以提高匹配准确性。在本实施例可以采用下列方式对提问数据库进行扩展:获取问答对,问答对包括标准提问文本和答案;对标准提问文本进行第二类文本生成计算,得到与扩展提问文本;将扩展提问文本和答案作为扩展问答对,存储到提问数据库;以及将标准提问文本和答案作为标准问答对,存储到提问数据库。

下面以一个优选实施例来对本申请实施例中的深度学习模型的训练方法进行描述和说明。图5是根据本申请优选实施例的深度学习模型的训练及应用的示意图,如图5所示,该深度学习模型的训练方法包括:数据准备、模型构建、损失函数计算和模型优化四个阶段。

阶段1:数据准备。

将文本样本处理成

其中,X

阶段2:模型构建。

分别构建参数规模大的第一深度学习模型和参数规模小的第二深度学习模型。

其中,两个模型可以分别以Transformer单元为基础,可以设置第一深度学习模型包括12个Transformer单元,输出句子向量为768维,约1.3亿参数;第二深度学习模型可以设置成包括4个Transformer单元,输出句子向量为312维,约200万参数。

阶段3:损失计算。

其中,第一深度学习模型和第二深度学习模型分别有:文本生成损失函数和相似度损失函数。

第一深度学习模型的文本生成损失函数可以为:

第二深度学习模型的文本生成损失函数可以为:

第一深度学习模型的相似度损失函数可以为:

第二深度学习模型的相似度损失函数可以为:

其中,

在本实施例中,为了使得第二深度学习模型的效果达到或趋近于第一深度学习模型,第一深度学习模型和第二深度学习模型之间还可以设置有文本生成距离和相似度距离两个损失函数,其中,文本生成距离函数可以为:

相似度距离可以为:

将上述损失函数求取算数和,或求加权和,则可以得到深度学习模型的总损失函数:

阶段4:模型优化。

根据文本样本、构建的第一深度学习模型、构建的第二深度学习模型和总损失函数,采用深度学习模型优化框架对对偶模型进行训练,得到两个参数规模不同但功能相近的第一深度学习模型和第二深度学习模型。

表1为第一深度学习模型和第二深度学习模型的相似度准确率和时间表,如表1所示,通过本申请实施例中的对偶训练方式,相比于相关技术中将两个模型分开进行单独训练的方式,本申请采用对偶训练方式得到的第一深度学习模型和第二深度学习模型不仅相似度计算的准确率高,可以满足FAQ问答系统的使用要求。

表1 第一深度学习模型和第二深度学习模型的相似度准确率和时间表

在本优选实施例中采用的训练方式被称为“对偶训练”,所使用的第一深度学习模型和第二深度学习模型的架构完全相同,例如,两个深度学习模型都是基于Transformer单元构建的Bert架构的模型。在通过上述深度学习模型的训练方法训练得到的参数收敛的两个深度学习模型中,将参数规模较小的参数收敛的第二深度学习模型应用于FAQ智能问答系统中,一方面,基于第二深度学习模型的文本生成能力,FAQ智能问答系统可以根据提问数据库中的标准提问文本生成与该标准提问文本意义相近的扩展提问文本,从而实现对提问数据库的扩展,得到更多的扩展问答对,提高问答结果匹配的准确性。另一方面,基于第二深度学习模型的文本相似度计算能力,FAQ智能问答系统可以为用户提问文本匹配到标准提问文本或扩展提问文本,进而获得用户提问文本的答案,实现FAQ功能。

FAQ问答系统中的文本相似度计算方法,不但要求问题的精准命中,而且对计算时间有非常高的要求,不能因为相似度模型计算复杂而导致响应延迟。不同场景的FAQ语料各不相同,要使得相似度模型适用于不同的场景,模型需要有很强的泛化能力。基于词语及词向量的文本相似度计算方法依赖于各场景的业务词典,泛化能力差。Bert等深度学习模型可以基于字向量进行训练,有较强的泛化能力。但是Bert等模型存在一个缺陷,其模型能力非常依赖于模型的参数大小。基础版的Bert就有一亿多的参数,在实际使用中计算开销大,速度慢,满足不了现实的要求。

与FAQ问答相似度一样,文本生成任务也对模型的计算时间和泛化能力有较高的要求。语义模板的生成模型生成的句式数量有限、结构单一,不能适用于多个场景,泛化能力差。现有的深度学习文本生成语义模型,为了提高模型的生成结果效果,模型参数量巨大,计算开销大。生成模型和相似度模型分别为两个不同的模型,没有很好地利用生成任务和相似度任务的相关性,资源浪费比较严重。

本优选实施例提出了一种如图5所示的对偶训练框架,实现了FAQ文本生成与相似度计算联合训练。在本优选实施例中构建文本生成和相似度计算的联合任务,利用对偶训练框架,同时训练结构复杂、参数量大的第一深度学习模型和结构简单、参数量小的第二深度学习模型。通过将文本生成任务加入到相似度模型训练中,增加模型训练的难度,从而提高模型对语义知识的提取能力。

本优选实施例提出的对偶训练方法利用类似对抗训练机制,相比蒸馏方法只能单向学习训练的机制,本优选实施例提出的对偶训练方法得到的第二深度学习模型的语义知识学习更充分,模型效果更好。完成训练后,第二深度学习模型因其架构精简,参数量小,同时具备了与第一深度学习模型相近的语义学习能力,而被选作最终的FAQ问答模型。本优选实施例得到的第二深度学习模型不仅可以满足问答场景中的计算时间要求,而且同时具备相似度计算和文本生成能力。

综上所述,本申请实施例或者优选实施例解决了相关技术的文本相似度计算与相似文本生成技术中无法解决的3个问题:

问题1:文本生成和相似度计算任务分开,分别训练模型造成的资源浪费问题。

相关技术中将FAQ文本生成和相似度计算任务分开,分别训练两个模型,需要准备两个模型的训练语料。在部署服务时还需要同时部署两个模型,非常浪费计算资源。此外,分开训练文本生成和相似度计算模型也没有充分利用好文本生成和相似度计算两个任务之间的紧密关系,资源利用不充分。本申请实施例将FAQ文本生成和相似度计算任务融合到一个模型中,提高了数据资源利用率,简化了问答系统。

问题2:使用参数量大的语义模型造成计算时满足不了实际要求的问题。

相关技术中使用Bert、UNILM和GPT-2等模型完成文本生成和相似度计算任务,满足不了现实问答场景中的计算时间要求。这些模型尽管计算效果不错,但是参数量非常庞大,计算复杂度非常高,在实际使用中影响智能问答系统的响应时间。本申请实施例使用参数规模小的第二深度学习模型构建FAQ智能问答系统,加快了模型的计算速度,满足问答系统的实时性要求。

问题3:使用相似文本语料直接训练参数量小的模型,模型效果不佳的问题。

相关技术中利用大规模的相似文本数据,直接对参数量小的模型进行训练,得到模型效果不佳。由于参数量较少,模型很难充分学习到文本的语义信息,导致训练出来的模型既不能很好地计算出文本间的相似度,也不能很好地根据标准问生成相语义似的扩展问。本申请实施例采用的对偶训练方法,通过第一深度学习模型对第二深度学习模型的监督,极大地提升了参数量小的第二深度学习模型的效果。

本实施例还提供了一种电子装置,包括存储器和处理器,存储器中存储有计算机程序,处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。

可选地,上述计算机设备还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。

可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:

S11,获取文本样本,其中,文本样本包括第一文本、第二文本和标签,标签用于表示第一文本与第二文本是否为相似文本。

S12,对文本样本进行第一类计算,获取第一类训练损失,根据第一类训练损失更新用于第一类计算的第一类训练参数,其中,第一类计算包括第一类文本生成计算和第一类文本相似度计算。

S13,对文本样本进行第二类计算,获取第二类训练损失;根据第一类训练损失与第二类训练损失,获取第三类训练损失;根据第三类训练损失更新用于第二类计算的第二类训练参数,其中,第二类计算包括第二类文本生成计算和第二类文本相似度计算,第二类训练参数的数量少于第一类训练参数的数量。

可选地,在本实施例中,上述处理器还可以被设置为通过计算机程序执行以下步骤:

S21,获取用户提问文本。

S22,从预先构建的提问数据库中获取预设提问文本,对用户提问文本和预设提问文本进行第二类文本相似度计算,得到第二类文本相似度。

S23,根据第二类文本相似度确定用户提问文本与预设提问文本是否为相似文本;其中,用于第二类文本相似度计算的训练参数基于上述的深度学习模型的训练方法获得。

需要说明的是,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。

另外,结合上述实施例中的深度学习模型的训练方法和/或FAQ相似度判别方法,本申请实施例可提供一种存储介质来实现。该存储介质上存储有计算机程序;该计算机程序被处理器执行时实现上述实施例中的任意一种方法。

本领域的技术人员应该明白,以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

相关技术
  • 深度学习模型的训练方法、装置和FAQ相似度判别方法
  • 深度学习模型的训练方法、装置和FAQ相似度判别方法
技术分类

06120112481141