1.本发明属于大数据分析与数据挖掘领域,尤其涉及一种提高知识图谱补全精度的方法与系统。
背景技术:
2.知识图谱是一种通过大量实体与实体间关系形成的语义网络。在通过语料自动构建知识图谱的过程中,常常会出现缺失实体之间的关系,或已知头实体和关系缺少尾实体的情况,从而需要做知识图谱的补全。常用的补全方法会基于知识图谱的向量化表示方法,将知识图谱中的实体和关系转化成向量。
3.cn112883200a公开了一种面向知识图谱补全的链接预测方法,通过链接预测模型计算三元组的评分,并将评分最高的尾实体作为所预测的尾实体、将评分最高的头实体作为所预测的头实体;链接预测模型在卷积神经网络上引入了基于注意力机制的全局上下文编码模块,通过聚合局部特征来学习全局上下文信息,增强了用于进行知识图谱补全的特征表示。然而,该方案使用的全局上下文信息依然是基于知识图谱内部的信息,而没有充分考虑外部文本信息,会导致补全效果仍旧不够精准。
4.cn112035672a公开了一种知识图谱补全方法、装置、设备以及存储介质,将语义关联信息与知识图谱进行关联与重构,通过深度bi
‑
gru网络以及预设的关联强化模型对实体描述文本输入序列进行编码,得到编码后的实体关联序列信息,通过单向gru网络对实体关联序列信息进行解码,对解码后的知识图谱中的每个候选实体进行综合评分,依次将实体描述文本数据集中的每个实体链接到知识图谱中综合评分最高的候选实体,以补全知识图谱,从而增强已有知识图谱的语义关联信息。然而,该方案同样没有充分将外部文本信息的预训练模型与基于知识图谱的向量化表示相结合,会导致补全效果仍旧不够精准。
5.因此,如何将知识图谱嵌入向量与外部文本信息训练得到的向量表示进行高精度的融合补全成为本领域亟待解决的技术问题。
技术实现要素:
6.针对上述现有技术中存在的缺陷,本发明提供一种提高知识图谱补全精度的方法,可以将知识图谱嵌入向量与外部文本信息训练得到的向量表示进行融合,包括以下步骤:步骤s101、获取知识图谱三元组的正样本和负样本,所述三元组包含头实体、关系和尾实体;步骤s103、基于所述正样本和负样本,建立样本特征库和样本标签库;步骤s105、基于所述样本特征库和样本标签库,建立深度神经网络模型;步骤s107、基于所述深度神经网络模型,获取所述三元组的得分函数;步骤s109、基于所述三元组和得分函数训练实体的向量表示;步骤s111、重复上述步骤s107
‑
s109大于等于10次,获取每个实体和关系的最终向
量表示,以得到待补全的实体或关系的候选集;步骤s113、从待补全的实体或关系的候选集中依次取出候选实体或候选关系,建立三元组并代入上面的得分函数g,得到对应的分数,将这些分数排序,选取得分最高的三元组,作为最终的补全结果。
7.其中,采用外部预训练模型将上述所有正样本和负样本的实体和关系进行向量化处理,得到样本特征库。
8.其中,建立深度神经网络模型包括:假定训练具有1个隐藏层,输出为0或1的神经网络,假设输入变量为,权重矩阵,其中,n为向量的长度,m为隐藏层的单元的个数,k和i为遍历使用的参数;为激活函数;隐藏层变量为;设隐藏层对应的权重矩阵为;输出正例的概率为;输出反例的概率为。
9.其中,使用基于极大似然估计的损失函数和反向梯度传播算法,训练该神经网络模型,求解出参数。
10.其中,所述步骤s107具体包括:将上述训练好的神经网络模型作为知识图谱中的三元组的得分函数g(h, r, t),其中h、t表示实体,r表示关系。
11.其中,所述步骤s109包括:将步骤s103中实体向量化后对应的向量替换知识图谱中的实体。
12.其中,所述步骤s109还包括:为所述知识图谱中的每个关系构造相应的向量空间,则所述知识图谱中的头实体h的向量u
h
和尾实体t的向量u
t
在相应向量空间中的投影可记为 和 ,其中是投影矩阵;基于上述结果,构造损失函数为,其中u
r
为关系的向量;再次在知识图谱中构造正样本与负样本,并基于所述损失函数进行模型训练;将训练好的替换外部预训练模型中的关系向量,即令外部预训练模型中的关系向量。
13.其中,上述步骤s109具体包括:
为每一个关系r定义一个投影矩阵,为每个三元组构造损失函数为,其中 和 ,再次构造正样本与负样本,此时知识图谱没有变化,通过最小化目标函数进行模型训练,其中,为负样本集合中的头实体,为负样本集合中的尾实体,求得最佳的和,将替换外部预训练模型中的关系向量,即令外部预训练模型中的关系向量。
14.其中,所述步骤s111包括:将知识图谱中实体的向量表示更新为此次训练得到的实体的向量表示,令,,其中,v
h
和v
t
分别为外部预训练模型中的头实体向量和尾实体向量,重复步骤s107
‑
s109大于等于10次;将知识图谱中每个实体和关系最终的向量表示为以上大于等于10次迭代的平均值。
15.本发明还提出了一种提高知识图谱补全精度的系统,其包括:样本获取模块,获取知识图谱三元组的正样本和负样本,所述三元组包含头实体、关系和尾实体;样本处理模块,基于所述正样本和负样本,建立样本特征库和样本标签库;模型构建模块,基于所述样本特征库和样本标签库,建立深度神经网络模型;函数获取模块,基于所述深度神经网络模型,获取所述三元组的得分函数;向量训练模块,基于所述三元组和得分函数训练实体的向量表示;并重复获取所述三元组的得分函数和训练实体的向量表示,重复训练大于等于10次,获取每个实体和关系的最终向量表示,以得到待补全的实体或关系的候选集;图谱补全模块,从待补全的实体或关系的候选集中依次取出候选实体或候选关系,建立三元组并代入上面的得分函数g,得到对应的分数, 将这些分数排序,选取得分最高的三元组,作为最终的补全结果。
16.与现有技术相比,本发明使得实体链接更加可靠,增加了内部知识与外部知识的融合,结果稳定,结果不会受到随机构造负样本扰动的影响。且由于对不同的关系构造了不同的向量空间,使得对关系的识别准确率更高,删除了近义词识别准确率更高。
附图说明
17.通过参考附图阅读下文的详细描述,本公开示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本公开的若干实施方式,并且相同或对应的标号表示相同或对应的部分,其中:图1是示出根据本发明实施例的一种提高知识图谱补全精度的方法流程图;以及图2是示出根据本发明实施例的一种提高知识图谱补全精度的系统的示意图。
具体实施方式
18.为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施
例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
19.在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义,“多种”一般包含至少两种。
20.还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的商品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种商品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的商品或者装置中还存在另外的相同要素。
21.下面结合附图详细说明本发明的可选实施例。
22.实施例一、如图1所示,本发明公开了一种提高知识图谱补全精度的方法,包括以下步骤:步骤s101、获取知识图谱三元组的正样本和负样本,所述三元组包含头实体、关系和尾实体;步骤s103、基于所述正样本和负样本,建立样本特征库和样本标签库;步骤s105、基于所述样本特征库和样本标签库,建立深度神经网络模型;步骤s107、基于所述深度神经网络模型,获取所述三元组的得分函数;步骤s109、基于所述三元组和得分函数训练实体的向量表示;步骤s111、重复上述步骤s107
‑
s109大于等于10次,获取每个实体和关系的最终向量表示,以得到待补全的实体或关系的候选集;步骤s113、从待补全的实体或关系的候选集中依次取出候选实体或候选关系,建立三元组并代入上面的得分函数g,得到对应的分数,将这些分数排序,选取得分最高的三元组,作为最终的补全结果。
23.实施例二、本实施例提供一种提高知识图谱补全精度的方法,包括以下步骤s101~步骤s113,具体地,本实施例的步骤s101、获取知识图谱三元组的正样本和负样本,所述三元组包含头实体、关系和尾实体。
24.本实施例的步骤s103、基于所述正样本和负样本,建立样本特征库和样本标签库。
25.本实施例的步骤s105、基于所述样本特征库和样本标签库,建立深度神经网络模型。
26.本实施例的步骤s107、基于所述深度神经网络模型,获取所述三元组的得分函数;所述步骤s107具体包括:将上述训练好的神经网络模型作为知识图谱中的三元组的得分函数g(h, r, t),其中h、t表示实体,r表示关系,具体地,h为头实体,t为尾实体。
27.本实施例的步骤s109、基于所述三元组和得分函数训练实体的向量表示;所述步骤s109包括:将步骤s103中实体向量化后对应的向量替换知识图谱中的实体。
28.本实施例的所述步骤s109还可以包括:为所述知识图谱中的每个关系构造相应的向量空间,则所述知识图谱中的头实体向量h和尾实体向量t在相应向量空间中的投影可记为 和 ,其中是投影矩阵;基于上述结果,构造损失函数为,其中u
r
为关系的向量;再次在知识图谱中构造正样本与负样本,并基于所述损失函数进行模型训练;将训练好的替换外部预训练模型中的关系向量,即令外部预训练模型中的关系向量;本发明实施例通过构造投影矩阵,相当于为知识图谱中的每个关系构造了相应的向量空间,可以使得实体与关系能够在不同的向量空间中分开表示。构造的损失函数可以使得头尾实体在向量空间的映射与关系向量尽可能满足像transe模型中的三角等式。其中,transe模型为知识图谱对应三元组的向量表示,具体为:,式中,<h, r, t>为三元组,h为头实体,r为关系,t为尾实体,l2指欧氏距离,其表达式为,其中,1≤i≤n,n代表向量x的长度,x
i
为x的第i个分量。
29.进一步地,该步骤s109具体可以包括:为每一个关系r定义一个投影矩阵,为每个三元组构造损失函数为,其中 和 ,再次构造正样本与负样本,此时知识图谱没有变化,通过最小化目标函数进行模型训练,其中,为负样本集合中的头实体,为负样本集合中的尾实体,求得最佳的和,将替换外部预训练模型中的关系向量,即令外部预训练模型中的关系向量。可以使得在多次(比如10次)训练之后,训练出的模型能够趋于稳定。
30.本实施例的步骤s109进行实体的训练时和上一步的训练类似,也是通过同样的目标函数来训练,所不同的是实体的训练是把固定下来了,只训练v
h
和v
t
,其中,v
h
和v
t
分别为外部预训练模型中的头实体向量和尾实体向量。
31.本实施例的步骤s111、重复上述步骤s107
‑
s109大于等于10次,获取每个实体和关系的最终向量表示,以得到待补全的实体或关系的候选集;其中,重复上述步骤s107
‑
s109时,也对关系进行了向量表示和预定的重复次数,该预定的重复次数可以与实体的重复次数相同,也可以与实体的重复次数不同;所述步骤s111包括:将知识图谱中实体的向量表示更新为此次训练得到的实体的向量表示,令,;重复步骤s107
‑
s109大于等于10次;将知识图谱中每个实体和关系最终的向量表示为以上大于等于10次迭代的平均
值,通过平均值表示的每个实体和关系形成本实施例的待补全的候选集;本实施例的步骤s113、从待补全的实体或关系的候选集中依次取出候选实体或候选关系,建立三元组并代入上面的得分函数g,得到对应的分数,将这些分数排序,选取得分最高的三元组,作为最终的补全结果。
32.本实施例在建立样本特征库时,可以采用外部预训练模型将上述所有正样本和负样本的实体和关系进行向量化处理,得到样本特征库。其中,外部与训练模型为bert预训练模型。
33.本实施基于样本特征库和样本标签库建立深度神经网络模型可以包括:假定训练具有1个隐藏层,输出为0或1的神经网络,假设输入变量为,权重矩阵,其中,n为向量的长度,m为隐藏层的单元的个数,k和i为遍历使用的参数;为激活函数,其中,e为自然常数;隐藏层变量为;设隐藏层对应的权重矩阵为;输出正例的概率为;输出反例的概率为。
34.其中,使用基于极大似然估计的损失函数和反向梯度传播算法,便可以训练该神经网络模型,求解出参数。
35.实施例三、如图2所示,本发明还提出了一种提高知识图谱补全精度的系统,其包括:样本获取模块,获取知识图谱三元组的正样本和负样本,所述三元组包含头实体、关系和尾实体;样本处理模块,基于所述正样本和负样本,建立样本特征库和样本标签库;模型构建模块,基于所述样本特征库和样本标签库,建立深度神经网络模型;函数获取模块,基于所述深度神经网络模型,获取所述三元组的得分函数;向量训练模块,基于所述三元组和得分函数训练实体的向量表示;并重复获取所述三元组的得分函数和训练实体的向量表示,重复训练大于等于10次,获取每个实体和关系的最终向量表示,以得到待补全的实体或关系的候选集;图谱补全模块,从待补全的实体或关系的候选集中依次取出候选实体或候选关系,建立三元组并代入上面的得分函数g,得到对应的分数,将这些分数排序,选取得分最高的三元组,作为最终的补全结果。
36.实施例四、
本公开实施例提供了一种非易失性计算机存储介质,所述计算机存储介质存储有计算机可执行指令,该计算机可执行指令可执行如上实施例所述的方法步骤。
37.需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于是——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd
‑
rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、rf(射频)等等,或者上述的任意合适的组合。
38.上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
39.可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言——诸如java、smalltalk、c ,还包括常规的过程式程序设计语言——诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(an)或广域网(wan)——连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
40.附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
41.描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定。
42.以上介绍了本发明的较佳实施方式,旨在使得本发明的精神更加清楚和便于理
解,并不是为了限制本发明,凡在本发明的精神和原则之内,所做的修改、替换、改进,均应包含在本发明所附的权利要求概括的保护范围之内。
转载请注明原文地址:https://doc.8miu.com/read-1550287.html