1.一种面向智能问答基于语义特征立方体的句子对语义匹配方法,其特征在于,该方法是通过构建并训练由多粒度嵌入模块、深层语义特征立方体构造网络模块、特征转换网络模块和标签预测模块组成的句子对语义匹配模型,实现对句子信息的深层语义特征立方体表示和语义特征的三维卷积编码表示,同时通过注意力机制生成句子对的最终匹配张量并判定句子对的匹配程度,以达到对句子对进行智能语义匹配的目标;具体如下:多粒度嵌入模块对输入的句子以字粒度和词粒度分别进行嵌入操作,得到句子的多粒度嵌入表示;
深层语义特征立方体构造网络模块对句子的多粒度嵌入表示进行编码操作,得到句子的深层语义特征立方体;
特征转换网络模块对句子对的深层语义特征立方体进行进一步地特征编码、特征匹配和特征筛选操作,得到句子对的匹配向量;
标签预测模块将句子对的匹配张量映射为指定区间上的一个浮点型数值,将其作为匹配度与预设的阈值进行比较,根据比较结果,判定句子对的语义是否匹配。
2.根据权利要求1所述的面向智能问答基于语义特征立方体的句子对语义匹配方法,其特征在于,所述多粒度嵌入模块用于构建字映射转换表、构建词映射转换表、构建输入模块、构建字向量映射层、构建词向量映射层;
其中,构建字映射转换表或词映射转换表:映射规则为:以数字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。
3.根据权利要求1或2所述的面向智能问答基于语义特征立方体的句子对语义匹配方法,其特征在于,所述深层语义特征立方体构造网络模块的构建过程具体如下:第一层编码结构BiLSTM1对多粒度嵌入模块输出的字嵌入表示和词嵌入表示分别进行编码操作以得到第一层字编码结果和第一层词编码结果,将其记为 和 和 均被新增两个维度以获得增维后的第一层字编码结果和第一层词编码结果,记为 和 新增的维度被定义为粒度维度和深度维度,随后在粒度维度上联接 和 以生成第一层级语义特征立方体,公式如下:其中,公式(1.1)表示使用BiLSTM1编码多粒度嵌入模块输出的字嵌入表示,并通过reshape操作增加两个维度,其中, 表示sentence1_char_embed或sentence2_char_embed,ic表示第i个字的向量表示在句子中的相对位置, 表示增维后的第一层字编码结果,该公式表示sentence_char_embed经过BiLSTM1处理后得到一个shape为(batch_size,time_steps,output_dimension)的张量,再通过reshape操作新增两个维度,从而得到一个shape为(batch_size,time_steps,1,output_dimension,1)的张量,其中新增的第三维度被称为粒度维度,新增的第五维度被称为深度维度,该张量即为增维后的第一层字编码结果;公式(1.2)表示使用BiLSTM1编码多粒度嵌入模块输出的词嵌入表示,并通过reshape操作增加两个维度,其中, 表示sentence1_word_embed或sentence2_word_embed,iw表示第i个词的向量表示在句子中的相对位置, 表示增维后的第一层词编码结果,该公式表示sentence_word_embed经过BiLSTM1处理后得到一个shape为(batch_size,time_steps,output_dimension)的张量,再通过reshape操作新增两个维度,从而得到一个shape为(batch_size,time_steps,1,output_dimension,1)的张量,其中新增的第三维度被称为粒度维度,新增的第五维度被称为深度维度,该张量即为增维后的第一层词编码结果;公式(1.3)表示在粒度维度上联接第一层字编码结果和第一层词编码结果以获得第一层级语义特征立方体,其中, 表示第一层级语义特征立方体,该特征立方体的shape为(batch_size,time_steps,2,output_dimension,1);
将增维前的第一层字编码结果和第一层词编码结果,即 和 传递给第二层编码结构BiLSTM2;BiLSTM2对第一层字编码结果和第一层词编码结果分别进行编码操作以得到第二层字编码结果和第二层词编码结果,将其记为 和 和 均被新增两个维度以获得增维后的第二层字编码结果和第二层词编码结果,记为 和 新增的维度被定义为粒度维度和深度维度,随后在粒度维度上联接 和 以生成第二层级语义特征立方体;公式如下:其中,公式(2.1)的意义与公式(1.1)类似,只是该公式中BiLSTM2编码的对象是增维前的第一层字编码结果,其中, 表示 经过BiLSTM2处理并新增两个维度后的第二层字编码结果;公式(2.2)的意义与公式(1.2)类似,只是该公式中BiLSTM2编码的对象是增维前的第一层词编码结果,其中, 表示 经过BiLSTM2处理并新增两个维度后的第二层词编码结果; 和 的获得步骤以及shape均与 和 一致;公式(2.3)的意义与公式(1.3)类似,只是该公式联接的对象是增维后的第二层字编码结果和第二层词编码结果,其中,表示第二层级语义特征立方体,该特征立方体的shape为(batch_size,time_steps,2,output_dimension,1);
将增维前的第二层字编码结果和第二层词编码结果,即 和 传递给第三层编码结构BiLSTM3;以此类推,可以多次反复编码以生成多级语义特征立方体;根据模型预设的层次深度,直到生成第depth层级语义特征立方体;对于第depth层,公式如下:其中,公式(3.1)的意义与公式(2.1)类似,只是该公式中BiLSTMdepth编码的对象是增维前的第depth-1层字编码结果,其中, 表示 经过BiLSTMdepth处理并新增两个维度后的第depth层字编码结果;公式(3.2)的意义与公式(2.2)类似,只是该公式中BiLSTMdepth编码的对象是增维前的第depth-1层词编码结果,其中, 表示 经过BiLSTMdepth处理并新增两个维度后的第depth层词编码结果; 和 的获得步骤以及shape均与 和 一致;公式(3.3)的意义与公式(2.3)类似,只是该公式联接的对象是增维后的第depth-1层字编码结果和第depth-1层词编码结果,其中, 表示第depth层级语义特征立方体,该特征立方体的shape为(batch_size,time_steps,2,output_dimension,1);
在获取每一层级的语义特征立方体后,将所有层级的语义特征立方体在深度维度上进行联接以生成最终的深层语义特征立方体,公式如下:
其中,公式(4)表示在深度维度上联接所有层级的语义特征立方体, 表示最终的深层语义特征立方体,其shape为(batch_size,time_steps,2,output_dimension,depth)。
4.根据权利要求3所述的面向智能问答基于语义特征立方体的句子对语义匹配方法,其特征在于,所述特征转换网络模块的构建过程具体如下:
构建三维卷积语义特征编码层:此层接收深层语义特征立方体构造网络模块输出的深层语义特征立方体作为输入,然后使用三维卷积神经网络对其进行编码操作,从而得到相应的语义特征编码表示,公式如下:其中,深层语义特征立方体 为该层输入;公式(5.1)表示第f个卷积核对深层语义特征立方体的特定区域进行卷积后经ReLU函数映射的结果,其中,[x1,y1,z1]表示卷积核的尺寸, 表示第f个卷积核的权重矩阵,i、j和k表示卷积区域的横坐标、纵坐标和深度坐标,ml、mh和md表示深层语义特征立方体的长、高和深,i:i+x1-1、j:j+y1-1、k:k+z1-1表示卷积区域, 表示第f个卷积核的偏置矩阵, 表示第f个卷积核在i:i+x1-1、j:j+y1-1、k:k+z1-1区域的卷积结果;公式(5.2)表示整合第f个卷积核在每个区域的横、纵向卷积结果以得到第f个卷积核的第k深度卷积结果,即 其中,sx1和sy1表示横向卷积步幅和纵向卷积步幅;公式(5.3)表示整合第f个卷积核的所有深度卷积结果以得到第f个卷积核的深度卷积结果,即 其中,sz1表示深度卷积步幅;公式(5.4)表示整合所有卷积核的深度卷积结果以得到该层网络对于深层语义特征立方体的最终卷积结果,即 称其为语义特征编码表示;
构建语义特征匹配层:此层首先在深度维度上联接sentence1和sentence2的语义特征编码表示 和 从而得到句子对联接张量 公式如下:随后,通过对其进行语义特征编码操作,以生成句子对初步匹配张量,具体过程包括如下两个步骤:
第一步,首先使用另一个三维卷积神经网络对 进行三维卷积匹配处理,从而得到句子对三维卷积匹配张量,公式如下:
其中,句子对联接张量 为该层输入;公式(7.1)表示第f个卷积核对句子对联接张量的特定区域进行卷积后经ReLU函数映射的结果,其中,[x2,y2,z2]表示卷积核的尺寸,表示第f个卷积核的权重矩阵,i、j和k表示卷积区域的横坐标、纵坐标和深度坐标,rl、rh和rd表示句子对联接张量的长、高和深,i:i+x2-1,j:j+y2-1,k:k+z2-1表示卷积区域, 表示第f个卷积核的偏置矩阵, 表示第f个卷积核在i:i+x2-1、j:j+y2-1、k:k+z2-1区域的卷积结果;公式(7.2)表示整合第f个卷积核在每个区域的横、纵向卷积结果以得到第f个卷积核的第k深度卷积结果,即 其中,sx2和sy2表示横向卷积步幅和纵向卷积步幅;公式(7.3)表示整合第f个卷积核的所有深度卷积结果以得到第f个卷积核的深度卷积结果,即 其中,sz2表示深度卷积步幅;公式(7.4)表示整合所有卷积核的深度卷积结果以得到该层网络对于深层语义特征立方体的最终卷积结果,即 称其为句子对三维卷积匹配张量;
第二步,使用一个二维卷积神经网络对 进行二维卷积匹配处理,从而得到句子对初步卷积匹配张量,公式如下:
其中,句子对三维卷积匹配张量 为该层输入;公式(8.1)表示第f个卷积核对句子对三维卷积匹配张量的特定区域进行卷积后经过ReLU函数映射的结果,其中,[x3,y3]表示卷积核的尺寸, 表示第f个卷积核的权重矩阵,i和j表示卷积区域的横坐标和纵坐标,tl和th表示句子对三维卷积匹配张量的长和高,i:i+x3-1、j:j+y3-1表示卷积区域, 表示第f个卷积核的偏置矩阵, 表示第f个卷积核在i:i+x3-1、j:j+y3-1区域的卷积结果;公式(8.2)表示整合第f个卷积核在每个区域的卷积结果以得到第f个卷积核的最终卷积结果,即 其中,sx3和sy3表示横向卷积步幅和纵向卷积步幅;公式(8.3)表示将n个卷积核的最终卷积结果进行组合,得到该层网络对于句子对三维卷积匹配张量的最终卷积结果,即称其为句子对初步匹配张量;
构建语义特征筛选层:此层接收语义特征匹配层的输出句子对初步匹配张量作为输入,然后在本层中对其完成语义特征筛选加权操作,公式如下:
其中,公式(9.1)表示对 进行映射,其中, 和 表示模型中相应的可训练权重矩阵,表示 经映射后的结果;公式(9.2)表示计算注意力权重,其中, 表示注意力权重;公式(9.3)表示使用注意力权重生成最终的匹配向量,其中,N为 中的特征向量的数量, 为最终的句子对语义匹配张量。
5.根据权利要求4所述的面向智能问答基于语义特征立方体的句子对语义匹配方法,其特征在于,所述标签预测模块构建过程如下:
将句子对语义匹配张量将作为本模块的输入,其经过一层维度为1、激活函数为sigmoid的全连接网络处理,从而得到一个处于[0,1]之间的匹配度数值,记为ypred,最终通过与设立的阈值0.5进行比较,从而判断句子对间的语义是否匹配;即ypred≥0.5时,预测该句子对的语义是匹配的,否则,不匹配;当句子对语义匹配模型尚未充分训练时,需要在训练数据集上进行训练,以优化模型参数;当模型训练完毕时,其标签预测模块可预测目标句子对的语义是否匹配。
6.根据权利要求5所述的面向智能问答基于语义特征立方体的句子对语义匹配方法,其特征在于,所述句子对语义匹配知识库构建具体如下:
下载网络上的数据集获取原始数据:下载网络上已经公开的句子对语义匹配数据集或人工构建数据集,将其作为构建句子对语义匹配知识库的原始数据;
预处理原始数据:预处理用于构建句子对语义匹配知识库的原始数据,对其中的每个句子均进行断字操作、分词操作,得到句子对语义匹配断字处理知识库、分词处理知识库;
汇总子知识库:汇总句子对语义匹配断字处理知识库和句子对语义匹配分词处理知识库,构建句子对语义匹配知识库;
所述句子对语义匹配模型通过使用训练数据集进行训练而得到,训练数据集的构建过程如下:
构建训练正例:将句子对语义匹配知识库中将两个句子语义一致的句子对构建为正例,形式化为:(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);其中,0表示句子s1和句子s2的语义不匹配,是负例;
构建训练数据集:将经过构建训练正例和构建训练负例操作后所获得的全部的正例样本句子对和负例样本句子对进行组合,并打乱其顺序,构建最终的训练数据集;
所述句子对语义匹配模型构建完成后通过训练数据集进行句子对语义匹配模型的训练与优化,具体如下:
构建损失函数:采用交叉熵作为损失函数;
优化训练模型:使用RMSProp作为优化算法,除了其学习率设置为0.0015外,RMSProp的剩余超参数均选择Keras中的默认值设置;在训练数据集上,对句子对语义匹配模型进行优化训练。
7.一种面向智能问答基于语义特征立方体的句子对语义匹配装置,其特征在于,该装置包括,
句子对语义匹配知识库构建单元,用于获取大量的句子对数据,随后对其预处理操作,从而得到符合训练要求的句子对语义匹配知识库;
训练数据集生成单元,用于根据句子对语义匹配知识库中的句子来构建用于训练的正例数据和负例数据,并且基于正例数据与负例数据来构建最终的训练数据集;
句子对语义匹配模型构建单元,用于构建字映射转换表、词映射转换表,同时构建输入模块、字向量映射层、词向量映射层、深层语义特征立方体构造网络模块、特征转换网络模块和标签预测模块;句子对语义匹配模型构建单元包括,字映射转换表或词映射转换表构建单元,负责对句子对语义匹配知识库中的每个句子按字粒度或词粒度进行切分,并将每个字或词依次存入一个列表中,从而得到一个字表或词表,随后以数字1为起始,按照每个字或词被录入字表或词表的顺序依次递增排序,从而形成本发明所需的字映射转换表或词映射转换表;字映射转换表或词映射转换表构建完成后,表中每个字或词均被映射为唯一的数字标识;其后,本发明使用Word2Vec训练字向量模型或词向量模型,得到各字的字向量矩阵或各词的词向量矩阵;
输入模块构建单元,负责对训练数据集中的每一个句子对或待预测的句子对,进行预处理,分别获取sentence1_char、sentence2_char、sentence1_word和sentence2_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;
深层语义特征立方体构造网络模块构建单元,用于将一维语义信息构造为语义特征立方体,具体操作为接收字向量映射层输出的字嵌入表示和词向量映射层输出的词嵌入表示作为输入;第一层编码结构对多粒度嵌入模块输出的字嵌入表示和词嵌入表示分别进行编码操作,以得到第一层字编码结果和第一层词编码结果;第一层字编码结果和第一层词编码结果均被新增两个维度,定义为粒度维度和深度维度;第一层字编码结果和第一层词编码结果在粒度维度上被联接,以生成第一层级语义特征立方体,同时,将增加维度前的第一层字编码结果和第一层词编码结果传递给第二层编码结构;第二层编码结构对第一层字编码结果和第一层词编码结果分别进行编码操作,以得到第二层字编码结果和第二层词编码结果;第二层字编码结果和第二层词编码结果均被新增两个维度,定义为粒度维度和深度维度;第二层字编码结果和第二层词编码结果在粒度维度上被联接,以生成第二层级语义特征立方体,同时,将增加维度前的第二层字编码结果和第二层词编码结果传递给第三层编码结构;以此类推,可以多次反复编码生成多级语义特征立方体;在获取了每一层级的语义特征立方体后,将所有层级的语义特征立方体在深度维度上进行联接以生成最终的深层语义特征立方体;
特征转换网络模块构建单元,负责进一步处理相应句子的深层语义特征立方体,对其进行语义特征编码、语义特征匹配和语义特征筛选等操作,从而生成最终的句子对语义匹配张量;其中,相应的操作分别通过三维卷积语义特征编码层、语义特征匹配层、语义特征筛选层而实现;
标签预测模块单元,负责对句子对语义匹配张量进行处理,从而得出一个匹配度数值,将其与设立的阈值进行比较,以此判断句子对的语义是否匹配;
句子对语义匹配模型训练单元,用于构建模型训练过程中所需要的损失函数,并完成模型的优化训练。
8.根据权利要求7所述的面向智能问答基于语义特征立方体的句子对语义匹配方法,其特征在于,所述句子对语义匹配知识库构建单元包括,
句子对数据获取单元,负责下载网络上已经公开的句子对语义匹配数据集或人工构建数据集,将其作为构建句子对语义匹配知识库的原始数据;
原始数据断字预处理或分词预处理单元,负责预处理用于构建句子对语义匹配知识库的原始数据,对其中的每个句子均进行断字或分词操作,从而构建句子对语义匹配断字处理知识库或句子对语义匹配分词处理知识库;
子知识库汇总单元,负责汇总句子对语义匹配断字处理知识库和句子对语义匹配分词处理知识库,从而构建句子对语义匹配知识库;
所述训练数据集生成单元包括,
训练正例数据构建单元,负责将句子对语义匹配知识库中两个语义一致的句子与其匹配标签1构建为训练正例数据;
训练负例数据构建单元,负责选中一个句子,随后随机选择与其不匹配的某个句子进行组合,与其匹配标签0一起构建为负例数据;
训练数据集构建单元,负责将所有的训练正例数据与训练负例数据组合在一起,并打乱其顺序,从而构建最终的训练数据集;
所述句子对语义匹配模型训练单元包括,
损失函数构建单元,负责计算句子1和句子2间语义匹配度的误差;
模型优化单元,负责训练并调整模型训练中的参数,减小预测误差。
9.一种存储介质,其中存储有多条指令,其特征在于,所述指令有处理器加载,执行权利要求1-6中所述的面向智能问答基于语义特征立方体的句子对语义匹配方法的步骤。
10.一种电子设备,其特征在于,所述电子设备包括:权利要求9所述的存储介质;以及处理器,用于执行所述存储介质中的指令。