一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

面向高考咨询基于多视角注意力的智能语义匹配方法与装置与流程

2021-11-29 13:46:00 来源:中国专利 TAG:


1.本发明涉及人工智能、自然语言处理技术领域,具体涉及一种面向高考咨询基于多视角注意力的智能语义匹配方法与装置。


背景技术:

2.句子对语义匹配任务旨在衡量两个句子所蕴含的语义意图是否一致,是许多自然语言处理任务的重要基础。随着高考招生政策的不断调整,高考志愿填报咨询的需求不断增长。高考咨询服务正以科技形态出现在人们的生活中,以大数据、云计算以及人工智能为代表的高新科技,将从根本上改变传统高考咨询的运作方式。对于高考咨询服务,句子对语义匹配就是一项至关重要的工作。句子对语义匹配可用以衡量用户咨询的问题和高考咨询服务后台数据库中所包含标准问题的语义是否一致,从而选择标准问题的答案答复用户的咨询。句子对语义匹配任务是一项基础性且极具挑战性的工作,该工作所面临的许多问题目前还没有完善的解决方案,即使是针对特定领域的句子对语义匹配工作也有许多亟待解决的问题。
3.目前句子对语义匹配任务的解决方案大致可以分为两类,一类是基于表示的方法,该类方法通过对两个句子分别进行编码来获得两个句子各自的语义特征表示,随后通过相似度函数衡量两个句子的语义相似性;另一类方法是基于交互的方法,这类方法首先对两个句子进行编码操作,随后通过注意力机制来实现两个句子之间的特征交互操作,最后将两个句子的特征表示传入相似度函数进行计算。在句子对语义匹配任务中,基于表示的方法有实现方式简单高效且训练速度快的优点,但是缺乏一个句子对另外一个句子的语义特征感知,从而使得提取到的语义特征较为单一。相较于基于表示的语义匹配方法,基于交互的句子对语义匹配方法,在获得自身语义特征的同时,还可以从自身语义特征出发去感知另外一个句子的语义特征,从而可以得到更加全面丰富的语义特征表示。具体到中文的句子对语义匹配任务,不少工作考虑了中文中单个字可以表达一定语义的特点,故而有些工作考虑将字词粒度分别进行编码以提取不同粒度的语义信息,同时进行一些交互操作,但是许多工作所进行的交互大多停留在字词级别或句子级别,缺乏多级别的交互,且忽视了字词粒度交互之后进行自注意力机制以提取重要的语义特征,同时也忽略了将得到的关键语义特征进行编码以感知上下文语义信息。
4.针对现有的句子对语义匹配方法存在的不足,本发明提出了一种面向高考咨询基于多视角注意力的智能语义匹配方法与装置。该方法首先对句子进行多粒度嵌入处理,捕获更加全面细致的语义特征信息;实现一种多视角语义匹配模块,对句子的字词粒度进行编码,随后通过对两个句子的同一粒度进行互注意力机制以提取字词粒度的语义对齐表示,且对句子的不同粒度进行自注意力机制以提取句子中所包含的重要语义特征,并对提取到的语义特征进行进一步的编码操作以感知上下文语义信息,随后进行句子对的互注意力机制,从而可以提取到高层次的语义对齐信息;实现一种特征比对模块,对比两个句子的语义特征的相似性并进行一维最大池化操作;实现标签预测模块,以达到判断句子对所蕴
含的语义成分是否一致的目的。


技术实现要素:

