CN112000770B - 面向智能问答的基于语义特征图的句子对语义匹配方法 - Google Patents

面向智能问答的基于语义特征图的句子对语义匹配方法 Download PDF

Info

Publication number
CN112000770B
CN112000770B CN202010855440.0A CN202010855440A CN112000770B CN 112000770 B CN112000770 B CN 112000770B CN 202010855440 A CN202010855440 A CN 202010855440A CN 112000770 B CN112000770 B CN 112000770B
Authority
CN
China
Prior art keywords
word
sentence
layer
semantic
matching
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202010855440.0A
Other languages
English (en)
Other versions
CN112000770A (zh
Inventor
鹿文鹏
于瑞
张旭
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qilu University of Technology
Original Assignee
Qilu University of Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qilu University of Technology filed Critical Qilu University of Technology
Priority to CN202010855440.0A priority Critical patent/CN112000770B/zh
Publication of CN112000770A publication Critical patent/CN112000770A/zh
Application granted granted Critical
Publication of CN112000770B publication Critical patent/CN112000770B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • G06F16/3344Query execution using natural language analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/332Query formulation
    • G06F16/3329Natural language query formulation or dialogue systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • G06F40/289Phrasal analysis, e.g. finite state techniques or chunking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Databases & Information Systems (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Evolutionary Computation (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Machine Translation (AREA)

Abstract

本发明公开了一种面向智能问答的基于语义特征图的句子对语义匹配方法,属于人工智能、自然语言处理技术领域。本发明要解决的技术问题为如何捕获更多的语义上下文特征、不同维度间编码信息的联系和句子间的交互信息,以实现句子对的智能语义匹配,采用的技术方案为:通过构建并训练由多粒度嵌入模块、深层语义特征图构造网络模块、特征转换网络模块和标签预测模块组成的句子对语义匹配模型,实现对句子信息的深层语义特征图表示和语义特征的二维卷积编码表示,同时通过二维最大池化和注意力机制生成句子对的最终匹配张量并判定句子对的匹配程度,以达到对句子对进行智能语义匹配的目标。该装置包括句子对语义匹配知识库构建单元、训练数据集生成单元、句子对语义匹配模型构建单元及句子对语义匹配模型训练单元。

Description

面向智能问答的基于语义特征图的句子对语义匹配方法
技术领域
本发明涉及人工智能、自然语言处理技术领域,具体涉及一种面向智能问答的基于语义特征图的句子对语义匹配方法。
背景技术
智能问答系统是人机交互的核心技术之一,能够针对用户提出的问题自动在问答知识库中找到与之匹配的标准问题,并将标准问题的答案推送给用户,可以大大减轻人工答复的负担。智能问答系统在自助服务、智能客服等领域有着广泛的现实应用。对于用户提出的千差万别的问题,如何为其找到相匹配的标准问题,是智能问答系统的核心技术。该技术的本质是衡量用户提出的问题与问答知识库中标准问题的匹配程度,其实质是句子对语义匹配任务。
句子对语义匹配任务旨在衡量两个句子所蕴含的语义是否一致,这与许多自然语言处理任务的核心目标是一致的,如前所述智能问答系统。自然语言句子的语义匹配度计算是一项极具挑战的工作,现有方法还尚未能完善地解决这一问题。
现有方法通常在对句子对的语义进行匹配时,首先需要设计特定的神经网络对句子进行语义编码,以此来提取相应的语义特征。而对于文本语义编码来说,应用最广泛的编码模型为循环神经网络及其各种变种结构。循环神经网络采用链式结构,虽然可以较好地捕获远距离语义特征,但是它对于局部特征的捕获却不充分。这会导致句子中的部分局部语义信息缺失,使得捕获到的语义特征并不完备。为了更好地捕获局部特征,有一些工作开始尝试利用卷积神经网络结构对文本进行语义编码。但是,由于自然语言句子本身属于一维信息,所以在应用卷积神经网络时,现有工作通常只使用一维的卷积核。一维卷积神经网络虽然可以比较有效地捕获局部信息,但是它只能在一个维度上对句子进行处理,无法捕获不同维度之间的交互信息;而实际上,不同维度间的信息并不是相互独立的;因此,一维卷积同样会存在部分语义信息缺失的问题。综上所述,循环神经网络与一维卷积神经网络对于句子语义信息的编码处理均有不可忽视的弊端。
发明内容
本发明的技术任务是提供面向智能问答的基于语义特征图的句子对语义匹配方法,来达到充分发挥卷积神经网络的优势,以此捕获更多的语义上下文信息和句子间的交互信息,并通过二维最大池化和注意力机制,最终达到对句子对进行智能语义匹配的目的。
本发明的技术任务是按以下方式实现的,面向智能问答的基于语义特征图的句子对语义匹配方法,该方法是通过构建并训练由多粒度嵌入模块、深层语义特征图构造网络模块、特征转换网络模块和标签预测模块组成的句子对语义匹配模型,实现对句子信息的深层语义特征图表示和语义特征的二维卷积编码表示,同时通过二维最大池化和注意力机制生成句子对的最终匹配张量并判定句子对的匹配程度,以达到对句子对进行智能语义匹配的目标;具体如下:
多粒度嵌入模块对输入的句子以字粒度和词粒度分别进行嵌入操作,得到句子的多粒度嵌入表示;
深层语义特征图构造网络模块对句子的多粒度嵌入表示进行编码操作,得到句子的深层语义特征图;
特征转换网络模块对句子对的深层语义特征图进行进一步地特征编码、特征匹配和特征筛选操作,得到句子对的匹配向量;
标签预测模块将句子对的匹配张量映射为指定区间上的一个浮点型数值,将其作为匹配度与预设的阈值进行比较,根据比较结果,判定句子对的语义是否匹配。
作为优选,所述多粒度嵌入模块用于构建字映射转换表、构建词映射转换表、构建输入模块、构建字向量映射层、构建词向量映射层;
其中,构建字映射转换表:映射规则为:以数字1为起始,随后按照每个字被录入字表的顺序依次递增排序,从而形成本发明所需的字映射转换表;其中,字表根据句子对语义匹配断字处理知识库构建,该知识库通过对句子对语义匹配知识库的原始数据文本进行断字操作而得;其后,再使用Word2Vec训练字向量模型,得到各字的字向量矩阵;
构建词映射转换表:映射规则为:以数字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;句子对语义匹配分词处理知识库中每一个句子都可以通过词向量映射的方式,将句子信息转化为向量形式。
更优地,所述深层语义特征图构造网络模块的构建过程具体如下:第一层编码结构BiLSTM1对多粒度嵌入模块输出的字嵌入表示和词嵌入表示分别进行编码操作以得到初步的第一层字编码结果和第一层词编码结果,记为和/> 和/>通过reshape操作后,得到/>和/>其被联接以生成第一层语义特征图/>公式如下:
其中,公式(1.1)表示使用BiLSTM1编码多粒度嵌入模块输出的字嵌入表示,并通过reshape操作增加一个维度,其中,表示sentence1_char_embed或sentence2_char_embed,ic表示第i个字的向量表示在句子中的相对位置,/>表示对第一层字编码结果/>进行reshape处理的结果,该公式表示sentence_char_embed经过BiLSTM1处理后得到一个shape为(batch_size,time_steps,output_dimension)的张量,再通过reshape操作增加一个类似图像通道的维度从而得到一个shape为(batch_size,time_steps,output_dimension,1)的张量,该张量即为第一层字编码结果;公式(1.2)表示使用BiLSTM1编码多粒度嵌入模块输出的词嵌入表示,并通过reshape操作增加一个维度,其中,/>表示sentence1_word_embed或sentence2_word_embed,iw表示第i个词的向量表示在句子中的相对位置,/>表示对第一层词编码结果/>进行reshape处理的结果,该公式表示sentence_word_embed经过BiLSTM1处理后得到一个shape为(batch_size,time_steps,output_dimension)的张量,再通过reshape操作增加一个类似图像通道的维度从而得到一个shape为(batch_size,time_steps,output_dimension,1)的张量,该张量即为第一层词编码结果;公式(1.3)表示通过联接第一层字编码结果和第一层词编码结果的reshape操作所得结果,以获得第一层语义特征图,其中,/>表示第一层语义特征图,该特征图是将/>和/>在新增的通道维度上进行联接而得到的,其shape为(batch_size,time_steps,output_dimension,2)。
进一步地,将初步的第一层字编码结果和第一层词编码结果,即记为和/>传递给第二层编码结构BiLSTM2;BiLSTM2对初步的第一层字编码结果和第一层词编码结果分别进行编码操作以得到初步的第二层字编码结果和第二层词编码结果,记为/>和/>和/>通过reshape操作后,得到/>和/>它们和第一层语义特征图一起被联接以生成第二层语义特征图/>公式如下:
其中,公式(2.1)的意义与公式(1.1)类似,该公式中BiLSTM2编码的对象是初步的第一层字编码结果表示第二层字编码结果,/>表示对第二层字编码结果进行reshape操作后的结果;公式(2.2)的意义与公式(1.2)类似,该公式中BiLSTM2编码的对象是初步的第一层词编码结果/>表示第二层词编码结果,/>对第二层词编码结果进行reshape操作后的结果;/>和/>的获得步骤以及shape均与/>和/>一致;公式(2.3)的意义与公式(1.3)类似,只是该公式除了联接第二层字编码结果和第二层字编码结果的reshape操作所得结果外,还需联接第一层语义特征图,其中,/>表示第二层语义特征图,该特征图是将/>和/>在新增的通道维度上进行联接而得到的,其shape为(batch_size,time_steps,output_dimension,4)。
进一步地,将初步的第二层字编码结果和第二层词编码结果,即和/>传递给第三层编码结构BiLSTM3;以此类推,可以多次反复编码生成多级语义特征图;根据模型预设的层次深度,直到生成最终的深层语义特征图。对于第depth层,公式如下:
其中,公式(3.1)的意义与公式(2.1)类似,该公式中BiLSTMdepth编码的对象是初步的第depth-1层字编码结果是第depth层的字编码结果,/>表示对第depth层字编码结果进行reshape操作后的结果;公式(3.2)的意义与公式(2.2)类似,该公式中BiLSTMdepth编码的对象是初步的第depth-1层词编码结果/>表示第depth层词编码结果,/>表示对第depth层词编码结果进行reshape操作后的结果;/>的获得步骤以及shape均与/>和/>一致;公式(3.3)的意义与公式(2.3)类似,其中,/>表示第depth层语义特征图,即为最终的深层语义特征图,其获得步骤与类似,其shape为(batch_size,time_steps,output_dimension,2*depth)。
更优地,所述特征转换网络模块的构建过程具体如下:
构建二维卷积语义特征编码层:此层接收深层语义特征图构造网络模块输出的深层语义特征图作为本层的输入,然后使用二维卷积神经网络对其进行编码操作,从而得到相应的语义特征编码表示,公式如下:
其中,深层语义特征图为该层输入;公式(4.1)表示第f个卷积核对深层语义特征图的特定区域进行卷积后经ReLU函数映射的结果,其中,[x1,y1]表示卷积核的尺寸,/>表示第f个卷积核的权重矩阵,i和j表示卷积区域的横坐标和纵坐标,ml和mh表示深层语义特征图的长和高,i:i+x1-1,j:j+y1-1表示卷积区域,/>表示第f个卷积核的偏置矩阵,/>表示第f个卷积核在i:i+x1-1,j:j+y1-1区域的卷积结果;公式(4.2)表示整合第f个卷积核在每个区域的卷积结果以得到第f个卷积核的最终卷积结果,其中,sx1和sy1表示横向卷积步幅和纵向卷积步幅,/>表示第f个卷积核的最终卷积结果;公式(4.3)表示将n个卷积核的最终卷积结果进行组合,得到该层网络对于深层语义特征图的最终卷积结果,其中,/>表示该卷积神经网络对于深层语义特征图的最终卷积结果,称其为语义特征编码表示。
构建语义特征匹配层:此层首先联接sentence1和sentence2的语义特征编码表示和/>从而得到句子对联接张量/>公式如下:
随后,使用另一个二维卷积神经网络对进行卷积匹配处理,从而得到句子对初步匹配张量,公式如下:
其中,句子对联接张量为该层输入;公式(6.1)表示第f个卷积核对句子对联接张量的特定区域进行卷积后经过ReLU函数映射的结果,其中,[x2,y2]表示卷积核的尺寸,表示第f个卷积核的权重矩阵,i和j表示卷积区域的横坐标和纵坐标,rl和rh表示深层语义特征图的长和高,i:i+x2-1,j:j+y2-1表示卷积区域,/>表示第f个卷积核的偏置矩阵,/>表示第f个卷积核在i:i+x2-1,j:j+y2-1区域的卷积结果;公式(6.2)表示整合第f个卷积核在每个区域的卷积结果以得到第f个卷积核的最终卷积结果,其中,sx2和sy2表示横向卷积步幅和纵向卷积步幅,/>表示第f个卷积核的最终卷积结果;公式(6.3)表示将n个卷积核的最终卷积结果进行组合,得到该层网络对于句子对联接张量的最终卷积结果,其中,/>表示该卷积神经网络对于句子对联接张量的最终卷积结果,称其为句子对初步匹配张量。
构建语义特征筛选层:此层接收语义特征匹配层的输出句子对初步匹配张量作为输入,然后在本层中通过两个步骤对其完成语义特征筛选操作;
第一步,首先通过应用二维最大池化操作完成对句子对初步匹配张量的第一次特征筛选操作,其结果记为公式如下:
其中,句子对初步匹配张量为该层输入;公式(7.1)表示对句子对初步匹配张量的特定区域进行最大池化操作,其中,[x3,y3]表示池化窗口的尺寸,i和j表示池化区域的横坐标和纵坐标,/>和/>表示句子对初步匹配张量的长和高,i:i+x2-1,j:j+y2-1表示池化区域,pi,j表示在i:i+x2-1,j:j+y2-1区域的池化结果;公式(7.2)表示整合每个区域的池化结果以得到句子对初步匹配张量的最终池化结果,其中,sx3和sy3表示横向池化步幅和纵向池化步幅,/>表示对所有区域的池化结果进行组合以得到的最终池化结果。
第二步,使用注意力机制得到最终的句子对语义匹配张量,公式如下:
其中,公式(8.1)表示对进行映射,其中,/>和/>表示模型中相应的可训练权重矩阵,/>表示/>经映射后的结果;公式(8.2)表示计算得出注意力权重,其中,/>表示注意力权重;公式(8.3)表示使用注意力权重生成最终的匹配向量,其中,N为/>中的特征向量的数量,/>为最终的句子对语义匹配张量。
更优地,所述标签预测模块构建过程如下:
将句子对语义匹配张量将作为本模块的输入,其经过一层维度为1、激活函数为sigmoid的全连接网络处理,从而得到一个处于[0,1]之间的匹配度数值,记为ypred,最终通过与设立的阈值(0.5)进行比较,从而判断句子对间的语义是否匹配;即ypred≥0.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);其中,sentence1_char、sentence1_word分别指代句子对语义匹配断字处理知识库和句子对语义匹配分词处理知识库中的句子1;sentence2_char、sentence2_word分别指代句子对语义匹配断字处理知识库和句子对语义匹配分词处理知识库中的句子2;0表示句子s1和句子s2的语义不匹配,是负例;
构建训练数据集:将经过构建训练正例和构建训练负例操作后所获得的全部的正例样本句子对和负例样本句子对进行组合,并打乱其顺序,构建最终的训练数据集;无论正例数据还是负例数据均包含了五个维度,即sentence1_char,sentence2_char,sentence1_word,sentence2_word,0或1;
所述句子对语义匹配模型构建完成后通过训练数据集进行句子对语义匹配模型的训练与优化,具体如下:
构建损失函数:由标签预测模块构建过程可知,ypred是经过句子对语义匹配模型处理后得到的匹配度计算数值,ytrue是两个句子语义是否匹配的真实标签,其取值仅限于0或1,采用交叉熵作为损失函数,公式如下:
优化训练模型:使用RMSProp作为优化算法,除了其学习率设置为0.0015外,RMSProp的剩余超参数均选择Keras中的默认值设置;在训练数据集上,对句子对语义匹配模型进行优化训练。
一种面向智能问答的基于语义特征图的句子对语义匹配装置,该装置包括,
句子对语义匹配知识库构建单元,用于获取大量的句子对数据,随后对其预处理操作,从而得到符合训练要求的句子对语义匹配知识库;
训练数据集生成单元,用于根据句子对语义匹配知识库中的句子来构建用于训练的正例数据和训负例数据,并且基于正例数据与负例数据来构建最终的训练数据集;
句子对语义匹配模型构建单元,用于构建字映射转换表、词映射转换表,同时构建输入模块、字向量映射层、词向量映射层、深层语义特征图构造网络模块、特征转换网络模块和标签预测模块;句子对语义匹配模型构建单元包括,
字映射转换表或词映射转换表构建单元,负责对句子对语义匹配知识库中的每个句子按字粒度或词粒度进行切分,并将每个字或词依次存入一个列表中,从而得到一个字表或词表,随后以数字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;
深层语义特征图构造网络模块构建单元,负责将一维语义信息构造为特征图,具体操作为接收字向量映射层输出的字嵌入表示和词向量映射层输出的词嵌入表示作为输入;第一层编码结构对字嵌入表示和词嵌入表示分别进行编码操作,以得到第一层字编码结果和第一层词编码结果;第一层字编码结果和第一层词编码结果经reshape处理后,被联接在一起,以生成第一层语义特征图,同时,将联接前的第一层字编码结果和第一层词编码结果传递给第二层编码结构;第二层编码结构对第一层字编码结果和第一层词编码结果分别进行编码操作,以得到第二层字编码结果和第二层词编码结果;对第二层字编码结果、第二层词编码结果进行reshape处理,并将结果和第一层语义特征图一起被联接以生成第二层语义特征图,同时,将联接前的第二层字编码结果和第二层词编码结果传递给第三层编码结构;以此类推,可以多次反复编码生成多级语义特征图;根据模型预设的层次深度,直到生成最终的深层语义特征图;
特征转换网络模块构建单元,负责进一步处理相应句子的深层语义特征图,对其进行语义特征编码、语义特征匹配和语义特征筛选等操作,从而生成最终的句子对语义匹配张量;其中,相应的操作分别通过二维卷积语义特征编码层、语义特征匹配层、语义特征筛选层而实现;
标签预测模块单元,负责对句子对语义匹配张量进行处理,从而得出一个匹配度数值,将其与设立的阈值进行比较,以此判断句子对的语义是否匹配;
句子对语义匹配模型训练单元,用于构建模型训练过程中所需要的损失函数,并完成模型的优化训练。
作为优选,所述句子对语义匹配知识库构建单元包括,
句子对数据获取单元,负责下载网络上已经公开的句子对语义匹配数据集或人工构建数据集,将其作为构建句子对语义匹配知识库的原始数据;
原始数据断字预处理或分词预处理单元,负责预处理用于构建句子对语义匹配知识库的原始数据,对其中的每个句子均进行断字或分词操作,从而构建句子对语义匹配断字处理知识库或句子对语义匹配分词处理知识库;
子知识库汇总单元,负责汇总句子对语义匹配断字处理知识库和句子对语义匹配分词处理知识库,从而构建句子对语义匹配知识库。
所述训练数据集生成单元包括,
训练正例数据构建单元,负责将句子对语义匹配知识库中两个语义一致的句子与其匹配标签1构建为训练正例数据;
训练负例数据构建单元,负责选中一个句子,随后随机选择与其不匹配的某个句子进行组合,与其匹配标签0一起构建为负例数据;
训练数据集构建单元,负责将所有的训练正例数据与训练负例数据组合在一起,并打乱其顺序,从而构建最终的训练数据集;
所述句子对语义匹配模型训练单元包括,
损失函数构建单元,负责计算句子1和句子2间语义匹配度的误差;
模型优化单元,负责训练并调整模型训练中的参数,减小预测误差。
一种存储介质,其中存储有多条指令,所述指令有处理器加载,执行上述的面面向智能问答的基于语义特征图的句子对语义匹配方法的步骤。
一种电子设备,所述电子设备包括:
上述的存储介质;以及
处理器,用于执行所述存储介质中的指令。
本发明的面向智能问答的基于语义特征图的句子对语义匹配方法具有以下优点:
(一)本发明多粒度嵌入处理,可以捕捉和利用句子中不同粒度内容所蕴含的语义信息,使得捕获的语义特征更加丰富、准确;
(二)本发明通过深层语义特征图构造网络结构,可以将一维语义信息构造为类似多颜色通道的图像形式,使得语义编码网络的选择更加灵活;可以捕获更深层次的语义特征,且该深度可自由控制,使得该结构可灵活适配不同的数据集;
(三)本发明通过二维卷积神经网络对句子进行语义编码,可以充分提取、利用句子中的局部信息和不同维度间的信息,从而提高句子对语义匹配的准确性;
(四)本发明通过二维卷积神经网络对句子对进行语义匹配,可以有效捕获句子对间的交互特征,使得生成的句子对匹配张量具有丰富的交互特征,从而提高模型的预测准确率;
附图说明
下面结合附图对本发明进一步说明。
图1为面向智能问答的基于语义特征图的句子对语义匹配方法的流程图;
图2为构建句子对语义匹配知识库的流程图;
图3为构建训练数据集的流程图;
图4为构建句子对语义匹配模型的流程图;
图5为训练句子对语义匹配模型的流程图;
图6为面向智能问答的基于语义特征图的句子对语义匹配装置的结构示意图;
图7为构建深层语义特征图构造网络的结构示意图;
图8为面向智能问答的基于语义特征图的句子对语义匹配模型的框架示意图。
具体实施方式
参照说明书附图和具体实施例对本发明的面向智能问答的基于语义特征图的句子对语义匹配方法作以下详细地说明。
实施例1:
如附图8所示,本发明的主要框架结构包含多粒度嵌入模块、深层语义特征图构造网络模块、特征转换网络模块和标签预测模块。其中,多粒度嵌入模块对输入的句子以字粒度和词粒度分别进行嵌入操作,并将结果传递给模型的深层语义特征图构造网络模块。深层语义特征图构造网络模块包含若干层编码结构,如图7所示,其中第一层编码结构对多粒度嵌入模块输出的字嵌入表示和词嵌入表示分别进行编码操作,以得到第一层字编码结果和第一层词编码结果;第一层字编码结果和第一层词编码结果经reshape处理后,被联接在一起,以生成第一层语义特征图,同时,将联接前的第一层字编码结果和第一层词编码结果传递给第二层编码结构;第二层编码结构对第一层字编码结果和第一层词编码结果分别进行编码操作,以得到第二层字编码结果和第二层词编码结果;对第二层字编码结果、第二层词编码结果进行reshape处理,并将结果和第一层语义特征图一起被联接以生成第二层语义特征图,同时,将联接前的第二层字编码结果和第二层词编码结果传递给第三层编码结构;以此类推,可以多次反复编码生成多级语义特征图;根据模型预设的层次深度,直到生成最终的深层语义特征图;该最终语义特征图将被传递给模型的特征转换网络模块。特征转换网络模块对深层语义特征图进行进一步地特征编码、特征匹配和特征筛选操作;其中,特征编码和特征匹配操作是通过二维卷积神经网络来完成的;特征筛选操作是通过二维最大池化和注意力机制实现的;最终得到句子对的匹配张量,将其传递给模型的标签预测模块。标签预测模块将句子对的匹配张量映射为指定区间上的一个浮点型数值;将其作为匹配度与预设的阈值进行比较,根据比较结果,判定句子对的语义是否匹配。具体如下:
(1)多粒度嵌入模块对输入的句子以字粒度和词粒度分别进行嵌入操作,得到句子的多粒度嵌入表示;
(2)深层语义特征图构造网络模块对句子的多粒度嵌入表示进行编码操作,得到句子的深层语义特征图;
(3)特征转换网络模块对句子对的深层语义特征图进行进一步地特征编码、特征匹配和特征筛选操作,得到句子对的匹配向量;
(4)标签预测模块将句子对的匹配张量映射为指定区间上的一个浮点型数值,将其作为匹配度与预设的阈值进行比较,根据比较结果,判定句子对的语义是否匹配。
实施例2:
如附图1所示,本发明的面向智能问答的基于语义特征图的句子对语义匹配方法,具体步骤如下:
S1、构建句子对语义匹配知识库,如附图2所示,具体步骤如下:
S101、下载网络上的数据集获取原始数据:下载网络上已经公开的句子对语义匹配数据集或人工构建数据集,将其作为构建句子对语义匹配知识库的原始数据。
举例:网络上有许多已公开的面向智能问答系统的句子对语义匹配数据集,例如LCQMC数据集【Xin Liu,Qingcai Chen,Chong Deng,Huajun Zeng,Jing Chen,DongfangLi,and Buzhou Tang.Lcqmc:A large-scale chinese question matching corpus,COLING2018】。本发明收集这些数据,将其下载下来,从而获得用于构建句子对语义匹配知识库的原始数据。
LCQMC数据集中的句子对示例,表示如下:
sentence1 世界上最悲伤的歌曲是什么?
sentence2 世界上最悲伤的是什么歌?
S102、预处理原始数据:预处理用于构建句子对语义匹配知识库的原始数据,对其中的每个句子均进行断字操作、分词操作,得到句子对语义匹配断字处理知识库、分词处理知识库。
对S101中获得的用于构建句子对语义匹配知识库的原始数据中的每个句子进行断字预处理、分词预处理,得到句子对语义匹配断字处理知识库、分词处理知识库。断字操作的具体步骤为:以中文句子中的每个字为单位,以空格作为分隔符对每个句子进行切分。分词操作的具体步骤为:使用Jieba分词工具,选择默认的精准模式对每个句子进行切分。在此操作中,为了避免语义信息的丢失,句子中的标点符号、特殊字符以及停用词在内的所有内容均被保留。
举例:以S101中展示的sentence 1为例,对其进行断字操作处理后得到“世界上最悲伤的歌曲是什么?”;使用Jieba分词工具对其进行分词操作处理后得到“世界上最悲伤的歌曲是什么?”。
S103、汇总子知识库:汇总句子对语义匹配断字处理知识库和句子对语义匹配分词处理知识库,构建句子对语义匹配知识库。
将S102中获得的句子对语义匹配断字处理知识库和句子对语义匹配分词处理知识库汇总到同一文件夹下,从而得到句子对语义匹配知识库。其流程如图2所示。这里需要注意的是,经过断字操作处理后的数据和经过分词操作处理后的数据并不会合并到同一文件中,即,句子对语义匹配知识库实际上包含两个独立的子知识库。每一个预处理后的句子均保留了其原始句子的ID信息。
S2、构建句子对语义匹配模型的训练数据集:对于句子对语义匹配知识库中的每一个句子对,若其语义一致,则该句子对可以用于构建训练正例;若其语义不一致,则该句子对可以用于构建训练负例;将一定数量的正例数据与负例数据进行混合,从而构建模型训练数据集;如附图3所示,具体步骤如下:
S201、构建训练正例:将句子对语义匹配知识库中将两个句子语义一致的句子对构建为正例,形式化为:(sentence1_char,sentence2_char,sentence1_word,sentence2_word,1);
举例:对步骤S101中展示的sentence 1和sentence 2,经过步骤S102断字操作处理和步骤S103分词操作处理后,构建的正例数据形式为:
(“世界上最悲伤的歌曲是什么?”,“世界上最悲伤的是什么歌?”,“世界上最悲伤的歌曲是什么?”,“世界上最悲伤的是什么歌?”,1)。
S202、构建训练负例:选中一个句子s1,再从句子对语义匹配知识库中随机选择一个与句子s1不匹配的句子s2,将s1与s2进行组合,构建负例,形式化为:(sentence1_char,sentence2_char,sentence1_word,sentence2_word,0);
举例:以LCQMC数据集中的一个语义不匹配的句子对“sentence1:什么是智能手环?sentence2:智能手环有什么用?”为例,经过步骤S102断字操作处理和步骤S103分词操作处理后,构建的负例数据形式为:
(“什么是智能手环?”,“智能手环有什么用?”,“什么是智能手环?”,“智能手环有什么用?”,0)。
在LCQMC数据集中,正例与负例句子对的比值为1.38:1。
S203、构建训练数据集:将经过步骤S201和步骤S202操作后所获得的全部的正例句子对数据和负例句子对数据,合并在一起,并打乱其顺序,构建最终的训练数据集。
S3、构建句子对语义匹配模型:主要操作为构建字映射转换表、构建词映射转换表、构建输入模块、构建字向量映射层、构建词向量映射层、构建深层语义特征图构造网络模块、构建特征转换网络模块、构建标签预测模块。其中,构建字映射转换表、构建词映射转换表、构建输入模块、构建字向量映射层、构建词向量映射层对应图8中的多粒度嵌入模块,其余部分均与图8中的各个模块一一对应。具体步骤如下:
S301、构建字词映射转换表:字表是通过步骤S102处理后得到的句子对语义匹配断字处理知识库来构建的。字表构建完成后,表中每个字均被映射为唯一的数字标识,其映射规则为:以数字1为起始,随后按照每个字被录入字表的顺序依次递增排序,从而形成本发明所需的字映射转换表。
举例:以步骤S102处理后的内容,“世界上最悲伤的歌曲是什么?”,构建字表及字映射转换表如下:
字词
映射 1 2 3 4 5 6 7 8 9 10 11 12 13
其后,本发明使用Word2Vec训练字向量模型,得到各字的字向量矩阵char_embedding_matrix。
举例说明:在Keras中,对于上面描述的代码实现如下所示:
w2v_model_char=genism.models.Word2Vec(w2v_corpus_char,size=char_embe dding_dim,window=5,min_count=1,sg=1,workers=4,seed=1234,iter=25)
char_embedding_matrix=numpy.zeros([len(tokenizer.char_index)+1,char_emb edding_dim])
tokenizer=keras.preprocessing.text.Tokenizer(num_words=len(char_set))
for char,idx in tokenizer.char_index.items():
char_embedding_matrix[idx,:]=w2v_model.wv[char]
其中,w2v_corpus_char为断字处理训练语料,即句子对语义匹配断字处理知识库中的所有数据;char_embedding_dim为字向量维度,本模型设置char_embedding_dim为400,char_set为字表。
S302、构建词映射转换表:词表是通过步骤S103处理后得到的句子对语义匹配分词处理知识库来构建的。词表构建完成后,表中每个词均被映射为唯一的数字标识,其映射规则为:以数字1为起始,随后按照每个词被录入词表的顺序依次递增排序,从而形成本发明所需的词映射转换表。
举例:以步骤S103处理后的内容,“世界上最悲伤的歌曲是什么?”,构建词表及词映射转换表如下:
字词 世界 悲伤 歌曲 什么
映射 1 2 3 4 5 6 7 8 9
其后,本发明使用Word2Vec训练词向量模型,得到各词的词向量矩阵word_embedding_matrix。
举例说明:在Keras中,对于上面描述的代码实现,与S301中举例说明基本一致,只是将各参数由char改为word相关的。鉴于篇幅限定,在此不再赘述。
其中,S301中举例中w2v_corpus_char更换为w2v_corpus_word,其为分词处理训练语料,即句子对语义匹配分词处理知识库中的所有数据;char_embedding_dim更换为word_embedding_dim,其为词向量维度,本模型设置word_embedding_dim为400;char_set更换为word_set,其为词表。
S303、构建输入层:输入层包括四个输入,从输入层的训练数据集样例中分别获取sentence1_char、sentence2_char、sentence1_word和sentence2_word,将其形式化为:(sentence1_char,sentence2_char,sentence1_word,sentence2_word);
对于输入句子中的每个字或词都按照字映射转换表和词映射转换表转化为相应的数字标识。
举例说明:使用步骤S201中展示的句子对作为样例,以此组成一条输入数据。其结果如下所示:
(“世界上最悲伤的歌曲是什么?”,“世界上最悲伤的是什么歌?”,“世界上最悲伤的歌曲是什么?”,“世界上最悲伤的是什么歌?”)
每条输入数据包含4个子句。针对前两个子句,根据步骤S301中的字映射转换表,将其转换为数值表示;针对后两个子句,根据步骤S302中的词映射转换表,将其转换为数值表示(假定出现在句子2中但没有出现在句子1中的词“歌”被映射为10)。输入数据的4个子句,合并表示结果如下:
(“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”)。
S304、构建字向量映射层:通过加载构建字映射转换表步骤中训练所得的字向量矩阵权重来初始化当前层的权重参数;针对输入句子sentence1_char和sentence2_char,得到其相应句子向量sentence1_char_embed、sentence2_char_embed;句子对语义匹配断字处理知识库中每一个句子都可以通过字向量映射的方式,将句子信息转化为向量形式。
举例说明:在Keras中,对于上面描述的代码实现如下所示:
char_embedding_layer=Embedding(char_embedding_matrix.shape[0],char_emb_dim,weights=[char_embedding_matrix],input_length=input_dim,trainable=False)
其中,char_embedding_matrix是构建字映射转换表步骤中训练所得的字向量矩阵权重,char_embedding_matrix.shape[0]是字向量矩阵的字表的大小,char_embedding_dim是输出的字向量的维度,input_length是输入序列的长度。
相应的句子sentence1_char和sentence2_char,经过Keras的Embedding层处理后得到相应的句子向量sentence1_char_embed、sentence2_char_embed。
S305、构建词向量映射层:通过加载构建词映射转换表步骤中训练所得的词向量矩阵权重来初始化当前层的权重参数;针对输入句子sentence1_word和sentence2_word,得到其相应句子向量sentence1_word_embed、sentence2_word_embed;句子对语义匹配分词处理知识库中每一个句子都可以通过词向量映射的方式,将句子信息转化为向量形式。
举例说明:在Keras中,对于上面描述的代码实现,与S304中基本一致,只是将各参数由char改为word相关的。鉴于篇幅限定,在此不再赘述。
相应的句子sentence1_word和sentence2_word,经过Keras的Embedding层处理后得到相应的句子向量sentence1_word_embed、sentence2_word_embed。
S306、构建深层语义特征图构造网络模块:该结构如图7所示,具体步骤如下:
第一层编码结构BiLSTM1对多粒度嵌入模块输出的字嵌入表示和词嵌入表示分别进行编码操作以得到初步的第一层字编码结果和第一层词编码结果,记为和/>通过reshape操作后,得到/>和/>其被联接以生成第一层语义特征图。具体实施见下述公式。
进一步地,将初步的第一层字编码结果和第一层词编码结果,即记为和/>传递给第二层编码结构BiLSTM2;BiLSTM2对初步的第一层字编码结果和第一层词编码结果分别进行编码操作以得到初步的第二层字编码结果和第二层词编码结果,记为/>和/>通过reshape操作后,得到/>和/>它们和第一层语义特征图一起被联接以生成第二层语义特征图/>具体实施见下述公式。
进一步地,将初步的第二层字编码结果和第二层词编码结果,即和/>传递给第三层编码结构BiLSTM3;以此类推,可以多次反复编码生成多级语义特征图;根据模型预设的层次深度,直到生成最终的深层语义特征图。对于第depth层,其具体实施见下述公式。
举例说明:本发明在LCQMC数据集上进行实施时,该结构的层数为5,每层中BiLSTM的编码维度均设置为400时可获得最优结果。此外,为避免过拟合问题,每层BiLSTM中均使用dropout策略,dropout设置为0.05时可获得最优结果。
在Keras中,对于上面描述的代码实现如下所示:
其中,sentence_embed_char是句子的字嵌入表示,sentence_embed_word是句子的词嵌入表示,400是BiLSTM的编码维度,feature_map是相应句子的深层语义特征图。
S307、构建特征转换网络模块:经过步骤S306处理后分别得到sentence1、sentence2的深层语义特征图表示,对其进行语义特征编码、语义特征匹配和语义特征筛选等操作,从而生成最终的句子对语义匹配张量;具体步骤如下:
构建二维卷积语义特征编码层:此层接收深层语义特征图构造网络模块输出的深层语义特征图作为本层的输入,然后使用二维卷积神经网络对其进行编码操作,从而得到相应的语义特征编码表示,公式如下:
/>
举例说明:本发明在LCQMC数据集上进行实施时,[x1,y1]取[3,2],sx1和sy1分别取2和1,n取32时可获得最优结果。
在Keras中,对于上面描述的代码实现如下所示:
encode_2DCNN=Conv2D(filters=32,kernel_size=(3,2),padding='Valid',strides=[2,1],data_format='channels_last',activation='relu')(feature_map)
其中,feature_map表示相应句子的深层语义特征图,32表示该卷积神经网络具有32个卷积核,encode_2DCNN表示相应句子的深层语义特征图通过该层二维卷积神经网络处理后的编码结果。
构建语义特征匹配层:此层首先联接sentence1和sentence2的语义特征编码表示和/>从而得到句子对联接张量/>公式如下:
随后,使用另一个二维卷积神经网络对进行卷积匹配处理,从而得到句子对初步匹配张量,公式如下:
举例说明:本发明在LCQMC数据集上进行实施时,[x2,y2]取[2,2],sx2和sy2分别取1和1,n取32时可获得最优结果。
在Keras中,对于上面描述的代码实现如下所示:
sentences_con=Concatenate(axis=3)([encode_2DCNN_S1,encode_2DCNN_S2])
match_2DCNN=Conv2D(filters=32,kernel_size=(2,2),padding='Valid',strides=[1,1],data_format='channels_last',activation='relu')(sentens_pairs_con)
其中,encode_2DCNN_S1、encode_2DCNN_S2分别表示sentence1、sentence2的编码结果,sentences_con代表两个句子的深层语义特征图在通道维度上的联接结果,32表示该卷积神经网络具有32个卷积核,match_2DCNN表示句子对初步匹配张量。
构建语义特征筛选层:此层接收语义特征匹配层的输出句子对初步匹配张量作为输入,然后在本层中通过两个步骤对其完成语义特征筛选操作;第一步,首先通过应用二维最大池化操作完成对句子对初步匹配张量的第一次特征筛选操作,其结果记为公式如下:/>
举例说明:本发明在LCQMC数据集上进行实施时,[x3,y3]取[3,4],sx3和sy3分别取2和2时可获得最优结果。
在Keras中,对于上面描述的代码实现如下所示:
match_maxpool=MaxPooling2D(pool_size=(3,4),padding="valid",strides=[2,2],data_format="channels_last")(match_2DCNN)
其中,match_2DCNN表示句子对初步匹配张量,match_maxpool表示对句子对初步匹配张量进行最大池化操作后的结果。
第二步,使用注意力机制得到最终的句子对语义匹配张量。具体实施见下述公式。
举例说明:在Keras中,对于上面描述的代码实现如下所示:
sentence_output=match_tensor
z=tf.multiply(tf.tanh(K.dot(sentence_output,self.w)),self.v)
z=tf.squeeze(z,axis=-1)
a=tf.nn.softmax(z)
m=K.batch_dot(a,sentence_output)
其中,match_tensor表示句子对初步匹配张量经过最大池化操作后的结果,self.w和self.v均指待训练的权重矩阵,m表示经注意力机制处理后的最终的句子对语义匹配张量
S308、构建标签预测模块:步骤S307所得到的句子对语义匹配张量将作为本模块的输入,其经过一层维度为1、激活函数为sigmoid的全连接网络处理,从而得到一个处于[0,1]之间的匹配度数值,记为ypred,最终通过与设立的阈值(0.5)进行比较,从而判断句子对间的语义是否匹配;即ypred≥0.5时,预测该句子对的语义是匹配的,否则,不匹配。
当本发明所提出的基于深层语义特征图的句子对语义匹配模型尚未进行训练时,需要进一步执行步骤S4进行训练,以优化模型参数;当该模型训练完毕时,由步骤S308可预测目标句子对的语义是否匹配。
S4、训练句子对语义匹配模型:在步骤S2所得的训练数据集上对步骤S3构建的句子对语义匹配模型进行训练,如附图5所示,具体如下:
S401、构建损失函数:由标签预测模块构建过程可知,ypred是经过句子对语义匹配模型处理后得到的匹配度计算数值,ytrue是两个句子语义是否匹配的真实标签,其取值仅限于0或1,采用交叉熵作为损失函数,公式如下:
上面描述的优化函数及其设置在Keras中使用代码表示为:
parallel_model.compile(loss="binary_crossentropy",optimizer=op,metrics=['accuracy',precision,recall,f1_score])
S402、优化训练模型:使使用RMSProp作为优化算法,除了其学习率设置为0.0015外,RMSProp的剩余超参数均选择Keras中的默认值设置;在训练数据集上,对句子对语义匹配模型进行优化训练;
举例说明:上面描述的优化函数及其设置在Keras中使用代码表示为:
optim=keras.optimizers.RMSProp(lr=0.0015)。
本发明所提出的模型在LCQMC数据集上取得了优于当前先进模型的结果,实验结果的对比具体见下表。
本发明模型和现有模型进行了比较,实验结果显示本发明方法有了很大的提升。其中,前三行是现有技术的模型的实验结果【Xin Liu,Qingcai Chen,Chong Deng,HuajunZeng,Jing Chen,Dongfang Li,and Buzhou Tang.LCQMC:A large-scale chinesequestion matching corpus,COLING2018】,最后一行是本发明模型的实验结果,由此可知本发明比现有模型有了较大提升。
实施例3:
如附图6所示,基于实施例2的面向智能问答的基于语义特征图的句子对语义匹配装置,该装置包括,
句子对语义匹配知识库构建单元,用于获取大量的句子对数据,随后对其预处理操作,从而得到符合训练要求的句子对语义匹配知识库;句子对语义匹配知识库构建单元包括,
句子对数据获取单元,负责下载网络上已经公开的句子对语义匹配数据集或人工构建数据集,将其作为构建句子对语义匹配知识库的原始数据;
原始数据断字预处理或分词预处理单元,负责预处理用于构建句子对语义匹配知识库的原始数据,对其中的每个句子均进行断字或分词操作,从而构建句子对语义匹配断字处理知识库或句子对语义匹配分词处理知识库;
子知识库汇总单元,负责汇总句子对语义匹配断字处理知识库和句子对语义匹配分词处理知识库,从而构建句子对语义匹配知识库。
训练数据集生成单元,用于根据句子对语义匹配知识库中的句子来构建用于训练的正例数据和负例数据,并且基于正例数据与负例数据来构建最终的训练数据集;训练数据集生成单元包括,
训练正例数据构建单元,负责将句子对语义匹配知识库中两个语义一致的句子与其匹配标签1构建为训练正例数据;
训练负例数据构建单元,负责选中一个句子,随后随机选择与其不匹配的某个句子进行组合,与其匹配标签0一起构建为负例数据;
训练数据集构建单元,负责将所有的训练正例数据与训练负例数据组合在一起,并打乱其顺序,从而构建最终的训练数据集;
句子对语义匹配模型构建单元,用于构建字映射转换表、词映射转换表,同时构建输入模块、字向量映射层、词向量映射层、深层语义特征图构造网络模块、特征转换网络模块和标签预测模块;句子对语义匹配模型构建单元包括,
字映射转换表或词映射转换表构建单元,负责对句子对语义匹配知识库中的每个句子按字粒度或词粒度进行切分,并将每个字或词依次存入一个列表中,从而得到一个字表或词表,随后以数字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;
深层语义特征图构造网络模块构建单元,负责将一维语义信息构造为特征图,具体操作为接收字向量映射层输出的字嵌入表示和词向量映射层输出的词嵌入表示作为输入;第一层编码结构对字嵌入表示和词嵌入表示分别进行编码操作,以得到第一层字编码结果和第一层词编码结果;第一层字编码结果和第一层词编码结果经reshape处理后,被联接在一起,以生成第一层语义特征图,同时,将联接前的第一层字编码结果和第一层词编码结果传递给第二层编码结构;第二层编码结构对第一层字编码结果和第一层词编码结果分别进行编码操作,以得到第二层字编码结果和第二层词编码结果;对第二层字编码结果、第二层词编码结果进行reshape处理,并将结果和第一层语义特征图一起被联接以生成第二层语义特征图,同时,将联接前的第二层字编码结果和第二层词编码结果传递给第三层编码结构;以此类推,可以多次反复编码生成多级语义特征图;根据模型预设的层次深度,直到生成最终的深层语义特征图;
特征转换网络模块构建单元,负责进一步处理相应句子的深层语义特征图,对其进行语义特征编码、语义特征匹配和语义特征筛选等操作,从而生成最终的句子对语义匹配张量;其中,相应的操作分别通过二维卷积语义特征编码层、语义特征匹配层、语义特征筛选层而实现;
标签预测模块单元,负责对句子对语义匹配张量进行处理,从而得出一个匹配度数值,将其与设立的阈值进行比较,以此判断句子对的语义是否匹配;
句子对语义匹配模型训练单元,用于构建模型训练过程中所需要的损失函数,并完成模型的优化训练;句子对语义匹配模型训练单元包括,
损失函数构建单元,负责计算句子1和句子2间语义匹配度的误差;
模型优化单元,负责训练并调整模型训练中的参数,减小预测误差;
实施例4:
基于实施例2的存储介质,其中存储有多条指令,指令有处理器加载,执行实施例2的面向智能问答的基于语义特征图的句子对语义匹配方法的步骤。
实施例5:
基于实施例4的电子设备,电子设备包括:实施例4的存储介质;以及处理器,用于执行实施例4的存储介质中的指令。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (3)

1.一种面向智能问答的基于语义特征图的句子对语义匹配方法,其特征在于,该方法是通过构建并训练由多粒度嵌入模块、深层语义特征图构造网络模块、特征转换网络模块和标签预测模块组成的句子对语义匹配模型,实现对句子信息的深层语义特征图表示和语义特征的二维卷积编码表示,从而获取更深层次的语义上下文信息和句子间的交互信息,同时通过二维最大池化和注意力机制生成句子对的最终匹配张量并判定句子对的匹配程度,以达到对句子对进行智能语义匹配的目标;具体如下:
多粒度嵌入模块对输入的句子以字粒度和词粒度分别进行嵌入操作,得到句子的多粒度嵌入表示;
深层语义特征图构造网络模块对句子的多粒度嵌入表示进行编码操作,得到句子的深层语义特征图;
特征转换网络模块对句子对的深层语义特征图进行进一步地特征编码、特征匹配和特征筛选操作,得到句子对的匹配向量;
标签预测模块将句子对的匹配张量映射为指定区间上的一个浮点型数值,将其作为匹配度与预设的阈值进行比较,根据比较结果,判定句子对的语义是否匹配;
所述多粒度嵌入模块用于构建字映射转换表、构建词映射转换表、构建输入模块、构建字向量映射层、构建词向量映射层;
其中,构建字映射转换表:映射规则为:以数字1为起始,随后按照每个字被录入字表的顺序依次递增排序,从而形成所需的字映射转换表;其中,字表根据句子对语义匹配断字处理知识库构建,该知识库通过对句子对语义匹配知识库的原始数据文本进行断字预处理操作而得;其后,再使用Word2Vec训练字向量模型,得到各字的字向量矩阵;
构建词映射转换表:映射规则为:以数字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;句子对语义匹配分词处理知识库中每一个句子都通过词向量映射的方式,将句子信息转化为向量形式;
所述深层语义特征图构造网络模块的构建过程具体如下:
第一层编码结构BiLSTM1对多粒度嵌入模块输出的字嵌入表示和词嵌入表示分别进行编码操作以得到初步的第一层字编码结果和第一层词编码结果,记为和/> 和/>通过reshape操作后,得到/>和/>其被联接以生成第一层语义特征图/>公式如下:
其中,公式(1.1)表示使用BiLSTM1编码多粒度嵌入模块输出的字嵌入表示,并通过reshape操作增加一个维度,其中,表示sentence1_char_embed或sentence2_char_embed,ic表示第i个字的向量表示在句子中的相对位置,/>表示对第一层字编码结果/>进行reshape处理的结果,该公式表示sentence_char_embed经过BiLSTM1处理后得到一个shape为(batch_size,time_steps,output_dimension)的张量,再通过reshape操作增加一个类似图像通道的维度从而得到一个shape为(batch_size,time_steps,output_dimension,1)的张量,该张量即为第一层字编码结果;公式(1.2)表示使用BiLSTM1编码多粒度嵌入模块输出的词嵌入表示,并通过reshape操作增加一个维度,其中,/>表示sentence1_word_embed或sentence2_word_embed,iw表示第i个词的向量表示在句子中的相对位置,/>表示对第一层词编码结果/>进行reshape处理的结果,该公式表示sentence_word_embed经过BiLSTM1处理后得到一个shape为(batch_size,time_steps,output_dimension)的张量,再通过reshape操作增加一个类似图像通道的维度从而得到一个shape为(batch_size,time_steps,output_dimension,1)的张量,该张量即为第一层词编码结果;公式(1.3)表示通过联接第一层字编码结果和第一层词编码结果的reshape操作所得结果,以获得第一层语义特征图,其中,/>表示第一层语义特征图,该特征图是将/>和/>在新增的通道维度上进行联接而得到的,其shape为(batch_size,time_steps,output_dimension,2);
将初步的第一层字编码结果和第一层词编码结果,即记为和/>传递给第二层编码结构BiLSTM2;BiLSTM2对初步的第一层字编码结果和第一层词编码结果分别进行编码操作以得到初步的第二层字编码结果和第二层词编码结果,记为/>和/> 和/>通过reshape操作后,得到/>和/>它们和第一层语义特征图一起被联接以生成第二层语义特征图/>公式如下:
其中,公式(2.1)中BiLSTM2编码的对象是初步的第一层字编码结果 表示第二层字编码结果,/>表示对第二层字编码结果进行reshape操作后的结果;公式(2.2)中BiLSTM2编码的对象是初步的第一层词编码结果/>表示第二层词编码结果,/>对第二层词编码结果进行reshape操作后的结果;/>和/>的获得步骤以及shape均与/>和/>一致;公式(2.3)除了联接第二层字编码结果和第二层字编码结果的reshape操作所得结果外,还需联接第一层语义特征图,其中,/>表示第二层语义特征图,该特征图是将/>在新增的通道维度上进行联接而得到的,其shape为(batch_size,time_steps,output_dimension,4);
将初步的第二层字编码结果和第二层词编码结果,即和/>传递给第三层编码结构BiLSTM3;根据模型预设的层次深度,直到生成最终的深层语义特征图;对于第depth层,公式如下:
其中,公式(3.1)中BiLSTMdepth编码的对象是初步的第depth-1层字编码结果 是第depth层的字编码结果,/>表示对第depth层字编码结果进行reshape操作后的结果;公式(3.2)中BiLSTMdepth编码的对象是初步的第depth-1层词编码结果/> 表示第depth层词编码结果,/>表示对第depth层词编码结果进行reshape操作后的结果;/>和/>的获得步骤以及shape均与/>和/>一致;公式(3.3)中,/>表示第depth层语义特征图,即为最终的深层语义特征图,其shape为(batch_size,time_steps,output_dimension,2*depth);
所述特征转换网络模块的构建过程具体如下:
构建二维卷积语义特征编码层:此层接收深层语义特征图构造网络模块输出的深层语义特征图作为本层的输入,然后使用二维卷积神经网络对其进行编码操作,从而得到相应的语义特征编码表示,公式如下:
其中,深层语义特征图为该层输入;公式(4.1)表示第f个卷积核对深层语义特征图的特定区域进行卷积后经ReLU函数映射的结果,其中,[x1,y1]表示卷积核的尺寸,表示第f个卷积核的权重矩阵,i和j表示卷积区域的横坐标和纵坐标,ml和mh表示深层语义特征图的长和高,i:i+x1-1,j:j+y1-1表示卷积区域,/>表示第f个卷积核的偏置矩阵,表示第f个卷积核在i:i+x1-1,j:j+y1-1区域的卷积结果;公式(4.2)表示整合第f个卷积核在每个区域的卷积结果以得到第f个卷积核的最终卷积结果,其中,sx1和sy1表示横向卷积步幅和纵向卷积步幅,/>表示第f个卷积核的最终卷积结果;公式(4.3)表示将n个卷积核的最终卷积结果进行组合,得到该层网络对于深层语义特征图的最终卷积结果,其中,/>表示该卷积神经网络对于深层语义特征图的最终卷积结果,称其为语义特征编码表示;
构建语义特征匹配层:此层首先联接sentence1和sentence2的语义特征编码表示从而得到句子对联接张量/>公式如下:
随后,使用另一个二维卷积神经网络对进行卷积匹配处理,从而得到句子对初步匹配张量,公式如下:
其中,句子对联接张量为该层输入;公式(6.1)表示第f个卷积核对句子对联接张量的特定区域进行卷积后经过ReLU函数映射的结果,其中,[x2,y2]表示卷积核的尺寸,/>表示第f个卷积核的权重矩阵,i和j表示卷积区域的横坐标和纵坐标,rl和rh表示深层语义特征图的长和高,i:i+x2-1,j:j+y2-1表示卷积区域,/>表示第f个卷积核的偏置矩阵,/>表示第f个卷积核在i:i+x2-1,j:j+y2-1区域的卷积结果;公式(6.2)表示整合第f个卷积核在每个区域的卷积结果以得到第f个卷积核的最终卷积结果,其中,sx2和sy2表示横向卷积步幅和纵向卷积步幅,/>表示第f个卷积核的最终卷积结果;公式(6.3)表示将n个卷积核的最终卷积结果进行组合,得到该层网络对于句子对联接张量的最终卷积结果,其中,/>表示该卷积神经网络对于句子对联接张量的最终卷积结果,称其为句子对初步匹配张量;
构建语义特征筛选层:此层接收语义特征匹配层的输出句子对初步匹配张量作为输入,然后在本层中通过两个步骤对其完成语义特征筛选操作;
第一步,首先通过应用二维最大池化操作完成对句子对初步匹配张量的第一次特征筛选操作,其结果记为公式如下:
其中,句子对初步匹配张量为该层输入;公式(7.1)表示对句子对初步匹配张量的特定区域进行最大池化操作,其中,[x3,y3]表示池化窗口的尺寸,i和j表示池化区域的横坐标和纵坐标,/>和/>表示句子对初步匹配张量的长和高,i:i+x2-1,j:j+y2-1表示池化区域,pi,j表示在i:i+x2-1,j:j+y2-1区域的池化结果;公式(7.2)表示整合每个区域的池化结果以得到句子对初步匹配张量的最终池化结果,其中,sx3和sy3表示横向池化步幅和纵向池化步幅,/>表示对所有区域的池化结果进行组合以得到的最终池化结果;
第二步,使用注意力机制得到最终的句子对语义匹配张量,公式如下:
其中,公式(8.1)表示对进行映射,其中,/>和/>表示模型中相应的可训练权重矩阵,表示/>经映射后的结果;公式(8.2)表示计算得出注意力权重,其中,/>表示注意力权重;公式(8.3)表示使用注意力权重生成最终的匹配向量,其中,N为/>中的特征向量的数量,/>为最终的句子对语义匹配张量。
2.根据权利要求1所述的面向智能问答的基于语义特征图的句子对语义匹配方法,其特征在于,所述标签预测模块构建过程如下:
将句子对语义匹配张量将作为本模块的输入,其经过一层维度为1、激活函数为sigmoid的全连接网络处理,从而得到一个处于[0,1]之间的匹配度数值,记为ypred,最终通过与设立的阈值0.5进行比较,从而判断句子对间的语义是否匹配;即ypred≥0.5时,预测该句子对的语义是匹配的,否则,不匹配;当句子对语义匹配模型尚未充分训练时,需要在训练数据集上进行训练,以优化模型参数;当训练完毕时,其标签预测模块可预测目标句子对的语义是否匹配。
3.根据权利要求2所述的面向智能问答的基于语义特征图的句子对语义匹配方法,其特征在于,所述句子对语义匹配知识库构建具体如下:
下载网络上的数据集获取原始数据:下载网络上已经公开的句子对语义匹配数据集或人工构建数据集,将其作为构建句子对语义匹配知识库的原始数据;
预处理原始数据:预处理用于构建句子对语义匹配知识库的原始数据,对其中的每个句子均进行断字操作、分词操作,得到句子对语义匹配断字处理知识库、分词处理知识库;
汇总子知识库:汇总句子对语义匹配断字处理知识库和句子对语义匹配分词处理知识库,构建句子对语义匹配知识库;
所述句子对语义匹配模型通过使用训练数据集进行训练而得到,训练数据集的构建过程如下:
构建训练正例:将句子对语义匹配知识库中将两个句子语义一致的句子对构建为正例,形式化为:(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);其中,sentence1_char、sentence1_word分别指代句子对语义匹配断字处理知识库和句子对语义匹配分词处理知识库中的句子1;sentence2_char、sentence2_word分别指代句子对语义匹配断字处理知识库和句子对语义匹配分词处理知识库中的句子2;0表示句子s1和句子s2的语义不匹配,是负例;
构建训练数据集:将经过构建训练正例和构建训练负例操作后所获得的全部的正例样本句子对和负例样本句子对进行组合,并打乱其顺序,构建最终的训练数据集;无论正例数据还是负例数据均包含了五个维度,即sentence1_char,sentence2_char,sentence1_word,sentence2_word,0或1;
所述句子对语义匹配模型构建完成后通过训练数据集进行句子对语义匹配模型的训练与优化,具体如下:
构建损失函数:采用交叉熵作为损失函数;
优化训练模型:使用RMSProp作为优化算法,除了其学习率设置为0.0015外,RMSProp的剩余超参数均选择Keras中的默认值设置;在训练数据集上,对句子对语义匹配模型进行优化训练。
CN202010855440.0A 2020-08-24 2020-08-24 面向智能问答的基于语义特征图的句子对语义匹配方法 Active CN112000770B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010855440.0A CN112000770B (zh) 2020-08-24 2020-08-24 面向智能问答的基于语义特征图的句子对语义匹配方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010855440.0A CN112000770B (zh) 2020-08-24 2020-08-24 面向智能问答的基于语义特征图的句子对语义匹配方法

Publications (2)

Publication Number Publication Date
CN112000770A CN112000770A (zh) 2020-11-27
CN112000770B true CN112000770B (zh) 2023-10-24

Family

ID=73470205

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010855440.0A Active CN112000770B (zh) 2020-08-24 2020-08-24 面向智能问答的基于语义特征图的句子对语义匹配方法

Country Status (1)

Country Link
CN (1) CN112000770B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112966524B (zh) * 2021-03-26 2024-01-26 湖北工业大学 基于多粒度孪生网络的中文句子语义匹配方法及系统
CN113065358B (zh) * 2021-04-07 2022-05-24 齐鲁工业大学 面向银行咨询服务基于多粒度对齐的文本对语义匹配方法
CN113065359B (zh) * 2021-04-07 2022-05-24 齐鲁工业大学 面向智能交互的句子对语义匹配方法和装置
CN113268962B (zh) * 2021-06-08 2022-05-24 齐鲁工业大学 面向建筑行业信息化服务问答系统的文本生成方法和装置
CN114238563A (zh) * 2021-12-08 2022-03-25 齐鲁工业大学 基于多角度交互的中文句子对语义智能匹配方法和装置
CN114547256B (zh) * 2022-04-01 2024-03-15 齐鲁工业大学 面向消防安全知识智能问答的文本语义匹配方法和装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111310439A (zh) * 2020-02-20 2020-06-19 齐鲁工业大学 一种基于深度特征变维机制的智能语义匹配方法和装置
CN111325028A (zh) * 2020-02-20 2020-06-23 齐鲁工业大学 一种基于深度分层编码的智能语义匹配方法和装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102540774B1 (ko) * 2018-12-04 2023-06-08 한국전자통신연구원 서브워드 임베딩 및 스킵서트 기반 문장 임베딩 방법 및 장치

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111310439A (zh) * 2020-02-20 2020-06-19 齐鲁工业大学 一种基于深度特征变维机制的智能语义匹配方法和装置
CN111325028A (zh) * 2020-02-20 2020-06-23 齐鲁工业大学 一种基于深度分层编码的智能语义匹配方法和装置

Also Published As

Publication number Publication date
CN112000770A (zh) 2020-11-27

Similar Documents

Publication Publication Date Title
CN112000770B (zh) 面向智能问答的基于语义特征图的句子对语义匹配方法
CN111310438B (zh) 基于多粒度融合模型的中文句子语义智能匹配方法及装置
CN112000772B (zh) 面向智能问答基于语义特征立方体的句子对语义匹配方法
CN112000771B (zh) 一种面向司法公开服务的句子对智能语义匹配方法和装置
CN109299216B (zh) 一种融合监督信息的跨模态哈希检索方法和系统
CN112001166B (zh) 面向政务咨询服务的智能问答句子对语义匹配方法和装置
CN111144448A (zh) 基于多尺度注意力卷积编码网络的视频弹幕情感分析方法
CN110175628A (zh) 一种基于自动搜索与知识蒸馏的神经网络剪枝的压缩算法
CN111310439B (zh) 一种基于深度特征变维机制的智能语义匹配方法和装置
CN110134946B (zh) 一种针对复杂数据的机器阅读理解方法
CN113065358B (zh) 面向银行咨询服务基于多粒度对齐的文本对语义匹配方法
CN111325028A (zh) 一种基于深度分层编码的智能语义匹配方法和装置
CN112463924B (zh) 面向智能问答基于内部相关性编码的文本意图匹配方法
CN113204633A (zh) 一种语义匹配蒸馏方法及装置
CN114238652A (zh) 一种用于端到端场景的工业故障知识图谱建立方法
CN116932722A (zh) 一种基于跨模态数据融合的医学视觉问答方法及系统
CN112860904A (zh) 一种融入外部知识的生物医疗关系抽取方法
CN115062070A (zh) 一种基于问答的文本表格数据查询方法
CN113705242B (zh) 面向教育咨询服务的智能语义匹配方法和装置
CN113920379A (zh) 一种基于知识辅助的零样本图像分类方法
CN113705241B (zh) 面向高考咨询基于多视角注意力的智能语义匹配方法与装置
CN113065359B (zh) 面向智能交互的句子对语义匹配方法和装置
CN115455162A (zh) 层次胶囊与多视图信息融合的答案句子选择方法与装置
CN112069777B (zh) 一种基于骨架的二阶段数据到文本生成方法
CN113268962B (zh) 面向建筑行业信息化服务问答系统的文本生成方法和装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant