首页 > 专利 > 齐鲁工业大学 > 面向智能问答基于内部相关性编码的文本意图匹配方法专利详情

面向智能问答基于内部相关性编码的文本意图匹配方法   0    0

有效专利 查看PDF
专利申请流程有哪些步骤?
专利申请流程图
申请
申请号:指国家知识产权局受理一件专利申请时给予该专利申请的一个标示号码。唯一性原则。
申请日:提出专利申请之日。
2020-11-27
申请公布
申请公布指发明专利申请经初步审查合格后,自申请日(或优先权日)起18个月期满时的公布或根据申请人的请求提前进行的公布。
申请公布号:专利申请过程中,在尚未取得专利授权之前,国家专利局《专利公报》公开专利时的编号。
申请公布日:申请公开的日期,即在专利公报上予以公开的日期。
2021-03-26
授权
授权指对发明专利申请经实质审查没有发现驳回理由,授予发明专利权;或对实用新型或外观设计专利申请经初步审查没有发现驳回理由,授予实用新型专利权或外观设计专利权。
2022-07-05
预估到期
发明专利权的期限为二十年,实用新型专利权期限为十年,外观设计专利权期限为十五年,均自申请日起计算。专利届满后法律终止保护。
2040-11-27
基本信息
有效性 有效专利 专利类型 发明专利
申请号 CN202011351870.5 申请日 2020-11-27
公开/公告号 CN112463924B 公开/公告日 2022-07-05
授权日 2022-07-05 预估到期日 2040-11-27
申请年 2020年 公开/公告年 2022年
缴费截止日
分类号 G06F16/33G06F16/332G06F40/289G06F40/30G06K9/62 主分类号 G06F16/33
是否联合申请 独立申请 文献类型号 B
独权数量 1 从权数量 7
权利要求数量 8 非专利引证数量 0
引用专利数量 5 被引证专利数量 0
非专利引证
引用专利 CN111339249A、CN110083692A、CN108664632A、CN109299262A、CN109858032A 被引证专利
专利权维持 2 专利申请国编码 CN
专利事件 转让 事务标签 公开、实质审查、授权、权利转移
申请人信息
申请人 第一申请人
专利权人 齐鲁工业大学 当前专利权人 京创联合(北京)知识产权服务有限责任公司
发明人 鹿文鹏、赵鹏宇、张旭 第一发明人 鹿文鹏
地址 山东省济南市长清区大学路3501号齐鲁工业大学 邮编 250353
申请人数量 1 发明人数量 3
申请人所在省 山东省 申请人所在市 山东省济南市
代理人信息
代理机构
专利代理机构是经省专利管理局审核,国家知识产权局批准设立,可以接受委托人的委托,在委托权限范围内以委托人的名义办理专利申请或其他专利事务的服务机构。
代理人
专利代理师是代理他人进行专利申请和办理其他专利事务,取得一定资格的人。
摘要
本发明公开了一种面向智能问答基于内部相关性编码的文本意图匹配方法,属于人工智能领域。本发明要解决的技术问题为如何准确地判断文本意图是否匹配,采用的技术方案为:通过构建并训练由多粒度嵌入模块、内部相关性编码模块、全局推理模块、标签预测模块组成的文本意图匹配模型,实现对文本不同粒度信息的深层编码,同时使用软对齐注意力机制获取不同粒度之间的内部相关性信息;通过全局最大池化和全局平均池化生成文本的表示与文本间的多粒度表示;对两个文本的表示进行相似度计算,并将相似度计算的结果与文本间的多粒度表示合并得到文本对的最终的交互信息表示;计算文本对意图匹配程度,以达到判断文本对意图是否匹配的目标。
  • 摘要附图
    面向智能问答基于内部相关性编码的文本意图匹配方法
  • 说明书附图:图1
    面向智能问答基于内部相关性编码的文本意图匹配方法
  • 说明书附图:图2
    面向智能问答基于内部相关性编码的文本意图匹配方法
  • 说明书附图:图3
    面向智能问答基于内部相关性编码的文本意图匹配方法
  • 说明书附图:图4
    面向智能问答基于内部相关性编码的文本意图匹配方法
  • 说明书附图:图5
    面向智能问答基于内部相关性编码的文本意图匹配方法
  • 说明书附图:图6
    面向智能问答基于内部相关性编码的文本意图匹配方法
  • 说明书附图:图7
    面向智能问答基于内部相关性编码的文本意图匹配方法
  • 说明书附图:图8
    面向智能问答基于内部相关性编码的文本意图匹配方法
  • 说明书附图:图9
    面向智能问答基于内部相关性编码的文本意图匹配方法
法律状态
序号 法律状态公告日 法律状态 法律状态信息
1 2023-01-17 专利权的转移 登记生效日: 2023.01.05 专利权人由京创联合(北京)知识产权服务有限责任公司变更为南方电网互联网服务有限公司 地址由100085 北京市海淀区信息路甲28号C座(二层)02A室-084号变更为510699 广东省广州市越秀区东风东路757号大院办公综合楼606-609房
2 2022-07-05 授权
3 2021-03-26 实质审查的生效 IPC(主分类): G06F 16/33 专利申请号: 202011351870.5 申请日: 2020.11.27
4 2021-03-09 公开
权利要求
权利要求书是申请文件最核心的部分,是申请人向国家申请保护他的发明创造及划定保护范围的文件。
1.面向智能问答基于内部相关性编码的文本意图匹配方法,其特征在于,该方法是通过构建并训练由多粒度嵌入模块、内部相关性编码模块、全局推理模块和标签预测模块组成的文本意图匹配模型,以达到对文本对进行意图匹配的目标;具体如下:
多粒度嵌入模块将输入的文本对按字粒度和词粒度分别进行嵌入操作,得到文本对的字嵌入表示和词嵌入表示;
内部相关性编码模块对文本对的字嵌入表示和词嵌入表示,使用基础编码层和软对齐编码层进行处理,得到软对齐后的字粒度表示和词粒度表示;
全局推理模块对基础编码层中的字/词特征表示,以及软对齐编码层中软对齐后的字/词粒度表示,进行全局最大池化和全局平均池化,抽取出全局性、关键性的特征,生成文本的表示与文本间的多粒度表示,对两个文本的表示进行相似度计算,并与文本间的多粒度表示合并,得到最终的交互信息表示;
标签预测模块将文本对的匹配张量,即最终的交互信息表示映射为指定区间上的一个浮点型数值,将其作为匹配度与预设的阈值进行比较,根据比较结果,判定文本对的意图是否匹配;
所述多粒度嵌入模块用于构建字映射转换表、构建词映射转换表、构建输入模块、构建字向量映射层、构建词向量映射层;
其中,构建字映射转换表:映射规则为:以数字1为起始,随后按照每个字被录入字表的顺序依次递增排序,从而形成字映射转换表;其中,字表根据文本意图匹配断字处理知识库构建,该知识库通过对文本意图匹配知识库的原始数据文本进行断字处理而得;其后,再使用Word2Vec训练字向量模型,得到各字的字向量矩阵;
构建词映射转换表:映射规则为:以数字1为起始,随后按照每个词被录入词表的顺序依次递增排序,从而形成词映射转换表;其中,词表根据文本意图匹配分词处理知识库构建,该知识库通过对文本意图匹配知识库的原始数据文本进行分词操作而得;其后,再使用Word2Vec训练词向量模型,得到各词的词向量矩阵;
构建输入模块:输入模块包括四个输入,对于训练数据集中的每一个文本对或待预测的文本对,对其进行断字和分词预处理,分别获取text1_char、text2_char、text1_word和text2_word,其中后缀char、word分别表示对相应文本进行断字或分词操作而得;对于输入文本中的每个字和词都按照字映射转换表和词映射转换表转化为相应的数字表示形式;
构建字向量映射层:加载构建字映射转换表步骤中训练所得的字向量矩阵来初始化当C C
前层的权重参数;针对输入文本text1_char和text2_char,得到相应字嵌入表示Q1、Q2;
构建词向量映射层:加载构建词映射转换表步骤中训练所得的词向量矩阵来初始化当w w
前层的权重参数;针对输入文本text1_word和text2_word,得到相应词嵌入表示Q1、Q2;
所述内部相关性编码模块的构建过程具体如下:
构建基础编码层:此层接收字/词向量映射层输出的字/词嵌入表示作为本层的输入,使用长短期记忆网络LSTM对字/词嵌入表示进行编码,得到字/词编码结果,将字/词编码结果与字/词嵌入表示进行Concatenation拼接得到字/词拼接结果,并将字/词拼接结果传入第二层编码结构;第二层编码结构对字/词拼接结果使用双向长短期记忆网络BiLSTM进行编码操作,得到字/词编码结果,并将第二层编码得到的字/词编码结果与LSTM编码得到的字/词编码结果Concatenation合并,得到字/词特征表示,对于基础编码层结构,公式如下:
C w C w
其中,Q1、Q1、Q2 、Q2分别表示第一个文本的字嵌入表示、词嵌入表示和第二个文本的字嵌入表示、词嵌入表示;n代表字嵌入表示中的第n个字,m代表词嵌入表示中的第m个词;
分别表示文本1的第n个字嵌入表示经过基础编码层得到的字特征表示、文本1的
第m个词嵌入表示经过基础编码层得到的词特征表示; 与 相对应,为文
本2经过基础编码层得到的编码结果;
构建软对齐编码层:此层接收基础编码层中的文本的字特征表示和词特征表示,并对这两个表示进行软对齐注意力机制操作,输出软对齐后的字粒度表示和软对齐后的词粒度表示,公式如下:
其中, 为基础编码层中所得到的文本1的字/词特征表示与文本
2的字/词特征表示;公式(5)和公式(6)表示计算每个文本的字特征表示与词特征表示之间的相似度,eq1nm表示文本1的注意力权重,即 与 的相似度,eq2nm表示文本2的注意力权重,即 与 的相似度;公式(7)‑(10)则是将注意力权重进行归一化,并分别与字/词特征表示进行矩阵乘法,得到软对齐后的字/词粒度表示; 分别表示
文本1软对齐后的字粒度表示和词粒度表示、文本2软对齐后的字粒度表示和词粒度表示。

