首页 > 专利 > 齐鲁工业大学 > 面向智能交互的句子对语义匹配方法和装置专利详情

面向智能交互的句子对语义匹配方法和装置   0    0

有效专利 查看PDF
专利申请流程有哪些步骤?
专利申请流程图
申请
申请号:指国家知识产权局受理一件专利申请时给予该专利申请的一个标示号码。唯一性原则。
申请日:提出专利申请之日。
2021-04-07
申请公布
申请公布指发明专利申请经初步审查合格后,自申请日(或优先权日)起18个月期满时的公布或根据申请人的请求提前进行的公布。
申请公布号:专利申请过程中,在尚未取得专利授权之前,国家专利局《专利公报》公开专利时的编号。
申请公布日:申请公开的日期,即在专利公报上予以公开的日期。
2021-07-20
授权
授权指对发明专利申请经实质审查没有发现驳回理由,授予发明专利权;或对实用新型或外观设计专利申请经初步审查没有发现驳回理由,授予实用新型专利权或外观设计专利权。
2022-05-24
预估到期
发明专利权的期限为二十年,实用新型专利权期限为十年,外观设计专利权期限为十五年,均自申请日起计算。专利届满后法律终止保护。
2041-04-07
基本信息
有效性 有效专利 专利类型 发明专利
申请号 CN202110371080.1 申请日 2021-04-07
公开/公告号 CN113065359B 公开/公告日 2022-05-24
授权日 2022-05-24 预估到期日 2041-04-07
申请年 2021年 公开/公告年 2022年
缴费截止日
分类号 G06F40/30G06F40/194G06F40/284G06K9/62 主分类号 G06F40/30
是否联合申请 独立申请 文献类型号 B
独权数量 1 从权数量 8
权利要求数量 9 非专利引证数量 1
引用专利数量 2 被引证专利数量 0
非专利引证 1、2020.06.04Xu Zhang et. al.Deep Feature FusionModel for Sentence Semantic Matching. 《Computers, Materials & Continua》.2019,Wenpeng Lu et.al.Graph-Based ChineseWord Sense Disambiguation with Multi-Knowledge Integration《.Computers,Materials & Continua》.2019,;
引用专利 WO2020224219A、US2020175119A 被引证专利
专利权维持 1 专利申请国编码 CN
专利事件 转让 事务标签 公开、实质审查、授权、权利转移
申请人信息
申请人 第一申请人
专利权人 齐鲁工业大学 当前专利权人 南方电网互联网服务有限公司
发明人 鹿文鹏、左有慧、张旭、阚保硕、赵鹏宇 第一发明人 鹿文鹏
地址 山东省济南市长清区大学路3501号 邮编 250353
申请人数量 1 发明人数量 5
申请人所在省 山东省 申请人所在市 山东省济南市
代理人信息
代理机构
专利代理机构是经省专利管理局审核,国家知识产权局批准设立,可以接受委托人的委托,在委托权限范围内以委托人的名义办理专利申请或其他专利事务的服务机构。
济南信达专利事务所有限公司 代理人
专利代理师是代理他人进行专利申请和办理其他专利事务,取得一定资格的人。
孙园园
摘要
本发明公开了一种面向智能交互的句子对语义匹配方法和装置,属于人工智能、自然语言处理领域。本发明要解决的技术问题为如何捕获语义特征和句子交互信息,以实现人机交互句子对的智能语义匹配。采用的技术方案为通过构建并训练由多粒度嵌入模块、多级对齐匹配网络模块、特征增强模块和标签预测模块组成的句子对语义匹配模型,实现对句子信息的多级对齐匹配表示,通过一维最大池化和交互生成句子对的匹配张量并判定句子对的匹配度,达到句子对智能匹配的目标。该装置包括句子对语义匹配知识库构建单元、训练数据集生成单元、句子对语义匹配模型构建单元及句子对语义匹配模型训练单元。
  • 摘要附图
    面向智能交互的句子对语义匹配方法和装置
  • 说明书附图:[转续页]
    面向智能交互的句子对语义匹配方法和装置
  • 说明书附图:图1
    面向智能交互的句子对语义匹配方法和装置
  • 说明书附图:图2
    面向智能交互的句子对语义匹配方法和装置
  • 说明书附图:图3
    面向智能交互的句子对语义匹配方法和装置
  • 说明书附图:图4
    面向智能交互的句子对语义匹配方法和装置
  • 说明书附图:图5
    面向智能交互的句子对语义匹配方法和装置
  • 说明书附图:图6
    面向智能交互的句子对语义匹配方法和装置
  • 说明书附图:图7
    面向智能交互的句子对语义匹配方法和装置
  • 说明书附图:图8
    面向智能交互的句子对语义匹配方法和装置
  • 说明书附图:图9
    面向智能交互的句子对语义匹配方法和装置
法律状态
序号 法律状态公告日 法律状态 法律状态信息
1 2023-01-03 专利权的转移 登记生效日: 2022.12.22 专利权人由齐鲁工业大学变更为京创联合(北京)知识产权服务有限责任公司 地址由250353 山东省济南市长清区大学路3501号变更为100085 北京市海淀区信息路甲28号C座(二层)02A室-084号
2 2022-05-24 授权
3 2021-07-20 实质审查的生效 IPC(主分类): G06F 40/30 专利申请号: 202110371080.1 申请日: 2021.04.07
4 2021-07-02 公开
权利要求
权利要求书是申请文件最核心的部分,是申请人向国家申请保护他的发明创造及划定保护范围的文件。
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所述的存储介质;以及处理器,用于执行所述存储介质中的指令。
说明书

技术领域

[0001] 本发明涉及人工智能、自然语言处理技术领域,具体涉及一种面向智能交互的句子对语义匹配方法和装置。

背景技术

