CN115827844A - 一种基于Sparql语句生成的知识图谱问答方法和系统 - Google Patents

一种基于Sparql语句生成的知识图谱问答方法和系统 Download PDF

Info

Publication number
CN115827844A
CN115827844A CN202211609811.2A CN202211609811A CN115827844A CN 115827844 A CN115827844 A CN 115827844A CN 202211609811 A CN202211609811 A CN 202211609811A CN 115827844 A CN115827844 A CN 115827844A
Authority
CN
China
Prior art keywords
statement
question
spark
entity
query
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.)
Granted
Application number
CN202211609811.2A
Other languages
English (en)
Other versions
CN115827844B (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.)
Zhejiang Lab
Original Assignee
Zhejiang Lab
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 Zhejiang Lab filed Critical Zhejiang Lab
Priority to CN202211609811.2A priority Critical patent/CN115827844B/zh
Publication of CN115827844A publication Critical patent/CN115827844A/zh
Application granted granted Critical
Publication of CN115827844B publication Critical patent/CN115827844B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一种基于Sparql语句生成的知识图谱问答方法,包括:将本体层的知识图谱和实例层的知识图谱映射到向量空间,学习每个概念、实体和关系的向量表示;通过命名实体识别算法识别出自然语言查询语句中的所有实体,并通过实体链接算法将问题中的实体链接到知识图谱实例层中的实体;在训练集中检索K个与查询问题相似的问题以及相应的Sparql语句;对问题和候选Sparql语句信息集进行编码,并采用多头注意力机制融合它们的信息;获取基于问题的本体编码,检索基于问题的本体子图以及相应的编码,并融合信息;采用transformer的Decoder部分作为生成模型,使用问题的编码、相应Sparql语句的编码以及本体子图的编码生成基于问题的Sparql语句;执行生成的Sparql语句,查询并返回问题的答案。

Description