5.本发明的技术任务是提供面向高考咨询基于多视角注意力的智能语义匹配方法与装置,通过捕获多粒度级别的交互信息和重要的语义特征,以达到判断句子对所蕴含的语义意图是否一致的目的。
6.本发明的技术任务是按以下方式实现的,面向高考咨询基于多视角注意力的智能语义匹配方法,该方法通过构建并训练由多粒度嵌入模块、多视角语义匹配模块、特征比对模块及标签预测模块所构成的语义匹配模型,捕获句子对在同一粒度上的语义对齐信息,通过自注意力机制获取句子中重要的语义成分,并进行句子间互注意力操作,得到句子级别的语义对齐表示,同时对两个句子进行相似性衡量,以判断句子对所蕴含的语义意图是否一致;具体如下:
7.多粒度嵌入模块对输入的句子以字粒度和词粒度分别进行嵌入操作,得到句子的字词嵌入表示;
8.多视角语义匹配模块对句子的字词嵌入表示依次进行互注意力与自注意力操作以及句子级别的互注意力操作,得到句子级别的高层次语义对齐表示;
9.特征比对模块对句子级别的高层次语义对齐表示进行比较并进行一维最大池化操作,得到句子对的语义匹配向量;
10.标签预测模块将句子对的语义匹配张量映射为指定区间上的一个浮点型数值,将其作为匹配值与预设的阈值进行比较,根据比较结果,判定句子对的语义意图是否一致。
11.作为优选,所述多粒度嵌入模块用于构建字词映射转换表、构建输入模块、构建字词向量映射层;
12.其中,构建字词映射转换表:映射规则为以数字1为起始,随后按照每个字或词被录入字词表的顺序依次递增排序,从而形成本发明所需的字词映射转换表;其中,字词表根据句子对语义匹配断字处理知识库和分词处理知识库来构建,该知识库通过对句子对语义匹配知识库的原始数据文本进行断字预处理和分词预处理操作而得;其后,再使用word2vec训练字词向量模型,得到各字词的字词向量矩阵;
13.构建输入模块:输入层包括四个输入,对于训练数据集中的每一个句子对或待预测的句子对,对其进行断字和分词预处理,分别获取sentence1_char、 sentence2_char、sentence1_word和sentence2_word,其中后缀char、word分别表示对相应句子进行断字或分词处理而得,将其形式化为:(sentence1_char sentence2_char,sentence1_word,sentence2_word);对于输入句子中的每个字和词都按照字词映射转换表转化为相应的数字标识;
14.构建字词向量映射层:加载构建字词映射转换表步骤中训练所得的字词向量矩阵来初始化当前层的权重参数;针对输入句子sentence1_char、sentence2_char、sentence1_word和sentence2_word得到其相应句子向量 sentence1_char_embed、sentence2_char_embed、sentence1_word_embed和 sentence2_word_embed;句子对语义匹配知识库中每一个句子都可以通过字词向量映射的方式,将句子信息转化为向量形式。
15.更优地,所述多视角语义匹配模块的构建过程具体如下:
16.字词粒度语义特征表示的提取:首先使用bilstm编码器对两个句子的字嵌入表示和词嵌入表示进行编码,得到两句子的字粒度语义特征表示和词粒度语义特征表示;对于句子1,公式如下:
[0017][0018][0019]
其中,l为句子的长度,和分别表示句子1在第i个位置处的字嵌入表示和字粒度语义特征表示,和分别表示句子1在第m个位置处的词嵌入表示和词粒度语义特征表示;对于句子2,公式如下:
[0020][0021][0022]
其中公式(3)和(4)的符号含义与公式(1)和(2)大致相同,区别在于,q表示句子2,j表示句子2在字粒度下的第j个位置,n表示句子2在词粒度下的第n 个位置,其余表示可以类比表示;
[0023]
句子对同一粒度的互注意力操作:对得到的两个句子的字粒度语义特征表示和词粒度语义特征表示进行同一粒度的互注意力操作,即在字粒度下进行句子1和句子2的互注意力操作,得到字粒度级别的句子1与句子2的对齐表示,在词粒度下进行句子1和句子2的互注意力操作,得到词粒度级别的句子1与句子2的对齐表示;对于字粒度级别的句子对的互注意力机制,公式如下:
[0024][0025][0026][0027]
其中,tanh为激活函数,exp为指数函数,s1
ij
为在字粒度级别下句子1的第i个位置和句子2第j个位置的相似度权重,和为可训练的权重参数,和的含义与公式(1)、(3)一致, 为句子1在字粒度级别下第i个位置处的字粒度语义对齐表示,是根据相似度权重对句子2中每个字的字粒度语义特征表示加权求和得到的,同理表示句子2在字粒度级别下第j个位置处的字粒度语义对齐表示;
[0028]
对于词粒度级别的互注意力机制,公式如下:
[0029][0030][0031]
[0032]
其中各符号含义可以类比公式(5)

(7),此处只是将用于代表字的上标或下标c改为用于代表词的上标或下标w,和分别表示在词粒度级别下句子1 在第m个位置处的词粒度语义特征表示和词粒度语义对齐表示,和分别表示在词粒度级别下句子2在第n个位置处的词粒度语义特征表示和词粒度语义对齐表示;
[0033]
句子字词粒度的自注意力操作:对进行互注意力机制操作后得到的句子对的字词粒度语义对齐表示进行自注意力操作,即对句子1的字粒度和词粒度分别进行自注意力操作,得到句子1在字粒度级别下的重要语义特征与词粒度级别下的重要语义特征,可以以此类推句子2的相关处理;对于句子1的字粒度和词粒度下的自注意力机制操作以及重要特征的提取,公式如下:
[0034][0035][0036][0037][0038]
其中,c
p1
和c
p2
表示句子1在字粒度级别下可训练的权重参数,w
p1
和w
p2
表示句子1在词粒度级别下可训练的权重参数,和分别表示句子1在字粒度和词粒度级别下的语义对齐表示的集合,分别由公式(6)中的和公式(9)中的组成,p
c'
和p
w'
分别表示句子1在字粒度和词粒度级别下的注意力矩阵,和分别表示句子1在字粒度和词粒度级别下所包含的重要语义特征,该重要语义特征的个数是一个超参数;同理可提取出句子2在字词粒度下所包含的重要语义特征,公式如下:
[0039][0040][0041][0042][0043]
其中,c
q1
和c
q2
表示句子2在字粒度级别下可训练的权重参数,w
q1
和w
q2
表示句子2在词粒度级别下可训练的权重参数,和分别表示句子2在字粒度和词粒度级别下的语义对齐表示的集合,分别由公式(7)中的和公式(10)中的组成,q
c'
和q
w'
分别表示句子2在字粒度和词粒度级别上的注意力矩阵,和分别表示句子2在字粒度和词粒度级别下所包含的重要语义特征,该重要语义特征的个数是一个超参数,代表重要语义特征的个数;
[0044]
基于上下文的特征感知:为了更好地感知上下文特征,对于上述提取的重要语义特征使用lstm编码器进行编码以得到浅层编码表示,同时将重要语义特征与浅层编码表示连接之后再送入bilstm编码器进行再次编码,得到深层编码表示,公式如下:
[0045][0046][0047][0048][0049]
其中,(;)表示concatenate连接操作,和表示句子1在字粒度下提取的重要语义特征和词粒度下提取的重要语义特征,分别由公式(12)和(14)计算所得,和表示句子2在字粒度下提取的重要语义特征和词粒度下提取的重要语义特征,分别由公式(16)和(18)计算所得,和分别表示句子1字粒度和词粒度的深层编码表示,和分别表示句子2字粒度和词粒度的深层编码表示;
[0050]
句子级别的互注意力操作:为了得到句子级别的高层次语义对齐表示,首先将句子对的字词粒度深层编码表示以句子为单位进行连接,随后进行句子级别的互注意力机制,以得到句子级别的高层次语义对齐表示,公式如下:
[0051][0052][0053]
和分别表示句子1字粒度和词粒度的深层编码表示,分别由公式(19) 和(20)计算所得,和分别表示句子2字粒度和词粒度的深层编码表示,分别由公式(21)和(22)计算所得,表示将句子1的字粒度和词粒度的深层编码表示进行连接后得到的句子级别的深层编码表示,表示将句子2的字粒度和词粒度的深层编码表示进行连接后得到的句子级别的深层编码表示;随后对两个句子进行互注意力机制,得到两个句子相互感知的句子级别的高层次语义对齐表示,此处操作与两个句子在同一粒度的互注意力机制较为相似,省略其公式描述,仅给出句子级别的高层次语义对齐表示和
[0054]
更优地,所述特征比对模块的构建过程具体如下:
[0055]
特征比对模块进一步处理多视角语义匹配模块生成的句子级别的高层次语义对齐表示,首先使用绝对值函数强调两个句子之间的绝对差异,同时使用哈达玛积来计算两个句子之间的相似程度,随后将句子对的绝对差异表示与相似程度表示进行连接并将连接结果进行一维最大池化以得到句子对语义匹配张量;公式如下:
[0056][0057][0058]
sim=(abs;mul)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(27)
[0059]
sim
pool
=globalmaxpooling(sim)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(28)
[0060]
其中,(;)表示concatenate连接操作,和分别表示句子1和句子2 的高层次语义对齐表示,abs为绝对值函数运算的结果,mul为哈达玛积运算的结果,随后将这两个结果进行连接得到sim,最后对该结果sim进行一维最大池化操作得到句子对语义匹配张量sim
pool