[0002] 随着人工智能技术的发展,越来越多的智能系统被广泛应用于人们的日常生活中,如阿里智能客服机器人、苹果Siri智能语音助手等。如何与这些智能系统进行有效的交
互,是决定用户体验的一个关键因素。目前,大多数智能系统可通过图形用户接口、键盘、鼠
标、语言和手势等进行交互控制。其中,语言交互是最重要的人机交互方式;对于人类而言,
该方式最为便捷。通过语言交互,用户的指令以语言的形式直接传送给智能系统,而系统的
反馈以语言的形式直接传送给用户。对于一个理想的智能系统,其应该能够理解用户语言,
执行用户的指示,并以恰当的语言反馈用户。句子对语义匹配在智能人机交互中有着重要
的应用。比如,在自动问答系统中,智能系统接收用户提出的问题,将用户问题与标准问答
知识库中的问题进行匹配,将匹配的标准问题的答案反馈给用户,将能够有效提升用户在
人机交互中的体验。句子对语义匹配在自动问答系统、推荐系统、自然语言推理等面向智能
系统的人机交互应用中均具有重要的作用;这些人机交互应用,均可以演化为句子对语义
匹配问题而予以解决。
[0003] 句子对语义匹配任务旨在衡量两个句子所蕴含的语义是否一致。自然语言句子的语义匹配度计算是一项极具挑战性的工作,现有方法还尚未能完善地解决这一问题。
[0004] 现有方法在对句子对的语义进行匹配时,通常采用基于表示的方法或基于交互的方法。基于表示的方法首先对两个句子进行编码得到各自的向量表示,再通过相似度计算
函数来计算两向量的相似度;侧重于构建语义向量表示层,有着结构简单和解释性强的优
点;但是,该方法并没有充分捕获两个句子彼此之间的交互依赖关系,这并不符合人类进行
语义匹配的模式。为解决上述不足,基于交互的方法应运而生。基于交互的方法一般是通过
注意力机制捕获两个句子彼此间的交互特征,然后将匹配结果通过某种结构聚合起来,以
得到最终的语义表示;该方法的优点是可以较好地捕获句子之间的交互依赖、把握语义焦
点,对上下文重要性进行合理建模;但是,目前大多数工作侧重于进行单词级别的交互;部
分工作针对中文的特点,开始同时考虑词语和字符级别的交互,这些工作虽然考虑了两种
粒度,但是它们依然忽略了两种粒度彼此之间的交互,并且没有考虑交互之后进行再次编
码以提取更深层次的语义特征。

发明内容

