本发明涉及知识推理技术领域,具体涉及基于元知识的知识图谱的知识推理方法、系统以及介质。
背景技术:
近些年,基于机器学习的知识推理技术发展迅猛,并且取得了十分显著的成果,实质上就是利用知识图谱中的三元组作为训练数据进行建模,利用统计学习的方法从中提取出一些逻辑规则,以此来对新的知识进行推理或判断。但基于该种方式进行的知识推理技术,由于受到机器学习模型的固有条件限制,普遍存在两个方面的问题,一是知识推理模型的训练需要大量的样本,模型训练复杂度较高;二是由于大规模稀疏知识图谱往往数据分布不均衡,现有的知识推理技术,在这种大规模稀疏知识图谱上进行推理,效果并不十分理想。
gmatching模型最先将元学习的思想应用于知识推理当中,解决了上述的两个方面的问题,但仍然有一定的提升空间,一是该模型的数据再处理部分对实体间关系语义的表达并不完全;二是该模型的推理部分,推理过程中对关系特征的提取缺少针对性。
技术实现要素:
针对上述问题,本发明提供了基于元知识的知识图谱的知识推理方法、系统以及介质,其对对实体间关系语义的表达更加完整,对于推理过程中对关系特征的提取更具有针对性。
其技术方案是这样的:一种基于元知识的知识图谱的知识推理方法,其特征在于,包括以下步骤:
步骤1:数据集构建:建立由知识图谱三元组:头实体、关系、尾实体组成的数据集;
步骤2:数据再处理:将数据集中的实体的初始化嵌入向量分别通过数据再处理模型进行再学习,获取实体本身的语义,得到最终的实体的嵌入向量;
步骤3:模型训练:构建知识推理模型,将经数据再处理的数据集中的三元组输入知识推理模型进模型训练,得到训练好的知识推理模型;
步骤4:知识推理:通过训练好的知识推理模型,对知识图谱三元组中的备选尾实体进行评分,选取评分最高的尾实体作为知识推理模型的推理结果。
进一步的,在步骤1中,建立由知识图谱三元组:头实体、关系、尾实体组成的数据集,先对数据集进行预处理,然后将数据集分成训练任务数据集traind、测试任务数据集testd以及验证任务数据集vald,训练任务数据集traind、测试任务数据集testd以及验证任务数据集vald分别对应训练任务train_task、测试任务test_task以及验证任务val_task设置。
进一步的,在步骤1中,训练任务数据集traind设置包括:
假设该训练任务数据集traind共有k种关系,则设置k个训练任务,将第m个关系所对应的任务集表示为
设定训练任务
将query集分为正负样本进行训练,即
测试任务test_task与验证任务val_task的设置方式同训练任务train_task,训练任务train_task、测试任务test_task与验证任务val_task中所有关系的集分别表示为
进一步的,在步骤2中,设定需要对实体
其中,
其中,矩阵
进一步的,在步骤3中,知识推理模型通过如下公式表示:
其中,
进一步的,在步骤3中,在训练知识推理模型时,将通过数据再处理得到的support集的few对头、尾实体嵌入向量首尾拼接,作为知识推理模型的
其中,τ为一个正常数;当知识推理模型的损失函数值趋于稳定不再变化时表示模型趋于稳定,训练停止。
进一步的,在知识推理模型训练结束后,通过测试任务数据集testd测试知识推理模型的推理是否有效;在训练分类模型的过程中,通过验证任务数据集vald监控知识推理模型的训练效果。
进一步的,在步骤4中,通过步骤3得到的训练好的知识推理模型对备选尾实体打分,得分结果score进行排序,选取得分最高的尾实体作为知识推理模型的推理结果。
一种基于元知识的知识图谱的知识推理系统,其特征在于,包括存储器、处理器以及存储在存储器上并可在处理器上运行的程序,所述处理器执行所述程序时实现上述的基于元知识的知识图谱的知识推理方法。
一种计算机可读存储介质,其上存储有程序,其特征在于:所述程序被处理器执行时实现如上述的基于元知识的知识图谱的知识推理方法。
本发明的基于元知识的知识图谱的知识推理方法中采用的知识推理模型,与gmatching模型相比,在gmatching模型的基础上主要解决了两个问题,一是通过数据再处理模型进行再学习,获取实体本身的语义,使得对于实体间关系语义的表达更加完整;二是推理模型中对关系特征的提取由于加入了注意力机制更有针对性,通过采用本发明的基于元知识的知识图谱的知识推理方法,知识推理模型的训练不需要大量的样本,知识推理模型的训练难度也不会随着知识图谱规模的增长而显著增长;此外,针对稀疏知识图谱的知识推理,相比较其他模型而言,推理准确性更有优势。
附图说明
图1为本发明的基于元知识的知识图谱的知识推理方法的流程示意图;
图2为本发明的基于元知识的知识图谱的知识推理方法的步骤1中进行数据集构建的示意图;
图3为本发明的基于元知识的知识图谱的知识推理方法的步骤2中的数据再处理模型的示意图;
图4为本发明的基于元知识的知识图谱的知识推理方法的步骤3中的推理模型的示意图;
图5为本发明的基于元知识的知识图谱的知识推理方法的模型示意图。
具体实施方式
见图1至图5,本发明的一种基于元知识的知识图谱的知识推理方法,包括以下步骤:
步骤1:数据集构建:建立由知识图谱三元组:头实体、关系、尾实体组成的数据集;
步骤2:数据再处理:将数据集中的实体的初始化嵌入向量分别通过数据再处理模型进行再学习,用于增强每个实体局部连接的表示以及获取实体本身的语义,得到最终的实体的嵌入向量;
步骤3:模型训练:构建知识推理模型,将经数据再处理的数据集中的三元组输入知识推理模型进模型训练,得到训练好的知识推理模型;
步骤4:知识推理:通过训练好的知识推理模型,对知识图谱三元组中的备选尾实体进行评分,选取评分最高的尾实体作为知识推理模型的推理结果。
见图2,具体在在步骤1中,建立由知识图谱三元组:头实体、关系、尾实体组成的数据集,先是对数据集中的数据进行清洗和分配,然后将数据集分成训练任务数据集traind、测试任务数据集testd以及验证任务数据集vald,训练任务数据集traind、测试任务数据集testd以及验证任务数据集vald分别对应训练任务train_task、测试任务test_task以及验证任务val_task设置,其中,训练任务数据集traind设置包括:
根据训练任务数据集traind中的关系数,来设定训练任务的个数,假设该训练任务数据集traind共有k种关系,则设置k个训练任务,将第m个关系所对应的任务集表示为
设定训练任务
为了进一步提升训练效率,将query集分为正负样本进行训练,即
测试任务test_task与验证任务val_task的设置方式同训练任务train_task,训练任务train_task、测试任务test_task与验证任务val_task中所有关系的集分别表示为
见图3,具体在步骤2中,考虑到步骤1中得到的实体、关系嵌入向量并没有考虑到知识图谱的结构特点,通过对实体嵌入向量进行再学习,使得最终得到的嵌入向量语义更加丰富,具体而言,设定需要对实体
其中,
其中,矩阵
在步骤2中,通过将实体本身的语义加入到最终的实体嵌入向量当中,使得语义信息更加丰富。
见图4,在步骤3中,知识推理模型通过如下公式表示:
其中,
在步骤3中,是以数据再处理模型处理得到的实体、关系嵌入向量作为推理模型的输入,来对知识进行推理,输出所有备选尾实体的得分,以此作为尾实体推理的依据。
具体在本实施例中的知识推理模型,采用few-shot方法,并且加入了注意力机制,在步骤3中,在训练知识推理模型时,将通过数据再处理得到的support集的few对头、尾实体嵌入向量首尾拼接,作为知识推理模型的
其中,τ为一个正常数;当知识推理模型的损失函数值趋于稳定不再变化时表示模型趋于稳定,训练停止。
在本实施例中,在知识推理模型训练结束后,通过测试任务数据集testd测试知识推理模型的推理是否有效;在训练分类模型的过程中,通过验证任务数据集vald监控知识推理模型的训练效果。
在步骤4中,通过步骤3得到的训练好的知识推理模型对备选尾实体打分,得分结果score进行排序,选取得分最高的尾实体作为知识推理模型的推理结果。
为了便于理解本发明的技术方案以及知识图谱相关技术的内容,以下举例说明本发明的基于元知识的知识图谱的知识推理方法的改进:
在本发明的步骤2中数据再处理模型上的改进:
例如我们表示"西安"这个实体的嵌入向量,需要多个以西安为头实体的三元组,比如,<西安,属于,陕西>,<西安,是,古都>,<西安,是,省会>等,基于这些三元组,通过数据再处理模型对西安这个实体进行表示时,我们主要考虑通过与该头实体直接相连的关系和尾实体向量的提取得到该头实体的结构语义,比如通过将<属于,陕西>,<是,古都>,<是,省会>输入数据再处理模型,输出西安这个实体结构向量表示;数据再处理模型同时还考虑到了头实体本身初始化向量的语义,例如在对西安这个实体进行表示时,在原有模型的基础上,还加入了西安这个实体的初始化向量,通过这种改进,使得我们的数据再处理模型结构更完整,语义更丰富。
在本发明的步骤3中知识推理模型上的改进:
由于one-shot思想的限制,gmatching推理模型中每个训练任务train_task中的support集合,只有1个基于该训练任务对应关系的三元组组成,实际应用中,直接将该三元组的头尾实体对应的再处理向量进行拼接,作为模型中的support输入向量,事实上该向量对训练任务所对应的特定关系的语义表示并不完全,例如:若训练任务对应的训练关系是“属于”,考虑三元组<西安,属于,陕西>的头、尾实体<西安,陕西>,该二元组对“属于”关系的语义表达并不完全,除了“属于”以外,头尾实体间还有可能是“位于”等关系,因此,该模型的support输入向量,并不能完全表示训练任务对应关系的语义。
为此,我们在gmatching推理模型的基础上提出了基于注意力机制,采用了few-shot机制的知识推理模型,该模型考虑到gmr模型中单个三元组对特定关系语义表达不完全的问题,将one-shot思想改进为few-shot思想,对应步骤1中的数据集构建内容,同时,为了进一步提升推理模型的推理效果,我们加入了注意力机制。
本发明的基于元知识的知识图谱的知识推理方法中采用的知识推理模型,与gmatching模型相比,在gmatching模型的基础上主要解决了两个问题,一是通过数据再处理模型进行再学习,获取实体本身的语义,使得对于实体间关系语义的表达更加完整;二是推理模型中对关系特征的提取由于加入了注意力机制更有针对性,通过采用本发明的基于元知识的知识图谱的知识推理方法,知识推理模型的训练不需要大量的样本,知识推理模型的训练难度也不会随着知识图谱规模的增长而显著增长;此外,针对稀疏知识图谱的知识推理,相比较其他模型而言,推理准确性更有优势。
在本发明的实施例中,还给出了一种基于元知识的知识图谱的知识推理系统,包括存储器、处理器以及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现上述的基于元知识的知识推理的方法。
在上述基于元知识的知识图谱的知识推理系统的实现中,存储器和处理器之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可以通过一条或者多条通信总线或信号线实现电性连接,如可以通过总线连接。存储器中存储有实现数据访问控制方法的计算机执行指令,包括至少一个可以软件或固件的形式存储于存储器中的软件功能模块,处理器通过运行存储在存储器内的软件程序以及模块,从而执行各种功能应用以及数据处理。
存储器可以是,但不限于,随机存取存储器(randomaccessmemory,简称:ram),只读存储器(readonlymemory,简称:rom),可编程只读存储器(programmableread-onlymemory,简称:prom),可擦除只读存储器(erasableprogrammableread-onlymemory,简称:eprom),电可擦除只读存储器(electricerasableprogrammableread-onlymemory,简称:eeprom)等。其中,存储器用于存储程序,处理器在接收到执行指令后,执行程序。
处理器可以是一种集成电路芯片,具有信号的处理能力。上述的处理器可以是通用处理器,包括中央处理器(centralprocessingunit,简称:cpu)、网络处理器(networkprocessor,简称:np)等。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
在本发明的实施例中,还给出了一种计算机可读存储介质,其上存储有程序,程序被处理器执行时实现如上述的基于元知识的知识图谱的知识推理方法。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、系统、或计算机可读存储介质。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、系统、计算机可读存储介质的流程图和/或方框图来描述的。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图中指定的功能的步骤。
以上对本发明所提供的基于元知识的知识图谱的知识推理方法、基于元知识的知识图谱的知识推理系统、一种计算机可读存储介质的应用进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本发明的限制。
1.一种基于元知识的知识图谱的知识推理方法,其特征在于,包括以下步骤:
步骤1:数据集构建:建立由知识图谱三元组:头实体、关系、尾实体组成的数据集;
步骤2:数据再处理:将数据集中的实体的初始化嵌入向量分别通过数据再处理模型进行再学习,获取实体本身的语义,得到最终的实体的嵌入向量;
步骤3:模型训练:构建知识推理模型,将经数据再处理的数据集中的三元组输入知识推理模型进模型训练,得到训练好的知识推理模型;
步骤4:知识推理:通过训练好的知识推理模型,对知识图谱三元组中的备选尾实体进行评分,选取评分最高的尾实体作为知识推理模型的推理结果。
2.根据权利要求1所述的一种基于元知识的知识图谱的知识推理方法,其特征在于:在步骤1中,建立由知识图谱三元组:头实体、关系、尾实体组成的数据集,先对数据集进行预处理,然后将数据集分成训练任务数据集traind、测试任务数据集testd以及验证任务数据集vald,训练任务数据集traind、测试任务数据集testd以及验证任务数据集vald分别对应训练任务train_task、测试任务test_task以及验证任务val_task设置。
3.根据权利要求2所述的一种基于元知识的知识图谱的知识推理方法,其特征在于:在步骤1中,训练任务数据集traind设置包括:
假设该训练任务数据集traind共有k种关系,则设置k个训练任务,将第m个关系所对应的任务集表示为
设定训练任务
将query集分为正负样本进行训练,即
测试任务test_task与验证任务val_task的设置方式同训练任务train_task,训练任务train_task、测试任务test_task与验证任务val_task中所有关系的集分别表示为
4.根据权利要求3所述的一种基于元知识的知识图谱的知识推理方法,其特征在于:在步骤2中,设定需要对实体
其中,
其中,矩阵
5.根据权利要求4所述的一种基于元知识的知识图谱的知识推理方法,其特征在于:在步骤3中,知识推理模型通过如下公式表示:
其中,
6.根据权利要求5所述的一种基于元知识的知识图谱的知识推理方法,其特征在于:在步骤3中,在训练知识推理模型时,将通过数据再处理得到的support集的few对头、尾实体嵌入向量首尾拼接,作为知识推理模型的
其中,τ为一个正常数;当知识推理模型的损失函数值趋于稳定不再变化时表示模型趋于稳定,训练停止。
7.根据权利要求6所述的一种基于元知识的知识图谱的知识推理方法,其特征在于:在知识推理模型训练结束后,通过测试任务数据集testd测试知识推理模型的推理是否有效;在训练分类模型的过程中,通过验证任务数据集vald监控知识推理模型的训练效果。
8.根据权利要求6所述的一种基于元知识的知识图谱的知识推理方法,其特征在于:在步骤4中,通过步骤3得到的训练好的知识推理模型对备选尾实体打分,得分结果score进行排序,选取得分最高的尾实体作为知识推理模型的推理结果。
9.一种基于元知识的知识图谱的知识推理系统,其特征在于,包括存储器、处理器以及存储在存储器上并可在处理器上运行的程序,所述处理器执行所述程序时实现权利要求1所述的基于元知识的知识图谱的知识推理方法。
10.一种计算机可读存储介质,其上存储有程序,其特征在于:所述程序被处理器执行时实现如权利要求1所述的基于元知识的知识图谱的知识推理方法。
技术总结