[0061]
更优地,所述标签预测模块构建过程如下:
[0062]
将句子对语义匹配张量作为输入,标签预测模块包含三层全连接网络;前两层是维度为600、激活函数为relu函数的全连接网络,最后一层是维度为1、激活函数为sigmoid函数的全连接网络;得到一个处于[0,1]之间的匹配度数值,记为y
pred
,最终通过与设定的阈值0.5进行比较,从而判断句子对的语义意图是否一致;即若y
pred
≥0.5时,预测该句子对的语义意图是一致的,否则,不一致;当句子对语义匹配模型尚未充分训练时,需要在根据语义匹配知识库而构建的训练数据集上进行训练,以优化模型参数;当模型训练完毕时,标签预测模块可预测目标句子对的语义意图是否一致。
[0063]
更优地,所述句子对语义匹配知识库构建具体如下:
[0064]
收集数据:收集高考咨询的常见问题句子,作为句子对语义匹配知识库的原始数据;
[0065]
预处理原始数据:预处理用于构建句子对语义匹配知识库的原始数据,对其中的每个句子均进行断字操作、分词操作,得到句子对语义匹配断字处理知识库、分词处理知识库;
[0066]
汇总子知识库:汇总句子对语义匹配断字处理知识库和句子对语义匹配分词处理知识库,构建句子对语义匹配知识库。
[0067]
所述句子对语义匹配模型通过使用训练数据集进行训练而得到,训练数据集的构建过程如下:
[0068]
构建训练正例:将句子对语义匹配知识库中将两个句子语义一致的句子对构建为正例,形式化为:(sentence1_char,sentence2_char,sentence1_word,sentence2_word,1);其中,sentence1_char、sentence2_char分别指代句子对语义匹配断字处理知识库中的句子1、句子2,sentence1_word、sentence2_word 分别指代句子对语义匹配分词处理知识库中的句子1、句子2,1表示这两个句子的语义相匹配,是正例;
[0069]
构建训练负例:选中一个句子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的语义不匹配,是负例;
[0070]
构建训练数据集:将经过构建训练正例和构建训练负例操作后所获得的全部的正例样本句子对和负例样本句子对进行组合,并打乱其顺序,构建最终的训练数据集;无论正例数据还是负例数据均包含了五个维度,即sentence1_char, sentence2_char,sentence1_word,sentence2_word,0或1;
[0071]
所述句子对语义匹配模型构建完成后通过训练数据集进行句子对语义匹配模型的训练与优化,具体如下:
[0072]
构建损失函数:由标签预测模块构建过程可知,y
pred
是经过句子对语义匹配模型处理后得到的匹配度计算数值,y
true
是两个句子语义是否匹配的真实标签,其取值仅限于0或1,采用交叉熵作为损失函数,公式如下:
[0073][0074]
优化训练模型:使用adam优化函数;在训练数据集上,对句子对语义匹配模型进行优化训练。
[0075]
一种面向高考咨询基于多视角注意力的智能语义匹配装置,该装置包括,
[0076]
面向高考咨询基于多视角注意力的智能语义匹配装置主要包含4个单元,即句子对语义匹配知识库构建单元、训练数据集生成单元、句子对语义匹配模型构建单元、句子对语义匹配模型训练单元。每个单元的具体功能如下所述:
[0077]
句子对语义匹配知识库构建单元,用于获取大量的句子对数据,随后对数据进行预处理,从而得到符合训练要求的句子对语义匹配知识库。训练数据集生成单元,对于句子对语义匹配知识库中的句子对,若其语义一致,则该句子对用于构建训练正例,反之,则用于构建训练负例。将大量的正例数据和负例数据进行混合,得到训练数据集。句子对语义匹配模型构建单元,用于构建字词映射转换表、输入模块、字词向量映射层、多视角语义匹配模块、特征比对模块和标签预测模块。句子对语义匹配模型训练单元,用于构建模型训练过程中所需要的损失函数与优化函数,并完成模型的训练。
[0078]
一种存储介质,其中存储有多条指令,所述指令有处理器加载,执行上述的面向高考咨询基于多视角注意力的智能语义匹配方法的步骤。
[0079]
一种电子设备,所述电子设备包括:
[0080]
上述的存储介质;以及
[0081]
处理器,用于执行所述存储介质中的指令。
[0082]
本发明的面向高考咨询基于多视角注意力的智能语义匹配方法具有以下优点:
[0083]
(一)本发明通过多粒度嵌入处理,可以提取出句子中所包含的字粒度和词粒度的嵌入表示,从而可以得到更加全面细致的句子语义特征表示;
[0084]
(二)本发明通过多视角语义匹配模块,可以对两个句子的同一粒度嵌入表示进行语义对齐,得到字词粒度语义对齐特征表示,使两个句子的同一粒度之间可以相互感知,通过细粒度的交互信息,达到改善句子对语义匹配效果的目的;
[0085]
(三)本发明通过多视角语义匹配模块,对两个句子的字词粒度语义对齐特征进行自注意力机制,可以从中提取出句子中所包含重要语义特征,提高句子语义特征表示的准确性;
[0086]
(四)本发明通过多视角语义匹配模块,对句子进行进一步的编码操作且进行句子级别的互注意力,得到句子级别的语义对齐表示,使得两个句子之间的高层次语义信息可以互相感知,增强句子之间的相关性;
[0087]
(五)本发明通过特征比对模块,对两个句子之间的相似性进行对比并进行一维最大池化操作,得到句子对的匹配向量;
[0088]
(六)本发明通过综合运用多粒度嵌入处理、多视角语义匹配、特征比对,能够有效改善语义匹配的效果。
附图说明
[0089]
下面结合附图对本发明进一步说明。
[0090]
图1为面向高考咨询基于多视角注意力的智能语义匹配方法的流程图;
[0091]
图2为构建句子对语义匹配知识库的流程图;
[0092]
图3为构建训练数据集的流程图;
[0093]
图4为构建句子对语义匹配模型的流程图;
[0094]
图5为训练句子对语义匹配模型的流程图;
[0095]
图6为面向高考咨询基于多视角注意力的智能语义匹配装置的结构示意图;
[0096]
图7为构建多视角语义匹配模块的结构示意图;
[0097]
图8为面向高考咨询基于多视角注意力的智能语义匹配模型的框架示意图。
具体实施方式
[0098]
参照说明书附图和具体实施例对本发明的面向高考咨询基于多视角注意力的智能语义匹配方法作以下详细地说明。
[0099]
实施例1:
[0100]
本发明的总体模型框架结构如图8所示。由图8可知,本发明的主要框架结构包含多粒度嵌入模块、多视角语义匹配模块、特征比对模块和标签预测模块。其中,多粒度嵌入模块对输入的句子以字粒度和词粒度进行嵌入操作,并将字词嵌入表示传递给模型的多视角语义匹配模块。多视角语义匹配模块首先实现句子对同一粒度之间的互注意力操作以进行字词粒度语义对齐,随后进行两个句子字词粒度的自注意力操作以提取句子中所包含的重要语义特征,同时通过循环神经网络进行编码以感知句子的上下文,随后进行句子级别的互注意力以捕获高层次的语义对齐表示;具体来说,如图7所示,首先使用bilstm 编码器对句子的字词嵌入表示进行编码操作以捕获正向和反向的语义信息,继而进行两个句子之间的字粒度对齐操作和词粒度对齐操作,得到句子对字粒度语义对齐表示和词粒度语义对齐表示,随后使用自注意力机制对字词粒度语义对齐表示进行处理,以期得到句子中所包含的重要语义特征,随后使用lstm 编码器对所获得的重要语义特征进行编码得到浅层编码表示,并将通过自注意力机制得到的句子的重要语义特征与浅层编码表示进行连接后传递给bilstm 编码器进行进一步的编码操作得到深层编码表示,随后将同一个句子的字词粒度深层编码表示进行连接并进行句子级别的互注意力机制,从而得到句子级别的高层次语义对齐表示同时将其传递给特征比对模块。特征比对模块通过绝对值函数和哈达玛积对两个句子的高层次语义对齐表示进行相似性衡量,随后进行一维最大池化操作,得到句子对语义匹配张量,同时将其传递给标签预测模块。标签预测模块使用多层的全连接层对语义匹配张量进行编码操作,以取得两个句子的匹配度。具体如下:
[0101]
(1)多粒度嵌入模块对输入的句子以字粒度和词粒度分别进行嵌入操作,得到句子的字词嵌入表示;
[0102]
(2)多视角语义匹配模块对句子的字词嵌入表示依次进行互注意力与自注意力操
作以及句子级别的互注意力操作,得到句子级别的高层次语义对齐表示;
[0103]
(3)特征比对模块对句子级别的高层次语义对齐表示进行比较并进行一维最大池化操作,得到句子对的语义匹配向量;
[0104]
(4)标签预测模块将句子对的语义匹配张量映射为指定区间上的一个浮点型数值,将其作为匹配值与预设的阈值进行比较,根据比较结果,判定句子对的语义意图是否一致。
[0105]
实施例2:
[0106]
如附图1所示,本发明的面向高考咨询基于多视角注意力的智能语义匹配方法,具体步骤如下:
[0107]
s1、构建句子对语义匹配知识库,如附图2所示,具体步骤如下:
[0108]
s101、收集数据:收集高考咨询的常见问题句子,作为句子对语义匹配知识库的原始数据。
[0109]
举例说明:收集齐鲁工业大学在高考咨询服务中出现的问题,将其作为原始数据。句子对示例,表示如下:
[0110]
句子1怎么查齐鲁工业大学计算机专业的录取分数线?句子2齐鲁工大去年计科专业录取最低分在哪里查?
[0111]
s102、预处理原始数据:预处理用于构建句子对语义匹配知识库的原始数据,对原始数据的每个句子都进行断字和分词操作,得到句子对语义匹配断字处理知识库、分词处理知识库。
[0112]
以s101中展示的句子1为例,对其进行断字处理操作后得到“怎么查齐鲁工业大学计算机专业的录取分数线?”;使用jieba分词工具对其进行分词操作处理后得到“怎么查齐鲁工业大学计算机专业的录取分数线?”。
[0113]
s103、汇总子知识库:汇总句子对语义匹配断字处理知识库和句子对语义匹配分词处理知识库,构建句子对语义匹配知识库。
[0114]
将s102中获得的句子对语义匹配断字处理知识库和句子对语义匹配分词处理知识库整合到同一文件夹下,从而得到句子对语义匹配知识库。其流程如图2所示。
[0115]
s2、构建句子对语义匹配模型的训练数据集:对于句子对语义匹配知识库中的句子对,若其语义一致,则该句子对用于构建训练正例,反之,则用于构建训练负例。将大量的正例数据和负例数据进行混合,得到训练数据集;如附图3所示,具体步骤如下:
[0116]
s201、构建训练正例:将句子对语义匹配知识库中将两个句子语义一致的句子对构建为正例,形式化为:(sentence1_char,sentence2_char,sentence1_word, sentence2_word,1);
[0117]
举例:对步骤s101中展示的句子1和句子2,经过步骤s102断字和分词操作处理后,构建的正例数据形式为:
[0118]
(“怎么查齐鲁工业大学计算机专业的录取分数线?”,“齐鲁工大去年计科专业录取最低分在哪里查?”,“怎么查齐鲁工业大学计算机专业的录取分数线?”,“齐鲁工大去年计科专业录取最低分在哪里查?”,1)。
[0119]
s202、构建训练负例:对于步骤s201所获得的每个正例句子对,选中其包含的某一个句子,随机选择与其不匹配的某个句子进行组合,将这两个语义不一致的句子作为句子
对,构建为负例数据,形式化为:(sentence1_char, sentence2_char,sentence1_word,sentence2_word,0);
[0120]
举例:由于负例的构建方法与正例的非常类似,故在此不再赘述。
[0121]
s203、构建训练数据集:将经过步骤s201和步骤s202操作后所获得的全部的正例句子对数据和负例句子对数据合并在一起,并将顺序打乱,构建最终的训练数据集。无论正例数据还是负例数据,它们都包含了五个维度,即 sentence1_char,sentence2_char,sentence1_word,sentence2_word,0或1。
[0122]
s3、构建句子对语义匹配模型:主要操作为构建字词映射转换表、构建输入模块、构建字词向量映射层、构建多视角语义匹配模块、构建特征比对模块、构建标签预测模块。其中,构建字词映射转换表、构建输入模块、构建字词向量映射层对应图8中的多粒度嵌入模块,其余部分均与图8中的各个模块一一对应。具体步骤如下:
[0123]
s301、构建字词映射转换表:字词表是通过步骤s102处理后得到的句子对语义匹配断字处理知识库和分词处理知识库来构建的。字词表构建完成后,表中每个字或词均被映射为唯一的数字标识,其映射规则为:以数字1为起始,随后按照每个字或词被录入字词表的顺序依次递增排序,从而形成本发明所需的字词映射转换表。使用word2vec训练字词向量模型,得到各字词的字词向量矩阵。
[0124]
举例:以步骤s102处理后的内容,“怎么查齐鲁工业大学计算机专业的录取分数线?”,“怎么查齐鲁工业大学计算机专业的录取分数线?”构建字词表及字词映射转换表如下:
[0125]
字词怎么查齐鲁工业大学计算映射1234567891011字词机专业的录取分数线?怎么映射121371415161718192021字词齐鲁工业大学计算机专业录取分数线
ꢀꢀꢀꢀꢀ
映射222324252627
ꢀꢀꢀꢀꢀ
[0126]
举例说明:在keras中,训练字词向量模型的代码实现如下:
[0127][0128]
其中,w2v_corpus为句子对语义匹配知识库中的所有句子;emb_dim为嵌入向量维度,本模型设置emb_dim为300维,word_set为字词表; embedding_matrix为所得的字词向量矩阵。
[0129]
s302、构建输入层:输入层包括四个输入,从输入层的训练数据集样例中分别获取sentence1_char、sentence2_char、sentence1_word和sentence2_word,将其形式化为:(sentence1_char,sentence2_char,sentence1_word,sentence2_word);对于输入句子中
的每个字和词,本发明都按照在步骤s301中构建完成的字词映射转换表将其转化为相应的数字标识。
[0130]
举例说明:使用步骤s201中展示的句子对作为样例,以此组成一条输入数据。其结果如下所示:
[0131]
(“怎么查齐鲁工业大学计算机专业的录取分数线?”,“齐鲁工大去年计科专业录取最低分在哪里查?”,“怎么查齐鲁工业大学计算机专业的录取分数线?”,“齐鲁工大去年计科专业录取最低分在哪里查?”)
[0132]
每条输入数据包含4个子句。根据步骤s301中的字词映射转换表,将其转换为数值表示。(假定出现在句子2中但没有出现在句子1中的映射关系为:“去”: 28,“年”:29,“科”:30,“最”:31,“低”:32,“在”:33,“哪”:34,“里”: 35,“工大”:36,“去年”:37,“计科”:38,“专业”:39,“最低”:40,“哪里”: 41)。输入数据的4个子句,合并表示结果如下:
[0133]
(“1,2,3,4,5,6,7,8,9,10,11,12,13,7,14,15,16,17,18,19,20”,“4,5,6,8,28,29,10,30,13 ,7,15,16,31,32,17,33,34,35,3,20”,“21,3,22,23,24,25,14,26,27,20”,“22,36,37,38,39,26 ,40,17,33,41,3,20”)。
[0134]
s303、构建字词向量映射层:通过加载构建步骤s301中训练所得的字词向量矩阵来初始化当前层的权重参数;针对输入句子sentence1_char、 sentence2_char、sentence1_word和sentence2_word得到其相应句子向量sentence1_char_embed、sentence2_char_embed、sentence1_word_embed、 sentence2_word_embed。句子对语义匹配知识库中每一个句子都可以通过字词向量映射的方式,将句子信息转化为向量形式。
[0135]
举例说明:在keras中,对于上面描述的代码实现如下所示: embedding_layer=embedding(embedding_matrix.shape[0],emb_dim,weights =[embedding_matrix],trainable=false)
[0136]
其中,embedding_matrix是步骤s301中训练所得的字词向量矩阵, embedding_matrix.shape[0]是字词向量矩阵中字词表的大小,emb_dim是嵌入向量维度。
[0137]
相应的句子sentence1_char、sentence2_char、sentence1_word和 sentence2_word,经过keras的embedding层处理后得到相应的句子向量 sentence1_char_embed、sentence2_char_embed、sentence1_word_embed、 sentence2_word_embed。
[0138]
s304、构建多视角语义匹配模块:该结构如图7所示,具体步骤如下:
[0139]
如图7所示,多视角语义匹配模块的结构图如图7所示,该模块接收字词向量映射层输出的字词嵌入表示作为输入;通过bilstm编码器对字词嵌入表示进行编码以提取语义特征表示;随后通过对两个句子同一粒度之间进行互注意力操作,得到句子对字词粒度语义对齐表示;随后对其进行自注意力操作,以期获得句子中所包含的重要语义特征;随后将提取到的重要语义特征与经 lstm编码后的语义特征进行连接之后送入bilstm编码器以期获得上下文感知的深层编码表示;随后将同一个句子的字粒度深层编码表示和词粒度深层编码表示进行连接得到句子级别的深层编码表示,同时对两个句子进行互注意力操作,最终得到句子级别的高层次语义对齐表示。
[0140]
字词粒度语义特征表示的提取:首先使用bilstm编码器对两个句子的字嵌入表示和词嵌入表示进行编码,得到两句子的字粒度语义特征表示和词粒度语义特征表示。对于句子1,具体实施见下述公式。
[0141][0142][0143]
其中,l为句子的长度,和分别表示句子1在第i个位置处的字嵌入表示和字粒度语义特征表示,和分别表示句子1在第m个位置处的词嵌入表示和词粒度语义特征表示。对于句子2,具体实施如下:
[0144][0145][0146]
其中公式(3)和(4)的符号含义与公式(1)和(2)大致相同,区别在于,q表示句子2,j表示句子2在字粒度下的第j个位置,n表示句子2在词粒度下的第n 个位置。其余表示可以类比表示,因篇幅有限不再一一赘述。
[0147]
举例说明:在keras中,对于上面描述的代码实现如下所示:
[0148]
首先定义一个bilstm编码器:
[0149]
def bilstm2(input_1,input_2,input_3,input_4):
[0150]
net= bidirectional(lstm(200,return_sequences=true,dropout=0.2),merge_mode=
’ꢀ
concat’)
[0151]
p1=net(input_1)
[0152]
p2=net(input_2)
[0153]
p3=net(input_3)
[0154]
p4=net(input_4)
[0155]
return p1,p2,p3,p4
[0156]
随后将字词嵌入表示送入bilstm编码器得到字词粒度语义特征表示:
[0157]
embed_pw=embedding_layer(input_pw)
[0158]
embed_qw=embedding_layer(input_qw)
[0159]
embed_pc=embedding_layer(input_pc)
[0160]
embed_qc=embedding_layer(input_qc)
[0161]
encoder_pw,encoder_qw,encoder_pc,encoder_qc=bilstm2(embed_pw,
[0162]
embed_qw,embed_pc,embed_qc)
[0163]
其中,input_pc和input_pw分别为句子1在字粒度和词粒度下的输入, input_qc和input_qw分别为句子2在字粒度和词粒度下的输入,encoder_pc和 encoder_pw分别为句子1字粒度和词粒度语义特征表示,encoder_qc和 encoder_qw分别为句子2字粒度和词粒度语义特征表示。
[0164]
句子对同一粒度的互注意力操作:对得到的两个句子的字粒度语义特征表示和词粒度语义特征表示进行同一粒度的互注意力操作,即在字粒度下进行句子1和句子2的互注意力操作,得到字粒度级别的句子1与句子2的对齐表示,在词粒度下进行句子1和句子2的互注意力操作,得到词粒度级别的句子1与句子2的对齐表示。对于字粒度级别的句子对的互注意力机制,具体实施见下述公式。
[0165]
[0166][0167][0168]
其中,tanh为激活函数,exp为指数函数,s1
ij
为在字粒度级别下句子1的第i个位置和句子2第j个位置的相似度权重,和为可训练的权重参数,和的含义与公式(1)、(3)一致,为句子1在字粒度级别下第i个位置处的字粒度语义对齐表示,是根据相似度权重对句子2中每个字的字粒度语义特征表示加权求和得到的,同理表示句子2在字粒度级别下第j个位置处的字粒度语义对齐表示。
[0169]
对于词粒度级别的互注意力机制,具体实施见下述公式。
[0170][0171][0172][0173]
其中各符号含义可以类比公式(5)

