本发明涉及语义匹配技术领域,具体是涉及一种语义匹配蒸馏方法及装置。
背景技术:
检索式问答系统是指对于用户提出的问题检索知识库,选取最相似的答案作为最终的答案。典型的检索式问答系统主要分为召回部分与排序部分两部分。召回部分是根据用户提出的问题,从知识库中检索出多个较为相似的答案样本。排序部分是对召回部分检索到的样本进行重新的排序并选择最相似的答案作为最终的答案,其中,深度语义匹配算法在排序中起着关键的作用。深度语义匹配模型是指对输入到模型的用户问题与知识库中的标准问题编码并进行相似度计算,判断用户问题与标准问题是否匹配。深度语义匹配模型的性能直接影响到最终选取答案的正确与否,深度语义匹配模型的推理速度直接影响到检索式问答系统的响应时间。
深度语义匹配模型主要有两种类型,分别是基于表示的深度语义匹配与基于交互的深度语义匹配。下面做简要介绍。
基于表示的深度语义匹配,参见图1,其中,嵌入层是指对用户问题与标准问题进行向量化表示,表示层是指利用cnn、rnn、transformer等深度学习模型对用户问题与标准问题进行编码,匹配层是指对用户问题与标准问题经过表示层编码后的文本向量进行相减、相乘、拼接等运算后得到最终的文本向量,预测层一般采用单层全连接层,对最终结果进行预测。
基于交互的深度语义匹配,参见图2,其中,基于表示的深度语义匹配与基于交互的深度语义匹配最大的区别在于基于交互的深度语义匹配增加了交互层。交互层是指对于表示层输出的两个文本向量计算相似度矩阵,也就是计算注意力矩阵,即对于用户问题(或标准问题)中的每个单词与标准问题中的每个单词计算重要性向量。嵌入层、表示层、匹配层、预测层与基于表示的深度语义匹配类似。
检索式问答系统通过分析用户提出的问题然后给出专业的答案。深度语义匹配模型的性能直接影响到检索式问答系统的性能。当前,深度语义匹配的发展主要基于bert等预训练模型。预训练模型结构复杂、模型参数多,通常包含通用领域的知识,并可在特定领域的数据上进行训练进而获得特定领域的知识。但是,预训练模型并不能满足所有场景的要求,尤其是对延迟有严格要求的场景中,其存在模型参数多、推理速度慢等问题,由上可见,现有的语义匹配蒸馏方法存在模型参数多、推理速度慢的缺点,难以得到很好应用。
因此,需要提供一种语义匹配蒸馏方法及装置,旨在解决上述问题。
技术实现要素:
针对现有技术存在的不足,本发明实施例的目的在于提供一种语义匹配蒸馏方法及装置,以解决上述背景技术中的问题。
为实现上述目的,本发明提供如下技术方案:
一种语义匹配蒸馏方法,包括:
获取用户问句和标准问句至teacher模型和student模型中;
对用户问句和标准问句进行分词、去除无意义的词等预处理操作;
将预处理操作后的用户问句与标准问句拼接为一个输入句子,对于输入句子中的每个词都转换为3种形式的向量,分别是词嵌入向量、位置向量和段向量,其中词嵌入向量即为每个词的词向量,表示词的语义信息,位置向量表示词在输入句子中的位置,段向量表示词属于用户问句或是标准问句,最终采用相加的方式将每个词的3个向量相加得到词的特征向量;
将输入句子中的每个词都转换为词的特征向量后得到输入句子向量,然后将输入句子向量分别输入到预先建立的teacher模型与student模型中,teacher模型与student模型会分别计算用户问句和标准问句的相似度;
将teacher模型的输出向量与student模型的输出向量采用第一损失函数计算第一损失,将student模型的预测值与真实值采用第一损失函数计算第二损失,将teacher模型的词特征向量与student模型的词特征向量采用第二损失函数计算第三损失;
将第一损失、第二损失和第三损失相加得到最终的目标函数,采用优化算法对目标函数进行优化,优化完成后得到最终的student模型;以及
student模型用于在语义匹配任务中判断用户问句与标准问句是否相似,若相似,预测结果为1,否则预测结果为0。
作为本发明进一步的方案,在将输入句子向量输入到teacher模型与student模型之前,还包括:
在数据集上预先训练teacher模型;以及
将输入句子向量输入到teacher模型,teacher模型的预测值与真实值计算损失,使用优化算法优化teacher模型,得到最终的teacher模型。
作为本发明进一步的方案,在计算得到目标函数之前,还包括:
给第一损失赋予一个第一权值,给第二损失赋予一个第二权值,给第三损失赋予一个第三权值,其中,权值表示重要程度,第一权值与第二权值的和为1。
作为本发明进一步的方案,将预先训练完成的teacher模型中包含的语义匹配知识迁移到student模型中,并构建目标函数优化student模型,将得到的student模型应用与语义匹配任务中,判断用户问句与标准问句是否相似,包括:
将teacher模型输出向量中的知识迁移到student模型的输出向量中,计算第一损失;
student模型学习数据集中的知识,根据student模型的预测值与真实值,计算第二损失;
将teacher模型词特征向量中的知识迁移到student模型的词特征向量中,计算第三损失;
将第一损失、第二损失和第三损失加权求和得到目标函数;
根据目标函数通过优化算法优化student模型,将知识迁移到student模型中;以及student模型判断输入的用户问句与标准问句是否相似。
一种语义匹配蒸馏装置,包括:
获取模块,用于获取用户问句与标准问句;
预处理模块,用于对用户问句与标准问句进行分词,去除无意义的词等预处理操作;
向量融合模块,用于将输入句子中的每个词的词嵌入向量、位置向量与段向量相加得到词特征向量;
相似度计算模块,用于将输入句子向量分别输入到预先建立的teacher模型与student模型中,teacher模型与student模型会分别计算用户问句与标准问句的相似度;
知识迁移模块,用于将teacher模型的输出向量与student模型的输出向量采用第一损失是函数计算第一损失、将student模型的预测值与真实值采用第一损失函数计算第二损失,将teacher模型的词特征向量与student模型的词特征向量采用第二损失函数计算第三损失;
目标优化模块,用于将第一损失、第二损失与第三损失加权求和得到最终的目标函数,采用优化算法对目标函数进行优化,优化完成后得到最终的student模型;以及
答案预测模块,用于将student模型用于在语义匹配任务中判断用户问句与标准问句是否相似,若相似,预测结果为1,否则预测结果为0。
作为本发明进一步的方案,所述一种语义匹配蒸馏装置还包括:
teacher模型训练模块,用于将输入向量输入到teacher模型,teacher模型的预测值与真实值计算损失,使用优化算法优化teacher模型,得到最终的teacher模型。
一种计算机存储介质,其上存储有计算机可执行指令集合,该指令集合可执行权利要求任一所述语义匹配蒸馏方法。
一种电子设备,一种只读存储器与一个随机存储器,所述只读存储器存储指令集合,指令集合中的指令先调入随机存储器并由中央处理器执行,该指令集合可执行权利要求任一所述语义匹配蒸馏方法。
综上所述,本发明实施例与现有技术相比具有以下有益效果:
本发明通过对输入的用户问句和标准问句进行预处理操作,将预处理操作后的用户问句和标准问句拼接为一个输入句子,所述输入句子中每个词均转换为3种形式的向量,采用相加的方式将每个词的3个向量相加得到词的特征向量,组合输入句子的词的特征向量后得到输入句子向量,将输入句子向量分别输入teacher模型与student模型中,teacher模型与student模型会分别计算用户问句和标准问句的相似度,将teacher模型的输出向量与student模型的输出向量进行损失计算,将损失相加得到最终的目标函数,采用优化算法对目标函数进行优化,优化完成后得到最终的student模型,最后student模型对用户问句和标准问句进行判断,若相似,预测结果为1,否则预测结果为0,提高了语义匹配速度,具备模型参数少、模型推理速度快、延迟显著降低和提高工作效率的效果。
为更清楚地阐述本发明的结构特征和功效,下面结合附图与具体实施例来对本发明进行详细说明。
附图说明
图1为基于表示的深度语义匹配的流程图。
图2为交互的深度语义匹配的流程图。
图3为语义匹配蒸馏方法的流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
以下结合具体实施例对本发明的具体实现进行详细描述。
在本发明的一个实施例中,参见图3,一种语义匹配蒸馏方法包括获取用户问句和标准问句至teacher模型和student模型中;对用户问句和标准问句进行分词、去除无意义的词等预处理操作;将预处理操作后的用户问句与标准问句拼接为一个输入句子,对于输入句子中的每个词都转换为3种形式的向量,分别是词嵌入向量、位置向量和段向量,其中词嵌入向量即为每个词的词向量,表示词的语义信息,位置向量表示词在输入句子中的位置,段向量表示词属于用户问句或是标准问句,最终采用相加的方式将每个词的3个向量相加得到词的特征向量;将输入句子中的每个词都转换为词的特征向量后得到输入句子向量,然后将输入句子向量分别输入到预先建立的teacher模型与student模型中,teacher模型与student模型会分别计算用户问句和标准问句的相似度;将teacher模型的输出向量与student模型的输出向量采用第一损失函数计算第一损失,将student模型的预测值与真实值采用第一损失函数计算第二损失,将teacher模型的词特征向量与student模型的词特征向量采用第二损失函数计算第三损失;将第一损失、第二损失和第三损失相加得到最终的目标函数,采用优化算法对目标函数进行优化,优化完成后得到最终的student模型;以及student模型用于在语义匹配任务中判断用户问句与标准问句是否相似,若相似,预测结果为1,否则预测结果为0。
在本实施例中,teacher模型的输入向量有3部分组成,分别是位置嵌入、词嵌入与段嵌入,其中位置嵌入是指对输入的文本中的每个词赋予一个位置向量,该位置向量表示该词在文本中的位置关系,词嵌入是指对输入的文本中的词都映射为词向量,段嵌入是指对于输入的句子对,采用特殊符号[cls]与[sep]分隔开,组成一段输入文本,输入文本形式为“[cls]query[sep]question[sep]。
teacher模型由3个模块层组成,分别为编码层、时间序列层和信息抽取层,其中编码层包含3层转换层(transformer)结构,用于编码文本上下文信息。时间序列层为单层bi-lstm结构,用于建模文本中词的位置关系,信息抽取层主要采用最大池化结构,用于提取文本的全局关键信息;student模型由3层transformer结构组成。
所述编码层由3层transformer模型组成。每层transformer模型都包含self-attention模块、multi-headattention模块、残差连接模块、layernormalization模块、feedforwardnetwork模块等部分组成。
(1)self-attention模块
self-attention模块是模型的核心特征提取模块。对于模型的输入向量矩阵,都创建3个向量矩阵,分别是query向量矩阵,key向量矩阵与value向量矩阵。3个向量矩阵分别与3个不同的权重矩阵进行矩阵乘法运算得到。self-attention计算过程用公式表示如下:
(2)multi-headattention模块
multi-headattention模块是将self-attention模块中的query、key与value在词向量维度方向上划分为多个相等的部分,每个部分单独进行self-attention模块的计算,最终在维度方向上将每个部分的self-attention模块计算结果拼接起来。multi-headattention模块计算过程用公式表示如下:
(3)残差连接模块
当神经网络变深时,会出现神经网络退化问题,导致了深度神经网络训练失败。残差连接让网络拥有恒等映射的能力,能够在加深网络的时候,至少能保证深层网络的表现至少和浅层网络持平。用公式表示如下:
multihead(q,k,v) x·············(3)
其中multihead(q,k,v)为multi-headattention模块的输出,x为输入向量矩阵。
(4)layernormalization模块
layernormalization模块是batch的每一行做normalization,相当于是对每句话的embedding做归一化。layernormalization模块可将在深层模型中发生变化的数据分布重新做归一化处理。layernormalization模块用公式表示如下:
其中,μi表示以矩阵的行为单位求均值,σ2表示以矩阵的行为单位求方差,然后用每一行的每一个元素减去这行的均值,再除以这行的标准差,从而得到归一化后的数值;ε是为了防止除0;两个可训练参数α、β用来弥补归一化的过程中损失掉的信息;注意⊙表示元素相乘而不是点积,一般初始化α为全1,而β为全0。
(5)feedforwardnetwork模块
feedforwardnetwork模块可对数据进行维度变换与信息融合,共有2层全连接层组成。用公式表示如下:
ffn(x)=max(0,xw1 b1)w1 b2········(7)
其中,max(0,xw1 b1)为relu函数;w1、w2分别为第一层与第二层的权重矩阵。
所述时间序列层主要由双向长短期记忆层(bi-lstm)模型组成。transformer主要采用了self-attention模块编码上下文信息,但是self-attention模块不能获取文本中每个词的位置信息,因此在transformer中引入了位置嵌入,但位置嵌入是从大量的文本中学习位置关系,对位置关系的处理并不理想。bi-lstm模块以时间序列作为输入,能很好地处理一段文本中每个词的位置关系,可以对文本中的每个词进行位置编码。bi-lstm模块编码用公式表示如下:
其中,x表示模型输入向量依次经过3个transformer-encoder编码后输出的文本向量;l表示文本向量x的长度;output表示bi-lstm模型输出的包含位置信息的文本向量。
所述信息抽取层的输入向量是由编码层的输出向量与bi-lstm模块的输出向量相加得到,但是,编码层的输出向量与bi-lstm模块的输出向量维度是不同的,因此,要采用单层全连接层进行维度变换。
信息抽取层主要采用了最大池化操作,最大池化操作作用主要有:输入向量是二维向量,需要将二维向量降维到一维向量才能输入到全连接层;可以获取输入向量中每个维度上最重要的信息。最大池化操作用公式表示如下:
o=max(oi),i∈[1,d]············(9)
其中,o表示经过降维与残差连接操作后的文本向量;d表示维度的尺寸;max表示取最大值;o表示最终的向量。
student模型结构如图3中右部分所示,模型由3层transformer-encoder模块以及全连接层组成。student模型的输入、transformer-encoder模块与teacher模型相同,全连接层采用单层结构,故不再赘述。
在本发明的一个实施例中,在将输入句子向量输入到teacher模型与student模型之前,还包括在数据集上预先训练teacher模型;以及将输入句子向量输入到teacher模型,teacher模型的预测值与真实值计算损失,使用优化算法优化teacher模型,得到最终的teacher模型。
在本发明的一个实施例中,在计算得到目标函数之前,还包括给第一损失赋予一个第一权值,给第二损失赋予一个第二权值,给第三损失赋予一个第三权值,其中,权值表示重要程度,第一权值与第二权值的和为1。
在本发明的一个实施例中,将预先训练完成的teacher模型中包含的语义匹配知识迁移到student模型中,并构建目标函数优化student模型,将得到的student模型应用与语义匹配任务中,判断用户问句与标准问句是否相似,包括将teacher模型输出向量中的知识迁移到student模型的输出向量中,计算第一损失;student模型学习数据集中的知识,根据student模型的预测值与真实值,计算第二损失;将teacher模型词特征向量中的知识迁移到student模型的词特征向量中,计算第三损失;将第一损失、第二损失和第三损失加权求和得到目标函数;根据目标函数通过优化算法优化student模型,将知识迁移到student模型中;以及student模型判断输入的用户问句与标准问句是否相似。
在本实施例的知识蒸馏过程中,预训练模型可在预训练阶段蒸馏或者微调阶段蒸馏。预训练阶段蒸馏一般适用于通用领域,而微调阶段蒸馏一般适用于专业领域。因此,对于专业医疗领域,可采用在微调阶段蒸馏。在蒸馏过程中,分别将teacher模型的嵌入层与输出层的知识迁移到student模型中,也就是对teacher模型的嵌入层与输出层蒸馏。
teacher模型的嵌入层是对输入模型的句子中的每个词都映射为词向量的形式。teacher模型在医疗语义匹配数据上训练后,嵌入层的词向量矩阵包含了该数据中词的上下文信息。而且,词向量作为模型的输入,对模型各层都有重要的影响。用公式表示嵌入层的知识蒸馏:
lembedding=mse(e1,e2)··········(10)
其中,e1与e2分别表示teacher模型的词向量与student模型的词向量。
softtarget是指模型的输出经过softmax后得到的概率分布,而hardtarget是指样本的真实标签分布。hardtarget包含的信息量(信息熵)很低,softtarget包含的信息量大,拥有不同类之间关系的信息,比如判断两个句子是否匹配时,hardtarget只包含0与1两个值,而softtarget则包含两个类别之间的信息,判断两个类别的相似程度。用公式表示输出层的知识蒸馏:
lsoft=crossentropy(q,p1)············(11)
其中,q表示teacher模型输出的softtarget,p1表示student模型输出的softtarget。
知识蒸馏的目标函数用公式表示如下:
ltotal=αlsoft (1-α)lhard βlother············(12)
其中,lsoft表示由teacher模型与student模型各自输出的softtarget计算得到的损失,teacher模型与student模型采用相同的超参数t;lhard表示由student模型的输出softtarget与样本的hardtarget计算得到的损失;lother表示由嵌入层、注意力层、隐藏层计算得到的损失和;超参数α、1-α、β分别表示lsoft、lhard与lembedding的权重。
本专利分别从teacher模型的嵌入层与输出层进行知识蒸馏,所以总的目标函数用公式表示如下:
ltotal=αlsoft (1-α)lhard βlembedding············(13)
lsoft与lhard中采用的是交叉熵损失函数(crossentropy,ce),lembedding采用的是均方误差损失函数(meansquarederror,mse)。其中,交叉熵用于衡量同一个随机变量x的两个分布p(x)和q(x)之间的差异。
其中,p(x)表示真实分布,q(x)表示预测的分布。均方误差常用于回归任务中,是预测值与真实值之差的平方和的平均值。
其中f(xi)表示预测值,yi表示真实值,n为f(xi)与yi的长度。
student模型的蒸馏过程包括:
(1):在医疗语义匹配数据集上训练模型,得到一个高性能的teacher模型;
(2):对(1)中teacher模型以及student模型中的softmax函数都加入相同的超参数t。然后将teacher模型词向量矩阵与模型输出的softtarget作为student模型的学习目标;
(3):student模型的loss=αlsoft(q,p1) (1-α)lhard(y,p2) βlembedding(e1,e2)。其中,y是真实标签,q是teacher模型使用带超参数t的softmax输出的软标签,p1是student模型使用带超参数t的softmax输出的软标签,p2是student模型softmax的输出,e1与e2分别是teacher模型与student模型的词向量矩阵;以及
(4):蒸馏完成后,使用student模型作为最终的语义匹配模型,超参数t为1。
基于开源的医疗问答数据构建了医疗语义匹配数据集。在医疗语义匹配数据集上进行实验,分析影响深度语义匹配任务性能的主要因素,并与bert、siameselstm等基线模型从模型性能、模型参数量、模型推理耗时3个维度进行对比,验证图3中student模型的有效性。
本发明面向检索式医疗问答系统,构建了一个轻量级的语义匹配模型(图3左部分),该模型推理速度较快,单样本推理耗时为0.413ms,为bert的28.8%,模型参数量为41.5m,为bert的40.5%,在准确率与f1-score两个指标上超越了bert模型,将该模型作为teacher模型并结合知识蒸馏技术,蒸馏得到了一个更加轻量级的语义匹配蒸馏模型(图3右部分),称作student模型。student模型推理速度快,单样本推理耗时为0.362ms,仅为bert的25.3%。模型参数量为36.3m,仅为bert的35.5%。student模型在accuracy与f1-score两个指标上虽然不及teacher模型,但是均超越了bert模型。在应用于现实环境中的检索式问答场景时,能够显著降低模型延迟,满足实时性的要求,更容易部署。
当前,teacher模型主要是基于bert模型,虽然bert模型性能强大,但是其模型复杂、模型参数多、推理速度慢,更重要的是由于参数冗余的问题,在许多应用场景中bert的性能并不比规模小的模型性能更优,在本专利的医疗数据中也证明了这一点。因此,本专利提出了一个轻量化且性能更强的深度语义匹配模型,即图3的左部分。
与teacher模型所面临的问题类似,student模型虽然相比bert模型规模有所减小,但仍然比较复杂。因此,本专利进一步缩小student模型的规模,构造了一个3层的基于transformer的模型,图3右部分。
由实验结果可得知,与bert模型相比,student模型在f1-score与accuracy两个指标上均超越了bert模型,且student模型参数量以及推理耗时相比bert模型都大大降低。与siameselstm模型相比,虽然在模型参数量与推理耗时等指标上有所增加,但在f1-score与accuracy上均以较大幅度领先siameselstm模型。
基于同一发明构思,本申请实施例中还提供一种语义匹配蒸馏装置,该语义匹配蒸馏装置可以是硬件结构、软件模块或者硬件结构加软件模块。本申请实施例中的语义匹配蒸馏装置包括:
获取模块,用于获取用户问句与标准问句;
预处理模块,用于对用户问句与标准问句进行分词,去除无意义的词等预处理操作;
向量融合模块,用于将输入句子中的每个词的词嵌入向量、位置向量与段向量相加得到词特征向量;
相似度计算模块,用于将输入句子向量分别输入到预先建立的teacher模型与student模型中,teacher模型与student模型会分别计算用户问句与标准问句的相似度;
知识迁移模块,用于将teacher模型的输出向量与student模型的输出向量采用第一损失是函数计算第一损失、将student模型的预测值与真实值采用第一损失函数计算第二损失,将teacher模型的词特征向量与student模型的词特征向量采用第二损失函数计算第三损失;
目标优化模块,用于将第一损失、第二损失与第三损失加权求和得到最终的目标函数,采用优化算法对目标函数进行优化,优化完成后得到最终的student模型;以及
答案预测模块,用于将student模型用于在语义匹配任务中判断用户问句与标准问句是否相似,若相似,预测结果为1,否则预测结果为0。
在本发明的一个实施例中,所述一种语义匹配蒸馏装置还包括teacher模型训练模块,用于将输入向量输入到teacher模型,teacher模型的预测值与真实值计算损失,使用优化算法优化teacher模型,得到最终的teacher模型。
本申请实施例提供了一种电子设备,包括至少一个中央处理器、一种只读存储器与一个随机存储器,所述只读存储器存储指令集合,指令集合中的指令先调入随机存储器并有中央处理器执行,该指令集合可执行语义匹配蒸馏方法。
本申请实施例提供了一种计算机存储介质,该计算机存储介质上存储有计算机可执行指令集合,该指令集合可执行语义匹配蒸馏方法。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
1.一种语义匹配蒸馏方法,其特征在于,包括:
获取用户问句和标准问句至teacher模型和student模型中;
对用户问句和标准问句进行分词、去除无意义的词等预处理操作;
将预处理操作后的用户问句与标准问句拼接为一个输入句子,对于输入句子中的每个词都转换为3种形式的向量,分别是词嵌入向量、位置向量和段向量,其中词嵌入向量即为每个词的词向量,表示词的语义信息,位置向量表示词在输入句子中的位置,段向量表示词属于用户问句或是标准问句,最终采用相加的方式将每个词的3个向量相加得到词的特征向量;
将输入句子中的每个词都转换为词的特征向量后得到输入句子向量,然后将输入句子向量分别输入到预先建立的teacher模型与student模型中,teacher模型与student模型会分别计算用户问句和标准问句的相似度;
将teacher模型的输出向量与student模型的输出向量采用第一损失函数计算第一损失,将student模型的预测值与真实值采用第一损失函数计算第二损失,将teacher模型的词特征向量与student模型的词特征向量采用第二损失函数计算第三损失;
将第一损失、第二损失和第三损失相加得到最终的目标函数,采用优化算法对目标函数进行优化,优化完成后得到最终的student模型;以及
student模型用于在语义匹配任务中判断用户问句与标准问句是否相似,若相似,预测结果为1,否则预测结果为0。
2.根据权利要求1所述的语义匹配蒸馏方法,其特征在于,在将输入句子向量输入到teacher模型与student模型之前,还包括:
在数据集上预先训练teacher模型;以及
将输入句子向量输入到teacher模型,teacher模型的预测值与真实值计算损失,使用优化算法优化teacher模型,得到最终的teacher模型。
3.根据权利要求2所述的语义匹配蒸馏方法,其特征在于,在计算得到目标函数之前,还包括:
给第一损失赋予一个第一权值,给第二损失赋予一个第二权值,给第三损失赋予一个第三权值,其中,权值表示重要程度,第一权值与第二权值的和为1。
4.根据权利要求3所述的语义匹配蒸馏方法,其特征在于,将预先训练完成的teacher模型中包含的语义匹配知识迁移到student模型中,并构建目标函数优化student模型,将得到的student模型应用与语义匹配任务中,判断用户问句与标准问句是否相似,包括:
将teacher模型输出向量中的知识迁移到student模型的输出向量中,计算第一损失;
student模型学习数据集中的知识,根据student模型的预测值与真实值,计算第二损失;
将teacher模型词特征向量中的知识迁移到student模型的词特征向量中,计算第三损失;
将第一损失、第二损失和第三损失加权求和得到目标函数;
根据目标函数通过优化算法优化student模型,将知识迁移到student模型中;以及
student模型判断输入的用户问句与标准问句是否相似。
5.一种语义匹配蒸馏装置,其特征在于,包括:
获取模块,用于获取用户问句与标准问句;
预处理模块,用于对用户问句与标准问句进行分词,去除无意义的词等预处理操作;
向量融合模块,用于将输入句子中的每个词的词嵌入向量、位置向量与段向量相加得到词特征向量;
相似度计算模块,用于将输入句子向量分别输入到预先建立的teacher模型与student模型中,teacher模型与student模型会分别计算用户问句与标准问句的相似度;
知识迁移模块,用于将teacher模型的输出向量与student模型的输出向量采用第一损失是函数计算第一损失、将student模型的预测值与真实值采用第一损失函数计算第二损失,将teacher模型的词特征向量与student模型的词特征向量采用第二损失函数计算第三损失;
目标优化模块,用于将第一损失、第二损失与第三损失加权求和得到最终的目标函数,采用优化算法对目标函数进行优化,优化完成后得到最终的student模型;以及
答案预测模块,用于将student模型用于在语义匹配任务中判断用户问句与标准问句是否相似,若相似,预测结果为1,否则预测结果为0。
6.根据权利要求5所述的语义匹配蒸馏装置,其特征在于,还包括:
teacher模型训练模块,用于将输入向量输入到teacher模型,teacher模型的预测值与真实值计算损失,使用优化算法优化teacher模型,得到最终的teacher模型。
7.一种计算机存储介质,其特征在于,其上存储有计算机可执行指令集合,该指令集合可执行权利要求1-4任一所述的方法。
8.一种电子设备,其特征在于,包括:
至少一个中央处理器,一种只读存储器与一个随机存储器,所述只读存储器存储指令集合,指令集合中的指令先调入随机存储器并由中央处理器执行,该指令集合可执行权利要求1-4任一所述的方法。
技术总结