1.一种基于深度特征融合神经网络的问题对匹配方法,其特征在于,该方法包括如下步骤:S1、构建问题对知识库:从互联网问答社区爬取问题对,并对问题对进行预处理,初步构建问题对知识库;
S2、构建问题对匹配模型训练数据集:对于每个问题,在问题对知识库中至少有一个与该问题相匹配的标准问题,将标准问题与该问题构建训练正例;将除标准问题以外的问题与该问题构建训练负例;
S3、构建问题对匹配模型:利用深度特征融合神经网络构建问题对匹配模型,具体步骤如下:S301、构建字符映射转换表;
S302、构建输入层:输入层包括两个输入,从问题对知识库中分别获取question1、question2,将其形式化为:(question1,question2);再根据步骤S301中得到的字符映射转换表将输入数据中的字符转化为数字表示;
S303、构建字符向量映射层;
S304、构建基于深度特征融合的神经网络编码层;具体步骤如下:
S30401、将步骤S303处理后的输入文本进行编码和语义提取;
S30402、使用两个长短期记忆网络LSTM分别对文本进行编码,两者语义特征进行加法操作;
S30403、同时使用两个基于时间序列TimeDistribued的全连接Dense层对两者语义特征进行加法操作,具体公式如下:其中,i表示相应词向量在句子中的相对位置;pi表示句子question1中每个字符的相应向量表示; 表示经过其中一个LSTM编码后的question1句子向量; 表示经过另一个LSTM编码后的question1句子向量; 表示使用其中一个基于时间序列TimeDistribued的全连接Dense层编码的句子向量; 表示使用另一个基于时间序列TimeDistribued的全连接Dense层编码的句子向量; 表示两个LSTM编码层的输出结果加法运算的结果; 表示使用两个基于时间序列TimeDistribued的全连接Dense层编码的输出结果加法运算的结果;
S30404、将步骤S30403中的两种语义特征编码结果进行连接,作为该问题的语义特征,公式如下:其中, 表示 向量连接的结果,即为句子编码的最终向量表示,使用
vectorquestion1、vectorquestion2来具体表示对于question1、question2的编码结果的最终向量;
S305、构建文本相似度匹配层;具体步骤如下:
S30501、根据步骤S304分别得到question1、question2的最终向量表示vectorquestion1、vectorquestion2;
S30502、针对步骤S30501中的两个向量分别按照如下公式计算两个向量之间的差异:abs=|vectorquestion1‑vectorquestion2|;
cos=cos(vectorquestion1‑vectorquestion2);
mul=vectorquestion1*vectorquestion2;
其中,abs表示向量vectorquestion1、vectorquestion2逐元素之间求差取绝对值;cos表示向量vectorquestion1、vectorquestion2逐元素之间求差的余弦值;mul表示向量vectorquestion1、vectorquestion2逐元素之间求积;
S30503、将步骤S30502中的三个结果进行连接,作为问题对的相似度的全面表征,公式如下:con=[abs,cos,mul];
其中,con表示将步骤S30502中的三个结果,即abs、cos和mul,进行连接后得到的相似度表征;
S30504、将步骤S30503中得到的相似度表征向量经过全连接层进行解码,采用sigmoid函数进行相似度计算,得到处于[0,1]之间的相似度表示ypred,通过相似度的值判别问题对相似程度;
S4、训练问题对匹配模型和标准问题选择:在步骤S2所得的训练集上对步骤S3构建的问题对匹配模型进行训练;具体步骤如下:S401、构建损失函数:为了解决在匹配过程中出现的过拟合问题,使模型在优化时将注意力更集中于难以分类的样本,利用单位阶跃函数来修正交叉熵损失函数,公式如下:得到新的交叉熵损失函数,公式如下:
为了防止分类过于自信,使用修正的均方误差损失函数来进一步改进Lnew(cross_entropy),得到:其中,ypred为根据步骤S305得到的相似度计算结果;ytrue为两个句子相似与否的真实表+示,取值为0或1;m表示阈值,m∈(0.5,1);n为数据集大小,n∈N ;ones_like即使用数据1对于张量进行填充;
S402、构建优化函数:使用Adam算法作为模型的优化函数,学习率设置为0.002,超参数使用Keras中的默认值即可;
S403、问题对选择:将一个新的问题与问题对知识库中的所有候选的与之相匹配的问题组成输入样本;再分别利用步骤S3训练完成的问题对匹配模型,计算问题与候选的与之相匹配的问题之间相似度的数值;最后从所有结果中选取相似度值最高的一组作为新问题最有可能匹配的问题并将该问题推送给用户。
2.根据权利要求1所述的基于深度特征融合神经网络的问题对匹配方法,其特征在于,所述步骤S1中构建问题对知识库的具体步骤如下:S101、利用爬虫技术,从互联网问答社区爬取问题对,问答社区均采用Web形式进行展示,利用Scrapy工具获取语义相似的问题集合,构建问题对知识库;
S102、对问题对知识库进行预处理,对句子进行断字处理:将百度知道知识库中的每个问题对,以汉字字符为基本单位,进行断字处理,每个字之间用空格分开,保留文本中所有内容,文本中所有内容包括数字、标点及特殊字符。
3.根据权利要求1所述的基于深度特征融合神经网络的问题对匹配方法,其特征在于,步骤S2中构建问题对匹配模型训练数据集的具体步骤如下:S201、构建训练正例:将问题与问题语义相同的问题进行组合,构建正例;正例形式化为:(question1,question2,1);
其中,question1表示问题1,question2表示问题2,1表示正例,即问题1和问题2两者语义相同;
S202、构建训练负例:选中一个问题q1,再从问题对知识库中随机选择一个与问题q1不同的问题q2,将q1与q2组合,构建负例;负例形式化为:(question1,question2,0);
其中,question1指问题q1,question2指问题q2,0表示负例,即问题q1和问题q2二者语义不同;
S203、构建训练数据集:将步骤S201和步骤S202所得的全部问答的正例样本和负例样本组合在一起,并随机打乱顺序构成最终的训练数据集;其中,正例和负例均包含三个维度,即question1、question2、1或0,前两个维度根据实际包含的词语构建二维的张量表示,第三个维度构建一个数值类型表示相似度;
步骤S301中构建字符映射转换表的具体为:根据步骤S102断字处理后的问题对知识库,构建字符表;并将字符表中的每个字符映射为唯一的数字表示,按照字符加入字符表的顺序从1开始依次递增,据此构建字符映射转换表;
步骤S303中构建字符向量映射层的具体为:用户指定的字符向量的维度大小为embedding_dim,步骤S301中获取的字符表大小为len(tokenizer.word_index),使用[‑1,
1]的均匀分布定义(len(tokenizer.word_index)+1)×embedding_dim的二维矩阵并将其作为模型的字符向量映射层的权重矩阵;其中,每一行对应问题对知识库中单个字符的向量表示。
4.一种基于深度特征融合神经网络的问题对匹配装置,其特征在于,该装置包括,问题对知识库构建单元,用于利用爬虫技术,从互联网上的问答社区爬取问题对并问题对知识库预处理,问题对知识库预处理即对问题对的句子进行断字处理,构建问题对知识库;
问题对匹配模型训练数据集生成单元,用于根据问题对知识库构建训练正例和训练负例,再利用训练正例和训练负例构建训练数据;
问题对匹配模型构建单元,用于利用深度特征融合神经网络构建问题对匹配模型;
问题对匹配模型训练单元,用于在问题对匹配模型训练数据集生成单元所得的训练集上对问题对匹配模型构建单元构建的问题对匹配模型进行训练并选择出标准问题;
其中,问题对匹配模型构建单元包括,
字符映射转换表构建单元,用于将问题对知识库中的所有字符构建为字符表,并将字符表中的每个字符映射为唯一的数字表示,按照字符加入字符表的顺序从1开始依次递增,据此构建字符映射转换表;
输入层构建单元,用于从问题对中获取输入数据,分别获取question1、question2,将其形式化为:(question1、question2);
字符向量映射层构建单元,用于构建并存储字符映射转换表中每个字符的向量表示;
基于深度特征融合的神经网络编码层构建单元,用于利用深度特征融合神经网络针对输入的文本进行编码和语义提取,其中两层长短期记忆网络LSTM,分别对文本进行编码,两者语义特征进行加法操作;同时使用基于时间序列TimeDistribued的全连接Dense层进行加法操作,再将两种语义特征编码结果进行连接,作为该问题的语义特征表示;基于深度特征融合的神经网络编码层构建单元的工作过程具体如下:S30401、将处理后的输入文本进行编码和语义提取;
S30402、使用两个长短期记忆网络LSTM分别对文本进行编码,两者语义特征进行加法操作;
S30403、同时使用两个基于时间序列TimeDistribued的全连接Dense层对两者语义特征进行加法操作,具体公式如下:其中,i表示相应词向量在句子中的相对位置;pi表示句子question1中每个字符的相应向量表示; 表示经过其中一个LSTM编码后的question1句子向量; 表示经过另一个LSTM编码后的question1句子向量; 表示使用其中一个基于时间序列TimeDistribued的全连接Dense层编码的句子向量; 表示使用另一个基于时间序列TimeDistribued的全连接Dense层编码的句子向量; 表示两个LSTM编码层的输出结果加法运算的结果; 表示使用两个基于时间序列TimeDistribued的全连接Dense层编码的输出结果加法运算的结果;
S30404、将步骤S30403中的两种语义特征编码结果进行连接,作为该问题的语义特征,公式如下:其中, 表示 向量连接的结果,即为句子编码的最终向量表示,使用
vectorquestion1、vectorquestion2来具体表示对于question1、question2的编码结果的最终向量;
相似度匹配构建单元,用于将句子对的编码结果进行相似度匹配,区分问题之间是否匹配;相似度匹配构建单元的工作过程具体如下:S30501、根据question1、question2的最终向量表示vectorquestion1、vectorquestion2;
S30502、针对步骤S30501中的两个向量分别按照如下公式计算两个向量之间的差异:abs=|vectorquestion1‑vectorquestion2|;
cos=cos(vectorquestion1‑vectorquestion2);
mul=vectorquestion1*vectorquestion2;
其中,abs表示向量vectorquestion1、vectorquestion2逐元素之间求差取绝对值;cos表示向量vectorquestion1、vectorquestion2逐元素之间求差的余弦值;mul表示向量vectorquestion1、vectorquestion2逐元素之间求积;
S30503、将步骤S30502中的三个结果进行连接,作为问题对的相似度的全面表征,公式如下:con=[abs,cos,mul];
其中,con表示将步骤S30502中的三个结果,即abs、cos和mul,进行连接后得到的相似度表征;
S30504、将步骤S30503中得到的相似度表征向量经过全连接层进行解码,采用sigmoid函数进行相似度计算,得到处于[0,1]之间的相似度表示ypred,通过相似度的值判别问题对相似程度;
问题对匹配模型训练单元的工作过程具体如下:
S401、构建损失函数:为了解决在匹配过程中出现的过拟合问题,使模型在优化时将注意力更集中于难以分类的样本,利用单位阶跃函数来修正交叉熵损失函数,公式如下:得到新的交叉熵损失函数,公式如下:
为了防止分类过于自信,使用修正的均方误差损失函数来进一步改进Lnew(cross_entropy),得到:其中,ypred为根据相似度计算结果;ytrue为两个句子相似与否的真实表示,取值为0或1;
+
m表示阈值,m∈(0.5,1);n为数据集大小,n∈N ;ones_like即使用数据1对于张量进行填充;
S402、构建优化函数:使用Adam算法作为模型的优化函数,学习率设置为0.002,超参数使用Keras中的默认值即可;
S403、问题对选择:将一个新的问题与问题对知识库中的所有候选的与之相匹配的问题组成输入样本;再分别利用训练完成的问题对匹配模型,计算问题与候选的与之相匹配的问题之间相似度的数值;最后从所有结果中选取相似度值最高的一组作为新问题最有可能匹配的问题并将该问题推送给用户。
5.根据权利要求4所述的基于深度特征融合神经网络的问题对匹配装置,其特征在于,所述问题对知识库构建单元包括,爬虫单元,用于从互联网上抓取问答社区中的内容,将结果保存为问题对的形式;
爬虫数据处理单元,用于将爬虫获取的问题对组合构建正负例,并将问题对的句子进行断字处理,构建问题对知识库;
所述问题对匹配模型训练数据集生成单元包括,
训练正例构建单元,用于将问题对语义相似的进行组合,构建为训练正例;
训练负例构建单元,用于从问题对知识库选中一个问题q1,再从问题对知识库中随机选择一个与问题q1语义不同的问题q2,将q1与q2组合构建训练负例;
训练数据集构建单元,用于将训练正例构建单元和训练负例构建单元所得的全部问题对的正例样本、负例样本组合在一起,并随机打乱顺序构成最终的训练数据集;
所述问题对匹配模型训练单元包括,
损失函数构建单元,用于计算问题1和问题2的相似度之间的误差;
优化函数构建单元,用于调整模型中的参数,减小模型训练中问题1与问题2的相似度与真实相似度之间误差;
问题对选择单元,用于处理新的问题时,从问题对知识库中使用训练好的模型选择与新问题相匹配的问题对。
6.一种存储介质,其中存储有多条指令,其特征在于,所述指令由处理器加载,执行权利要求1‑3中任一项所述的问题对匹配方法的步骤。
7.一种电子设备,其特征在于,所述电子设备包括:
权利要求6所述的存储介质;以及
处理器,用于执行所述存储介质中的指令。