(7),此处只是将用于代表字的上标或下标c改为用于代表词的上标或下标w,和分别表示在词粒度级别下句子1 在第m个位置处的词粒度语义特征表示和词粒度语义对齐表示,和分别表示在词粒度级别下句子2在第n个位置处的词粒度语义特征表示和词粒度语义对齐表示。
[0174]
举例说明:在keras中,对于上面描述的代码实现如下所示:
[0175]
首先定义一个互注意力函数:
[0176][0177]
随后将字词粒度语义特征表示送入上述定义好的互注意力函数以得到字词粒度语义对齐表示。
[0178]
attention_pw,attention_qw=concatattention()([encoder_pw,encoder_qw])
[0179]
attention_pc,attention_qc=concatattention()([encoder_pc,encoder_qc])
[0180]
其中encoder_pc和encoder_pw为句子1的字词粒度语义特征表示, encoder_qc和encoder_qw为句子2的字词粒度语义特征表示,attention_pc和 attention_qc是两个句子在字粒度级别下进行互注意力后的语义对齐表示, attention_pw和attention_qw是两个句子在词粒度级别下进行互注意力后的语义对齐表示。
[0181]
句子字词粒度的自注意力操作:对进行互注意力机制操作后得到的句子对的字词粒度语义对齐表示进行自注意力操作,即对句子1的字粒度和词粒度分别进行自注意力操作,得到句子1在字粒度级别下的重要语义特征与词粒度级别下的重要语义特征,可以以此类推句子2的相关处理。对于句子1的字粒度和词粒度下的自注意力机制操作以及重要特征的提取,具体实施见下述公式。
[0182][0183][0184]
[0185][0186]
其中,c
p1
和c
p2
表示句子1在字粒度级别下可训练的权重参数,w
p1
和w
p2
表示句子1在词粒度级别下可训练的权重参数,和分别表示句子1在字粒度和词粒度级别下的语义对齐表示的集合,分别由公式(6)中的和公式(9)中的组成,p
c
'和p
w
'分别表示句子1在字粒度和词粒度级别下的注意力矩阵,和分别表示句子1在字粒度和词粒度级别下所包含的重要语义特征,该重要语义特征的个数是一个超参数;同理可提取出句子2在字词粒度下所包含的重要语义特征,具体实施见下述公式。
[0187][0188][0189][0190][0191]
其中,c
q1
和c
q2
表示句子2在字粒度级别下可训练的权重参数,w
q1
和w
q2
表示句子2在词粒度级别下可训练的权重参数,和分别表示句子2在字粒度和词粒度级别下的语义对齐表示的集合,分别由公式(7)中的和公式(10)中的组成,q
c'
和q
w'
分别表示句子2在字粒度和词粒度级别上的注意力矩阵,和分别表示句子2在字粒度和词粒度级别下所包含的重要语义特征,该重要语义特征的个数是一个超参数,代表重要语义特征的个数。
[0192]
举例说明:在keras中,对于上面描述的代码实现如下所示:
[0193]
首先定义一个注意力函数:
[0194]
[0195][0196]
随后将句子对的字粒度语义对齐表示和词粒度语义对齐表示送入上述定义好的注意力函数以得到字粒度重要语义特征和词粒度重要语义特征:
[0197]
pqw=attention(3)(attention_pw)
[0198]
qpw=attention(3)(attention_qw)
[0199]
pqc=attention(3)(attention_pc)
[0200]
qpc=attention(3)(attention_qc)
[0201]
其中,attention_pc和attention_pw表示句子1的字词粒度语义对齐表示, attention_qc和attention_qw表示句子2的字词粒度语义对齐表示。数字3表示提取的重要语义特征的个数,是一个超参数。
[0202]
基于上下文的特征感知:为了更好地感知上下文特征,对于上述提取的重要语义特征使用lstm编码器进行编码以得到浅层编码表示,同时将重要语义特征与浅层编码表示连接之后再送入bilstm编码器进行再次编码,得到深层编码表示,具体实施见下述公式。
[0203][0204][0205][0206][0207]
其中,(;)表示concatenate连接操作,和表示句子1在字粒度下提取的重要语义特征和词粒度下提取的重要语义特征,分别由公式(12)和(14)计算所得,和表示句子2在字粒度下提取的重要语义特征和词粒度下提取的重要语义特征,分别由公式(16)和(18)计算所得,和分别表示句子1字粒度和词粒度的深层编码表示,和
分别表示句子2字粒度和词粒度的深层编码表示。
[0208]
举例说明:在keras中,对于上面描述的代码实现如下所示:
[0209]
首先定义一个编码器:
[0210][0211]
随后将提取到的两个句子的字词粒度级别的重要语义特征送入上述定义好的编码器以得到字词粒度的深层编码表示。
[0212]
pqw1,qpw1,pqc1,qpc1=bilstm1(pqw,qpw,pqc,qpc)
[0213]
其中,pqc和pqw分别表示句子1在字粒度和词粒度上提取到的重要语义特征,qpc和qpw分别表示句子2在字粒度和词粒度上提取到的重要语义特征。
[0214]
句子级别的互注意力操作:为了得到句子级别的高层次语义对齐表示,首先将句子对的字词粒度深层编码表示以句子为单位进行连接,随后进行句子级别的互注意力机制,以得到句子级别的高层次语义对齐表示,具体实施见下述公式。
[0215][0216][0217]
和分别表示句子1字粒度和词粒度的深层编码表示,分别由公式(19) 和(20)计算所得,和分别表示句子2字粒度和词粒度的深层编码表示,分别由公式(21)和(22)计算所得,表示将句子1的字粒度和词粒度的深层编码表示进行连接后得到的句子级别的深层编码表示,表示将句子2的字粒度和词粒度的深层编码表示进行连接后得到的句子级别的深层编码表示;随后对两个句子进行互注意力机制,得到两个句子相互感知的句子级别的高层次语义对齐表示,此处操作与两个句子在同一粒度的互注意力机制较为相似,省略其公式描述,仅给出句子级别的高层次语义对齐表示和
[0218]
举例说明:在keras中,对于上面描述的代码实现如下所示:
[0219]
p=concatenate([pqw1,pqc1])
[0220]
q=concatenate([qpw1,qpc1])
[0221]
p2,q2=concatattention()([p,q])
[0222]
pqc1和pqw1分别表示句子1字粒度和词粒度的深层编码表示,qpc1和 qpw1分别表示句子2字粒度和词粒度的深层编码表示,返回的p2表示句子1 的高层次语义对齐表示,q2表示句子2的高层次语义对齐表示。
[0223]
s305、构建特征比对模块:经过步骤s304生成的句子级别的高层次语义对齐表示,且对高层次语义对齐表示进行比较,随后将比较结果进行连接,再进行一维最大池化操作,最后得到句子对语义匹配张量。
[0224]
首先使用绝对值函数强调两个句子之间的绝对差异,同时使用哈达玛积来计算两个句子之间的相似程度,随后将句子对的绝对差异表示与相似程度表示进行连接并将连接结果进行一维最大池化以得到句子对语义匹配张量。具体实施见下述公式。
[0225][0226][0227]
sim=(abs;mul)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(27)
[0228]
sim
pool
=globalmaxpooling(sim)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(28)
[0229]
其中,(;)表示concatenate连接操作,和分别表示句子1和句子2 的高层次语义对齐表示,abs为绝对值函数运算的结果,mul为哈达玛积运算的结果,随后将这两个结果进行连接得到sim,最后对该结果sim进行一维最大池化操作得到句子对语义匹配张量sim
pool

