1.一种面向智能问答的基于语义特征图的句子对语义匹配方法,其特征在于,该方法是通过构建并训练由多粒度嵌入模块、深层语义特征图构造网络模块、特征转换网络模块和标签预测模块组成的句子对语义匹配模型,实现对句子信息的深层语义特征图表示和语义特征的二维卷积编码表示,从而获取更深层次的语义上下文信息和句子间的交互信息,同时通过二维最大池化和注意力机制生成句子对的最终匹配张量并判定句子对的匹配程度,以达到对句子对进行智能语义匹配的目标;具体如下:多粒度嵌入模块对输入的句子以字粒度和词粒度分别进行嵌入操作,得到句子的多粒度嵌入表示;
深层语义特征图构造网络模块对句子的多粒度嵌入表示进行编码操作,得到句子的深层语义特征图;
特征转换网络模块对句子对的深层语义特征图进行进一步地特征编码、特征匹配和特征筛选操作,得到句子对的匹配向量;
标签预测模块将句子对的匹配张量映射为指定区间上的一个浮点型数值,将其作为匹配度与预设的阈值进行比较,根据比较结果,判定句子对的语义是否匹配;
所述多粒度嵌入模块用于构建字映射转换表、构建词映射转换表、构建输入模块、构建字向量映射层、构建词向量映射层;
其中,构建字映射转换表:映射规则为:以数字1为起始,随后按照每个字被录入字表的顺序依次递增排序,从而形成所需的字映射转换表;其中,字表根据句子对语义匹配断字处理知识库构建,该知识库通过对句子对语义匹配知识库的原始数据文本进行断字预处理操作而得;其后,再使用Word2Vec训练字向量模型,得到各字的字向量矩阵;
构建词映射转换表:映射规则为:以数字1为起始,随后按照每个词被录入词表的顺序依次递增排序,从而形成所需的词映射转换表;其中,词表根据句子对语义匹配分词处理知识库构建,该知识库通过对句子对语义匹配知识库的原始数据文本进行分词操作而得;其后,再使用Word2Vec训练词向量模型,得到各词的词向量矩阵;
构建输入模块:输入层包括四个输入,对于训练数据集中的每一个句子对或待预测的句子对,对其进行断字和分词预处理,分别获取sentence1_char、sentence2_char、sentence1_word和sentence2_word,其中后缀char、word分别表示对相应句子进行断字或分词处理而得,将其形式化为:(sentence1_char ,sentence2_char ,sentence1_word ,sentence2_word);对于输入句子中的每个字或词都按照字映射转换表和词映射转换表转化为相应的数字标识;
构建字向量映射层:加载构建字映射转换表步骤中训练所得的字向量矩阵权重来初始化当前层的权重参数;针对输入句子sentence1_char和sentence2_char,得到其相应句子向量sentence1_char_embed、sentence2_char_embed;句子对语义匹配断字处理知识库中每一个句子都通过字向量映射的方式,将句子信息转化为向量形式;
构建词向量映射层:加载构建词映射转换表步骤中训练所得的词向量矩阵权重来初始化当前层的权重参数;针对输入句子sentence1_word和sentence2_word,得到其相应句子向量sentence1_word_embed、sentence2_word_embed;句子对语义匹配分词处理知识库中每一个句子都通过词向量映射的方式,将句子信息转化为向量形式;
所述深层语义特征图构造网络模块的构建过程具体如下:
第一层编码结构BiLSTM1对多粒度嵌入模块输出的字嵌入表示和词嵌入表示分别进行编码操作以得到初步的第一层字编码结果和第一层词编码结果,记为和和通过reshape操作后,得到和其被联接以生成第一层语义特征图公式如下:其中,公式(1 .1)表示使用BiLSTM1编码多粒度嵌入模块输出的字嵌入表示,并通过reshape操作增加一个维度,其中,表示sentence1_char_embed或sentence2_char_embed,ic表示第i个字的向量表示在句子中的相对位置,表示对第一层字编码结果进行reshape处理的结果,该公式表示sentence_char_embed经过BiLSTM1处理后得到一个shape为(batch_size,time_steps,output_dimension)的张量,再通过reshape操作增加一个类似图像通道的维度从而得到一个shape为(batch_size ,time_steps ,output_dimension,1)的张量,该张量即为第一层字编码结果;公式(1.2)表示使用BiLSTM1编码多粒度嵌入模块输出的词嵌入表示,并通过reshape操作增加一个维度,其中,表示sentence1_word_embed或sentence2_word_embed,iw表示第i个词的向量表示在句子中的相对位置,表示对第一层词编码结果进行reshape处理的结果,该公式表示sentence_word_embed经过BiLSTM1处理后得到一个shape为(batch_size ,time_steps ,output_dimension)的张量,再通过reshape操作增加一个类似图像通道的维度从而得到一个shape为(batch_size ,time_steps ,output_dimension,1)的张量,该张量即为第一层词编码结果;公式(1.3)表示通过联接第一层字编码结果和第一层词编码结果的reshape操作所得结果,以获得第一层语义特征图,其中,表示第一层语义特征图,该特征图是将和在新增的通道维度上进行联接而得到的,其shape为(batch_size ,time_steps ,output_dimension,2);
将初步的第一层字编码结果和第一层词编码结果,即记为和传递给第二层编码结构BiLSTM2;BiLSTM2对初步的第一层字编码结果和第一层词编码结果分别进行编码操作以得到初步的第二层字编码结果和第二层词编码结果,记为和和通过reshape操作后,得到和它们和第一层语义特征图一起被联接以生成第二层语义特征图公式如下:其中,公式(2.1)中BiLSTM2编码的对象是初步的第一层字编码结果表示第二层字编码结果,表示对第二层字编码结果进行reshape操作后的结果;公式(2.2)中BiLSTM2编码的对象是初步的第一层词编码结果表示第二层词编码结果,对第二层词编码结果进行reshape操作后的结果;和的获得步骤以及shape均与和一致;公式(2.3)除了联接第二层字编码结果和第二层字编码结果的reshape操作所得结果外,还需联接第一层语义特征图,其中,表示第二层语义特征图,该特征图是将和在新增的通道维度上进行联接而得到的,其shape为(batch_size ,time_steps ,output_dimension,4);
将初步的第二层字编码结果和第二层词编码结果,即和传递给第三层编码结构BiLSTM3;根据模型预设的层次深度,直到生成最终的深层语义特征图;对于第depth层,公式如下:其中,公式(3.1)中BiLSTMdepth编码的对象是初步的第depth‑1层字编码结果是第depth层的字编码结果,表示对第depth层字编码结果进行reshape操作后的结果;公式(3 .2)中BiLSTMdepth编码的对象是初步的第depth‑1层词编码结果表示第depth层词编码结果,表示对第depth层词编码结果进行reshape操作后的结果;和的获得步骤以及shape均与和一致;公式(3.3)中,表示第depth层语义特征图,即为最终的深层语义特征图,其shape为(batch_size ,time_steps,output_dimension,2*depth);
所述特征转换网络模块的构建过程具体如下:构建二维卷积语义特征编码层:此层接收深层语义特征图构造网络模块输出的深层语义特征图作为本层的输入,然后使用二维卷积神经网络对其进行编码操作,从而得到相应的语义特征编码表示,公式如下:其中,深层语义特征图为该层输入;公式(4.1)表示第f个卷积核对深层语义特征图的特定区域进行卷积后经ReLU函数映射的结果,其中,[x1 ,y1]表示卷积核的尺寸,表示第f个卷积核的权重矩阵,i和j表示卷积区域的横坐标和纵坐标,ml和mh表示深层语义特征图的长和高,i:i+x1‑1,j:j+y1‑1表示卷积区域,表示第f个卷积核的偏置矩阵,表示第f个卷积核在i:i+x1‑1,j:j+y1‑1区域的卷积结果;公式(4.2)表示整合第f个卷积核在每个区域的卷积结果以得到第f个卷积核的最终卷积结果,其中,sx1和sy1表示横向卷积步幅和纵向卷积步幅,表示第f个卷积核的最终卷积结果;公式(4.3)表示将n个卷积核的最终卷积结果进行组合,得到该层网络对于深层语义特征图的最终卷积结果,其中,表示该卷积神经网络对于深层语义特征图的最终卷积结果,称其为语义特征编码表示;
构建语义特征匹配层:此层首先联接sentence1和sentence2的语义特征编码表示和
从而得到句子对联接张量公式如下:
随后,使用另一个二维卷积神经网络对进行卷积匹配处理,从而得到句子对初步匹配张量,公式如下:
其中,句子对联接张量为该层输入;公式(6.1)表示第f个卷积核对句子对联接张量的特定区域进行卷积后经过ReLU函数映射的结果,其中,[x2,y2]表示卷积核的尺寸,表示第f个卷积核的权重矩阵,i和j表示卷积区域的横坐标和纵坐标,rl和rh表示深层语义特征图的长和高,i:i+x2‑1,j:j+y2‑1表示卷积区域,表示第f个卷积核的偏置矩阵,表示第f个卷积核在i:i+x2‑1,j:j+y2‑1区域的卷积结果;公式(6.2)表示整合第f个卷积核在每个区域的卷积结果以得到第f个卷积核的最终卷积结果,其中,sx2和sy2表示横向卷积步幅和纵向卷积步幅,表示第f个卷积核的最终卷积结果;公式(6.3)表示将n个卷积核的最终卷积结果进行组合,得到该层网络对于句子对联接张量的最终卷积结果,其中,表示该卷积神经网络对于句子对联接张量的最终卷积结果,称其为句子对初步匹配张量;
构建语义特征筛选层:此层接收语义特征匹配层的输出句子对初步匹配张量作为输入,然后在本层中通过两个步骤对其完成语义特征筛选操作;
第一步,首先通过应用二维最大池化操作完成对句子对初步匹配张量的第一次特征筛选操作,其结果记为公式如下:
其中,句子对初步匹配张量为该层输入;公式(7.1)表示对句子对初步匹配张量的特定区域进行最大池化操作,其中,[x3,y3]表示池化窗口的尺寸,i和j表示池化区域的横坐标和纵坐标,和表示句子对初步匹配张量的长和高,i:i+x2‑1,j:j+y2‑1表示池化区域,pi,j表示在i:i+x2‑1,j:j+y2‑1区域的池化结果;公式(7.2)表示整合每个区域的池化结果以得到句子对初步匹配张量的最终池化结果,其中,sx3和sy3表示横向池化步幅和纵向池化步幅,表示对所有区域的池化结果进行组合以得到的最终池化结果;
第二步,使用注意力机制得到最终的句子对语义匹配张量,公式如下:
其中,公式(8.1)表示对进行映射,其中,和表示模型中相应的可训练权重矩阵,表示经映射后的结果;公式(8.2)表示计算得出注意力权重,其中,表示注意力权重;公式(8.3)表示使用注意力权重生成最终的匹配向量,其中,N为中的特征向量的数量,为最终的句子对语义匹配张量。
2.根据权利要求1所述的面向智能问答的基于语义特征图的句子对语义匹配方法,其特征在于,所述标签预测模块构建过程如下:
将句子对语义匹配张量将作为本模块的输入,其经过一层维度为1、激活函数为sigmoid的全连接网络处理,从而得到一个处于[0,1]之间的匹配度数值,记为ypred,最终通过与设立的阈值0.5进行比较,从而判断句子对间的语义是否匹配;即ypred≥0.5时,预测该句子对的语义是匹配的,否则,不匹配;当句子对语义匹配模型尚未充分训练时,需要在训练数据集上进行训练,以优化模型参数;当训练完毕时,其标签预测模块可预测目标句子对的语义是否匹配。
3.根据权利要求2所述的面向智能问答的基于语义特征图的句子对语义匹配方法,其特征在于,所述句子对语义匹配知识库构建具体如下:
下载网络上的数据集获取原始数据:下载网络上已经公开的句子对语义匹配数据集或人工构建数据集,将其作为构建句子对语义匹配知识库的原始数据;
预处理原始数据:预处理用于构建句子对语义匹配知识库的原始数据,对其中的每个句子均进行断字操作、分词操作,得到句子对语义匹配断字处理知识库、分词处理知识库;
汇总子知识库:汇总句子对语义匹配断字处理知识库和句子对语义匹配分词处理知识库,构建句子对语义匹配知识库;
所述句子对语义匹配模型通过使用训练数据集进行训练而得到,训练数据集的构建过程如下:
构建训练正例:将句子对语义匹配知识库中将两个句子语义一致的句子对构建为正例,形式化为:(sentence1_char,sentence2_char,sentence1_word ,sentence2_word ,1);其中,sentence1_char、sentence2_char分别指代句子对语义匹配断字处理知识库中的句子1、句子2,sentence1_word、sentence2_word分别指代句子对语义匹配分词处理知识库中的句子1、句子2,1表示这两个句子的语义相匹配,是正例;
构建训练负例:选中一个句子s1,再从句子对语义匹配知识库中随机选择一个与句子s1不匹配的句子s2,将s1与s2进行组合,构建负例,形式化为:(sentence1_char,sentence2_char,sentence1_word ,sentence2_word ,0);其中,sentence1_char、sentence1_word分别指代句子对语义匹配断字处理知识库和句子对语义匹配分词处理知识库中的句子1;sentence2_char、sentence2_word分别指代句子对语义匹配断字处理知识库和句子对语义匹配分词处理知识库中的句子2;0表示句子s1和句子s2的语义不匹配,是负例;
构建训练数据集:将经过构建训练正例和构建训练负例操作后所获得的全部的正例样本句子对和负例样本句子对进行组合,并打乱其顺序,构建最终的训练数据集;无论正例数据还是负例数据均包含了五个维度,即sentence1_char ,sentence2_char ,sentence1_word,sentence2_word,0或1;
所述句子对语义匹配模型构建完成后通过训练数据集进行句子对语义匹配模型的训练与优化,具体如下:
构建损失函数:采用交叉熵作为损失函数;
优化训练模型:使用RMSProp作为优化算法,除了其学习率设置为0.0015外,RMSProp的剩余超参数均选择Keras中的默认值设置;在训练数据集上,对句子对语义匹配模型进行优化训练。