一种基于Sparql语句生成的知识图谱问答方法和系统
技术领域
本发明属于知识图谱问答和自然语言处理领域,具体地涉及一种基于Sparql语句生成的知识图谱问答方法和系统。
背景技术
随着网络数据的不断增加,非关系型数据实现了剧烈增长。知识图谱作为非关系型数据的主要储存方式,其规模也逐渐变得非常庞大,如何从大规模的知识图谱中获取到准确的信息得到了很大的关注。语义解析方法就是目前广泛研究的一个方向,此方法通过将自然语言问题转化成与之相对应的逻辑查询语句,最终在知识库中查询获得答案。将自然语言问句转换为可执行的Sparql查询的任务,是语义解析的一个重要分支。文本到Sparql已经被成功应用中在很多知识图谱问答系统中。
但是由于自然语言具有多样性的特点,一个问题可能有多种表述,而Sparql语句却是带有格式规范的逻辑表达式,并且需要与知识图谱库进行对齐,如何规范化的生成Sparql语句是目前研究的一个难点。现有的Sparql语句生成方法多是基于问题-Sparql语句对进行建模,忽略了知识图谱中的信息,无法很好地对齐知识图谱中的数据格式以及应对问题中未出现过的关系等内容。本体作为知识图谱中数据的映射标签和规则,蕴含了大量概念模型和逻辑基础信息。在模型中融入本体信息,有助于模型理解知识图谱格式规范,从而提升Sparql语句生成效果。
发明内容
针对现有技术存在的问题,本发明提出了一种基于Sparql语句生成的知识图谱问答方法和系统。本发明能够有效的利用本体中丰富的规则信息,在面对没见过的关系时也能够辅助生成模块生成合适的Sparql语句。
为了实现上述目的,本发明的技术方案如下:一种基于Sparql语句生成的知识图谱问答方法,具体步骤如下:
步骤一:采用知识图谱嵌入模型JOIE-TransE-CT将本体层的知识图谱和实例层的知识图谱映射到向量空间,学习每个概念、实体和关系的向量表示。
步骤二:通过命名实体识别算法识别出自然语言查询语句中的所有实体,并通过实体链接算法将问题中的实体链接到知识图谱实例层中的实体。
步骤三:在训练集中检索K个查询语句的相似问题以及相应Sparql语句。
步骤四:对问题和候选Sparql语句信息集进行编码,并采用多头注意力机制融合它们的信息。F
步骤五:获取基于问题的本体编码,检索基于问题的本体子图以及相应的编码,对它们的信息进行融合。
步骤六:采用transformer的Decoder部分作为生成模型,使用问题的编码、相应Sparql语句的编码以及本体子图的编码生成基于问题的Sparql语句。
步骤七:执行步骤六中生成的Sparql语句,查询并返回问题的答案。
其中在步骤一中在本体层和实例层之间,三元组数据主要通过类别信息相互连接,实体的类别信息作为本体概念的一部分,因此在本体层O和实例层I之间,旨在通过学习本体和对应实例的类属关系,任务本体和相应的实例通过一种非线性映射关系来链接,映射后的实体要求尽可能地与它所属类别的位置距离相近,并远离不属于的类别O′t,因此通过如下损失函数Lintra更新本体类别Ot和实体的向量Ie:
Figure BDA0003992897060000021
其中f(Ie)=σ(W0·Ie+b0),α为超参数,S为知识图谱中所有实例和本体中类别相关联的所有的三元组。
在知识图谱数据集中,对每个实例的type都进行了完整的标注,对于每一个类别,考虑可以通过其类别下的所有实例进行完全映射,因此同样通过以下损失函数对本体类别向量Ot和实体向量Ie进行更新:
Figure BDA0003992897060000022
其中
Figure BDA0003992897060000023
为所有类别为Ot实例向量平均值。
而对于知识图谱中的每个视图中的三元组,正确三元组(h,l,t)和负采样的错误三元组(h′,l′,t′),通过损失函数Li在每个mini-batch更新的实体h、t和关系l的向量:
Figure BDA0003992897060000024
其中f(h,r,t)=-||h+r-t||2
Figure BDA0003992897060000031
为知识图谱。
通过对以上的所有损失函数相加对知识图谱嵌入模型进行训练,获取到预训练好的知识图谱嵌入。
步骤二中首先获取到知识库实例层所有实体以及步骤一中得到的嵌入IE;然后通过Bert+CRF模型识别查询语句q中的所有实体e′以及其编码e′;通过余弦相似度计算识别到的实体编码e′与IE中所有实体的相似度,IE中相似度最高的实体即为问句链接到的实体e。
步骤三中将步骤一在自然语言查询语句q中识别到的实体替换为【MASK】标识。然后通过预训练模型Bert对查询语句以及训练集中
T=[(q1,l1),(q2,l2),……,(qn,ln)]中的问题进行编码:
q=BertEncoder(q) (4)
在此使用【CLS】输出作为整个句子的编码,通过相似度计算自然语言问句与训练集T中问句[q1,q2,……,qn]的相似度Sq=[sq1,sq2,……,sqn],其中相似度计算函数为:
sim(qi,qj)=qi Tqj (5)
之后对问句相似度进行排序,获取到top-K个相似度最高的问题以及它们的Sparql语句,即query-Sparql语句对Tq。考虑相关性较低的语句会对准确性进行干扰,因此筛选掉了不满足阈值p的query-Sparql语句对,得到T′q。最终输出T′q中的Sparql语句Lq=[l′1,l′2,……,l′k]作为查询问题的逻辑表达式候选信息,以及相应的问句相似度S′q=[s′q1,s′q2,……,s′qn]。
在此通过远程监督来衡量一个问题对的相似度,远程监督采用对应的Sparql的重叠程度,重叠程度高的问题对被认为相关度高,因此损失函数定义为:
Figure BDA0003992897060000032
其中wi,j是两个问题Sparql的重叠度(通过F1测量)
步骤四将步骤一中链接的实体与原始自然语言查询问题进行拼接,生成新的候选问题qnew。通过Transformer的Encoder部分获取自然语言问句qnew的向量表示q,其中θq为模型参数.
q=QueryEncoder(qnew;θq) (7)
然后对候选Sparql集Lq进行编码。同样使用Transformer的Encoder部分分别对[l′1,l′2,……,l′k]进行编码,之后对其进行拼接得到Lq=[l1;l2;……;li]。其中每个Sparql的编码为:
li=SparqlEncoder(l′i;θl) (8)
最后采用多头注意力机制获取关于问题的Sparql语句编码的注意力内容。考虑到查询问题对每个Sparql语句的关注度应从问题对出发,因此在计算查询语句对Sparql语句attention内容的时,在cross attention的基础上乘以了与他们相应问句的相似度。具体内容为:attention中的query为经过一个全连接层线性变换的问题编码q,得到qs;Key和Value为Sparql编码Lq。然后再将向量qk和Lq两两计算点积得到的交互矩阵。在交互矩阵上,在每一列的向量上做Softmax,这样第i列就是第i个查询问句对应的本体子图的attention内容,具体计算公式如下:
Figure BDA0003992897060000041
步骤五首先获取本体子图及编码,使用实体查询实例层的知识图谱获取以步骤一中获取得到实体为中心的问题对应子图,之后根据该实体链接到本体层获取问题相应的本体子图。以及对应本体层中的类型,获取以该类型为中心的对应子图。在知识图谱中,实例层通过关系“type”与本体层进行相连。由于本体包含的内容种类较多,包括类、关系、函数和公理等,在此方法中,因为此模型的目的是让模型学习到数据之间的逻辑形式以及在图谱中具体的关系表示,因此在获取的子图中仅包括类与类、类与关系以及关系与关系的相关三元组。获取到关于问题的本体图三元组Oq=[t1,t2,…,tn]以及它们的编码Oq=[t1,t2,…,tn],其中ti为三元组中关系和实体向量之和取平均。
然后采用多头注意力的交互机制来融合查询问句和本体的信息。和步骤四类似,首先采用一个全连接网络对查询问题的向量q进行转化,得到向量qo;然后再将向量qo和提取出的本体子图编码Oq两两计算点积得到的交互矩阵。
Figure BDA0003992897060000051
步骤6采用基于Transformer的Decoder部分作为解码器,其中在Decoder中第二个Multi-Head Attention的输入中,query来自于Masked Multi-Head Attention的输出,然后将步骤六生成的问题编码、对应Sparql编码以及步骤五中计算出的本体信息进行拼接,作为Keys和Values输入到模型中。将上述的6层解码器进行拼接,作为Sparql语句的完整解码器,得到最终的输出文本。训练数据集中问题对应的标准答案文本将对解码器的输出进行监督,从而使得解码器可以直接输出模型得到的答案。
在此步骤,采用标准交叉熵损失函数评估:
Figure BDA0003992897060000052
式中,li
Figure BDA0003992897060000053
分别为得分的真实值和预测值,N为训练样本数量。
步骤七执行步骤六中生成的Sparql语句,查询并返回问题的答案。
本发明还包括一种基于Sparql语句语句生成的知识图谱问答系统,包括:
向量表示学习模块,用于采用知识图谱嵌入模型JOIE-TransE-CT将本体层的知识图谱和实例层的知识图谱映射到向量空间,学习每个概念、实体和关系的向量表示;
实体识别和链接模块,用于通过命名实体识别算法识别出自然语言查询语句中的所有实体,并通过实体链接算法将问题中的实体链接到知识图谱实例层中的实体;
语句相似性查询模块,用于在训练集中检索K个查询语句的相似问题以及相应Sparql语句;
Sparql语句信息集编码模块,用于对问题和候选Sparql语句信息集进行编码,并采用多头注意力机制融合它们的信息;
本体子图和编码检索模块,用于获取基于问题的本体编码,检索基于问题的本体子图以及相应的编码,对它们的信息进行融合;
基于问题的Sparql语句生成模块,用于采用transformer的Decoder部分作为生成模型,使用问题的编码、相应Sparql语句的编码以及本体子图的编码生成基于问题的Sparql语句;
执行模块,用于执行基于问题的Sparql语句生成模块生成的Sparql语句,查询并返回问题的答案。
一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时,实现本发明的一种基于Sparql语句语句生成的知识图谱问答方法。
本发明的有益效果是:本发明在模型中引入了知识图谱的本体信息,并采用Transformer的Decoder模型来生成Sparql语句,可以同时利用问题和知识图谱中的概念和逻辑信息,这使得模型能够更加有效地训练数据。本发明利用seq2seq算法,不仅考虑到Sparql语句的格式规范,还考虑到数据的逻辑形式以及在图谱中的关系表示。有效地利用了知识图谱中的本体信息,在面对训练集中未出现过的关系时,仍旧能够生成一个合适的Sparql语句,并且能够很好地应对查询问题无法利用图谱回答的情况。利用本发明提出的问答方法,即使是面对图谱无法回答的问题(例如:查询问题的答案节点并没有在图谱中标记出),本问答系统也能够很好的应对这种情况。
附图说明
图1是本发明方法的流程图。
图2是本发明的Sparql语句生成模块架构图。
图3是本发明的本体层和实例层概念图
图4是本发明的本体层和实例层示例图
图5是本发明的系统结构图。
具体实施方式
下面结合附图进一步解释本发明的具体实施步骤。
如图1为本发明基于基于Sparql语句生成的知识图谱问答方法流程图,知识图谱问答过程具体包括以下步骤:
步骤一:采用知识图谱嵌入模型JOIE-TransE-CT将本体层的知识图谱和实例层的知识图谱映射到向量空间,学习每个概念、实体和关系的向量表示。在本体层和实例层之间,三元组数据主要通过类别信息相互连接,实体的类别信息作为本体概念的一部分,如图2所示,因此在本体层O和实例层I之间,旨在通过学习本体和对应实例的类属关系,任务本体和相应的实例通过一种非线性映射关系来链接。具体步骤为:首先将类别Ot和Ie映射到不同的低维向量空间,得到Ot和Ie,通过线性变换将实体向量Ie映射到类别向量Ot所在空间上,映射后的实体要求尽可能地与它所属类别的位置距离相近,并远离不属于的类别O′t,因此通过如下损失函数Lintra更新本体类别Ot和实体的向量Ie:
Figure BDA0003992897060000071
其中f(Ie)=σ(W0·Ie+b0),α为超参数,S为知识图谱中所有实例和本体中类别相关联的所有的三元组。
在知识图谱数据集中,对每个实例的type都进行了完整的标注,如图3所示,对于每一个类别,考虑可以通过其类别下的所有实例进行完全映射,因此同样通过以下损失函数对本体类别向量Ot和实体向量Ie进行更新:
Figure BDA0003992897060000072
其中
Figure BDA0003992897060000073
为所有类别为Ot实例向量平均值。
而对于知识图谱中的每个视图中的三元组,正确三元组(h,l,t)和负采样的错误三元组(h′,l′,t′),通过损失函数Li在每个mini-batch更新的实体h、t和关系l的向量:
Figure BDA0003992897060000074
其中f(h,r,t)=-||h+r-t||2
Figure BDA0003992897060000075
为知识图谱。
通过对以上的所有损失函数相加对知识图谱嵌入模型进行训练,获取到预训练好的知识图谱嵌入。
步骤二:通过命名实体识别算法识别出自然语言查询语句q中的所有实体,并通过实体链接算法将问题q中的实体链接到知识图谱实例层中的实体e。具体步骤为:首先获取到知识库实例层所有实体以及步骤一中得到的嵌入IE;然后通过Bert+CRF模型识别查询语句q中的所有实体e′以及其编码e′;通过余弦相似度计算识别到的实体编码e′与IE中所有实体的相似度,IE中相似度最高的实体即为问句链接到的实体e。
步骤三:在训练集中检索K个与查询问题相似的问题以及相应的Sparql语句。因为在步骤二中已经识别出自然语言查询语句的实体,因此在本步骤中主要关注Sparql的逻辑结构。具体内容为:将步骤一在自然语言查询语句q中识别到的实体替换为【MASK】标识。然后通过预训练模型Bert对查询语句以及训练集中T=[(q1,l1),(q2,l2),……,(qn,ln)]中的问题进行编码:
q=BertEncoder(q) (4)
在此使用【CLS】输出作为整个句子的编码,通过相似度计算自然语言问句与训练集T中问句[q1,q2,……,qn]的相似度Sq=[sq1,sq2,……,sqn],其中相似度计算函数为:
sim(qi,qj)=qi Tqj (5)
之后对问句相似度进行排序,获取到top-K个相似度最高的问题以及它们的Sparql语句,即query-Sparql语句对Tq。考虑相关性较低的语句会对准确性进行干扰,因此筛选掉了不满足阈值p的query-Sparql语句对,得到T′q。最终输出T′q中的Sparql语句Lq=[l′1,l′2,……,l′k]作为查询问题的逻辑表达式候选信息,以及相应的问句相似度S′q=[s′q1,s′q2,……,s′qn]。
在此通过远程监督来衡量一个问题对的相似度,远程监督采用对应的Sparql的重叠程度,重叠程度高的问题对被认为相关度高,因此损失函数定义为:
Figure BDA0003992897060000081
其中wi,j是两个问题Sparql的重叠度(通过F1测量)
步骤四:对问题q和候选Sparql语句信息集Lq进行编码,并采用多头注意力机制融合它们的信息。
首先对问题进行编码。将步骤一中链接的实体与原始自然语言查询问题进行拼接,生成新的候选问题qnew。通过Transformer的Encoder部分获取自然语言问句qnew的向量表示q,其中θq为模型参数.
q=QueryEncoder(qnew;θq) (7)
然后对候选Sparql集Lq进行编码。同样使用Transformer的Encoder部分分别对[l′1,l′2,……,l′k]进行编码,之后对其进行拼接得到Lq=[l1;l2;……;li]。其中每个Sparql的编码为:
li=SparqlEncoder(l′i;θl) (8)
最后采用多头注意力机制获取关于问题的Sparql语句编码的注意力内容。考虑到查询问题对每个Sparql语句的关注度应从问题对出发,因此在计算查询语句对Sparql语句attention内容的时,在cross attention的基础上乘以了与他们相应问句的相似度。具体内容为:attention中的query为经过一个全连接层线性变换的问题编码q,得到qs;Key和Value为Sparql编码Lq。然后再将向量qk和Lq两两计算点积得到的交互矩阵。在交互矩阵上,在每一列的向量上做Softmax,这样第i列就是第i个查询问句对应的本体子图的attention内容,具体计算公式如下:
Figure BDA0003992897060000091
步骤五:获取基于问题的本体编码,检索基于问题的本体子图以及相应的编码,对它们的信息进行融合。具体步骤为:首先获取本体子图及编码,使用实体查询实例层的知识图谱获取以步骤一中获取得到实体为中心的问题对应子图,之后根据该实体链接到本体层获取问题相应的本体子图。以及对应本体层中的类型,获取以该类型为中心的对应子图。在知识图谱中,实例层通过关系“type”与本体层进行相连。由于本体包含的内容种类较多,包括类、关系、函数和公理等,在此方法中,因为此模型的目的是让模型学习到数据之间的逻辑形式以及在图谱中具体的关系表示,因此在获取的子图中仅包括类与类、类与关系以及关系与关系的相关三元组。获取到关于问题的本体图三元组Oq=[t1,t2,…,tn]以及它们的编码Oq=[t1,t2,…,tn],其中ti为三元组中关系和实体向量之和取平均。
然后采用多头注意力的交互机制来融合查询问句和本体的信息。和步骤四类似,首先采用一个全连接网络对查询问题的向量q进行转化,得到向量qo;然后再将向量qo和提取出的本体子图编码Oq两两计算点积得到的交互矩阵。
Figure BDA0003992897060000092
步骤六:采用transformer的Decoder部分作为生成模型,使用问题的编码、相应Sparql语句的编码以及本体子图的编码生成基于问题的Sparql语句。具体模型结构图参见图2,本发明采用基于Transformer的Decoder部分作为解码器,其中在Decoder中第二个Multi-Head Attention的输入中,query来自于Masked Multi-Head Attention的输出,然后将步骤六生成的问题编码、对应Sparql编码以及步骤五中计算出的本体信息进行拼接,作为Keys和Values输入到模型中。将上述的6层解码器进行拼接,作为Sparql语句的完整解码器,得到最终的输出文本。训练数据集中问题对应的标准答案文本将对解码器的输出进行监督,从而使得解码器可以直接输出模型得到的答案。
在此步骤,采用标准交叉熵损失函数评估:
Figure BDA0003992897060000101
式中,li
Figure BDA0003992897060000102
分别为得分的真实值和预测值,N为训练样本数量。
步骤七:最后执行步骤六中生成的Sparql语句,查询并返回问题的答案。
本发明还包括用于实现本发明的一种基于Sparql语句语句生成的知识图谱问答方法的系统,如图5所示,包括:
向量表示学习模块,用于采用知识图谱嵌入模型JOIE-TransE-CT将本体层的知识图谱和实例层的知识图谱映射到向量空间,学习每个概念、实体和关系的向量表示;
实体识别和链接模块,用于通过命名实体识别算法识别出自然语言查询语句中的所有实体,并通过实体链接算法将问题中的实体链接到知识图谱实例层中的实体;
语句相似性查询模块,用于在训练集中检索K个查询语句的相似问题以及相应Sparql语句;
Sparql语句信息集编码模块,用于对问题和候选Sparql语句信息集进行编码,并采用多头注意力机制融合它们的信息;
本体子图和编码检索模块,用于获取基于问题的本体编码,检索基于问题的本体子图以及相应的编码,对它们的信息进行融合;
基于问题的Sparql语句生成模块,用于采用transformer的Decoder部分作为生成模型,使用问题的编码、相应Sparql语句的编码以及本体子图的编码生成基于问题的Sparql语句;
执行模块,用于执行基于问题的Sparql语句生成模块生成的Sparql语句,查询并返回问题的答案。
一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时,实现本发明的一种基于Sparql语句语句生成的知识图谱问答方法。