2.根据权利要求1所述的面向智能问答基于内部相关性编码的文本意图匹配方法,其特征在于,所述全局推理模块的构建过程具体如下:
全局推理模块接收文本的相关表示即基础编码层中的字/词特征表示,以及软对齐编码层中软对齐后的字/词粒度表示;其中,两个文本的软对齐后的字/词粒度表示,即为文本间的多粒度相关性特征;对接收到的表示进行全局最大池化操作和全局平均池化操作,从而抽取出全局性、关键性的特征,公式如下:
对于文本1的池化操作,公式如下:
其中, 表示对文本1的字特征表示进行全局平均池化得到的软对齐前字平均池化表示, 表示文本1的字特征表示进行全局最大池化得到的软对齐前字最大池化表示,表示文本1的词特征表示进行全局平均池化得到的软对齐前词平均池化表示, 表
示文本1的词特征表示进行全局最大池化得到的软对齐前词最大池化表示;而 表示的是软对齐后字平均池化表示,其余表示与此类比,即可明确意义,因篇幅有限不再一一赘述;
对于文本2的池化操作,公式如下:
其中,各符号与公式(11)和公式(12)大致相同,特别的是这里的q2表示文本2;
分别对两个文本池化后的信息进行整合,得到文本1的表示f1和文本2的表示f2;以文本
1为例,整合的信息包括:软对齐前字平均池化表示 软对齐前词平均池化表示
软对齐后字平均池化表示 软对齐后词平均池化表示 软对齐前字最大池化表示
软对齐前词最大池化表示 软对齐后字最大池化表示 和软对齐后词最大
池化表示 文本2整合的信息符号大致相同,不再一一赘述;将文本间的多粒度相关性特征进行池化后的结果进行整合,得到文本间的多粒度表示f3,公式如下:
对两个文本的表示进行相似度计算,得到两个文本的交互信息,并与文本间的多粒度表示进行合并,得到最终的交互信息表示,公式如下:
ab=|f1‑f2|,mu=f1×f2,  (18)
F=[ab;mu;f3].  (19)
其中,ab和mu均为相似度计算的结果,f3为公式(17)得到的文本间的多粒度表示,F为最终的交互信息表示。

3.根据权利要求2所述的面向智能问答基于内部相关性编码的文本意图匹配方法,其特征在于,所述标签预测模块构建过程如下:
将最终的交互信息表示作为本模块的输入,其经过三层全连接网络处理,其中前两层的激活函数为relu函数,最后一层的激活函数为sigmoid函数,从而得到一个位于[0,1]的数值,该值表示两个文本经过文本意图匹配模型处理后得到的意图匹配度,记为ypred;若ypred小于0.5则表示文本意图不一致,反之则表示文本意图一致。