[0005] 本发明的技术任务是提供面向智能交互的句子对语义匹配方法和装置,捕获更多的语义特征和句子交互信息,以实现人机交互句子对的智能语义匹配的目的。
[0006] 本发明的技术任务是按以下方式实现的,面向智能交互的句子对语义匹配方法,该方法是通过构建并训练由多粒度嵌入模块、多级对齐匹配网络模块、特征增强模块和标
签预测模块组成的句子对语义匹配模型,实现对句子信息的多级对齐匹配表示,通过一维
最大池化和交互生成句子对的匹配张量并判定句子对的匹配度,以达到对句子对进行智能
语义匹配的目标;具体如下:
[0007] 多粒度嵌入模块对输入的句子以字粒度和词粒度分别进行嵌入操作,得到句子的多粒度嵌入表示;
[0008] 多级对齐匹配网络模块对句子的多粒度嵌入表示进行编码操作,得到句子的多级对齐匹配网络表示;
[0009] 特征增强模块对句子对的多级对齐匹配网络表示进行进一步地一维最大池化和特征交互操作,得到句子对的匹配向量;
[0010] 标签预测模块将句子对的匹配张量映射为指定区间上的一个浮点型数值,将其作为匹配度与预设的阈值进行比较,根据比较结果,判定句子对的语义是否匹配。
[0011] 作为优选,所述多粒度嵌入模块用于构建字词映射转换表、构建输入模块、构建字词向量映射层;
[0012] 其中,构建字词映射转换表:映射规则为以数字1为起始,随后按照每个字或词被录入字词表的顺序依次递增排序,从而形成本发明所需的字词映射转换表;其中,字词表根
据句子对语义匹配断字处理知识库和分词处理知识库来构建,该知识库通过对句子对语义
匹配知识库的原始数据文本进行断字预处理和分词预处理操作而得;其后,再使用
Word2Vec训练字词向量模型,得到各字词的字词向量矩阵;
[0013] 构建输入模块:输入层包括四个输入,对于训练数据集中的每一个句子对或待预测的句子对,对其进行断字和分词预处理,分别获取sentence1_char、sentence2_char、
sentence1_word和sentence2_word,其中后缀char、word分别表示对相应句子进行断字或
分词处理而得,将其形式化为:(sentence1_char,sentence2_char,sentence1_word,
sentence2_word);对于输入句子中的每个字和词都按照字词映射转换表转化为相应的数
字标识;
[0014] 构建字词向量映射层:加载构建字词映射转换表步骤中训练所得的字词向量矩阵来初始化当前层的权重参数;针对输入句子sentence1_char、sentence2_char、sentence1_
word和sentence2_word得到其相应句子向量sentence1_char_embed、sentence2_char_
embed、sentence1_word_embed和sentence2_word_embed;句子对语义匹配知识库中每一个
句子都可以通过字词向量映射的方式,将句子信息转化为向量形式。
[0015] 更优地,所述多级对齐匹配网络模块的构建过程具体如下:
[0016] 首先构建基本模块,而后构建由基本模块组成的多级对齐匹配网络模块;
[0017] 构建基本模块:该模块的核心功能是实现基本的对齐匹配操作,是多级对齐匹配网络的基础组件;基本模块先将输入的两个张量进行点积运算得到非规格化的注意力权重
矩阵e,公式如下:
[0018] eij=aiTbj,i∈(1,...,la),j∈(1,...,lb)        (1)
[0019] 其中,e表示注意力权利矩阵,eij表示张量1的第i个位置对张量2的第j个位置的注意力权重,a表示张量1,ai表示张量1在第i个位置处的嵌入表示,la表示张量1的长度;b表示
张量2,bj表示张量2在第j个位置处的嵌入表示,lb表示张量2的长度;
[0020] 基本模块对注意力权重矩阵e进行规格化处理并进行对齐操作得到对齐结果,公式如下:
[0021]
[0022]
[0023] 其中,eij是张量1的第i个位置对张量2的第j个位置的注意力权重; 是 对ai的对齐结果,对应对齐结果1;同理, 是 对bj的对齐结果,对应对齐结果2;ai,bj,
la,lb与公式(1)中的含义相同,此处不再赘述;
[0024] 由于对齐结果2由输入的张量1计算所得,所以加强版对齐结果1为输入的张量1与对齐结果2的和,同理,由于对齐结果1由输入的张量2计算所得,所以加强版对齐结果2为输
入的张量2与对齐结果1的和,公式如下:
[0025]
[0026]
[0027] 其中,a、b分别表示输入的张量1、张量2所有分量的集合,即公式(1)中的张量1和张量2; 分别表示公式(2)、(3)的对齐结果1、对齐结果2所有分量的集合; 分别表
示加强版对齐结果1、加强版对齐结果2所有分量的集合;
[0028] 由基本模块构建多级对齐匹配网络模块:
[0029] 多级对齐匹配网络模块的第一层编码结构双向长短期记忆网络BiLSTM1对多粒度嵌入模块输出的字嵌入表示和词嵌入表示分别进行编码操作以得到初步的第一层字编码
结果和第一层词编码结果;具体来说,句子1的第一层字编码结果和第一层词编码结果的公
式如下:
[0030]
[0031]
[0032] 其中, 和 分别表示句子1在第i个位置处的字嵌入表示和在第j个位置处的词嵌入表示; 和 分别表示句子1在第i个位置处的第一层字编码结果和在第j个位置
处的第一层词编码结果;la表示在字粒度下句子1的长度,lb表示在词粒度下句子1的长度;
[0033] 进一步地,将句子1的第一层字编码结果和第一层词编码结果 和 送入一号基本模块进行第一次对齐匹配操作之句子1的字粒度和词粒度对齐匹配,得到加强版对齐
结果集合 和 公式如下:
[0034]
[0035]
[0036]
[0037] 其中,eij表示句子1的字粒度与词粒度的注意力权重, 和 分别表示在字粒度下句子1的第i个位置处的对齐结果和在词粒度下句子1的第j个位置处的对齐结果;
进行加强版对齐操作的公式如下:
[0038]
[0039]c w
[0040] 其中,q1表示句子1的第一层字编码结果的集合,由公式(6)中的 组成;q1 表示句子1的第一层词编码结果的集合,由公式(7)中的 组成; 表示句子1字粒度对齐结
果的集合,由公式(9)中的 组成; 表示句子1词粒度对齐结果的集合,由公式
(10)中的 组成; 和 分别表示句子1字粒度加强版对齐结果的集合与词粒
度加强版对齐结果的集合;
[0041] 相应地,句子2的第一层字编码结果和第一层词编码结果分别记为 和 将和 送入二号基本模块进行第一次对齐匹配操作之句子2的字粒度和词粒度对齐匹
配得到加强版对齐结果集合 和 与句子1的操作类似,只是更改为与句子2相关
的操作,故在此不再赘述;
[0042] 进一步地,将句子1的字粒度和词粒度加强版对齐结果集合进行concatenate连接操作得到q1concat,将句子2进行类似操作可得q2concat,公式如下:
[0043]
[0044]
[0045] 其中,q1concat表示将句子1字粒度与词粒度加强版对齐结果连接后的集合,q2concat表示将句子2字粒度与词粒度加强版对齐结果连接后的集合; 表示公式(11)中的句子
1字粒度加强版对齐结果的集合, 表示公式(12)中的句子1词粒度加强版对齐结果的
集合; 的含义与 类似,只是更改为与句子2相关的操作,在此不
再赘述;
[0046] 进一步地,将q1concat和q2concat送入三号基本模块进行第二次对齐匹配操作,即进行句子1和句子2的对齐,得到加强版对齐结果集合q1'align2和q2'align2;
[0047] 进一步地,第二层编码结构BiLSTM2使用双向长短期记忆网络对句子1和句子2第二次对齐操作输出的加强版对齐结果集合q1'align2和q2'align2分别进行编码操作以得到第
二层编码结果集合q1bilstm2和q2bilstm2,公式如下:
[0048] q1bilstm2=BiLSTM2(q1'align2)                     (15)
[0049] q2bilstm2=BiLSTM2(q2'align2)                     (16)
[0050] 进一步地,将上述经过BiLSTM2后的编码结果集合q1bilstm2和q2bilstm2送入四号基本模块进行第三次对齐匹配操作,得到最终的加强版对齐结果集合q1'align3和q2’align3。
[0051] 更优地,所述特征增强模块的构建过程具体如下:
[0052] 特征增强模块进一步处理多级对齐匹配网络模块输出的加强版对齐结果q1'align3和q2'align3,对其进行一维最大池化以得到更为显著的特征,记为q1maxpooling和q2maxpooling;将池化结果进行交互,公式如下:
[0053] ab=|q1maxpooling‑q2maxpooling|                     (17)
[0054] ad=q1maxpooling+q2maxpooling                      (18)
[0055] su=q1maxpooling‑q2maxpooling                      (19)
[0056] mu=q1maxpooling·q2maxpooling                      (20)
[0057] 其中,ab为绝对值运算的结果;ad为加法运算的结果;su为减法运算的结果;mu为乘法运算的结果;随后,将两个句子的池化结果和交互结果进行concatenate连接得到
qconcat,公式如下:
[0058] qconcat=concatenate([ab,ad,q1maxpooling,q2maxpooling,su,mu])         (21)
[0059] 其中,qconcat是句子对语义匹配张量。
[0060] 更优地,所述标签预测模块构建过程如下:
[0061] 将句子对语义匹配张量作为输入,标签预测模块包含三层全连接网络;前两层是维度为600、激活函数为relu函数的全连接网络,最后一层是维度为1、激活函数为sigmoid
函数的全连接网络;得到一个处于[0,1]之间的匹配度数值,记为ypred,最终通过与设立的
阈值0.5进行比较,从而判断句子对间的语义是否匹配;即ypred≥0.5时,预测该句子对的语
义是匹配的,否则,不匹配;当句子对语义匹配模型尚未充分训练时,需要在根据语义匹配
知识库而构建的训练数据集上进行训练,以优化模型参数;当模型训练完毕时,标签预测模
块可预测目标句子对的语义是否匹配。
[0062] 更优地,所述句子对语义匹配知识库构建具体如下:
[0063] 下载网络上的数据集获取原始数据:下载网络上已经公开的句子对语义匹配数据集或人工构建数据集,将其作为构建句子对语义匹配知识库的原始数据;
[0064] 预处理原始数据:预处理用于构建句子对语义匹配知识库的原始数据,对其中的每个句子均进行断字操作、分词操作,得到句子对语义匹配断字处理知识库、分词处理知识
库;
[0065] 汇总子知识库:汇总句子对语义匹配断字处理知识库和句子对语义匹配分词处理知识库,构建句子对语义匹配知识库;
[0066] 所述句子对语义匹配模型通过使用训练数据集进行训练而得到,训练数据集的构建过程如下:
[0067] 构建训练正例:将句子对语义匹配知识库中将两个句子语义一致的句子对构建为正例,形式化为:(sentence1_char,sentence2_char,sentence1_word,sentence2_word,
1);其中,sentence1_char、sentence2_char分别指代句子对语义匹配断字处理知识库中的
句子1、句子2,sentence1_word、sentence2_word分别指代句子对语义匹配分词处理知识库
中的句子1、句子2,1表示这两个句子的语义相匹配,是正例;
[0068] 构建训练负例:选中一个句子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的语义不匹配,是负
例;
[0069] 构建训练数据集:将经过构建训练正例和构建训练负例操作后所获得的全部的正例样本句子对和负例样本句子对进行组合,并打乱其顺序,构建最终的训练数据集;无论正
例数据还是负例数据均包含了五个维度,即sentence1_char,sentence2_char,sentence1_
word,sentence2_word,0或1;
[0070] 所述句子对语义匹配模型构建完成后通过训练数据集进行句子对语义匹配模型的训练与优化,具体如下:
[0071] 构建损失函数:由标签预测模块构建过程可知,ypred是经过句子对语义匹配模型处理后得到的匹配度计算数值,ytrue是两个句子语义是否匹配的真实标签,其取值仅限于0
或1,采用交叉熵作为损失函数,公式如下:
[0072]
[0073] 优化训练模型:使用Adam优化函数;在训练数据集上,对句子对语义匹配模型进行优化训练。
[0074] 一种面向智能交互的句子对语义匹配装置,该装置包括,
[0075] 句子对语义匹配知识库构建单元,用于获取大量的句子对数据,随后对其预处理操作,从而得到符合训练要求的句子对语义匹配知识库;
[0076] 训练数据集生成单元,用于根据句子对语义匹配知识库中的句子来构建用于训练的正例数据和负例数据,并且将正例数据与负例数据打乱混合来构建最终的训练数据集;
[0077] 句子对语义匹配模型构建单元,用于构建字词映射转换表、输入模块、字词向量映射层、多级对齐匹配网络模块、特征增强模块和标签预测模块;句子对语义匹配模型构建单
元包括,
[0078] 字词映射转换表构建单元,负责对句子对语义匹配知识库中的每个句子按字/词粒度进行切分,并将每个字和词依次存入一个列表中,从而得到一个字词表,随后以数字1
为起始,按照每个字和词被录入字词表的顺序依次递增排序,从而获得本发明所需的字词
映射转换表;字词映射转换表构建完成后,表中每个字/词均被映射为唯一的数字标识;其
后,本发明使用Word2Vec训练字词向量模型,得到各字词的字词向量矩阵;
[0079] 输入模块构建单元,负责加载字词映射转换表构建单元中的字词映射转换表,把句子对转换成数字标识;
[0080] 字词向量映射层构建单元,负责加载字词映射转换表构建单元中的字词向量矩阵,把句子对转换成向量形式,即字/词嵌入表示;
[0081] 多级对齐匹配网络模块构建单元,负责对同一句子的不同粒度进行对齐和两个句子的对齐,具体操作为通过第一层编码结构长短期记忆网络BiLSTM1对句子的字嵌入表示
形式和词嵌入表示形式进行处理,将当前层编码结构输出的字编码结果和词编码结果经第
一次对齐匹配操作后所得结果以句子为单位进行连接,随后将两句子连接结果进行第二次
对齐匹配操作,将此结果送入第二层编码结构长短期记忆网络BiLSTM2,并将编码结果进行
第三次对齐匹配操作,得到两句子最终的加强版对齐匹配表示;
[0082] 特征增强模块构建单元,负责进一步处理相应句子的语义特征,对其进行句子交互等操作以增强语义特征,从而生成最终的句子对语义匹配张量;
[0083] 标签预测模块单元,负责对句子对语义匹配张量进行处理,从而得出一个匹配度数值,将其与设立的阈值进行比较,以此判断句子对的语义是否匹配;
[0084] 句子对语义匹配模型训练单元,用于构建模型训练过程中所需要的损失函数与优化函数,并完成模型的优化训练。
[0085] 作为优选,所述句子对语义匹配知识库构建单元包括,
[0086] 句子对数据获取单元,负责下载网络上已经公开的句子对语义匹配数据集或人工构建数据集,将其作为构建句子对语义匹配知识库的原始数据;
[0087] 原始数据断字/分词预处理单元,负责预处理用于构建句子对语义匹配知识库的原始数据,对其中的每个句子均进行断字和分词操作,从而构建句子对语义匹配断字处理
知识库和分词处理知识库;
[0088] 子知识库汇总单元,负责汇总句子对语义匹配断字处理知识库和句子对语义匹配分词处理知识库,从而构建句子对语义匹配知识库;
[0089] 所述训练数据集生成单元包括,
[0090] 训练正例数据构建单元,负责将句子对语义匹配知识库中两个语义一致的句子与其匹配标签1构建为训练正例数据;
[0091] 训练负例数据构建单元,负责选中一个句子,随后随机选择与其语义不匹配的某个句子进行组合,与其匹配标签0一起构建为负例数据;
[0092] 训练数据集构建单元,负责将所有的训练正例数据与训练负例数据组合在一起,并打乱顺序,从而构建最终的训练数据集;
[0093] 所述句子对语义匹配模型训练单元包括,
[0094] 损失函数构建单元,负责计算预测的匹配值与真实匹配值之间的误差;
[0095] 模型优化单元,负责训练并调整模型训练中的参数,减小预测误差。
[0096] 一种存储介质,其中存储有多条指令,所述指令有处理器加载,执行上述的面向智能交互的句子对语义匹配方法的步骤。
[0097] 一种电子设备,所述电子设备包括:
[0098] 上述的存储介质;以及
[0099] 处理器,用于执行所述存储介质中的指令。
[0100] 本发明的面向智能交互的句子对语义匹配方法和装置具有以下优点:
[0101] (一)本发明多粒度嵌入处理,可以捕捉和利用句子中不同粒度内容所蕴含的语义信息,使得捕获的语义特征更加丰富、准确;
[0102] (二)本发明通过多级对齐匹配网络结构,对同一句子的字粒度和词粒度进行对齐和两个句子之间的对齐,可以得到更准确的相似匹配度;
[0103] (三)本发明通过多级对齐匹配网络结构,两个句子之间的交互依赖关系可以被充分捕获,从而可以取得更深层次的语义特征,符合人类进行语义匹配的方式;
[0104] (四)本发明通过特征增强模块,可以有效过滤匹配张量中的无效信息、强化有效信息,使得匹配表示张量更加准确,从而提高句子对语义匹配的准确度。

实施方案

[0115] 参照说明书附图和具体实施例对本发明的面向智能交互的句子对语义匹配方法和装置作以下详细地说明。
[0116] 实施例1:
[0117] 如附图9所示,本发明的主要框架结构包含多粒度嵌入模块、多级对齐匹配网络模块、特征增强模块和标签预测模块。其中,多粒度嵌入模块对输入的句子分别以字粒度和词
粒度进行嵌入操作,并将结果传递给模型的多级对齐匹配网络模块。多级对齐匹配网络模
块如图8所示,包含四个结构统一的对齐匹配模块,即基本模块。基本模块的结构如图7所
示,基本模块将张量1和张量2作为输入并计算两个张量的注意力得分,然后将输入的张量1
与注意力得分相乘进行对齐操作以得到对齐结果2,随后将对齐结果2与输入的张量1相加
得到加强版对齐结果1;以此类推张量2的操作可得到加强版对齐结果2。多级对齐匹配网络
的结构如图8所示,其核心思想是使用第一层编码结构双向长短期记忆网络BiLSTM1对句子
1、句子2的字词嵌入表示分别进行编码,以得到句子1的第一层字词编码结果与句子2的第
一层字词编码结果,并将句子1的第一层字词编码结果送入一号基本模块进行第一次对齐
匹配操作之句子1的字粒度和词粒度对齐匹配,以得到句子1字粒度与词粒度加强版对齐结
果,将该结果进行连接后送入三号基本模块进行第二次对齐匹配操作。相应地,将句子2的
第一层字词编码结果送入二号基本模块进行第一次对齐匹配操作之句子2的字粒度和词粒
度对齐匹配,以得到句子2字粒度与词粒度加强版对齐结果,将该结果进行连接后送入三号
基本模块进行第二次对齐匹配操作。经过三号基本模块的处理可得到句子1的加强版对齐
结果和句子2的加强版对齐结果。将句子1的加强版对齐结果、句子2的加强版对齐结果送入
第二层编码结构双向长短期记忆网络BiLSTM2进行编码,得到句子1、句子2的第二层编码结
果。把句子1的第二层编码结果和句子2的第二层编码结果送入四号基本模块进行第三次对
齐匹配操作,得到句子1最终的加强版对齐结果和句子2最终的加强版对齐结果。随着对齐
次数的增加,该结构可相应地捕获更深层次的语义特征,句子1、句子2最终的加强版对齐结
果将被传递给模型的特征增强模块。如图9所示,特征增强模块对两个句子最终的加强版对
齐结果进行一维最大池化和特征交互操作,以充分挖掘句子间的语义信息。其中,特征交互
操作是通过两个句子间的相关运算来完成的,随后将池化结果和交互结果进行连接,最终
得到句子对的匹配张量,将其传递给模型的标签预测模块。标签预测模块将句子对的匹配
张量映射为指定区间上的一个浮点型数值,将其作为匹配度与预设的阈值进行比较,根据
比较结果,判定句子对的语义是否匹配。具体如下:
[0118] (1)多粒度嵌入模块对输入的句子以字粒度和词粒度分别进行嵌入操作,得到句子的多粒度嵌入表示;
[0119] (2)多级对齐匹配网络模块对句子的多粒度嵌入表示进行编码操作,得到句子的多级对齐匹配网络表示;
[0120] (3)特征增强模块对句子对的多级对齐匹配网络表示进行进一步地一维最大池化和特征交互操作,得到句子对的匹配向量;
[0121] (4)标签预测模块将句子对的匹配张量映射为指定区间上的一个浮点型数值,将其作为匹配度与预设的阈值进行比较,根据比较结果,判定句子对的语义是否匹配。
[0122] 实施例2:
[0123] 如附图1所示,本发明的面向智能交互的句子对语义匹配方法,具体步骤如下:
[0124] S1、构建句子对语义匹配知识库,如附图2所示,具体步骤如下:
[0125] S101、下载网络上的数据集获取原始数据:下载网络上已经公开的句子对语义匹配数据集或人工构建数据集,将其作为构建句子对语义匹配知识库的原始数据。
[0126] 举例:网络上有许多已公开的句子对语义匹配数据集。本发明收集这些数据,将其下载下来,从而获得用于构建句子对语义匹配知识库的原始数据。比如,LCQMC数据集中的
一个示例如下:
[0127] 句子1 一般大家去哪个网站买书。句子2 大家买书一般上哪个网站买?
[0128] S102、预处理原始数据:预处理用于构建句子对语义匹配知识库的原始数据,对其中的每个句子均进行断字和分词操作,得到句子对语义匹配断字处理知识库、分词处理知
识库。
[0129] 以S101中展示的句子1为例,对其进行断字处理操作后得到“一般大家去哪个网站买书。”;使用Jieba分词工具对其进行分词操作处理后得到“一般大家去哪个网站买书。”。
[0130] S103、汇总子知识库:汇总句子对语义匹配断字处理知识库和句子对语义匹配分词处理知识库,构建句子对语义匹配知识库。
[0131] 将S102中获得的句子对语义匹配断字处理知识库和句子对语义匹配分词处理知识库整合到同一文件夹下,从而得到句子对语义匹配知识库。其流程如图2所示。
[0132] S2、构建句子对语义匹配模型的训练数据集:对于句子对语义匹配知识库中的每一个句子对,若其语义一致,则该句子对可以用于构建训练正例;否则,则该句子对可以用
于构建训练负例;将一定数量的正例数据与负例数据进行混合,从而构建训练数据集;如附
图3所示,具体步骤如下:
[0133] S201、构建训练正例:将句子对语义匹配知识库中将两个句子语义一致的句子对构建为正例,形式化为:(sentence1_char,sentence2_char,sentence1_word,sentence2_
word,1);
[0134] 举例:对步骤S101中展示的句子1和句子2,经过步骤S102断字操作处理和步骤S103分词操作处理后,构建的正例数据形式为:
[0135] (“一般大家去哪个网站买书。”,“大家买书一般上哪个网站买?”,“一般大家去哪个网站买书。”,“大家买书一般上哪个网站买?”,1)。
[0136] S202、构建训练负例:对于步骤S201所获得的每个正例句子对,选中其包含的某一个句子,随机选择与其不匹配的某个句子进行组合,将这两个语义不一致的句子作为句子
对,构建为负例数据,形式化为:(sentence1_char,sentence2_char,sentence1_word,
sentence2_word,0);
[0137] 举例:示例与构建训练正例,非常类似,在此不再赘述。
[0138] S203、构建训练数据集:将经过步骤S201和步骤S202操作后所获得的全部的正例句子对数据和负例句子对数据合并在一起,并将顺序打乱,构建最终的训练数据集。无论正
例数据还是负例数据,它们都包含了五个维度,即sentence1_char,sentence2_char,
sentence1_word,sentence2_word,0或1。
[0139] S3、构建句子对语义匹配模型:主要操作为构建字词映射转换表、构建输入模块、构建字词向量映射层、构建多级对齐匹配网络模块、构建特征增强模块、构建标签预测模
块。其中,构建字词映射转换表、构建输入模块、构建字词向量映射层对应图9中的多粒度嵌
入模块,其余部分均与图9中的各个模块一一对应。具体步骤如下:
[0140] S301、构建字词映射转换表:字词表是通过步骤S102处理后得到的句子对语义匹配断字处理知识库和分词处理知识库来构建的。字词表构建完成后,表中每个字或词均被
映射为唯一的数字标识,其映射规则为:以数字1为起始,随后按照每个字或词被录入字词
表的顺序依次递增排序,从而形成本发明所需的字词映射转换表。
[0141] 举例:以步骤S102处理后的内容,“一般大家去哪个网站买书。”,“一般大家去哪个网站买书。”构建字词表及字词映射转换表如下:
[0142]字词 一 般 大 家 去 哪 个 网 站 买 书
映射 1 2 3 4 5 6 7 8 9 10 11
字词 。 一般 大家 哪个 网站            
映射 12 13 14 15 16            
[0143] 其后,本发明使用Word2Vec训练字向量模型,得到各字的字向量矩阵char_embedding_matrix。
[0144] 举例说明:在Keras中,对于上面描述的代码实现如下所示:
[0145]
[0146] 其中,w2v_corpus为句子对语义匹配知识库中的所有数据;EMB_DIM为向量维度,本模型设置EMB_DIM为300,word_set为字词表。
[0147] S302、构建输入层:输入层包括四个输入,从输入层的训练数据集样例中分别获取sentence1_char、sentence2_char、sentence1_word和sentence2_word,将其形式化为:
(sentence1_char,sentence2_char,sentence1_word,sentence2_word);
[0148] 对于输入句子中的每个字和词,本发明都按照在步骤S301中构建完成的字词映射转换表将其转化为相应的数字标识。
[0149] 举例说明:使用步骤S201中展示的句子对作为样例,以此组成一条输入数据。其结果如下所示:
[0150] (“一般大家去哪个网站买书。”,“大家买书一般上哪个网站买?”,“一般大家去哪个网站买书。”,“大家买书一般上哪个网站买?”)
[0151] 每条输入数据包含4个子句。根据步骤S301中的字词映射转换表,将其转换为数值表示。(假定出现在句子2中但没有出现在句子1中的“上”及“?”分别被映射为17,18)。输入
数据的4个子句,合并表示结果如下:
[0152] (“1,2,3,4,5,6,7,8,9,10,11,12,13”,“1,2,3,4,5,6,7,10,11,12,8,13”,“1,2,3,4,5,6,7,8,9”,“1,2,3,4,5,7,8,10,9”)。
[0153] S303、构建字词向量映射层:通过加载构建步骤S301中训练所得的字词向量矩阵来初始化当前层的权重参数;针对输入句子sentence1_char、sentence2_char、sentence1_
word、sentence2_word得到其相应句子向量sentence1_char_embed、sentence2_char_
embed、sentence1_word_embed、sentence2_word_embed。句子对语义匹配知识库中每一个
句子都可以通过字词向量映射的方式,将句子信息转化为向量形式。
[0154] 举例说明:在Keras中,对于上面描述的代码实现如下所示:
[0155] embedding_layer=Embedding(embedding_matrix.shape[0],emb_dim,weights=[embedding_matrix],input_length=input_dim,trainable=False)
[0156] 其中,embedding_matrix是步骤3.1中训练所得的字词向量矩阵,embedding_matrix.shape[0]是字词向量矩阵的字词表的大小,emb_dim是输出的字词向量维度,
input_length是输入序列的长度。
[0157] 相应的句子sentence1_char、sentence2_char、sentence1_word、sentence2_word,经过Keras的Embedding层处理后得到相应的句子向量sentence1_char_embed、
sentence2_char_embed、sentence1_word_embed、sentence2_word_embed。
[0158] S304、构建基本模块:该结构如图7所示,具体步骤如下:
[0159] 如图7所示,基本模块先将输入的两个张量进行点积运算得到非规格化的注意力权重矩阵e,具体实施见公式(1)。
[0160] eij=aiTbj,i∈(1,...,la),j∈(1,...,lb)           (1)
[0161] 其中,e表示注意力权利矩阵,eij表示张量1的第i个位置对张量2的第j个位置的注意力权重,a表示张量1,ai表示张量1在第i个位置处的嵌入表示,la表示张量1的长度;b表示
张量2,bj表示张量2在第j个位置处的嵌入表示,lb表示张量2的长度。点积运算涉及到两个
向量夹角的余弦值,由三角函数的基础知识可知:自变量在0~π之间取值时,两向量之间的
夹角越小,其对应的余弦值越大,即相应的相似度(匹配度)越高。然后,基本模块对注意力
权重矩阵e进行规格化处理并进行对齐操作得到对齐结果,见公式(2)‑(3)。
[0162]
[0163]
[0164] 其中,eij是张量1的第i个位置对张量2的第j个位置的注意力权重, 是 对ai的对齐结果,对应图7中的对齐结果1;同理, 是 对bj的对齐结果,对应图7中的对齐
结果2;ai,bj,la,lb与公式(1)中的含义相同,此处不再赘述;
[0165] 由于对齐结果2由输入的张量1计算所得,所以加强版对齐结果1为输入的张量1与对齐结果2的和,具体实施见公式(4);同理,由于对齐结果1由输入的张量2计算所得,所以
加强版对齐结果2为输入的张量2与对齐结果1的和,具体实施见公式(5)。
[0166]
[0167]
[0168] 其中,a、b分别表示输入的张量1、张量2所有分量的集合,即公式(1)中的张量1和张量2; 分别表示公式(2)、(3)的对齐结果1、对齐结果2所有分量的集合; 分别
表示加强版对齐结果1、加强版对齐结果2所有分量的集合。
[0169] 以上为基本模块的处理流程介绍,其核心功能是实现基本的对齐匹配操作,是多级对齐匹配网络的基础组件。
[0170] 举例说明:在Keras中,对于上面描述的代码实现如下所示:
[0171]
[0172]
[0173] 其中,input_1和input_2分别表示输入的张量1和张量2,最后返回的in1_aligned和in2_aligned分别表示加强版对齐结果1和加强版对齐结果2。
[0174] S305、由基本模块构建多级对齐匹配网络模块:该结构如图8所示,具体步骤如下:
[0175] 多级对齐匹配网络模块的第一层编码结构双向长短期记忆网络BiLSTM1对多粒度嵌入模块输出的字嵌入表示和词嵌入表示分别进行编码操作以得到初步的第一层字编码
结果和第一层词编码结果。具体来说,句子1的第一层字编码结果和第一层词编码结果见公
式(6)‑(7)。
[0176]
[0177]
[0178] 其中, 和 分别表示句子1在第i个位置处的字嵌入表示和在第j个位置处的词嵌入表示。 和 分别表示句子1在第i个位置处的第一层字编码结果和在第j个位置
处的第一层词编码结果;la表示在字粒度下句子1的长度,lb表示在词粒度下句子1的长度。
[0179] 将句子1的第一层字编码结果和第一层词编码结果 和 送入一号基本模块进行第一次对齐匹配操作之句子1的字粒度和词粒度对齐匹配,得到加强版对齐结果集合
和 具体实施见下述公式(8)‑(12)。
[0180]
[0181]
[0182]
[0183] 其中,eij表示句子1的字粒度与词粒度的注意力权重, 和 分别表示在字粒度下句子1的第i个位置处的对齐结果和在词粒度下句子1的第j个位置处的对齐结果。
进一步地,
[0184]
[0185]
[0186] 其中,q1c表示句子1的第一层字编码结果的集合,由公式(6)中的 组成;q1w表示句子1的第一层词编码结果的集合,由公式(7)中的 组成; 表示句子1字粒度对齐结
果的集合,由公式(9)中的 组成; 表示句子1词粒度对齐结果的集合,由公式
(10)中的 组成; 和 分别表示句子1字粒度加强版对齐结果的集合与词粒
度加强版对齐结果的集合。
[0187] 相应地,句子2的第一层字编码结果和第一层词编码结果分别记为 和 将和 送入二号基本模块进行第一次对齐匹配操作之句子2的字粒度和词粒度对齐匹配
得到加强版对齐结果集合 和 与句子1的操作类似,只是更改为与句子2相关的
操作,故在此不再赘述。
[0188] 将句子1的字粒度和词粒度加强版对齐结果集合进行concatenate连接操作得到q1concat,将句子2进行类似操作可得q2concat,具体实施见公式(13)‑(14)。
[0189]
[0190]
[0191] 其中,q1concat表示将句子1字粒度与词粒度加强版对齐结果连接后的集合,q2concat表示将句子2字粒度与词粒度加强版对齐结果连接后的集合; 表示公式(11)中的句子
1字粒度加强版对齐结果的集合, 表示公式(12)中的句子1词粒度加强版对齐结果的
集合; 的含义与 类似,只是更改为与句子2相关的操作,在此不
再赘述。
[0192] 将q1concat和q2concat送入三号基本模块进行第二次对齐匹配操作,即进行句子1和句子2的对齐,得到加强版对齐结果集合q1'align2和q2'align2。
[0193] 举例说明:在Keras中,对于上面描述的代码实现如下所示:
[0194]
[0195] 其中,q1_c,q1_w分别表示句子1的字词嵌入表示,q2_c,q2_w分别表示句子2的字词嵌入表示;返回的d1_aligned,d2_aligned分别表示句子1和句子2的加强版对齐结果。
[0196] 第二层编码结构BiLSTM2使用双向长短期记忆网络对句子1和句子2第二次对齐操作输出的加强版对齐结果集合q1'align2和q2'align2分别进行编码操作以得到第二层编码结
果集合q1bilstm2和q2bilstm2。具体实施见公式(15)‑(16)。
[0197] q1bilstm2=BiLSTM2(q1'align2)                      (15)
[0198] q2bilstm2=BiLSTM2(q2'align2)                      (16)
[0199] 将上述经过BiLSTM2后的编码结果集合q1bilstm2和q2bilstm2送入四号基本模块进行第三次对齐匹配操作,得到最终的加强版对齐结果集合q1'align3和q2'align3。
[0200] 举例说明:在Keras中,对于上面描述的代码实现如下所示:
[0201]
[0202] 其中,d1_aligned,d2_aligned分别表示句子1和句子2的加强版对齐结果,返回的f1,f2分别表示句子1和句子2最终的加强版对齐结果。
[0203] S306、构建特征增强模块:经过步骤S305处理后分别得到句子1的加强版对齐结果q1'align3,句子2的加强版对齐结果q2'align3,对其进行一维最大池化以得到更为显著的特
征,记为q1maxpooling和q2maxpooling。将池化结果进行交互,相应公式见(17)‑(20)。
[0204] ab=|q1maxpooling‑q2maxpooling|                     (17)
[0205] ad=q1maxpooling+q2maxpooling                      (18)
[0206] su=q1maxpooling‑q2maxpooling                      (19)
[0207] mu=q1maxpooling·q2maxpooling                      (20)
[0208] 其中,ab为绝对值运算的结果;ad为加法运算的结果;su为减法运算的结果;mu为乘法运算的结果。随后,将两个句子的池化结果和交互结果进行concatenate连接得到
qconcat,公式见(21)。
[0209] qconcat=concatenate([ab,ad,q1maxpooling,q2maxpooling,su,mu])            (21)
[0210] 举例说明:在Keras中,对于上面描述的代码实现如下所示:
[0211] f1=GlobalMaxPooling1D()(f1)
[0212] f2=GlobalMaxPooling1D()(f2)
[0213] ab=Lambda(lambda x:K.abs(x[0]–x[1]))([f1,f2])
[0214] ad=Lambda(lambda x:(x[0]+x[1]))([f1,f2])
[0215] su=Lambda(lambda x:(x[0]–x[1]))(f1,f2)
[0216] mu=Lambda(lambda x:(x[0]*x[1]))(f1,f2)
[0217] ff=concatenate([ab,mu,f1,f2,ad,su])
[0218] 其中,f1和f2代表对步骤S305中第三次加强版对齐结果进行一维最大池化后的结果,ff表示池化结果与交互结果的连接结果,即句子对语义匹配张量。
[0219] S307、构建标签预测模块:将步骤S306得到的句子对语义匹配张量作为输入,以此判断句子对的语义是否匹配。标签预测模块是一个多层感知机,句子对语义匹配张量依次
经过三层全连接网络。其中,前两层是维度为600、激活函数为relu函数的全连接网络,最后
一层是维度为1、激活函数为sigmoid函数的全连接网络;得到一个处于[0,1]之间的匹配度
数值,记为ypred,最终通过与设立的阈值0.5进行比较,从而判断句子对的语义是否匹配;即
ypred≥0.5时,预测该句子对的语义是匹配的,否则,不匹配。
[0220] 举例说明:在Keras中,对于上面描述的代码实现如下所示:
[0221] similarity=Dropout(0.5)(ff)
[0222] similarity=Dense(600,activation=’relu’)(similarity)
[0223] similarity=Dropout(0.5)(similarity)
[0224] similarity=Dense(600,activation=’relu’)(similarity)
[0225] similarity=Dropout(0.5)(similarity)
[0226] pred=Dense(1,activation=’sigmoid’)(similarity)
[0227] 其中,ff为步骤S306中所得的最终的句子对语义匹配张量。
[0228] 当本发明所提出的基于多级对齐匹配网络的句子对语义匹配模型尚未进行训练时,需要进一步执行步骤S4进行训练,以优化模型参数;当该模型训练完毕时,由步骤S307
可预测目标句子对的语义是否匹配。
[0229] S4、训练句子对语义匹配模型:在步骤S2所得的训练数据集上对步骤S3构建的句子对语义匹配模型进行训练,如附图5所示,具体如下:
[0230] S401、构建损失函数:由步骤S307可知ypred为经过句子对语义匹配模型处理后得到的匹配度数值;而ytrue是两个句子语义是否匹配的真实标签,其取值仅限于0或1,采用交
叉熵作为损失函数,公式如下:
[0231]
[0232] S402、优化训练模型:使用Adam优化函数作为本模型的优化函数,在训练数据集上,对句子对语义匹配模型进行优化训练;
[0233] 本发明所提出的模型在LCQMC数据集上取得了优于当前先进模型的结果,实验结果的对比具体见下表。
[0234]
[0235] 本发明模型和现有模型进行了比较,实验结果显示本发明方法有了很大的提升。其中,前三行是现有技术的模型的实验结果【Xin Liu,Qingcai Chen,Chong Deng,Huajun 
Zeng,Jing Chen,Dongfang Li,and Buzhou Tang.LCQMC:A large‑scale chinese 
question matching corpus,COLING2018】,最后一行是本发明模型的实验结果,由此可知
本发明比现有模型有了较大提升。
[0236] 实施例3:
[0237] 如附图6所示,基于实施例2的面向智能交互的句子对语义匹配装置,该装置包括,
[0238] 句子对语义匹配知识库构建单元,用于获取大量的句子对数据,随后对其预处理操作,从而得到符合训练要求的句子对语义匹配知识库;句子对语义匹配知识库构建单元
包括,
[0239] 句子对数据获取单元,负责下载网络上已经公开的句子对语义匹配数据集或人工构建数据集,将其作为构建句子对语义匹配知识库的原始数据;
[0240] 原始数据断字/分词预处理单元,负责预处理用于构建句子对语义匹配知识库的原始数据,对其中的每个句子均进行断字和分词操作,从而构建句子对语义匹配断字处理
知识库和分词处理知识库;
[0241] 子知识库汇总单元,负责汇总句子对语义匹配断字处理知识库和句子对语义匹配分词处理知识库,从而构建句子对语义匹配知识库;
[0242] 训练数据集生成单元,用于根据句子对语义匹配知识库中的句子来构建用于训练的正例数据和负例数据,并且将正例数据与负例数据打乱混合来构建最终的训练数据集;
训练数据集生成单元包括,
[0243] 训练正例数据构建单元,负责将句子对语义匹配知识库中两个语义一致的句子与其匹配标签1构建为训练正例数据;
[0244] 训练负例数据构建单元,负责选中一个句子,随后随机选择与其语义不匹配的某个句子进行组合,与其匹配标签0一起构建为负例数据;
[0245] 训练数据集构建单元,负责将所有的训练正例数据与训练负例数据组合在一起,并打乱顺序,从而构建最终的训练数据集;
[0246] 句子对语义匹配模型构建单元,用于构建字词映射转换表、输入模块、字词向量映射层、多级对齐匹配网络模块、特征增强模块和标签预测模块;句子对语义匹配模型构建单
元包括,
[0247] 字词映射转换表构建单元,负责对句子对语义匹配知识库中的每个句子按字/词粒度进行切分,并将每个字和词依次存入一个列表中,从而得到一个字词表,随后以数字1
为起始,按照每个字和词被录入字词表的顺序依次递增排序,从而获得本发明所需的字词
映射转换表;字词映射转换表构建完成后,表中每个字/词均被映射为唯一的数字标识;其
后,本发明使用Word2Vec训练字词向量模型,得到各字词的字词向量矩阵;
[0248] 输入模块构建单元,负责加载字词映射转换表构建单元中的字词映射转换表,把句子对转换成数字标识;
[0249] 字词向量映射层构建单元,负责加载字词映射转换表构建单元中的字词向量矩阵,把句子对转换成向量形式,即字/词嵌入表示;
[0250] 多级对齐匹配网络模块构建单元,负责对同一句子的不同粒度进行对齐和两个句子的对齐,具体操作为通过第一层编码结构长短期记忆网络BiLSTM1对句子的字嵌入表示
形式和词嵌入表示形式进行处理,将当前层编码结构输出的字编码结果和词编码结果经第
一次对齐匹配操作后所得结果以句子为单位进行连接,随后将两句子连接结果进行第二次
对齐匹配操作,将此结果送入第二层编码结构长短期记忆网络BiLSTM2,并将编码结果进行
第三次对齐匹配操作,得到两句子最终的加强版对齐匹配表示;
[0251] 特征增强模块构建单元,负责进一步处理相应句子的语义特征,对其进行句子交互等操作以增强语义特征,从而生成最终的句子对语义匹配张量;
[0252] 标签预测模块单元,负责对句子对语义匹配张量进行处理,从而得出一个匹配度数值,将其与设立的阈值进行比较,以此判断句子对的语义是否匹配;
[0253] 句子对语义匹配模型训练单元,用于构建模型训练过程中所需要的损失函数与优化函数,并完成模型的优化训练;句子对语义匹配模型训练单元包括,
[0254] 损失函数构建单元,负责计算预测的匹配值与真实匹配值之间的误差;
[0255] 模型优化单元,负责训练并调整模型训练中的参数,减小预测误差。
[0256] 实施例4:
[0257] 基于实施例2的存储介质,其中存储有多条指令,指令有处理器加载,执行实施例2的面向智能交互的句子对语义匹配方法的步骤。
[0258] 实施例5:
[0259] 基于实施例4的电子设备,电子设备包括:实施例4的存储介质;以及
[0260] 处理器,用于执行实施例4的存储介质中的指令。
[0261] 最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依
然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进
行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术
方案的范围。

附图说明

[0105] 下面结合附图对本发明进一步说明。
[0106] 图1为一种面向智能交互的句子对语义匹配方法的流程图;
[0107] 图2为构建句子对语义匹配知识库的流程图;
[0108] 图3为构建训练数据集的流程图;
[0109] 图4为构建句子对语义匹配模型的流程图;
[0110] 图5为训练句子对语义匹配模型的流程图;
[0111] 图6为一种面向智能交互的句子对语义匹配装置的结构示意图;
[0112] 图7为多级对齐匹配网络模块中的基本模块示意图;
[0113] 图8为构建多级对齐匹配网络的结构示意图;
[0114] 图9为一种面向智能交互的句子对语义匹配模型的框架示意图。
版权所有:盲专网 ©2023 zlpt.xyz  蜀ICP备2023003576号