[0230]
举例说明:在keras中,对于上面描述的代码实现如下所示:
[0231]
abs_diff1=lambda(lambda x:k.abs(x[0]

x[1]))([p2,q2])
[0232]
multi_diff1=multiply([p2,q2])
[0233]
pq=concatenate([abs_diff1,multi_diff1])
[0234]
ff=globalmaxpooling1d()(pq)
[0235]
其中,p2和q2分别是句子1和句子2的高层次语义对齐表示;ff为最终的句子对语义匹配张量。
[0236]
s306、构建标签预测模块:将步骤s305得到的最终的句子对语义匹配张量,经过三层全连接神经网络处理,以得到一个在[0,1]之间的匹配度,记为y
pred
,并与预先设定的阈值进行比较,若y
pred
大于等于阈值,则认为句子对所蕴含的语义是一致的,反之则句子对不匹配。在三层全连接网络中,前两层网络的激活函数为relu函数,输出维度为600,最后一层网络的激活函数为sigmoid 函数,输出维度为1。
[0237]
举例说明:在keras中,对于上面描述的代码实现如下所示:
[0238]
similarity=dropout(0.5)(ff)
[0239]
similarity=dense(600,name='dense_one')(similarity)
[0240]
similarity=activation('relu')(similarity)
[0241]
similarity=dense(600,name='dense_two')(similarity)
[0242]
similarity=dropout(0.5)(similarity)
[0243]
similarity=activation('relu')(similarity)
[0244]
similarity=dense(1,name='dense_three')(similarity)
[0245]
pred=activation('sigmoid')(similarity)
[0246]
其中,ff为步骤s305中所得到的最终的句子对语义匹配张量。
[0247]
本发明所提出的基于多视角注意力的智能语义匹配模型尚未进行训练,需要进一步执行步骤s4进行训练,以优化模型参数;当该模型训练完毕时,由步骤s306可预测目标句子对的语义是否匹配。
[0248]
s4、训练句子对语义匹配模型:将步骤s3构建的句子对语义匹配模型在步骤s2所得的训练数据集上进行训练,如附图5所示,具体如下:
[0249]
s401、构建损失函数:由步骤s306可知y
pred
是经过句子对语义匹配模型处理后得到的匹配度数值;而y
true
是两个句子语义是否匹配的真实标签,其取值仅限于0或1。本发明采用交叉熵作为损失函数,公式如下:
[0250][0251]
s402、优化训练模型:使用adam优化函数作为本模型的优化函数,在训练数据集上,对句子对语义匹配模型进行优化训练;
[0252]
本发明所提出的方法和系统不仅能够适用于高考咨询服务,为高考咨询用户找到标准的匹配问句;而且它们同样能够适用于相关的金融咨询服务。本发明的模型在bq数据集上取得了优于当前先进模型的结果,实验结果的对比具体见表1。
[0253]
表1:bq上的实验结果.
[0254][0255]
本发明模型和现有模型进行了比较,实验结果显示本发明方法有了很大的提升。其中,前五行是现有技术的模型的实验结果【chen,jing and chen,qingcaiand liu,xin and yang,haijun and lu,daohe and tang,buzhou.the bq corpus:alarge