Claims (10)

1.一种基于Sparql语句生成的知识图谱问答方法,其特征在于,该方法包括以下步骤:
步骤一:采用知识图谱嵌入模型JOIE-TransE-CT将本体层的知识图谱和实例层的知识图谱映射到向量空间,学习每个概念、实体和关系的向量表示。
步骤二:通过命名实体识别算法识别出自然语言查询语句中的所有实体,并通过实体链接算法将问题中的实体链接到知识图谱实例层中的实体。
步骤三:在训练集中检索K个查询语句的相似问题以及相应Sparql语句。
步骤四:对问题和候选Sparql语句信息集进行编码,并采用多头注意力机制融合它们的信息。
步骤五:获取基于问题的本体编码,检索基于问题的本体子图以及相应的编码,对它们的信息进行融合。
步骤六:采用transformer的Decoder部分作为生成模型,使用问题的编码、相应Sparql语句的编码以及本体子图的编码生成基于问题的Sparql语句。
步骤七:执行步骤六中生成的Sparql语句,查询并返回问题的答案。
2.根据权利要求1所述的一种基于Sparql语句语句生成的知识图谱问答方法,其特征在于,在步骤一中在本体层和实例层之间,三元组数据主要通过类别信息相互连接,实体的类别信息作为本体概念的一部分,因此在本体层O和实例层I之间,旨在通过学习本体和对应实例的类属关系,任务本体和相应的实例通过一种非线性映射关系来链接,映射后的实体要求尽可能地与它所属类别的位置距离相近,并远离不属于的类别O′t,因此通过如下损失函数Lintra更新本体类别Ot和实体的向量Ie:
Figure QLYQS_1
其中f(Ie)=σ(W0·Ie+b0),α为超参数,S为知识图谱中所有实例和本体中类别相关联的所有的三元组。
在知识图谱数据集中,对每个实例的type都进行了完整的标注,对于每一个类别,考虑可以通过其类别下的所有实例进行完全映射,因此同样通过以下损失函数对本体类别向量Ot和实体向量Ie进行更新:
Figure QLYQS_2
其中
Figure QLYQS_3
为所有类别为Ot实例向量平均值。
而对于知识图谱中的每个视图中的三元组,正确三元组(h,l,t)和负采样的错误三元组(h′,l′,t′),通过损失函数Li在每个mini-batch更新的实体h、t和关系l的向量:
Figure QLYQS_4
其中f(h,r,t)=-||h+r-t||2
Figure QLYQS_5
为知识图谱。
通过对以上的所有损失函数相加对知识图谱嵌入模型进行训练,获取到预训练好的知识图谱嵌入。
3.根据权利要求1所述的一种基于Sparql语句语句生成的知识图谱问答方法,其特征在于,步骤二中首先获取到知识库实例层所有实体以及步骤一中得到的嵌入IE;然后通过Bert+CRF模型识别查询语句q中的所有实体e′以及其编码e′;通过余弦相似度计算识别到的实体编码e′与IE中所有实体的相似度,IE中相似度最高的实体即为问句链接到的实体e。
4.根据权利要求1所述的一种基于Sparql语句语句生成的知识图谱问答方法,其特征在于,步骤三中将步骤一在自然语言查询语句q中识别到的实体替换为【MASK】标识。然后通过预训练模型Bert对查询语句以及训练集中T=[(q1,l1),(q2,l2),......,(qn,ln)]中的问题进行编码:
q=BertEncoder(q) (4)
在此使用【CLS】输出作为整个句子的编码,通过相似度计算自然语言问句与训练集T中问句[q1,q2,......,qn]的相似度Sq=[sq1,sq2,......,sqn],其中相似度计算函数为:
sim(qi,qj)=qi Tqj (5)
之后对问句相似度进行排序,获取到top-K个相似度最高的问题以及它们的Sparql语句,即query-Sparql语句对Tq。考虑相关性较低的语句会对准确性进行干扰,因此筛选掉了不满足阈值p的query-Sparql语句对,得到T′q。最终输出T′q中的Sparql语句Lq=[l′1,l′2,......,l′k]作为查询问题的逻辑表达式候选信息,以及相应的问句相似度S′q=[s′q1,s′q2,......,s′qn];
在此通过远程监督来衡量一个问题对的相似度,远程监督采用对应的Sparql的重叠程度,重叠程度高的问题对被认为相关度高,因此损失函数定义为:
Figure QLYQS_6
其中wi,j是两个问题Sparql的重叠度(通过F1测量)。
5.根据权利要求1所述的一种基于Sparql语句语句生成的知识图谱问答方法,其特征在于,步骤四将步骤一中链接的实体与原始自然语言查询问题进行拼接,生成新的候选问题qnew。通过Transformer的Encoder部分获取自然语言问句qnew的向量表示q,其中θq为模型参数.
q=QueryEncoder(qnew;θq) (7)
然后对候选Sparql集Lq进行编码。同样使用Transformer的Encoder部分分别对[l′1,l′2,......,l′k]进行编码,之后对其进行拼接得到Lq=[l1;l2;......;li]。其中每个Sparql的编码为:
li=SparqlEncoder(l′i;θl) (8)
最后采用多头注意力机制获取关于问题的Sparql语句编码的注意力内容。考虑到查询问题对每个Sparql语句的关注度应从问题对出发,因此在计算查询语句对Sparql语句attention内容的时,在cross attention的基础上乘以了与他们相应问句的相似度。具体内容为:attention中的query为经过一个全连接层线性变换的问题编码q,得到qs;Key和Value为Sparql编码Lq。然后再将向量qk和Lq两两计算点积得到的交互矩阵。在交互矩阵上,在每一列的向量上做Softmax,这样第i列就是第i个查询问句对应的本体子图的attention内容,具体计算公式如下:
Figure QLYQS_7
6.根据权利要求1所述的一种基于Sparql语句语句生成的知识图谱问答方法,其特征在于,步骤五首先获取本体子图及编码,使用实体查询实例层的知识图谱获取以步骤一中获取得到实体为中心的问题对应子图,之后根据该实体链接到本体层获取问题相应的本体子图。以及对应本体层中的类型,获取以该类型为中心的对应子图。在知识图谱中,实例层通过关系“type”与本体层进行相连。由于本体包含的内容种类较多,包括类、关系、函数和公理等,在此方法中,因为此模型的目的是让模型学习到数据之间的逻辑形式以及在图谱中具体的关系表示,因此在获取的子图中仅包括类与类、类与关系以及关系与关系的相关三元组。获取到关于问题的本体图三元组Oq=[t1,t2,...,tn]以及它们的编码Oq=[t1,t2,...,tn],其中ti为三元组中关系和实体向量之和取平均。
然后采用多头注意力的交互机制来融合查询问句和本体的信息。和步骤四类似,首先采用一个全连接网络对查询问题的向量q进行转化,得到向量qo;然后再将向量qo和提取出的本体子图编码Oq两两计算点积得到的交互矩阵。
Figure QLYQS_8
7.根据权利要求1所述的一种基于Sparql语句语句生成的知识图谱问答方法,其特征在于,步骤6采用基于Transformer的Decoder部分作为解码器,其中在Decoder中第二个Multi-Head Attention的输入中,query来自于Masked Multi-Head Attention的输出,然后将步骤六生成的问题编码、对应Sparql编码以及步骤五中计算出的本体信息进行拼接,作为Keys和Values输入到模型中。将上述的6层解码器进行拼接,作为Sparql语句的完整解码器,得到最终的输出文本。训练数据集中问题对应的标准答案文本将对解码器的输出进行监督,从而使得解码器可以直接输出模型得到的答案。
在此步骤,采用标准交叉熵损失函数评估:
Figure QLYQS_9
式中,li
Figure QLYQS_10
分别为得分的真实值和预测值,N为训练样本数量。
8.根据权利要求1所述的一种基于Sparql语句语句生成的知识图谱问答方法,其特征在于,步骤七执行步骤六中生成的Sparq1语句,查询并返回问题的答案。
9.一种基于Sparql语句语句生成的知识图谱问答系统,其特征在于:包括:
向量表示学习模块,用于采用知识图谱嵌入模型JOIE-TransE-CT将本体层的知识图谱和实例层的知识图谱映射到向量空间,学习每个概念、实体和关系的向量表示;
实体识别和链接模块,用于通过命名实体识别算法识别出自然语言查询语句中的所有实体,并通过实体链接算法将问题中的实体链接到知识图谱实例层中的实体;
语句相似性查询模块,用于在训练集中检索K个查询语句的相似问题以及相应Sparql语句;
Sparql语句信息集编码模块,用于对问题和候选Sparql语句信息集进行编码,并采用多头注意力机制融合它们的信息;
本体子图和编码检索模块,用于获取基于问题的本体编码,检索基于问题的本体子图以及相应的编码,对它们的信息进行融合;
基于问题的Sparql语句生成模块,用于采用transformer的Decoder部分作为生成模型,使用问题的编码、相应Sparql语句的编码以及本体子图的编码生成基于问题的Sparql语句;
执行模块,用于执行基于问题的Sparql语句生成模块生成的Sparql语句,查询并返回问题的答案。
10.一种计算机可读存储介质,其特征在于,其上存储有程序,该程序被处理器执行时,实现权利要求1-8中任一项所述的一种基于Sparql语句语句生成的知识图谱问答方法。
CN202211609811.2A 2022-12-12 2022-12-12 一种基于Sparql语句生成的知识图谱问答方法和系统 Active CN115827844B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211609811.2A CN115827844B (zh) 2022-12-12 2022-12-12 一种基于Sparql语句生成的知识图谱问答方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211609811.2A CN115827844B (zh) 2022-12-12 2022-12-12 一种基于Sparql语句生成的知识图谱问答方法和系统

