一种基于动态路径的知识图谱表示学习方法与流程

文档序号:16507231发布日期:2019-01-05 09:06阅读:411来源:国知局
一种基于动态路径的知识图谱表示学习方法与流程

本发明涉及知识图谱技术领域,具体涉及一种基于动态路径的知识图谱表示学习方法。



背景技术:

近年来,随着科技的不断发展,海量数据随之产生,这些数据中包含着具有不同价值的各类信息。为了更好的利用这些信息的价值,知识图谱这种以丰富直观的方式表达知识的图结构应运而生。近几年来,我们目睹了许多大规模知识图谱的兴起,包括由学术界项目发展起来的yago,nell,dbpedia和deepdive,以及由商业项目支持的微软的satori,谷歌知识图谱(google'sknowledgegraph),facebook的社交知识图谱等。

通常人们构建的知识图谱都被表示为网络形式,而这种形式需要设计专门的图算法来存储事实,若要利用这些已经存储的事实则需要对应额外的算法,这样不仅费时费力,还会受到数据稀疏问题的困扰。表示学习可以将这些事实统一刻画为三元组形式(头实体,关系,尾实体)即(h,r,t),例如:x在y这个地方出生,用三元组可以表示为(x,出生地,y)。然后将其投射到稠密低维的向量空间用实值向量表示。这样不仅能够有效解决数据稀疏问题,而且可以简单高效的计算实体和关系之间的语义信息。

基于知识图谱的知识推理旨在通过已有的知识图谱中的知识推断出新的知识或判别出现有知识中的错误。例如,在dbpedia中已知三元组(x,出生地,y),可以在很大程度上推理出缺失的三元组(x,国籍,y)。随着知识图谱的不断发展,基于知识图谱的知识推理作为知识图谱和知识图谱去噪的主要手段受到了广泛关注。而对于知识图谱表示的研究也一直吸引着众多的国内外研究者。

以transe为基础的翻译模型达到了不错的效果,但其仅仅考虑了实体对之间的直接关系即一步关系。而事实上,实体对之间存在的多步关系也蕴含着丰富的语义信息。这些从头实体开始指向尾实体的连续的多步关系被称之为路径。知识推理不仅仅局限于建模直接关系的单步推理,建模多步关系路径的多步推理受到了越来越多的关注。依据多步关系路径包含的实体之间丰富的语义信息,研究者们相继提出了一系列基于路径的表示学习模型,从路径方面考虑对知识图谱中的实体和关系进行表示学习,并取得了较为显著的提升。然而,以往这些模型的翻译原则太过严格,难以建模复杂的多步关系和实体对以及多步关系和实体对之间的直接关系的语义信息。



技术实现要素:

本发明针对现有表示学习方法中的优化原则过于严格的问题,提供一种基于动态路径的知识图谱表示学习方法,以提高知识图谱中复杂关系类型事实的学习效率。

为解决上述问题,本发明是通过以下技术方案实现的:

一种基于动态路径的知识图谱表示学习方法,具体包括步骤如下:

步骤1、基于翻译模型,建立知识图谱中三元组结构的实体向量与关系向量的优化目标,以及实体向量与路径向量的优化目标;其中

实体向量与关系向量的优化目标为:

h+r=t

实体向量与路径向量的优化目标为:

h+(p+α)=t

式中,h表示头实体向量,t表示尾实体向量,r表示头实体和尾实体之间的关系向量,p表示头实体和尾实体之间的路径向量,α为动态因子向量;

步骤2、通过损失函数将同一对实体对所对应的关系向量与路径向量联系起来,并最小化损失函数,达到优化目标;其中损失函数为

式中,γ表示设定的边际值,z表示归一化因子,h表示头实体,r表示关系,t表示尾实体,h′表示随机替换的头实体,r′表示随机替换的关系,t′表示随机替换的尾实体,p表示关系路径,(h,r,t)表示正例关系三元组,(h′,r′,t′)表示随机替换掉头实体h、关系r或尾实体t所构建的负例关系三元组,(h,r′,t)表示随机替换掉关系r所构建的负例关系三元组,s表示正例关系三元组集合,s-表示随机替换掉头实体h、关系r或尾实体t的负例关系三元组集合,s-=sh′-∪sr′-∪st′-={(h′,r,t)}∪{(h,r′,t)}∪{(h,r,t′)},sr′-表示随机替换掉关系r的负例关系三元组集合,p(h,t)表示连接头尾实体对的关系路径的集合,e(h,r,t)表示正例关系三元组的得分函数,e(h′,r′,t′)表示负例关系三元组的得分函数,r(p|h,t)表示头尾实体对的关系路径的可靠性,e(p,r)表示正例路径三元组的得分函数,e(p,r′)表示负例路径三元组的得分函数。

上述步骤1中,所述翻译模型为ptranse翻译模型。

上述步骤2中,采用随机梯度下降方法最小化损失函数。

上述步骤2中,归一化因子z为:

z=∑p∈p(h,t)r(p|h,t)

式中,p表示关系路径,p(h,t)表示连接头尾实体对的关系路径的集合,r(p|h,t)表示头尾实体对的关系路径的可靠性。

上述步骤2中,正例关系三元组(h,r,t)的得分函数e(h,r,t)为:

式中,h表示头实体向量,t表示尾实体向量,r表示头实体和尾实体之间的关系向量,l1表示l1范式,l2表示l2范式。

上述步骤2中,负例关系三元组(h′,r′,t′)的得分函数e(h′,r′,t′)分为以下三种情况:

当随机替换掉头实体h时:

当随机替换掉关系r时:

当随机替换掉尾实体t时:

式中,h′表示随机替换的头实体向量,r′表示随机替换的关系向量,t′表示随机替换的尾实体向量,l1表示l1范式,l2表示l2范式。

上述步骤2中,对于相同的头实体h和相同的尾实体t来说,正例关系三元组(h,r,t)对应的正例路径三元组(h,p,t)的得分函数e(p,r)为:

式中,r表示头实体和尾实体之间的关系向量,p表示头实体和尾实体之间的路径向量,α为动态因子向量,l1表示l1范式,l2表示l2范式。

上述步骤2中,对于相同的头实体h和相同的尾实体t来说,负例关系三元组(h,r′,t)对应的正例路径三元组(h,p,t)的得分函数e(p,r′)为:

式中,r′表示随机替换的关系向量,p表示头实体和尾实体之间的路径向量,α为动态因子向量,l1表示l1范式,l2表示l2范式。

与现有技术相比,本发明以翻译模型为基础,考虑了结构三元组(实体,关系,实体)和(实体,路径,实体)的语义信息,当(h,t)存在时,在路径的表示过程中,给其添加一个动态因子α向量。这样,在训练过程中,每一个多步关系组合而成的路径向量向着与直接关系极为相近的目标优化,那么只要其在一定范围内都将被视为表示了其语义信息,而不必必须与给定的向量严格相等。这个翻译原则更加宽松,允许一定小范围内的误差存在,只要在该误差范围内,都将被视为正确表示,从而能够在不大幅增加复杂度的同时有效区分相似路径。此外,本发明根据路径及其对应的实体对和关系的不同,动态生成向量。该动态向量互不相同,且数量级小于事实三元组向量。这样在学习相似事实时既不影响其语义信息表示又可以对其进行简单有效的区分。本发明能够有效解决现有技术对复杂关系类型事实间的多个直接关系和多个路径无法有效区分的问题,具有良好的实用性。

附图说明

图1为知识图谱中实体和关系三元组、实体和路径三元组的示例图。

图2为本发明知识图谱表示学习方法的流程示意图。

图3a为根据现有知识图谱表示学习方法得到的三元组表示知识的示例图。

图3b为根据本发明知识图谱表示学习方法得到的三元组表示知识的示例图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实例,并参照附图,对本发明进一步详细说明。

图1为知识图谱中实体和关系三元组、实体和路径三元组的示例图。其中,矩形表示的节点如“汤姆”、“巴黎”、“里昂”及“法国”等都为实体,两个实体之间的连边如“出生城市”、“居住城市”、“城市所属国家”及“国籍”等都为关系。我们可以得到关系三元组(汤姆,国籍,法国)和路径三元组(汤姆,出生城市,城市所属国家,法国)、(汤姆,居住城市,城市所属国家,法国),其中实体对(汤姆,法国)之间存在一个直接关系r={国籍},两个路径p={p1;p2}={出生城市,城市所属国家;居住城市,城市所属国家}。

一种基于动态路径的知识图谱表示学习方法,如图2所示,包括如下步骤:

步骤1、基于ptranse翻译模型,建立知识图谱中三元组结构如(实体,关系,实体)、(实体,路径,实体)的实体向量与关系向量、实体向量与路径向量的优化目标。

1)三元组结构(实体,关系,实体)的优化目标为:

h+r=t

其中,h表示头实体向量,t表示尾实体向量,r表示头实体h和尾实体t之间的关系向量,其得分函数为l1表示l1范式,l2表示l2范式。

2)三元组结构(实体,路径,实体)的优化目标为:

h+(p+α)=t

其中,h表示头实体向量,t表示尾实体向量,α为路径对应的动态因子向量,p表示头实体h和尾实体t之间的路径向量,其得分函数为

步骤2、通过损失函数将同一对实体对所对应的关系向量与路径向量联系起来,并最小化损失函数,达到优化目标。

1)正例关系三元组(h,r,t)的得分函数e(h,r,t)为:

式中,h表示头实体向量,t表示尾实体向量,r表示头实体和尾实体之间的关系向量,l1表示l1范式,l2表示l2范式。

2)负例关系三元组(h′,r′,t′)的得分函数e(h′,r′,t′)分为以下三种情况:

当随机替换掉头实体h时:

当随机替换掉关系r时:

当随机替换掉尾实体t时:

式中,h′表示随机替换的头实体向量,r′表示随机替换的关系向量,t′表示随机替换的尾实体向量,l1表示l1范式,l2表示l2范式。

3)对于相同的头实体h和相同的尾实体t来说,正例关系三元组(h,r,t)对应的正例路径三元组(h,p,t)的得分函数e(p,r)为:

式中,r表示头实体和尾实体之间的关系向量,p表示头实体和尾实体之间的路径向量,α为动态因子向量,l1表示l1范式,l2表示l2范式。

4)对于相同的头实体h和相同的尾实体t来说,负例关系三元组(h,r′,t)对应的正例路径三元组(h,p,t)的得分函数e(p,r′)为:

式中,r′表示随机替换的关系向量,p表示头实体和尾实体之间的路径向量,α为动态因子向量,l1表示l1范式,l2表示l2范式。

5)三元组结构(实体,关系,实体)的损失函数为:

其中,[e(h,r,t)+γ-e(h′,r′,t′)]+=max(0,e(h,r,t)+γ-e(h′,r′,t′))即返回两者之间的最大值;γ为设定的边际值;(h,r,t)表示知识图谱的三元组即正例三元组,s表示正例三元组集合;(h′,r′,t′)表示随机替换掉头实体h、关系r或尾实体t所构建的负例三元组,s-={(h′,r,t)}∪{(h,r′,t)}∪{(h,r,t′)}表示负例三元组集合;e(h′,r′,t′)表示负例关系三元组的得分函数。

6)三元组结构(实体,路径,实体)的损失函数为:

其中,e(p,r′)表示负例路径三元组的得分函数。

7)建立最终损失函数l为:

其中,p(h,t)={p1,p2,...,pn}表示连接头尾实体对(h,t)的多步关系路径p的集合,r(p|h,t)表示给定实体对(h,t)的关系路径p的可靠性,z=∑p∈p(h,t)r(p|h,t)是归一化因子。采用随机梯度下降方法最小化损失函数,学习得到知识图谱中每个实体向量、关系向量和路径向量及其之间的相互联系。

需要说明的是,最小化损失函数的过程即为最小化得分函数的过程,且最小化的过程就是达到优化目标的过程。对于实体与关系三元组,最小化损失函数的过程中,当关系r的类型为简单关系类型1-1或复杂关系类型1-n,n-1,n-n时,通过不断调整h、t和r,使h+r尽可能与t相等。由于现有方法过于严格,对于实体与路径三元组,以h+r≈t或r-p≈0为翻译原则的模型便会存在一些问题。以图1给的三元组为例,实体对(h,t)之间存在关系r={r1}和路径p={p1,p2},p1={r11,r12},p2={r21,r22}。通过训练可以得到

则p1=r1=p2,如图3a所示。而事实上它们并不一定全都相等。可能一个关系只与部分路径等价,或者一条路径与几个关系语义相等,即并不是每个关系都与所有路径严格等价。本发明提出在优化过程中给路径添加动态因子,如图3b所示,通过不断调整p、α和r,使p+α尽可能与r相等。可以得到p1+α11=r1,p2+α12=r1,由于其中各α因子为动态生成且互不相等的,α11≠α12,则p1≠r1≠p2,又由于α足够小,并不影响其相似语义信息的表达。不同于之前的模型,本文的翻译原则更灵活也更加符合事实情况。这样可以简单高效地对相似路径进行学习。

需要说明的是,尽管以上本发明所述的实施例是说明性的,但这并非是对本发明的限制,因此本发明并不局限于上述具体实施方式中。在不脱离本发明原理的情况下,凡是本领域技术人员在本发明的启示下获得的其它实施方式,均视为在本发明的保护之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1