1.一种面向智能交互的句子对语义匹配方法,其特征在于,该方法是通过构建并训练由多粒度嵌入模块、多级对齐匹配网络模块、特征增强模块和标签预测模块组成的句子对语义匹配模型,实现对句子信息的多级对齐匹配表示,从而获得上下文的深层语义信息和句子间的交互信息,通过一维最大池化和交互生成句子对的匹配张量并判定句子对的匹配度,达到句子对智能匹配的目标;具体如下:多粒度嵌入模块对输入的句子以字粒度和词粒度分别进行嵌入操作,得到句子的多粒度嵌入表示;
多级对齐匹配网络模块对句子的多粒度嵌入表示进行编码操作,得到句子的多级对齐匹配网络表示;
特征增强模块对句子对的多级对齐匹配网络表示进行进一步地一维最大池化和特征交互操作,得到句子对的匹配向量;
标签预测模块将句子对的匹配张量映射为指定区间上的一个浮点型数值,将其作为匹配度与预设的阈值进行比较,根据比较结果,判定句子对的语义是否匹配;
所述多级对齐匹配网络模块的构建过程具体如下:
首先构建基本模块,而后构建由基本模块组成的多级对齐匹配网络模块;
构建基本模块:该模块的核心功能是实现基本的对齐匹配操作,是多级对齐匹配网络的基础组件;基本模块先将输入的两个张量进行点积运算得到非规格化的注意力权重矩阵e,公式如下:T
eij=aibj,i∈(1,...,la),j∈(1,...,lb) (1)其中,e表示注意力权利矩阵,eij表示张量1的第i个位置对张量2的第j个位置的注意力权重,a表示张量1,ai表示张量1在第i个位置处的嵌入表示,la表示张量1的长度;b表示张量
2,bj表示张量2在第j个位置处的嵌入表示,lb表示张量2的长度;
基本模块对注意力权重矩阵e进行规格化处理并进行对齐操作得到对齐结果,公式如下:其中,eij是张量1的第i个位置对张量2的第j个位置的注意力权重; 是 对ai的对齐结果,对应对齐结果1;同理, 是 对bj的对齐结果,对应对齐结果2;ai,bj,la,lb与公式(1)中的含义相同,此处不再赘述;
由于对齐结果2由输入的张量1计算所得,所以加强版对齐结果1为输入的张量1与对齐结果2的和,同理,由于对齐结果1由输入的张量2计算所得,所以加强版对齐结果2为输入的张量2与对齐结果1的和,公式如下:其中,a、b分别表示输入的张量1、张量2所有分量的集合,即公式(1)中的张量1和张量
2; 分别表示公式(2)、(3)的对齐结果1、对齐结果2所有分量的集合; 分别表示加强版对齐结果1、加强版对齐结果2所有分量的集合;
由基本模块构建多级对齐匹配网络模块:
多级对齐匹配网络模块的第一层编码结构双向长短期记忆网络BiLSTM1对多粒度嵌入模块输出的字嵌入表示和词嵌入表示分别进行编码操作以得到初步的第一层字编码结果和第一层词编码结果;具体来说,句子1的第一层字编码结果和第一层词编码结果的公式如下:其中, 和 分别表示句子1在第i个位置处的字嵌入表示和在第j个位置处的词嵌入表示; 和 分别表示句子1在第i个位置处的第一层字编码结果和在第j个位置处的第一层词编码结果;la表示在字粒度下句子1的长度,lb表示在词粒度下句子1的长度;
将句子1的第一层字编码结果和第一层词编码结果 和 送入一号基本模块进行第一次对齐匹配操作之句子1的字粒度和词粒度对齐匹配,得到加强版对齐结果集合 和公式如下:其中,eij表示句子1的字粒度与词粒度的注意力权重, 和 分别表示在字粒度下句子1的第i个位置处的对齐结果和在词粒度下句子1的第j个位置处的对齐结果;进行加强版对齐操作的公式如下:c w
其中,q1 表示句子1的第一层字编码结果的集合,由公式(6)中的 组成;q1表示句子
1的第一层词编码结果的集合,由公式(7)中的 组成; 表示句子1字粒度对齐结果的集合,由公式(9)中的 组成; 表示句子1词粒度对齐结果的集合,由公式(10)中的 组成; 和 分别表示句子1字粒度加强版对齐结果的集合与词粒度加强版对齐结果的集合;
相应地,句子2的第一层字编码结果和第一层词编码结果分别记为 和 将 和送入二号基本模块进行第一次对齐匹配操作之句子2的字粒度和词粒度对齐匹配得到加强版对齐结果集合 和 与句子1的操作类似,只是更改为与句子2相关的操作,故在此不再赘述;
将句子1的字粒度和词粒度加强版对齐结果集合进行concatenate连接操作得到q1concat,将句子2进行类似操作可得q2concat,公式如下:其中,q1concat表示将句子1字粒度与词粒度加强版对齐结果连接后的集合,q2concat表示将句子2字粒度与词粒度加强版对齐结果连接后的集合; 表示公式(11)中的句子1字粒度加强版对齐结果的集合, 表示公式(12)中的句子1词粒度加强版对齐结果的集合; 的含义与 类似,只是更改为与句子2相关的操作,在此不再赘述;
将q1concat和q2concat送入三号基本模块进行第二次对齐匹配操作,即进行句子1和句子2的对齐,得到加强版对齐结果集合q1'align2和q2'align2;
第二层编码结构BiLSTM2使用双向长短期记忆网络对句子1和句子2第二次对齐操作输出的加强版对齐结果集合q1'align2和q2'align2分别进行编码操作以得到第二层编码结果集合q1bilstm2和q2bilstm2,公式如下:q1bilstm2=BiLSTM2(q1'align2) (15)q2bilstm2=BiLSTM2(q2'align2) (16)将上述经过BiLSTM2后的编码结果集合q1bilstm2和q2bilstm2送入四号基本模块进行第三次对齐匹配操作,得到最终的加强版对齐结果集合q1'align3和q2'align3。
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_word和sentence2_word得到其相应句子向量sentence1_char_embed、sentence2_char_embed、sentence1_word_embed和sentence2_word_embed。
3.根据权利要求1所述的面向智能交互的句子对语义匹配方法,其特征在于,所述特征增强模块的构建过程具体如下:特征增强模块进一步处理多级对齐匹配网络模块输出的加强版对齐结果q1'align3和q2'align3,对其进行一维最大池化以得到更为显著的特征,记为q1maxpooling和q2maxpooling;将池化结果进行交互,公式如下:ab=|q1maxpooling‑q2maxpooling| (17)ad=q1maxpooling+q2maxpooling (18)su=q1maxpooling‑q2maxpooling (19)mu=q1maxpooling·q2maxpooling (20)其中,ab为绝对值运算的结果;ad为加法运算的结果;su为减法运算的结果;mu为乘法运算的结果;随后,将两个句子的池化结果和交互结果进行concatenate连接得到qconcat,公式如下:qconcat=concatenate([ab,ad,q1maxpooling,q2maxpooling,su,mu]) (21)其中,qconcat是句子对语义匹配张量。
4.根据权利要求1所述的面向智能交互的句子对语义匹配方法,其特征在于,所述标签预测模块构建过程如下:将句子对语义匹配张量作为输入,标签预测模块包含三层全连接网络;前两层是维度为600、激活函数为relu函数的全连接网络,最后一层是维度为1、激活函数为sigmoid函数的全连接网络;得到一个处于[0,1]之间的匹配度数值,记为ypred,最终通过与设立的阈值
0.5进行比较,从而判断句子对间的语义是否匹配;即ypred≥0.5时,预测该句子对的语义是匹配的,否则,不匹配;当句子对语义匹配模型尚未充分训练时,需要在根据语义匹配知识库而构建的训练数据集上进行训练,以优化模型参数;当模型训练完毕时,标签预测模块可预测目标句子对的语义是否匹配。
5.根据权利要求1或4所述的面向智能交互的句子对语义匹配方法,其特征在于,所述句子对语义匹配知识库构建具体如下:下载网络上的数据集获取原始数据:下载网络上已经公开的句子对语义匹配数据集或人工构建数据集,将其作为构建句子对语义匹配知识库的原始数据;
预处理原始数据:预处理用于构建句子对语义匹配知识库的原始数据,对其中的每个句子均进行断字操作、分词操作,得到句子对语义匹配断字处理知识库、分词处理知识库;
汇总子知识库:汇总句子对语义匹配断字处理知识库和句子对语义匹配分词处理知识库,构建句子对语义匹配知识库;
所述句子对语义匹配模型通过使用训练数据集进行训练而得到,训练数据集的构建过程如下:构建训练正例:将句子对语义匹配知识库中将两个句子语义一致的句子对构建为正例;
构建训练负例:选中一个句子s1,再从句子对语义匹配知识库中随机选择一个与句子s1不匹配的句子s2,将s1与s2进行组合,构建负例;
构建训练数据集:将经过构建训练正例和构建训练负例操作后所获得的全部的正例样本句子对和负例样本句子对进行组合,并打乱其顺序,构建最终的训练数据集;
所述句子对语义匹配模型构建完成后通过训练数据集进行句子对语义匹配模型的训练与优化,具体如下:构建损失函数:由标签预测模块构建过程可知,ypred是经过句子对语义匹配模型处理后得到的匹配度计算数值,ytrue是两个句子语义是否匹配的真实标签,其取值仅限于0或1,采用交叉熵作为损失函数;
优化训练模型:使用Adam优化函数;在训练数据集上,对句子对语义匹配模型进行优化训练。
6.一种面向智能交互的句子对语义匹配装置,其特征在于,该装置包括,句子对语义匹配知识库构建单元,用于获取大量的句子对数据,随后对其预处理操作,从而得到符合训练要求的句子对语义匹配知识库;
训练数据集生成单元,用于根据句子对语义匹配知识库中的句子来构建用于训练的正例数据和负例数据,并且将正例数据与负例数据打乱混合来构建最终的训练数据集;
句子对语义匹配模型构建单元,用于构建字词映射转换表、输入模块、字词向量映射层、多级对齐匹配网络模块、特征增强模块和标签预测模块;句子对语义匹配模型构建单元包括,字词映射转换表构建单元,负责对句子对语义匹配知识库中的每个句子按字/词粒度进行切分,并将每个字和词依次存入一个列表中,从而得到一个字词表,随后以数字1为起始,按照每个字和词被录入字词表的顺序依次递增排序,从而获得字词映射转换表;字词映射转换表构建完成后,表中每个字/词均被映射为唯一的数字标识;其后,使用Word2Vec训练字词向量模型,得到各字词的字词向量矩阵;
输入模块构建单元,负责加载字词映射转换表构建单元中的字词映射转换表,把句子对转换成数字标识;
字词向量映射层构建单元,负责加载字词映射转换表构建单元中的字词向量矩阵,把句子对转换成向量形式,即字/词嵌入表示;
多级对齐匹配网络模块构建单元,负责对同一句子的不同粒度进行对齐和两个句子的对齐,具体操作为通过第一层编码结构长短期记忆网络BiLSTM1对句子的字嵌入表示形式和词嵌入表示形式进行处理,将当前层编码结构输出的字编码结果和词编码结果经第一次对齐匹配操作后所得结果以句子为单位进行连接,随后将两句子连接结果进行第二次对齐匹配操作,将此结果送入第二层编码结构长短期记忆网络BiLSTM2,并将编码结果进行第三次对齐匹配操作,得到两句子最终的加强版对齐匹配表示;
特征增强模块构建单元,负责进一步处理相应句子的语义特征,对其进行句子交互操作以增强语义特征,从而生成最终的句子对语义匹配张量;
标签预测模块单元,负责对句子对语义匹配张量进行处理,从而得出一个匹配度数值,将其与设立的阈值进行比较,以此判断句子对的语义是否匹配;
句子对语义匹配模型训练单元,用于构建模型训练过程中所需要的损失函数与优化函数,并完成模型的优化训练。
7.根据权利要求6所述的面向智能交互的句子对语义匹配装置,其特征在于,所述句子对语义匹配知识库构建单元包括,句子对数据获取单元,负责下载网络上已经公开的句子对语义匹配数据集或人工构建数据集,将其作为构建句子对语义匹配知识库的原始数据;
原始数据断字/分词预处理单元,负责预处理用于构建句子对语义匹配知识库的原始数据,对其中的每个句子均进行断字和分词操作,从而构建句子对语义匹配断字处理知识库和分词处理知识库;
子知识库汇总单元,负责汇总句子对语义匹配断字处理知识库和句子对语义匹配分词处理知识库,从而构建句子对语义匹配知识库;
所述训练数据集生成单元包括,
训练正例数据构建单元,负责将句子对语义匹配知识库中两个语义一致的句子与其匹配标签1构建为训练正例数据;
训练负例数据构建单元,负责选中一个句子,随后随机选择与其语义不匹配的某个句子进行组合,与其匹配标签0一起构建为负例数据;
训练数据集构建单元,负责将所有的训练正例数据与训练负例数据组合在一起,并打乱顺序,从而构建最终的训练数据集;
所述句子对语义匹配模型训练单元包括,
损失函数构建单元,负责计算预测的匹配值与真实匹配值之间的误差;
模型优化单元,负责训练并调整模型训练中的参数,减小预测误差。
8.一种存储介质,其中存储有多条指令,其特征在于,所述指令有处理器加载,执行权利要求1‑5中所述的面向智能交互的句子对语义匹配方法的步骤。
9.一种电子设备,其特征在于,所述电子设备包括:
权利要求8所述的存储介质;以及处理器,用于执行所述存储介质中的指令。