Publications (2)

Publication Number Publication Date
CN115827844A true CN115827844A (zh) 2023-03-21
CN115827844B CN115827844B (zh) 2023-08-08

Family

ID=85545720

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211609811.2A Active CN115827844B (zh) 2022-12-12 2022-12-12 一种基于Sparql语句生成的知识图谱问答方法和系统

Country Status (1)

Country Link
CN (1) CN115827844B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116610964A (zh) * 2023-07-20 2023-08-18 之江实验室 一种文本相似度匹配方法、装置和计算机设备
CN117216194A (zh) * 2023-11-08 2023-12-12 天津恒达文博科技股份有限公司 文博领域知识问答方法及装置、设备和介质
CN117953351A (zh) * 2024-03-27 2024-04-30 之江实验室 一种基于模型强化学习的决策方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109766417A (zh) * 2018-11-30 2019-05-17 浙江大学 一种基于知识图谱的文学编年史问答系统的构建方法
CN112100351A (zh) * 2020-09-11 2020-12-18 陕西师范大学 一种通过问题生成数据集构建智能问答系统的方法及设备
WO2021139283A1 (zh) * 2020-06-16 2021-07-15 平安科技(深圳)有限公司 基于深度学习技术的知识图谱问答方法、装置及设备
CN113590779A (zh) * 2021-06-30 2021-11-02 四川大学 一种空管领域知识图谱的智能问答系统构建方法
CN115098699A (zh) * 2022-06-24 2022-09-23 中国人民解放军国防科技大学 一种基于知识图谱嵌入模型的链路预测方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109766417A (zh) * 2018-11-30 2019-05-17 浙江大学 一种基于知识图谱的文学编年史问答系统的构建方法
WO2021139283A1 (zh) * 2020-06-16 2021-07-15 平安科技(深圳)有限公司 基于深度学习技术的知识图谱问答方法、装置及设备
CN112100351A (zh) * 2020-09-11 2020-12-18 陕西师范大学 一种通过问题生成数据集构建智能问答系统的方法及设备
CN113590779A (zh) * 2021-06-30 2021-11-02 四川大学 一种空管领域知识图谱的智能问答系统构建方法
CN115098699A (zh) * 2022-06-24 2022-09-23 中国人民解放军国防科技大学 一种基于知识图谱嵌入模型的链路预测方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116610964A (zh) * 2023-07-20 2023-08-18 之江实验室 一种文本相似度匹配方法、装置和计算机设备
CN116610964B (zh) * 2023-07-20 2023-09-26 之江实验室 一种文本相似度匹配方法、装置和计算机设备
CN117216194A (zh) * 2023-11-08 2023-12-12 天津恒达文博科技股份有限公司 文博领域知识问答方法及装置、设备和介质
CN117216194B (zh) * 2023-11-08 2024-01-30 天津恒达文博科技股份有限公司 文博领域知识问答方法及装置、设备和介质
CN117953351A (zh) * 2024-03-27 2024-04-30 之江实验室 一种基于模型强化学习的决策方法