scale domain

specific chinese corpus for sentence semantic equivalenceidentification,emnlp2018】,最后一行是本发明模型的实验结果,由此可知本发明比现有模型有了较大提升。
[0256]
实施例3:
[0257]
如附图6所示,基于实施例2的面向高考咨询基于多视角注意力的智能语义匹配装置,该装置包括,
[0258]
句子对语义匹配知识库构建单元、训练数据集生成单元、句子对语义匹配模型构建单元、句子对语义匹配模型训练单元,分别实现面向高考咨询基于多视角注意力的智能语义匹配方法中步骤s1、s2、s3、s4的功能,每个单元的具体功能如下所述:
[0259]
句子对语义匹配知识库构建单元,用于获取大量的句子对数据,随后对数据进行预处理,从而得到符合训练要求的句子对语义匹配知识库。
[0260]
训练数据集生成单元,对于句子对语义匹配知识库中的句子对,若其语义一致,则该句子对用于构建训练正例,反之,则用于构建训练负例。将大量的正例数据和负例数据进行混合,得到训练数据集。
[0261]
句子对语义匹配模型构建单元,用于构建字词映射转换表、输入模块、字词向量映射层、多视角语义匹配模块、特征比对模块和标签预测模块。
[0262]
句子对语义匹配模型训练单元,用于构建模型训练过程中所需要的损失函数与优化函数,并完成模型的训练。
[0263]
实施例4:
[0264]
基于实施例2的存储介质,其中存储有多条指令,指令有处理器加载,执行实施例2的面向高考咨询基于多视角注意力的智能语义匹配方法的步骤。
[0265]
实施例5:
[0266]
基于实施例4的电子设备,电子设备包括:实施例4的存储介质;以及
[0267]
处理器,用于执行实施例4的存储介质中的指令。
[0268]
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献