4.根据权利要求3所述的面向智能问答基于内部相关性编码的文本意图匹配方法,其特征在于,所述文本意图匹配知识库构建具体如下:
下载数据集获取原始数据:下载网络上已公开的文本意图匹配数据集,或者人工构建符合要求的数据集,将其作为构造文本意图匹配知识库的原始数据;
数据预处理:对文本意图匹配知识库的原始数据进行断字和分词操作,从而得到文本意图匹配断字处理知识库和文本意图匹配分词处理知识库;
汇总知识库:汇总文本意图匹配断字处理知识库和文本意图匹配分词处理知识库,构建文本意图匹配知识库;
所述文本意图匹配模型通过使用训练数据集进行训练而得到,训练数据集的构建过程如下:
构建训练正例数据:将意图一致的文本对构建成训练正例,标注为1;
构建训练负例数据:从训练正例数据中选出一个文本,并随机的从其他文本对中选出一个意图不一致的文本,将这两个文本构建成训练负例,标注为0;
构建训练数据集:将构建出的所有训练正例文本对和训练负例文本对合并在一起,并打乱顺序,构建出最终的训练数据集;
所述文本意图匹配模型构建完成后通过训练数据集进行文本意图匹配模型的训练与优化,具体如下:
构建损失函数:由标签预测模块构建过程可知,ypred表示文本意图匹配模型预测的两个文本的意图匹配度;ytrue表示两个文本意图是否匹配的真实标签,其取值为0或1;采用修正的交叉熵作为损失函数,公式如下:
λ(ytrue,ypred)=1‑θ(ytrue‑thre)θ(ypred‑thre)‑θ(1‑thre‑ytrue)θ(1‑thre‑ypred),  (21)
L=‑∑λ(ytrue,ypred)(ytruelogypred+(1‑ytrue)log(1‑ypred)  (22)
其中θ(x)为单位阶跃函数,thre为阈值,L表示修正后的交叉熵公式;
优化训练模型:使用Adam优化函数作为模型的优化函数,超参数均选择Keras中的默认值设置;在训练数据集上,对文本意图匹配模型进行优化训练。

5.一种面向智能问答基于内部相关性编码的文本意图匹配装置,其特征在于,该装置包括,
文本意图匹配知识库构建单元,用于从网上获取大量的文本意图匹配数据,随后对其进行断字与分词操作,从而形成文本意图匹配知识库;
训练数据集生成单元,用于根据文本意图匹配知识库的文本来构建用于训练的正例数据和训练的负例数据,并基于正例数据和负例数据来构建最终的训练数据集;
文本意图匹配模型构建单元,用于构建字映射转换表、词映射转换表、输入模块、字向量映射层、词向量映射层、内部相关性编码模块、全局推理模块以及标签预测模块;文本意图匹配模型构建单元还包括,
字/词映射转换表构建单元,负责将文本意图匹配断字/分词处理知识库中的字/词分别存入一个列表中,从而得到一个字/词表,随后以数字1为起始,按照每个字/词被录入字/词表的顺序依次递增排序,从而形成字/词映射转换表;其后,使用Word2Vec训练字/词向量模型,得到各字/词的字/词向量矩阵;
输入模块构建单元,负责对数据进行预处理,将字/词转化为对应的数字表示;
字/词向量映射层构建单元,负责加载用Word2Vec训练的字/词向量矩阵来初始化当前层的权重参数;对于字/词向量的映射,针对输入的字/词文本,得到对应的字/词嵌入表示;
内部相关性编码模块构建单元,负责接收字/词嵌入表示,使用基础编码层进行编码,并将编码后的字/词特征表示使用软对齐编码层进行处理,得到软对齐后的字粒度表示与词粒度表示;
全局推理模块构建单元,负责接收内部相关性编码模块构建单元中获取到的文本的相关表示,即字/词特征表示和软对齐后的字/词粒度表示;对接收到的表示进行全局最大池化操作和全局平均池化操作,通过整合池化信息得到文本的表示以及文本间的多粒度表示;最后对两个文本的表示进行相似度计算,并与文本间的多粒度表示合并为最终的交互信息表示;
标签预测模块单元,负责对最终的交互信息表示使用3层全连接层处理,得到一个意图匹配度,并与预设阈值进行比较,从而得到文本对意图是否匹配;
文本意图匹配模型训练单元,用于构建模型训练过程中所需要的损失函数与优化函数,并完成模型的训练;
其中,字/词映射转换表构建单元,分为字向量映射转换表单元和词向量映射转换表单元;
字向量映射转换表单元加载字映射转换表构建单元训练所得的字向量矩阵来初始化C C
当前层的权重参数;针对输入文本text1_char和text2_char,得到相应字嵌入表示Q1、Q2;
词向量映射转换表单元加载词映射转换表构建单元训练所得的词向量矩阵来初始化w w
当前层的权重参数;针对输入文本text1_word和text2_word,得到相应词嵌入表示Q1、Q2;
其中,内部相关性编码模块构建单元的具体处理过程如下:
构建基础编码层:此层接收字/词向量映射层输出的字/词嵌入表示作为本层的输入,使用长短期记忆网络LSTM对字/词嵌入表示进行编码,得到字/词编码结果,将字/词编码结果与字/词嵌入表示进行Concatenation拼接得到字/词拼接结果,并将字/词拼接结果传入第二层编码结构;第二层编码结构对字/词拼接结果使用双向长短期记忆网络BiLSTM进行编码操作,得到字/词编码结果,并将第二层编码得到的字/词编码结果与LSTM编码得到的字/词编码结果Concatenation合并,得到字/词特征表示,对于基础编码层结构,公式如下:
C w C w
其中,Q1、Q1、Q2 、Q2分别表示第一个文本的字嵌入表示、词嵌入表示和第二个文本的字嵌入表示、词嵌入表示;n代表字嵌入表示中的第n个字,m代表词嵌入表示中的第m个词;
分别表示文本1的第n个字嵌入表示经过基础编码层得到的字特征表示、文本1的
第m个词嵌入表示经过基础编码层得到的词特征表示; 与 相对应,为文
本2经过基础编码层得到的编码结果;
构建软对齐编码层:此层接收基础编码层中的文本的字特征表示和词特征表示,并对这两个表示进行软对齐注意力机制操作,输出软对齐后的字粒度表示和软对齐后的词粒度表示,公式如下:
其中, 为基础编码层中所得到的文本1的字/词特征表示与文
本2的字/词特征表示;公式(27)和公式(28)表示计算每个文本的字特征表示与词特征表示之间的相似度,eq1nm表示文本1的注意力权重,即 与 的相似度,eq2nm表示文本2的注意力权重,即 与 的相似度;公式(29)‑(32)则是将注意力权重进行归一化,并分别与字/词特征表示进行矩阵乘法,得到软对齐后的字/词粒度表示; 分别
表示文本1软对齐后的字粒度表示和词粒度表示、文本2软对齐后的字粒度表示和词粒度表示。

6.根据权利要求5所述的面向智能问答基于内部相关性编码的文本意图匹配装置,其特征在于,所述文本意图匹配知识库构建单元包括,
原始数据获取单元,负责下载网络上公开的自动问答文本意图匹配数据集或人工构建符合要求的数据集,将其作为构造文本意图匹配知识库的原始数据;
数据预处理单元,负责对文本意图匹配知识库的原始数据进行断字和分词操作,从而得到文本意图匹配断字处理知识库和文本意图匹配分词处理知识库;
知识库汇总单元,负责汇总文本意图匹配断字处理知识库和文本意图分词处理知识库,构建文本意图匹配知识库;
所述训练数据集生成单元包括,
训练正例数据构建单元,负责将文本意图匹配知识库中两个意图匹配的文本与其匹配标签1构建为训练正例数据;
训练负例数据构建单元,负责从正例数据中选出文本,并随机选择与其意图不匹配的文本相组合,并与匹配标签0构建为训练负例数据;
训练数据集构建单元,负责将所有的训练正例数据与训练负例数据组合在一起,并打乱其顺序,从而构建最终的训练数据集;
所述文本意图匹配模型训练单元包括,
损失函数构建单元,负责计算两个文本间意图匹配度的误差;
模型优化单元,负责训练并调整模型训练中的参数,从而减少预测误差。

7.一种存储介质,其中存储有多条指令,其特征在于,所述指令有处理器加载,执行权利要求1‑4中所述的面向智能问答基于内部相关性编码的文本意图匹配方法的步骤。

8.一种电子设备,其特征在于,所述电子设备包括:权利要求7所述的存储介质;以及处理器,用于执行所述存储介质中的指令。
说明书

技术领域

[0001] 本发明涉及人工智能、自然语言处理技术领域,具体涉及一种面向智能问答基于内部相关性编码的文本意图匹配方法。

背景技术

[0002] 作为文本语义匹配的一个分支,文本意图匹配对于智能问答系统至关重要。在智能问答系统中,文本意图匹配用来判断两个文本是否具有相似的意图,以及是否能够用相
同的答案回答。文本意图匹配是一项非常有挑战性的工作,现有的方法还没有完全解决这
一问题。
[0003] 现有的方法通常只是简单考虑了文本的句子层面的字面特征,而忽略了深层的语义特征。有一部分工作尝试通过注意力机制去抽取深层的语义特征,尽管这些工作从不同
角度获得了部分深层语义特征,但是他们普遍被深层编码过程中的特征缺失现象所困扰。
特别是,面对中文语义的多样性和复杂性,现有方法很难充分捕获文本中蕴含的复杂深层
语义特征。

发明内容

[0004] 本发明的技术任务是提供面向智能问答基于内部相关性编码的文本意图匹配方法,该方法是通过构建并训练由多粒度嵌入模块、内部相关性编码模块、全局推理模块和标
签预测模块组成的文本意图匹配模型,以达到对文本对进行意图匹配的目标;具体如下:
[0005] 多粒度嵌入模块将输入的文本按字粒度和词粒度分别进行嵌入操作,得到文本的字嵌入表示和词嵌入表示;
[0006] 内部相关性编码模块对文本对的字嵌入表示和词嵌入表示,使用基础编码层和软对齐编码层进行处理,得到软对齐后的字粒度表示和词粒度表示;
[0007] 全局推理模块对基础编码层的字/词特征表示,以及软对齐编码层中软对齐后的字/词粒度表示,进行全局最大池化和全局平均池化,抽取出全局性、关键性的特征,生成文
本的表示与文本间的多粒度表示;对两个文本的表示进行相似度计算,并与文本间的多粒
度表示合并,得到最终的交互信息表示;
[0008] 标签预测模块将文本对的匹配张量,即最终的交互信息表示映射为指定区间上的一个浮点型数值,将其作为匹配度与预设的阈值进行比较,根据比较结果,判定文本对的意
图是否匹配。
[0009] 作为优选,所述多粒度嵌入模块用于构建字映射转换表、构建词映射转换表、构建输入模块、构建字向量映射层、构建词向量映射层;
[0010] 其中,构建字映射转换表:映射规则为:以数字1为起始,随后按照每个字被录入字表的顺序依次递增排序,从而形成本发明所需的字映射转换表;其中,字表根据文本意图匹
配断字处理知识库构建,该知识库通过对文本意图匹配知识库的原始数据文本进行断字预
处理操作而得;其后,再使用Word2Vec训练字向量模型,得到各字的字向量矩阵;
[0011] 构建词映射转换表:映射规则为:以数字1为起始,随后按照每个词被录入词表的顺序依次递增排序,从而形成本发明所需的词映射转换表;其中,词表根据文本意图匹配分
词处理知识库构建,该知识库通过对文本意图匹配知识库的原始数据文本进行分词操作而
得;其后,再使用Word2Vec训练词向量模型,得到各词的词向量矩阵;
[0012] 构建输入模块:输入模块包括四个输入,对于训练数据集中的每一个文本对或待预测的文本对,对其进行断字和分词预处理,分别获取text1_char、text2_char、text1_
word和text2_word,其中后缀char、word分别表示对相应文本进行断字或分词操作而得;对
于输入文本中的每个字和词都按照字映射转换表和词映射转换表转化为相应的数字表示
形式;
[0013] 构建字向量映射层:加载构建字映射转换表步骤中训练所得的字向量矩阵来初始化当前层的权重参数;针对输入文本text1_char和text2_char,得到相应字嵌入表示
text1_char_embed和text2_char_embed;
[0014] 构建词向量映射层:加载构建词映射转换表步骤中训练所得的词向量矩阵来初始化当前层的权重参数;针对输入文本text1_word和text2_word,得到相应词嵌入表示
text1_word_embed和text2_word_embed;
[0015] 更优地,所述内部相关性编码模块的构建过程具体如下:
[0016] 构建基础编码层:此层接收字/词向量映射层输出的字/词嵌入表示作为本层的输入,使用长短期记忆网络LSTM对字/词嵌入表示进行编码,得到字/词编码结果,将字/词编
码结果与字/词嵌入表示进行Concatenation拼接得到字/词拼接结果,并将字/词拼接结果
传入第二层编码结构;第二层编码结构对字/词拼接结果使用双向长短期记忆网络BiLSTM
进行编码操作,得到字/词编码结果,并将第二层编码得到的字/词编码结果与LSTM编码得
到的字/词编码结果Concatenation合并,得到字/词特征表示,对于基础编码层结构,公式
如下:
[0017]
[0018]
[0019]
[0020]
[0021] 其中,Q1C、Q1w、Q2C、Q2w分别表示第一个文本的字嵌入表示、词嵌入表示和第二个文本的字嵌入表示、词嵌入表示;n代表字嵌入表示中的第n个字,m代表词嵌入表示中的第m
个词; 分别表示文本1的第n个字嵌入表示经过基础编码层得到的字特征表示、文
本1的第m个词嵌入表示经过基础编码层得到的词特征表示; 与 相对
应,为文本2经过基础编码层得到的编码结果;
[0022] 构建软对齐编码层:此层接收基础编码层中的文本的字特征表示和词特征表示,并对这两个表示进行软对齐注意力机制操作,输出软对齐后的字粒度表示和软对齐后的词
粒度表示,公式如下:
[0023]
[0024]
[0025]
[0026]
[0027]
[0028]
[0029] 其中, 为基础编码层中所得到的文本1的字特征表示、词特征表示与文本2的字特征表示、词特征表示。公式(5)和公式(6)表示计算每个文本的字特征
表示与词特征表示之间的相似度,eq1mn表示文本1的注意力权重,即 与 的相似度,
eq2mn表示文本2的注意力权重,即 与 的相似度;公式(7)‑(10)则是将注意力权重进
行归一化,并分别与字特征表示、词特征表示进行矩阵乘法,得到软对齐后的字粒度表示和
词粒度表示; 分别表示文本1软对齐后的字粒度表示和词粒度表示,
文本2软对齐后的字粒度表示和词粒度表示。
[0030] 更优地,所述全局推理模块的构建过程具体如下:
[0031] 全局推理模块接收文本的相关表示即基础编码层中的字/词特征表示,以及软对齐编码层中软对齐后的字/词粒度表示;其中,两个文本的软对齐后的字/词粒度表示,即为
文本间的多粒度相关性特征;对接收到的表示进行全局最大池化操作和全局平均池化操
作,从而抽取出全局性、关键性的特征,公式如下:
[0032] 对于文本1的池化操作,公式如下:
[0033]
[0034]
[0035] 其中, 表示对文本1的字特征表示进行全局平均池化得到的软对齐前字平均池化表示, 表示文本1的字特征表示进行全局最大池化得到的软对齐前字最大池化表示,
表示文本1的词特征表示进行全局平均池化得到的软对齐前词平均池化表示, 表
示文本1的词特征表示进行全局最大池化得到的软对齐前词最大池化表示。而 表示的
是软对齐后字平均池化,其余表示与此类比,即可明确意义,因篇幅有限不再一一赘述;
[0036] 对于文本2的池化操作,公式如下:
[0037]
[0038]
[0039] 其中,各符号与公式(11)和公式(12)大致相同,特别的是这里的q2表示文本2;
[0040] 分别对两个文本池化后的信息进行整合,得到文本1的表示f1和文本2的表示f2;以文本1为例,整合的信息包括:软对齐前字平均池化表示 软对齐前词平均池化表示
软对齐后字平均池化表示 软对齐后词平均池化表示 软对齐前字最大池
化表示 软对齐前词最大池化表示 软对齐后字最大池化表示 和软对齐后词
最大池化表示 文本2整合的信息符号大致相同,不再一一赘述;将文本间的多粒度相
关性特征进行池化后的结果进行整合,得到文本间的多粒度表示f3,公式如下:
[0041]
[0042]
[0043]
[0044] 对两个文本的表示进行相似度计算,得到两个文本的交互信息,并与文本间的多粒度表示进行合并,得到最终的交互信息表示,公式如下:
[0045] ab=|f1‑f2|,mu=f1×f2,  (18)
[0046] F=[ab;mu;f3].  (19)
[0047] 其中,ab和mu均为相似度计算的结果,f3为公式(17)得到的文本间的多粒度表示,F为最终的交互信息表示。
[0048] 更优地,所述标签预测模块构建过程如下:
[0049] 将最终的交互信息表示作为本模块的输入,其经过三层全连接网络处理,其中前两层的激活函数为relu函数,最后一层的激活函数为sigmoid函数从而得到一个位于[0,1]
的数值,该值表示两个文本经过文本意图匹配模型处理后得到的意图匹配度,记为ypred;若
ypred小于0.5则表示文本意图不一致,反之则表示文本意图一致。
[0050] 更优地,所述文本意图匹配知识库构建具体如下:
[0051] 下载数据集获取原始数据:下载网络上已公开的文本意图匹配数据集,或者人工构建符合要求的数据集,将其作为构造文本意图匹配知识库的原始数据;
[0052] 数据预处理:对文本意图匹配知识库的原始数据进行断字和分词操作,从而得到文本意图匹配断字处理知识库和文本意图匹配分词处理知识库;
[0053] 汇总知识库:汇总文本意图匹配断字处理知识库和文本意图匹配分词处理知识库,构建文本意图匹配知识库;
[0054] 所述文本意图匹配模型通过使用训练数据集进行训练而得到,训练数据集的构建过程如下:
[0055] 构建训练正例数据:将意图一致的文本对构建成训练正例,标注为1;
[0056] 构建训练负例数据:从训练正例数据中选出一个文本,并随机的从其他文本对中选出一个意图不一致的文本,将这两个文本构建成训练负例,标注为0;
[0057] 构建训练数据集:将构建成的所有训练正例文本对和训练负例文本对进行组合,并打乱顺序,构建成最终的训练数据集;
[0058] 所述文本意图匹配模型构建完成后通过训练数据集进行文本意图匹配模型的训练与优化,具体如下:
[0059] 构建损失函数:由标签预测模块构建过程可知,ypred表示文本意图匹配模型预测的两个文本的意图匹配度;ytrue表示两个文本意图是否匹配的真实标签,其取值为0或1;本
发明采用修正的交叉熵作为损失函数,公式如下:
[0060]
[0061] λ(ytrue,ypred)=1‑θ(ytrue‑m)θ(ypred‑m)‑θ(1‑m‑ytrue)θ(1‑m‑ypred),   (21)[0062] L=‑∑λ(ytrue,ypred)(ytruelogypred+(1‑ytrue)log(1‑ypred)   (22)
[0063] 其中θ(x)为单位阶跃函数,m为阈值,L表示修正后的交叉熵公式;
[0064] 优化训练模型:使用Adam优化函数作为模型的优化函数,超参数均选择Keras中的默认值设置;在训练数据集上,对文本意图匹配模型进行优化训练。
[0065] 一种面向智能问答基于内部相关性编码的文本意图匹配装置,该装置包括,
[0066] 文本意图匹配知识库构建单元,用于从网上获取大量的文本意图匹配数据,随后对其进行断字与分词操作,从而形成文本意图匹配知识库;
[0067] 训练数据集生成单元,用于根据文本意图匹配知识库的文本来构建用于训练的正例数据和训练的负例数据,并基于正例数据和负例数据来构建最终的训练数据集;
[0068] 文本意图匹配模型构建单元,用于构建字映射转换表、词映射转换表、输入模块、字向量映射层、词向量映射层、内部相关性编码模块、全局推理模块以及标签预测模块;文
本意图匹配模型构建单元还包括,
[0069] 字/词映射转换表构建单元,负责将文本意图匹配断字/分词处理知识库中的字/词分别存入一个列表中,从而得到一个字/词表,随后以数字1为起始,按照每个字/词被录
入字表/词表的顺序依次递增排序,从而形成本发明所需的字/词映射转换表;其后,本发明
使用Word2Vec训练字/词向量模型,得到各字/词的字/词向量矩阵;
[0070] 输入模块构建单元,负责对数据进行预处理,将字/词转化为对应的数字表示;
[0071] 字/词向量映射层构建单元,负责加载用Word2Vec训练的字/词向量矩阵来初始化当前层的权重参数;对于字/词向量的映射,针对输入的字/词文本,得到对应的字/词嵌入
表示;
[0072] 内部相关性编码模块构建单元,负责接收字/词嵌入表示,使用基础编码层进行编码,并将编码后的字/词特征表示使用软对齐编码层进行处理,得到软对齐后的字粒度表示
与词粒度表示;
[0073] 全局推理模块构建单元,负责接收内部相关性编码模块构建单元中获取到的文本的相关表示,即字/词特征表示以及软对齐后的字/词粒度表示;对接收到的表示进行全局
最大池化操作和全局平均池化操作,通过整合池化信息得到文本的表示以及文本间的多粒
度表示;最后对两个文本的表示进行相似度计算,并与文本间的多粒度表示合并为最终的
交互信息表示;
[0074] 标签预测模块单元,负责对最终的交互信息表示使用3层全连接层处理,得到一个意图匹配度,并与预设阈值进行比较,从而得到文本对意图是否匹配;
[0075] 文本意图匹配模型训练单元,用于构建模型训练过程中所需要的损失函数与优化函数,并完成模型的训练。
[0076] 作为优选,所述文本意图匹配知识库构建单元包括,
[0077] 原始数据获取单元,负责下载网络上公开的自动问答文本意图匹配数据集或人工构建符合要求的数据集,将其作为构造文本意图匹配知识库的原始数据;
[0078] 数据预处理单元,负责对文本意图匹配知识库的原始数据进行断字和分词操作,从而得到文本意图匹配断字处理知识库和文本意图匹配分词处理知识库;
[0079] 知识库汇总单元,负责汇总文本意图匹配断字处理知识库和文本意图分词处理知识库,构建文本意图匹配知识库;
[0080] 所述训练数据集生成单元包括,
[0081] 训练正例数据构建单元,负责将文本意图匹配知识库中两个意图匹配的文本与其匹配标签1构建为训练正例数据;
[0082] 训练负例数据构建单元,负责从正例数据中选出文本,并随机选择与其意图不匹配的文本相组合,并与匹配标签0构建为训练负例数据;
[0083] 训练数据集构建单元,负责将所有的训练正例数据与训练负例数据组合在一起,并打乱其顺序,从而构建最终的训练数据集;
[0084] 所述文本意图匹配模型训练单元包括,
[0085] 损失函数构建单元,负责计算两个文本间意图匹配度的误差;
[0086] 模型优化单元,负责训练并调整模型训练中的参数,从而减少预测误差。
[0087] 一种存储介质,其中存储有多条指令,所述指令有处理器加载,执行上述的面向智能问答基于内部相关性编码的文本意图匹配方法的步骤。
[0088] 一种电子设备,所述电子设备包括:上述的存储介质;以及处理器,用于执行所述存储介质中的指令。
[0089] 本发明的面向智能问答基于内部相关性编码的文本意图匹配方法具有以下优点:
[0090] (一)本发明多粒度嵌入处理,可以分别获取到中文的字和词中包含的语义信息,从而使提取出的特征更加完整;
[0091] (二)本发明通过内部相关性编码模块中的基础编码层,可以对字嵌入表示和词嵌入表示进行一系列编码操作,从而获取到更深层次的特征,并且可以减少特征缺失现象;
[0092] (三)内部相关性编码模块中的软对齐编码层,可以对基础编码层产生的字/词特征表示进行软对齐注意力机制操作,从而获取到同一文本的不同粒度表示之间的内部相关
性,增强不同粒度之间的局部信息表示;
[0093] (四)本发明通过对不同粒度的信息进行池化操作,通过全局最大池化和全局平均池化抽取出全局性、关键性的特征,生成文本的表示与文本间的多粒度表示,;将两个文本
的表示进行相似度计算,并将计算结果与文本间的多粒度表示进行合并,从而捕获到更多
的文本交互信息;

实施方案

[0104] 参照说明书附图和具体实施例对本发明的面向智能问答基于内部相关性编码的文本意图匹配方法作以下详细地说明。
[0105] 实施例1:
[0106] 如附图9所示,本发明的主要框架结构包括多粒度嵌入模块、内部相关性编码模块、全局推理模块和标签预测模块。其中,多粒度嵌入模块将输入的文本按字粒度和词粒度
分别进行嵌入操作,并将嵌入编码后的结果传递给内部相关性编码模块。内部相关性编码
模块由基础编码层和软对齐编码层构成,如图8所示。其中,基础编码层的结构如图7所示,
其将从多粒度嵌入模块中传入的字/词嵌入表示使用长短期记忆网络LSTM进行编码,随后
将字/词嵌入表示与编码结果进行Concatenation拼接,并传入双向长短期记忆网络BiLSTM
中进行编码,最后将LSTM的编码结果和BiLSTM的编码结果进行Concatenation拼接,得到
字/词特征表示,并将字/词特征表示传入软对齐编码层;软对齐编码层利用软对齐注意力
机制对字/词特征表示进行软对齐注意力机制处理,得到不同粒度的相关性信息,并生成软
对齐后的字/词粒度表示,最后将基础编码层的字/词特征表示以及软对齐后的字/词粒度
表示传递到全局推理模块。全局推理模块通过对字/词特征表示和软对齐后的字/词粒度表
示使用全局最大池化操作和全局平均池化操作,获得文本的表示,以及文本间的多粒度表
示;随后对两个文本的表示进行相似度计算,并将相似度计算结果与文本间的多粒度表示
合并,得到最终的交互信息表示,并将其传递给标签预测模块。标签预测模块将文本对的匹
配张量,即全局推理模块输出的最终的交互信息表示,映射为指定区间上的一个浮点型数
值;将其作为匹配度与预设的阈值进行比较,根据比较结果,判定文本对的意图是否匹配。
具体如下:
[0107] (1)多粒度嵌入模块将输入的文本对按字粒度和词粒度分别进行嵌入操作,得到文本对的字嵌入表示和词嵌入表示;
[0108] (2)内部相关性编码模块对文本对的字嵌入表示和词嵌入表示,使用基础编码层和软对齐编码层进行处理,得到软对齐后的字粒度表示和词粒度表示;
[0109] (3)全局推理模块对基础编码层的字/词特征表示和软对齐编码层中软对齐后的字/词粒度表示进行全局最大池化和全局平均池化,抽取出全局性、关键性的特征,生成文
本的表示与文本间的多粒度表示,对两个文本的表示进行相似度计算,并与文本间的多粒
度表示合并,得到最终的交互信息表示;
[0110] (4)标签预测模块将文本对的匹配张量,即最终的交互信息表示映射为指定区间上的一个浮点型数值,将其作为匹配度与预设的阈值进行比较,根据比较结果,判定文本对
的意图是否匹配。
[0111] 实施例2:
[0112] 如附图1所示,本发明的面向智能问答基于内部相关性编码的文本意图匹配方法,具体步骤如下:
[0113] S1、构建文本意图匹配知识库,如附图2所示,具体步骤如下:
[0114] S101、从网络上下载已公开的文本意图匹配数据集,或者人工构建符合要求的数据集,将其作为构造文本意图匹配知识库的原始数据。
[0115] 举例:网络上有许多公开的面向智能问答系统的文本意图匹配数据集,例如BQ数据集【Jing Chen,Qingcai Chen,Xin Liu,Haijun Yang,Daohe Lu,and Buzhou 
Tang.2018.The BQ corpus:A large‑scale domain‑specific Chinese corpus for 
sentence semantic equivalence identification.In Proceedings of the Conference 
on Empirical Methods in Natural Language Processing,pages 4946‑4951.】。本发明
将这些数据下载下来,将其作为构建文本意图匹配知识库的原始数据。
[0116] BQ数据集中的句子对示例,表示如下:
[0117] 文本1 提示未通过银行审批要求是为什么?文本2 显示我未满足审批要求,怎样解决?
[0118] S102、数据预处理:对文本意图匹配知识库的原始数据进行断字和分词操作,从而得到文本意图匹配断字处理知识库和文本意图匹配分词处理知识库。
[0119] 对S101中获得的构造文本意图匹配知识库的原始数据中的每个文本进行断字和分词操作,从而得到文本意图匹配断字处理知识库和文本意图匹配分词处理知识库。断字
处理的方法为:在文本中,每两个字中间增加一个空格位作为分割标记。分词操作的方法
为:使用“结巴”中文分词工具,采用分词的精确模式对文本进行切分。为了保证句子的语义
信息不丢失,文本中除了增加空格位作为分割标记,其余内容如标点符号等,均未改变。
[0120] 举例:以S101中展示的文本1为例,经过断字处理后得到“提示未通过银行审批要求是为什么2”;经过“结巴”中文分词工具处理后得到“提示未通过银行审批要求是为什
么?”。
[0121] S103、汇总知识库:汇总文本意图匹配断字处理知识库和文本意图匹配分词处理知识库,构建文本意图匹配知识库。
[0122] 将S102中得到的文本意图匹配断字处理知识库和文本意图匹配分词处理知识库的文件放在一个命名为文本意图匹配的文件夹下,流程如图2所示。需要说明的是,这两个
文件并未合并为一个文件,只是放在了同一个文件夹下,即文本意图匹配知识库实际上包
含两个独立的子知识库。每一个预处理后的文本均保留了其原始句子的ID信息。
[0123] S2、构建文本意图匹配模型的训练数据集:对于文本意图匹配知识库中的每个文本对进行判断,如果文本对中的两个文本意图一致,则将该文本对设置为训练正例数据;如
果意图不一致,则将该文本对设置成训练负例数据;将设置好的训练正例数据和训练负例
数据进行合并,并打乱文本对顺序,从而构建文本意图匹配模型训练数据集;如附图3所示,
具体步骤如下:
[0124] S201、构建训练正例数据:在文本意图匹配知识库中将文本对意图一致的文本构建成训练正例数据,形式化为:(text1_char,text2_char,text1_word,text2_word,1);
text1_char,text2_char分别指代文本意图匹配断字处理知识库中的文本1和文本2,而
text1_word,text2_word分别指代文本意图匹配分词处理知识库中的文本1和文本2;这里
的1代表这个文本对的意图相匹配,是正例;
[0125] 举例:对步骤S101中展示的文本1和文本2为例,经过步骤S102断字处理和步骤S103分词操作后,构建的训练正例数据形式化为:
[0126] (“提示未通过银行审批要求是为什么?”,“显示我未满足审批要求,怎样解决?”,“提示未通过银行审批要求是为什么?”,“显示我未满足审批要求,怎样解决?”,1)。
[0127] S202、构建训练负例数据:对于制作的训练正例数据的每个文本对,从中任意选出一个文本,并随机地从其他文本对中选出一个意图不一致的文本进行组合;将这两个意图
不一致的文本构建成一个文本对,并标记为训练负例数据,形式化为:(text1_char,text2_
char,text1_word,text2_word,0);每个符号的意义与步骤S201的符号意义一致,0标志这
两个文本的意图不匹配,为训练负例。
[0128] 举例:本步骤示例与S201基本一致,在此不再赘述。
[0129] S203、构建训练数据集:将经过步骤S201和步骤S202操作后所获得的全部的训练正例数据和训练负例数据,合并在一起,并打乱其顺序,构建出最终的训练数据集。
[0130] S3、构建文本意图匹配模型:主要操作为依次构建字映射转换表、词映射转换表、输入模块、字向量映射层、词向量映射层、内部相关性编码模块、全局推理模块以及标签预
测模块。其中字映射转换表、词映射转换表、输入模块、字向量映射层、词向量映射层对应图
9的多粒度嵌入模块。其余模块都和图9中的各模块相对应,详细流程如下。具体步骤如下:
[0131] S301、构建字映射转换表:字表是通过步骤S102断字处理后得到的文本意图匹配断字处理知识库来构建的。字表构建完成后,表中每个字均被映射为唯一的数字标识,其映
射规则为:以数字1为起始,随后按照每个字被录入字表的顺序依次递增排序,从而形成本
发明所需的字映射转换表。
[0132] 举例:以步骤S102断字处理后的内容,“提 示 未 通 过 银 行 审 批 要 求 是 为 什 么?”为例,构造的字表和字映射转换表如下:
[0133]字 提 示 未 通 过 银 行 审 批 要 求
映射 1 2 3 4 5 6 7 8 9 10 11
字 是 为 什 么 ?            
映射 12 13 14 15 16            
[0134] 其后,本发明使用Word2Vec训练字向量模型,得到各字的字向量矩阵。
[0135] 举例说明:在Keras中,对于上面描述的代码实现如下所示:
[0136] chars_w2v_model=gensim.models.Word2Vec(chars_w2v_corpus,size=chars_embedding_dim,window=5,min_count=1,sg=1,workwes=4,sees=12,iter=25)
[0137] chars_embedding_matrix=numpy.zeros([len(tokenizer.word_index)+1,chars_embeding_dim])
[0138] tokenizer=Keras.preprocessing.text.Tokenizer(num_words=len(chars_set))
[0139] for char,index in tokenizer.word_index.items():
[0140] chars_embedding_matrix[index,:]=chars_w2v_model.wv[char]
[0141] 其中,chars_w2v_corpus为断字处理训练语料,即文本意图匹配断字处理知识库中的所有数据;chars_embedding_dim是字向量维度,本模型设置其为300,chars_set是字
表,chars_embedding_matrix是最终所得的字向量矩阵。
[0142] S302、构建词映射转换表:词表是通过步骤S102分词操作后得到的文本意图匹配分词处理知识库来构建的。词表构建完成后,表中每个词均被映射为唯一数字标识,其映射
规则为:以数字1为起始,随后按照每个词被录入词表的顺序依次递增排序,从而形成本发
明所需的词映射转换表。
[0143] 举例:以步骤S102分词操作处理后的内容,“提示_未_通过_银行_审批_要求_是_为什么?”为例,构建词表及词映射转换表如下:
[0144]词 提醒 未 通过 银行 审批 要求 是 为什么 ?
映射 1 2 3 4 5 6 7 8 9
[0145] 其后,本发明使用Word2Vec训练词向量模型,得到各词的词向量矩阵。
[0146] 举例说明:在Keras中,对于上面描述的代码实现,与S301中举例说明基本一致,只是将各参数由char或chars转换为word与words。因为篇幅限定,这里不再详细描述。
[0147] 其中,本例与S301举例的不同在于,chars_w2v_corpus更换为words_w2v_corpus,表示文本经过分词操作后的语料,即文本意图匹配分词处理知识库中的所有数据;chars_
embedding_dim改变为words_embedding_dim,其为词向量维度,本发明设置words_
embedding_dim为300;words_set为词表;chars_embedding_matrix改变为words_
embedding_matrix,表示最终所得的词向量矩阵。
[0148] S303、构建输入模块:输入模块中包括四个输入。对于训练数据集中的文本对进行断字和分词操作,获取到text1_char、text2_char、text1_word、text2_word,将其形式化为
(text1_char、text2_char、text1_word、text2_word);
[0149] 对于输入的每个文本,按字和词的表示分别根据步骤S301和步骤S302中构建出的字映射转换表和词映射转换表,将其转换为对应的数字表示形式。
[0150] 举例说明:使用步骤S201中展示的文本为例,将其作为输入数据,则输入数据表示为:
[0151] (“提 示 未 通 过 银 行 审 批 要 求 是 为 什 么?”,“显 示 我 未 满 足 审 批 要 求,怎 样 解 决?”,“提示 未 通过 银行 审批 要求 是 为什么?”,“显示 我 
未 满足 审批 要求,怎样 解决?”)。
[0152] 每一条输入的数据都由4个文本组成,对于前两个文本,按照步骤S301中的字映射转换表,将其进行映射转换为数字形式;对于最后两个文本,按照步骤S302中的词映射转换
表,将其进行映射转换为数字形式。(假定在文本2中包含,但不在文本1中的字,从文本1最
后一个字“?”的映射值16的下一位数开始,按进入字表顺序递增排序,映射关系为:“显”:
17,“我”:18,“满”:19,“足”:20,“,”:21,“怎”:22,“样”:23,“解”:24,“决”:25;同样在文本1中未出现的词被映射为“显示”:10,“我”:11,“满足”:12,“,”:13,“怎样”:14,“解决”:15)。
输入数据被表示为:
[0153] (“1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16”,“17,2,18,3,19,20,8,9,10,11,21,22,23,24,25,16”,“1,2,3,4,5,6,7,8,9”,“10,11,2,12,5,6,13,14,15,9”)。
[0154] S304、构建字向量映射层:通过加载步骤S301中训练所得到的字向量矩阵来初始化当前层的权重参数;针对输入文本text1_char和text2_char,得到对应字嵌入表示
text1_char_embed和text2_char_embed。
[0155] 举例说明:在Keras中,对于上面描述的代码实现如下所示:
[0156] chars_embedding_layer=Embedding(chars_embedding_matrix.shape[0],chars_emb_dim,weights=[chars_embedding_matrix],input_length=input_dim,
trainable=False)
[0157] 其中chars_embedding_matrix是步骤S301中得到的字向量矩阵,chars_embedding_matrix.shape[0]是字向量矩阵对应的字表大小,chars_embedding_dim是输出
的字向量的维度,input_length是输入序列的长度。
[0158] 相应的文本text1_char和text2_char,经过Keras的Embedding层处理后得到相应的字嵌入表示text1_char_embed和text2_char_embed。
[0159] S305、构建词向量映射层:通过加载步骤S302中训练所得的词向量矩阵来初始化当前层的权重参数;针对输入文本text1_word和text2_word,得到相应的词嵌入表示
text1_word_embed和text2_word_embed。文本意图匹配分词处理知识库中每一个文本都可
以通过词向量映射的方式,将文本信息转化为词嵌入表示。
[0160] 举例说明:在Keras中,对于上面描述的代码实现,与步骤S304展示的代码基本一致,只是将参数中与chars相关的变量改为与words相关的。因为篇幅限定,这里不再详细描
述。
[0161] S306、构建内部相关性编码模块:该结构如图8所示,内部相关性模块接收多粒度编码模块中得到的字嵌入表示和词嵌入表示,并进一步经过基础编码层进行编码,随后将
编码后的字特征表示和词特征表示,使用软对齐编码层处理,得到软对齐后的字粒度表示
与软对齐后的词粒度表示;具体步骤如下:
[0162] 构建基础编码层:基础编码层结构示意图如图7所示,通过对字/词嵌入表示进行一系列编码操作,可以获取到不同粒度的深层次的特征表示。基础编码层接收字/词向量映
射层输出的字/词嵌入表示作为输入;第一层编码结构对字/词嵌入表示进行长短期记忆网
络LSTM编码操作,得到第一层字/词编码结果,将字/词编码结果与字/词嵌入表示进行
Concatenation拼接得到字/词拼接结果,并将字/词拼接结果传入第二层编码结构;第二层
编码结构对字/词拼接结果使用双向长短期记忆网络BiLSTM进行编码操作,得到字/词编码
结果,并将字/词编码结果与LSTM编码的字/词编码结果Concatenation合并,得到字/词特
征表示。对于基础编码层结构,公式如下:
[0163]
[0164]
[0165]
[0166]
[0167] 其中,Q1C、Qlw、Q2C、Q2w分别表示第一个文本的字/词嵌入表示和第二个文本的字/词嵌入表示;n代表字嵌入表示中的第n个字,m代表词嵌入表示中的第m个词; 分
别表示文本1的第n个字嵌入表示经过基础编码层得到的字特征表示、文本1的第m个词嵌入
表示经过基础编码层得到的词特征表示; 与 相对应,为文本2经过基础编
码层得到的编码结果。
[0168] 举例说明:在Keras中,对于上面描述的代码实现如下所示:
[0169] input=Input(shape=input_shape)
[0170] em=embedding_layer(input)
[0171] p0=LSTM(300,return_sequences=True,dropout=0.5,name=′0′)(em)
[0172] p1=Bidirectional(LSTM(300,return_sequences=True,dropout=0.52,name=′1′),
[0173] merge_mode=′sum′)(concatenate([p0,em]))
[0174] p=concatenate([p0,p1])
[0175] 其中参数input_shape为输入的形状,在这里因为本发明的实验中只涉及短文本,因此input_shape中的input_dim指定为30,即input_shape为(30,)。
[0176] 构建软对齐编码层:软对齐编码层用来获取同一文本的不同粒度特征表示之间的相关性,从而增强不同粒度之间的局部信息表示。软对齐层接收基础编码层中的文本的字
特征表示和词特征表示,并对这两个表示进行软对齐注意力机制操作,输出软对齐后的字
粒度表示和软对齐后的词粒度表示。公式如下:
[0177]
[0178]
[0179]
[0180]
[0181]
[0182]
[0183] 其中, 为基础编码层中所得到的文本1的字/词特征表示与文本2的字/词特征表示;公式(5)和公式(6)表示计算每个文本的字特征表示与词特征表
示之间的相似度,eqlmn表示文本1的注意力权重,即 与 的相似度,eq2mn表示文本2的
注意力权重,即 与 的相似度;公式(7)‑(10)则是将注意力权重进行归一化,并分别与
字/词特征表示进行矩阵乘法,得到软对齐后的字粒度表示和词粒度表示;
分别表示文本1软对齐后的字粒度表示和词粒度表示,文本2软对齐
后的字粒度表示和词粒度表示。
[0184] 举例说明:在Keras中,对于上面描述的代码实现如下所示:
[0185]
[0186] S307、构建全局推理模块:具体步骤如下:
[0187] 全局推理模块接收文本的相关表示即基础编码层中的字/词特征表示,以及软对齐编码层中软对齐后的字/词粒度表示;其中,两个文本的软对齐后的字/词粒度表示,即为
文本间的多粒度相关性特征;对接收到的表示进行全局最大池化操作和全局平均池化操
作,从而抽取出全局性、关键性的特征,公式如下:
[0188] 对于文本1的池化操作,公式如下:
[0189]
[0190]
[0191] 其中, 表示对文本1的字特征表示进行全局平均池化得到的软对齐前字平均池化表示, 表示文本1的字特征表示进行全局最大池化得到的软对齐前字最大池化表示,
表示文本1的词特征表示进行全局平均池化得到的软对齐前词平均池化表示, 表
示文本1的词特征表示进行全局最大池化得到的软对齐前词最大池化表示。而 表示的
是软对齐后字平均池化表示,其余表示与此类比,即可明确意义,因篇幅有限不再一一赘
述;
[0192] 对于文本2的池化操作,公式如下:
[0193]
[0194]
[0195] 其中,各符号与公式(11)和公式(12)大致相同,特别的是这里的q2表示文本2;
[0196] 分别对两个文本池化后的信息进行整合,得到文本1的表示f1和文本2的表示f2;以文本1为例,整合的信息包括:软对齐前字平均池化表示 软对齐前词平均池化表示
软对齐后字平均池化表示 软对齐后词平均池化表示 软对齐前字最大池
化表示 软对齐前词最大池化表示 软对齐后字最大池化表示 和软对齐后词
最大池化表示 文本2整合的信息符号大致相同,不再一一赘述;将文本间的多粒度相
关性特征进行池化后的结果进行整合,得到文本间的多粒度表示f3,公式如下:
[0197]
[0198]
[0199]
[0200] 举例说明:在Keras中,对于上面描述的代码实现如下所示:
[0201] q12340=concatenate([q13_aligned,q31_aligned,q24_aligned,q42_aligned])
[0202] q12340=concatenate([GlobalAveragePooling1D()(q12340),GlobalMaxPooling1D()(q12340)])
[0203] q13=concatenate([q1,q3,q31_aligned,q13_aligned])
[0204] q24=concatenate([q2,q4,q42_aligned,q24_aligned])
[0205] q130=concatenate([GlobalAveragePooling1D()(q13),GlobalMaxPooling1D()(q13)])
[0206] q240=concatenate([GlobalAveragePooling1D()(q24),GlobalMaxPooling1D()(q24)])
[0207] 其中,q13_aligned,q31_aligned,q24_aligned,q42_aligned分别表示文本1软对齐后的字/词粒度表示和文本2软对齐后的字/词粒度表示;q12340表示两个文本软对齐后
的信息,对q12340使用全局平均池化和全局最大池化操作,并对池化结果进行合并,重新赋
值给q12340,最终q12340表示为文本间的多粒度表示;q1,q3,q2,q4分别表示文本1的字/词
特征表示与文本2的字/词特征表示,使用同样的方法,得到q130即文本1的表示和q240即文
本2的表示。
[0208] 对两个文本的表示进行相似度计算,得到两个文本的交互信息,并与文本间的多粒度表示进行合并,得到最终的交互信息表示,公式如下:
[0209] ab=|f1‑f2|,mu=f1×f2,  (18)
[0210] F=[ab;mu;f3].  (19)
[0211] 其中,ab和mu均为相似度计算的结果,f3为公式(17)得到的文本间的多粒度表示,F为最终的交互信息表示。
[0212] 举例说明:在Keras中,对于上面描述的代码实现如下所示:
[0213] abs_diff1=Lambda(lambda x:K.abs(x[0]‑x[1]))([q130,q240])
[0214] multi_diff1=multiply([q130,q240])
[0215] first=concatenate([abs_diff1,multi_diff1,q12340])
[0216] 其中,参数q130表示文本1的表示,q240表示文本2的表示,q12340为文本间的多粒度表示,first为最终的交互信息表示。
[0217] S308、构建标签预测模块:将步骤S307中最终的交互信息表示作为本模块的输入,以此判断两个文本的意图是否一致。
[0218] 将最终的交互信息表示作为本模块的输入,其经过三层全连接网络处理,其中前两层的激活函数为relu函数,最后一层的激活函数为sigmoid函数,从而得到一个位于[0,
1]的数值,该值表示两个文本经过文本意图匹配模型处理后得到的意图匹配度,记为ypred;
若ypred小于0.5则表示文本意图不一致,反之则表示文本意图一致。
[0219] 当本发明所提出的文本意图匹配模型尚未进行训练时,需要进一步执行步骤S4进行训练,以优化模型参数;当该模型训练完毕时,由步骤S308可预测目标文本对的语义是否
匹配。
[0220] 举例说明:在Keras中,对于上面描述的代码实现如下所示:
[0221] similarity=Dropout(0.5)(first)
[0222] similarity=Dense(600)(similarity)
[0223] similarity=BatchNormalization()(similarity)
[0224] similarity=Activation(′relu′)(similarity)
[0225] similarity=Dense(600)(similarity)
[0226] similarity=Dropout(0.5)(similarity)
[0227] similarity=Activation(′relu′)(similarity)
[0228] similarity=Dense(1)(similarity)
[0229] similarity=BatchNormalization()(similarity)
[0230] pred=Activation(′sigmoid′)(similarity)
[0231] 其中,first为最终的交互信息表示,pred为得到的文本对意图匹配度。
[0232] S4、训练文本意图匹配模型:在步骤S2所得的训练数据集上对步骤S3构建的文本意图匹配模型进行训练,如附图5所示,具体如下:
[0233] S401、构建损失函数:由步骤S308可知,ypred表示文本意图匹配模型预测的两个文本的意图匹配度;ytrue表示两个文本意图是否匹配的真实标签,其取值为0或1;本发明采用
修正的交叉熵作为损失函数,公式如下:
[0234]
[0235] λ(ytrue,ypred)=l‑θ(ytrue‑m)θ(ypred‑m)‑θ(1‑m‑ytrue)θ(1‑m‑ypred),  (21)[0236] L=‑∑λ(ytrue,ypred)(ytruelogypred+(1‑ytrue)log(1‑ypred)  (22)
[0237] 其中θ(x)为单位阶跃函数,m为阈值,本发明将其设置为0.7,L表示修正后的交叉熵公式。
[0238] 举例说明:上面描述的修正的交叉熵函数在Keras中的实现如下:
[0239] margin=0.7
[0240] theta=lambda t:(Keras.backend.sign(t)+1.)/2.
[0241] Loss=‑(1‑theta(y_true‑margin)*theta(y_pred‑margin)‑theta(1‑margin‑y_true)*theta(1‑margin‑y_pred))*Keras.backend.mean(y_true*Keras.backend.log(y_
pred+1e‑8)+(1‑y_true)*Keras.backend.log(1‑y_pred+1e‑8))
[0242] S402、构建优化函数:本模型经过对多种优化函数进行测试,最终选用Adam优化函数作为本模型的优化函数,超参数均选择Keras中的默认值设置。
[0243] 举例说明:上面描述的优化函数及其设置在Keras中使用代码表示为:
[0244] optim=Keras.optimizers.Aadm()
[0245] 本发明的模型在BQ数据集上取得了优于当前先进模型的结果,实验结果的对比具体见表1。
[0246] 表1:BQ上的实验结果.
[0247]
[0248] 本发明模型和现有模型进行了比较,实验结果显示本发明方法有了很大的提升。其中,前五行是现有技术的模型的实验结果【Lu,W.;Zhang,X.;Lu,H.;Li,F.Deep 
hierarchical encoding model for sentence semantic matching.J.Vis.Commun.Image 
Represent.2020,71,102794】,最后一行是本发明模型的实验结果,由此可知本发明比现有
模型有了较大提升。
[0249] 实施例3:
[0250] 如附图6所示,基于实施例2的面向智能问答基于内部相关性编码的文本意图匹配装置,该装置包括,
[0251] 文本意图匹配知识库构建单元,用于从网上获取大量的文本意图匹配数据,随后对其进行断字与分词操作,从而形成文本意图匹配知识库;文本意图匹配知识库构建单元
包括,
[0252] 原始数据获取单元,负责下载网上已公开的自动问答文本意图匹配数据集,或人工构建符合要求的数据集,将其作为构造文本意图匹配知识库的原始数据;
[0253] 数据预处理单元,负责对文本意图匹配知识库的原始数据进行断字和分词操作,从而得到文本意图匹配断字处理知识库和文本意图匹配分词处理知识库;
[0254] 知识库汇总单元,负责汇总文本意图匹配断字处理知识库和文本意图分词处理知识库,构建文本意图匹配知识库。
[0255] 训练数据集生成单元,用于根据文本意图匹配知识库的文本来构建用于训练的正例数据和训练的负例数据,并基于正例数据和负例数据来构建最终的训练数据集;训练数
据集生成单元包括,
[0256] 训练正例数据构建单元,负责将文本意图匹配知识库中两个意图匹配的文本与其匹配标签1构建为训练正例数据;
[0257] 训练负例数据构建单元,负责从正例数据中选出文本,并随机选择与其意图不匹配的文本相组合,并与匹配标签0构建为训练负例数据;
[0258] 训练数据集构建单元,负责将所有的训练正例数据与训练负例数据组合在一起,并打乱其顺序,从而构建最终的训练数据集。
[0259] 文本意图匹配模型构建单元,用于构建字映射转换表、词映射转换表、输入模块、字向量映射层、词向量映射层、内部相关性编码模块、全局推理模块以及标签预测模块;文
本意图匹配模型构建单元包括,
[0260] 字/词映射转换表构建单元,负责将文本意图匹配断字/分词处理知识库中的字/词分别存入一个列表中,从而得到一个字/词表,随后以数字1为起始,按照每个字/词被录
入字/词表的顺序依次递增排序,从而形成本发明所需的字/词映射转换表。其后,本发明使
用Word2Vec训练字/词向量模型,得到各字/词的字/词向量矩阵。
[0261] 输入模块构建单元,负责对数据进行预处理,将字/词转化为对应的数字表示,获取到text1_char、text2_char、text1_word、text2_word,将其形式化为(text1_char、
text2_char、text1_word、text2_word)。
[0262] 字/词向量映射层构建单元,负责加载用Word2Vec训练的字/词向量矩阵来初始化当前层的权重参数;对于字/词向量的映射,针对输入的字/词文本,得到对应的字/词嵌入
表示。
[0263] 内部相关性编码模块构建单元,负责接收字/词嵌入表示,使用基础编码层进行编码,并将编码后的字/词特征表示使用软对齐编码层进行处理,得到软对齐后的字粒度表示
与词粒度表示。
[0264] 全局推理模块构建单元,负责接收内部相关性编码模块构建单元中获取到的文本的相关表示,即字/词特征表示以及软对齐后的字/词粒度表示;对接收到的表示进行全局
最大池化操作和全局平均池化操作,通过整合池化信息得到文本的表示以及文本间的多粒
度表示;最后对两个文本的表示进行相似度计算,并与文本间的多粒度表示合并为最终的
交互信息表示。
[0265] 标签预测模块单元,负责接收全局推理模块构建单元得到的最终的交互信息表示,通过一个3层全连接层处理,得到一个意图匹配度,并与设置阈值进行比较,从而得到文
本对意图是否匹配。
[0266] 文本意图匹配模型训练单元,用于构建模型训练过程中所需要的损失函数与优化函数,并完成模型的训练;文本意图匹配模型训练单元包括,
[0267] 损失函数构建单元,负责计算两个文本间意图匹配度的误差;
[0268] 模型优化单元,负责训练并调整模型训练中的参数,从而减小模型训练过程中预测的文本间意图匹配度与真实匹配度之间的误差。
[0269] 实施例4:
[0270] 基于实施例2的存储介质,其中存储有多条指令,指令有处理器加载,执行实施例2的面向智能问答基于内部相关性编码的文本意图匹配方法的步骤。
[0271] 实施例5:
[0272] 基于实施例4的电子设备,电子设备包括:实施例4的存储介质;以及处理器,用于执行实施例4的存储介质中的指令。
[0273] 最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依
然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进
行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术
方案的范围。

附图说明

[0094] 下面结合附图对本发明进一步说明。
[0095] 图1为一种面向智能问答基于内部相关性编码的文本意图匹配方法的流程图;
[0096] 图2为构建文本意图匹配知识库的流程图;
[0097] 图3为构建训练数据集的流程图;
[0098] 图4为构建文本意图匹配模型的流程图;
[0099] 图5为训练文本意图匹配模型的流程图;
[0100] 图6为一种面向智能问答基于内部相关性编码的文本意图匹配装置的结构示意图;
[0101] 图7为内部相关性编码模块中的基础编码层的结构示意图;
[0102] 图8为内部相关性编码模块的结构示意图;
[0103] 图9为一种面向智能问答基于内部相关性编码的文本意图匹配模型的框架示意图;
版权所有:盲专网 ©2023 zlpt.xyz  蜀ICP备2023003576号