首页 / 一种知识图谱查询方法、装置、设备及存储介质

一种知识图谱查询方法、装置、设备及存储介质实质审查 发明

技术领域

[0001] 本发明涉及智能搜索技术领域,特别涉及一种知识图谱查询方法、装置、设备及存储介质。

相关背景技术

[0002] 知识图谱是一种结构化的信息存储方式,它将实体及其之间的关系以图的形式进行表示。传统的知识图谱查询方法通常基于关键词搜索或特定的图查询语言,这对于普通用户来说并不友好。此外,这种查询方式也无法准确理解查询语句的真正意图,因此检索结果的准确性和效率有待提高。并且,传统的知识图谱查询方法无法做到根据用户自然语言的语义查询相关内容。
[0003] 然而,在大模型逐渐涌现出语言理解能力之后,现有的方法中可以利用自然语料库和Cypher QL(Cypher Query Language,是图数据库提供的数据查询语言)语法对大模型进行预训练,让大模型根据用户查询语义生成相应Cypher QL语句,但是这种的方法受限于知识图谱中实体和关系的离散化表示,大模型生成的Cypher QL语句中的实体可能无法与知识图谱中的实体名称对齐,导致查询的准确度不高。

具体实施方式

[0047] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0048] 然而,在大模型逐渐涌现出语言理解能力之后,现有的方法中可以利用自然语料库和Cypher QL语法对大模型进行预训练,让大模型根据用户查询语义生成相应Cypher QL语句,但是这种的方法受限于知识图谱中实体和关系的离散化表示,大模型生成的Cypher QL语句中的实体可能无法与知识图谱中的实体名称对齐,导致查询的准确度不高。为此,本申请提供了一种知识图谱查询方案,能够有效优化查询速度,并提高了知识图谱查询的便利性和准确性,扩展了知识图谱的应用。
[0049] 参见图1所示,本发明实施例公开了一种知识图谱查询方法,包括:
[0050] 步骤S11、基于相应的知识图谱以及词嵌入算法进行向量数据库的构建,以得到相应的目标向量数据库。
[0051] 本实施例中,需要理解的是,在从知识图谱构建词嵌入数据库的过程中,首先从知识图谱中提取出所有的实体及其属性和关系,选取一个节点遍历整个知识图谱即可得到所有的实体及其属性和关系。之后使用词嵌入技术(Word2Vec、GloVe、FastText或BERT)将上述所有实体、属性和关系映射为低维稠密向量。然后创建词嵌入的向量数据库,选择一个向量数据库(如Faiss、Milvus、Annoy或Elastic Search),按照相关文档配置并创建一个向量数据库实例,将实体、属性和关系的向量插入数据库。也即,所述基于相应的知识图谱以及词嵌入算法进行向量数据库的构建,以得到相应的目标向量数据库,包括:获取相应的知识图谱中的各实体及对应的实体属性信息、各所述实体之间的关系信息;基于词嵌入算法以及各所述实体与对应的所述实体属性信息、各所述实体之间的所述关系信息进行低维稠密向量映射,以得到相应的映射结果;获取初始的向量数据库,并根据相关文档在所述向量数据库中配置并创建一个向量数据库实例;将所述映射结果中的各向量插入所述向量数据库中的所述向量数据库实例中,以得到相应的目标向量数据库。其中,GloVe,即Global Vectors for Word Representation,又称全局向量的词嵌入;Word2Vec,即Word to Vector,是用来产生词向量的相关模型;BERT,即Bidirectional  Encoder Representations from Transformers,是来自变压器的双向编码器表示。Faiss,是一个由Facebook Artificial Intelligence开发的库;Annoy,即Approximate Nearest Neighbors Oh Yeah,是高维空间求近似最近邻的一个开源库。
[0052] 此外,本实施例中,在插入向量时,需要为每个向量指定一个唯一的ID(Identity document,身份标识)。这个ID可以是实体、属性或关系的名称,也可以是一个唯一的数字ID。也即,还包括:在向量插入的过程中,进行对应的向量ID信息配置,以得到与各目标向量分别对应的目标向量ID信息。
[0053] 步骤S12、获取已预先完成预训练的初始大模型以及相应的预设数据集;其中,所述预设数据集中包括相应的自然语言查询语句以及对应的知识图谱查询语句。
[0054] 具体的,本实施例中,在开始模型微调之前,需要进行相应的准备工作。首先,需要进行基座预训练模型的选择,选择一个已经经过预训练的大模型,可以选择GLM4(General Language Model 4,第四代基座大语言模型),GPT3(GeneralPretrainedTransformer‑3,是一个自然语言处理的计算模型),T5(Text‑to‑Text Transfer Transformer,是一个文本到文本迁移的基于Transformer的NLP模型)等开源大模型。其中,NLP模型为Natural Language Processing模型,即自然语言处理模型。
[0055] 之后,准备一个包含自然查询语句输入和对应的知识图谱查询语,如Cypher QL语句的数据集,例如,输入是"找到所有在纽约出生的演员",对应的Cypher QL语句可能是"MATCH (a:Actor) WHERE a.BirthPlace='New York' RETURN a"。最后,设置模型微调的参数,包括学习率、批次大小、训练轮数等。这些参数可以根据前述的数据集大小和计算资源进行实时调整。
[0056] 步骤S13、基于所述预设数据集以及对应的模型微调参数对所述初始大模型进行模型微调,以得到微调完成后的目标大模型。
[0057] 具体的,本实施例中,在获取已预先完成预训练的初始大模型以及相应的预设数据集之后,可以开始模型微调。由于在微调过程中,模型会学习如何根据输入生成正确的Cypher QL语句。因此使用交叉熵损失函数来衡量模型的输出和真实的Cypher QL语句之间的差距,并通过反向传播和优化器更新模型的参数。也即,所述基于所述预设数据集以及对应的模型微调参数对所述初始大模型进行模型微调,以得到微调完成后的目标大模型,包括:基于所述预设数据集以及对应的模型微调参数中的学习率、训练轮数对所述初始大模型进行模型微调,并在微调过程中基于交叉熵损失函数进行模型参数更新,以得到完成所述训练轮数的目标大模型。
[0058] 此外,本实施例中,在得到所述目标大模型后,可以评估微调后得到的所述目标大模型的模型性能。具体可以通过在一个独立的测试集上运行模型,并计算某种评估指标,如准确率或F1‑Score(是一种综合考虑精确率(Precision)和召回率(Recall)的评估标准),得到相应的模型性能测试结果,以此可以查看模型性能是否满足需求。如果未满足则可再次进行微调直至满足。
[0059] 步骤S14、通过对所述目标大模型的知识图谱查询语句生成任务进行相应的思维链构造,并基于得到的思维链进行上下文设计,以激活所述目标大模型进行推理时的上下文学习能力。
[0060] 具体的,本实施例中,为激活所述目标大模型进行推理时的上下文学习能力,在此之前,需要先设计一个初始的提示语,向大模型解释清楚Cypher QL语句生成任务的定义。也即,所述目标大模型的知识图谱查询语句生成任务进行相应的思维链构造之前,还包括:
通过设计相应的初始提示语,对所述目标大模型进行知识图谱查询语句生成任务的任务定义解释。
[0061] 需要理解的是,本实施例中,所述通过对所述目标大模型的知识图谱查询语句生成任务进行相应的思维链构造,并基于得到的思维链进行上下文设计,以激活所述目标大模型进行推理时的上下文学习能力,包括:通过所述目标大模型提取当前自然语言查询语句中的所有实体、对应的实体属性信息及各实体之间的关系信息,对基于知识图谱查询语句表达所述所有实体、所述实体属性信息及所述关系信息的过程进行指导,以得到相应的思维链;通过所述思维链设计相应的few‑shot上下文,在所述目标大模型的模型提示中添加相应数量个的查询语句转换的标准答案及对应的推理过程,以激活所述目标大模型进行推理时的上下文学习能力。也就是说,在激活能力的过程中,对Cypher QL语句生成任务构造思维链,将生成任务拆解为若干步骤,指导大模型按照思维链的思路进行推理。首先让大模型提取出用户查询中的所有重要的实体及其属性,然后提取实体之间两两的相互关系,最后指导大模型用Cypher QL语句来表示前述的实体及其属性和关系。结合上述的思维链设计few‑shot上下文,在大模型的提示中加入10‑100个(具体视实际需求而定)“输入——Cypher QL语句”转换的标准答案及其思维链过程,以激活模型推理时的上下文学习能力。
[0062] 步骤S15、基于所述目标向量数据库对所述目标大模型进行相应的查询语句重构处理,以便利用得到的处理后的所述目标大模型进行知识图谱查询,并得到相应的查询结果。
[0063] 具体的,本实施例中,激活模型能力之后,利用构建好的所述目标向量数据库重构所述目标大模型生成的Cypher QL语句。首先,提取大模型生成的Cypher QL语句中的实体及其属性和关系。由于Cypher QL语句是比较结构化的语言,具体可以用基于规则的匹配方法实现这一步骤。然后,对提取出来的实体及其属性和关系进行词嵌入,利用与步骤S11中相同的词嵌入技术,以确保用户查询的词嵌入空间和知识图谱词嵌入空间的具有一致性。之后,在创建好的所述目标向量数据库中查询与大模型生成的Cypher QL语句中的实体及其属性和关系相似度最高的向量,并用该相似度最高的向量在知识图谱中表示的文本,替换大模型生成的Cypher QL语句中的文本。
[0064] 完成上述处理之后,在具体的实施方式中,可以将知识图谱用Neo4j等图数据库存储下来,并利用这些图数据库的搜索引擎以及处理后的所述目标大模型执行最终的Cypher QL语句查询,将查询结果返回给用户。
[0065] 综上可知,本实施例中,1)基于知识图谱的词嵌入:通过将知识图谱中的实体、关系和属性转化为向量形式,能够在低维空间中捕获和表示它们的语义信息。这种表示方法具有良好的可扩展性,能够处理大规模的知识图谱。2)预训练模型的微调:利用预训练的大模型(如GLM或GPT),可以将自然语言查询转化为知识图谱查询语言,如Cypher QL。通过针对Cypher QL语句生成任务的微调,模型能够理解和生成复杂的查询语句。3)构造思维链:通过构造思维链,可以指导大模型生成Cypher QL语句,帮助模型理解复杂的查询任务,提高查询的准确性。4)利用词嵌入数据库重构查询语句:通过使用词嵌入数据库中的向量重构查询语句,可以处理词汇表外的词,提高查询的准确性。这一步骤也使得当前的系统能够适应新的、未在原始训练数据中出现的查询。
[0066] 由此可见,本申请实施例中,基于相应的知识图谱以及词嵌入算法进行向量数据库的构建,以得到相应的目标向量数据库;获取已预先完成预训练的初始大模型以及相应的预设数据集;其中,所述预设数据集中包括相应的自然语言查询语句以及对应的知识图谱查询语句;基于所述预设数据集以及对应的模型微调参数对所述初始大模型进行模型微调,以得到微调完成后的目标大模型;通过对所述目标大模型的知识图谱查询语句生成任务进行相应的思维链构造,并基于得到的思维链进行上下文设计,以激活所述目标大模型进行推理时的上下文学习能力;基于所述目标向量数据库对所述目标大模型进行相应的查询语句重构处理,以便利用得到的处理后的所述目标大模型进行知识图谱查询,并得到相应的查询结果。也即,本申请中通过将知识图谱中的实体、关系和属性转化为向量形式,并以向量数据库的形式储存,能够有效优化查询速度;在进行模型微调后,针对知识图谱语句生成任务设计了与大模型推理对齐的思维链,指导大模型在语句生成任务上获得更加准确的效果,从而提高了模型输出的查询结果的准确性;利用词嵌入的语义特征将传统知识图谱的离散表示扩展为连续空间中的语义,使得用户自然语言查询中的实体能与知识图谱中的已有知识在语义层面上进行匹配,从而提高了知识图谱查询的便利性和准确性,扩展了知识图谱的应用。
[0067] 由前一实施例可知,本申请中利用构建好的目标向量数据库重构目标大模型的查询语句进行重构。为此,本实施例接下来对查询语句重构的过程进行详细描述。参见图2所示,本发明实施例公开了一种知识图谱查询方法,包括:
[0068] 步骤S21、提取目标大模型生成的查询语句中的目标实体、对应的目标实体属性信息以及所述目标实体之间的目标关系信息。
[0069] 步骤S22、对所述目标实体、对应的所述目标实体属性信息以及所述目标实体之间的所述目标关系信息进行词嵌入,以得到相应的词嵌入结果。
[0070] 步骤S23、基于所述词嵌入结果对目标向量数据库进行向量查询,以得到相应的查询结果。
[0071] 步骤S24、基于所述查询结果获取目标向量,并从知识图谱中获取与所述目标向量对应的目标文本信息。
[0072] 步骤S25、通过利用所述目标文本信息对所述查询语句中的文本信息进行替换,完成相应的查询语句重构处理,得到相应的处理后的所述目标大模型,以便在基于预设图数据库保存所述知识图谱之后,利用所述预设图数据库的搜索引擎以及处理后的所述目标大模型进行查询。
[0073] 其中,关于上述步骤S21至步骤S25的具体过程可以参考前述实施例公开的相应内容,在此不再进行赘述。
[0074] 由此可见,本申请实施例中,利用基于构建好的目标向量数据库以及词嵌入技术重构模型的查询语句,如Cypher QL查询语句。通过利用词嵌入的语义特征将传统知识图谱的离散表示形成扩展为连续空间中的语义,使得用户自然语言查询中的实体能与知识图谱中的已有知识在语义层面上进行匹配,从而有效提高了知识图谱查询的便利性以及准确性,并扩展了知识图谱的应用。
[0075] 参见图3所示,本申请实施例还相应公开了一种知识图谱查询装置,包括:
[0076] 数据库构建模块11,用于基于相应的知识图谱以及词嵌入算法进行向量数据库的构建,以得到相应的目标向量数据库;
[0077] 数据集获取模块12,用于获取已预先完成预训练的初始大模型以及相应的预设数据集;其中,所述预设数据集中包括相应的自然语言查询语句以及对应的知识图谱查询语句;
[0078] 模型微调模块13,用于基于所述预设数据集以及对应的模型微调参数对所述初始大模型进行模型微调,以得到微调完成后的目标大模型;
[0079] 思维链构造模块14,用于通过对所述目标大模型的知识图谱查询语句生成任务进行相应的思维链构造,并基于得到的思维链进行上下文设计,以激活所述目标大模型进行推理时的上下文学习能力;
[0080] 语句重构模块15,用于基于所述目标向量数据库对所述目标大模型进行相应的查询语句重构处理,以便利用得到的处理后的所述目标大模型进行知识图谱查询,并得到相应的查询结果。
[0081] 其中,关于上述各个模块更加具体的工作过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
[0082] 由此可见,本申请中通过将知识图谱中的实体、关系和属性转化为向量形式,并以向量数据库的形式储存,能够有效优化查询速度;在进行模型微调后,针对知识图谱语句生成任务设计了与大模型推理对齐的思维链,指导大模型在语句生成任务上获得更加准确的效果,从而提高了模型输出的查询结果的准确性;利用词嵌入的语义特征将传统知识图谱的离散表示扩展为连续空间中的语义,使得用户自然语言查询中的实体能与知识图谱中的已有知识在语义层面上进行匹配,从而提高了知识图谱查询的便利性和准确性,扩展了知识图谱的应用。
[0083] 在一些具体实施例中,所述数据库构建模块11,具体可以包括:
[0084] 信息获取单元,用于获取相应的知识图谱中的各实体及对应的实体属性信息、各所述实体之间的关系信息;
[0085] 映射结果获取单元,用于基于词嵌入算法以及各所述实体与对应的所述实体属性信息、各所述实体之间的所述关系信息进行低维稠密向量映射,以得到相应的映射结果;
[0086] 数据库实例创建单元,用于获取初始的向量数据库,并根据相关文档在所述向量数据库中配置并创建一个向量数据库实例;
[0087] 向量数据库构建单元,用于将所述映射结果中的各向量插入所述向量数据库中的所述向量数据库实例中,以得到相应的目标向量数据库。
[0088] 在一些具体实施例中,所述知识图谱查询装置,具体还可以包括:
[0089] ID信息获取单元,用于在向量插入的过程中,进行对应的向量ID信息配置,以得到与各目标向量分别对应的目标向量ID信息。
[0090] 在一些具体实施例中,所述模型微调模块13,具体可以包括:
[0091] 模型参数更新单元,用于基于所述预设数据集以及对应的模型微调参数中的学习率、训练轮数对所述初始大模型进行模型微调,并在微调过程中基于交叉熵损失函数进行模型参数更新,以得到完成所述训练轮数的目标大模型。
[0092] 在一些具体实施例中,所述思维链构造模块14,具体可以包括:
[0093] 思维链构造单元,用于通过所述目标大模型提取当前自然语言查询语句中的所有实体、对应的实体属性信息及各实体之间的关系信息,对基于知识图谱查询语句表达所述所有实体、所述实体属性信息及所述关系信息的过程进行指导,以得到相应的思维链;
[0094] 能力激活单元,用于通过所述思维链设计相应的few‑shot上下文,在所述目标大模型的模型提示中添加相应数量个的查询语句转换的标准答案及对应的推理过程,以激活所述目标大模型进行推理时的上下文学习能力。
[0095] 在一些具体实施例中,所述语句重构模块15,具体可以包括:
[0096] 初始提示语设计单元,用于通过设计相应的初始提示语,对所述目标大模型进行知识图谱查询语句生成任务的任务定义解释。
[0097] 在一些具体实施例中,所述知识图谱查询装置,具体还可以包括:
[0098] 信息提取单元,用于提取所述目标大模型生成的查询语句中的目标实体、对应的目标实体属性信息以及所述目标实体之间的目标关系信息;
[0099] 词嵌入单元,用于对所述目标实体、对应的所述目标实体属性信息以及所述目标实体之间的所述目标关系信息进行词嵌入,以得到相应的词嵌入结果;
[0100] 数据库查询单元,用于基于所述词嵌入结果对所述目标向量数据库进行向量查询,以得到相应的查询结果;
[0101] 文本信息获取单元,用于基于所述查询结果获取目标向量,并从所述知识图谱中获取与所述目标向量对应的目标文本信息;
[0102] 信息替换单元,用于通过利用所述目标文本信息对所述查询语句中的文本信息进行替换,完成相应的查询语句重构处理,得到相应的处理后的所述目标大模型,以便在基于预设图数据库保存所述知识图谱之后,利用所述预设图数据库的搜索引擎以及处理后的所述目标大模型进行查询。
[0103] 进一步的,本申请实施例还公开了一种电子设备,图4是根据一示例性实施例示出的电子设备20结构图,图中的内容不能认为是对本申请的使用范围的任何限制。
[0104] 图4为本申请实施例提供的一种电子设备20的结构示意图。该电子设备20,具体可以包括:至少一个处理器21、至少一个存储器22、电源23、通信接口24、输入输出接口25和通信总线26。其中,所述存储器22用于存储计算机程序,所述计算机程序由所述处理器21加载并执行,以实现前述任一实施例公开的知识图谱查询方法中的相关步骤。另外,本实施例中的电子设备20具体可以为电子计算机。
[0105] 本实施例中,电源23用于为电子设备20上的各硬件设备提供工作电压;通信接口24能够为电子设备20创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本申请技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口25,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
[0106] 另外,存储器22作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源可以包括操作系统221、计算机程序222等,存储方式可以是短暂存储或者永久存储。
[0107] 其中,操作系统221用于管理与控制电子设备20上的各硬件设备以及计算机程序222,其可以是Windows Server、Netware、Unix、Linux等。计算机程序222除了包括能够用于完成前述任一实施例公开的由电子设备20执行的知识图谱查询方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。
[0108] 进一步的,本申请还公开了一种计算机可读存储介质,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现前述公开的知识图谱查询方法。关于该方法的具体步骤可以参考前述实施例中公开的相应内容,在此不再进行赘述。
[0109] 本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
[0110] 专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
[0111] 结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD‑ROM、或技术领域内所公知的任意其它形式的存储介质中。
[0112] 最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0113] 以上对本申请所提供的技术方案进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

当前第1页 第1页 第2页 第3页
相关技术
存储介质相关技术
方法装置相关技术
齐光鹏发明人的其他相关专利技术