Also Published As

Publication number Publication date
CN115827844B (zh) 2023-08-08

Similar Documents

Publication Publication Date Title
CN111651557B (zh) 一种自动化文本生成方法、装置及计算机可读存储介质
CN115827844A (zh) 一种基于Sparql语句生成的知识图谱问答方法和系统
CN113468888A (zh) 基于神经网络的实体关系联合抽取方法与装置
CN114020768A (zh) 中文自然语言的sql语句生成模型的构建方法及应用
CN112256847B (zh) 融合事实文本的知识库问答方法
CN112766507B (zh) 基于嵌入式和候选子图剪枝的复杂问题知识库问答方法
CN115438674B (zh) 实体数据处理、实体链接方法、装置和计算机设备
CN113704437A (zh) 一种融合多头注意力机制和相对位置编码的知识库问答方法
CN113076421B (zh) 一种社交噪音文本实体关系抽取优化方法及系统
CN115329766B (zh) 一种基于动态词信息融合的命名实体识别方法
CN115310551A (zh) 文本分析模型训练方法、装置、电子设备和存储介质
CN115203236B (zh) 基于模板检索的文本到sql生成方法
CN113111158A (zh) 一种面向智能数据可视化的对话式问答实现方法
CN111651569B (zh) 一种电力领域的知识库问答方法及系统
CN113535897A (zh) 一种基于句法关系和意见词分布的细粒度情感分析方法
CN116561264A (zh) 一种基于知识图谱的智能问答系统的构建方法
CN115658846A (zh) 一种适用于开源软件供应链的智能搜索方法及装置
CN111666374A (zh) 一种在深度语言模型中融入额外知识信息的方法
CN117113937A (zh) 一种基于大规模语言模型的电力领域阅读理解方法和系统
CN114528400A (zh) 基于多选匹配网络的统一低样本关系抽取方法及装置
CN117609281A (zh) 一种Text2Sql方法、系统、电子设备及存储介质
CN115617954B (zh) 问答方法、装置、电子设备及存储介质
CN115408506B (zh) 联合语义解析和语义成分匹配的nl2sql的方法
CN111199152A (zh) 一种基于标签注意力机制的命名实体识别方法
CN114417880B (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