一种基于循环矩阵翻译的知识图谱表示学习方法
技术领域
本发明涉及知识图谱及自然语言处理技术领域,具体涉及一种基于循环矩阵翻译的知识图谱表示学习方法。
背景技术
近年来,伴随着LOD(Linking Open Data)等项目的全面展开,Web技术的不断更新与发展,Web数据源数量急剧增加,大量RDF(Resource Description Framework)数据逐渐被发布。互联网已经由包含网页、网页之间超链接的“Web 1.0”时代发展成含有大量描述各种实体、实体之间关系的“Web2.0”时代。正在迈向基于知识互联的崭新时代——“Web 3.0”时代。知识互联网的目的是构建一个人和机器均可理解的Web,使得网络更加智能化。但是,由于Web上的内容组织结构散乱,存在内容的多源异质性,这为大数据环境下知识互联网的构建带来了巨大的挑战。拥有强大语义处理能力和开放互联能力的知识图谱(KnowledgeGraph,KG),为知识互联网的构建奠定了基础,使得“Web 3.0”时代提出的“知识之网”的愿景成了可能。
三元组是知识图谱的一种通用的表示形式,三元组的基本形式包括(实体1,关系,实体2)和(概念,属性,属性值)等,实体是知识图谱中最基本的元素,不同实体之间存在不同的关系。概念主要包括集合、对象类型、事物种类,如地理、人物等;属性是指对象具有的属性特征、特性,如国籍出生日期;属性值则是指属性所对应的值,如中国,1993-01-12等。通常使用(head,relation,tail)(简写为(h,r,t))来表示三元组,其中r表示头实体h和尾实体t之间的关系。如特朗普是美国总统这一知识,在知识图谱中可以使用(特朗普,是......总统,美国)这一三元组表示。
现代知识图谱如YAGO,DBpedia和Freebase涵盖了数百万个实体的数十亿个事实,并且已经在问答系统,结构化搜索和数字助理中找到了重要的应用。最近,知识图谱的向量空间嵌入已经受到相当大的关注,因为它们可以用于创建整个知识图谱的统计模型,即预测图中任何可能的关系实例(边缘)的概率。这些模型可以用于从已知事实后去获取新知识(链接预测),消歧实体(实体决议),提取分类法和概率问题回答。此外,知识图谱的嵌入已被用于支持机器阅读和评估网站的可信度。然而,现有的嵌入模型可以捕获关系数据中的实体与关系的丰富交互性是在可扩展性方面经常受到限制。反之亦然,可以有效计算的模型往往不那么有表现力。这就导致现有的建模方式无法很好的应用于大规模的知识图谱。
发明内容
本发明所要解决的是现有的嵌入模型的表示学习方法无法捕获关系数据中实体与实体,而实体与关系的丰富交互性,并且同一实体在不同关系下应当具有不同的表示不能很好的体现的问题,提供一种基于循环矩阵翻译的知识图谱表示学习方法。
为解决上述问题,本发明是通过以下技术方案实现的:
一种基于循环矩阵翻译的知识图谱表示学习方法,包括步骤如下:
步骤1、利用向量随机生成方法将知识图谱中的实体集和关系集分别嵌入到两个向量空间,嵌入完成后通过随机替换方法为每一个正确三元组生成一个错误三元组;
步骤2、利用循环矩阵生成规则,并根据关系的不同,生成一个与该关系对应的循环矩阵;
步骤3、对于所有的三元组,对关系所链接的头实体和尾实体通过循环矩阵进行关系下的投影,以将头实体和尾实体从实体空间投影到关系空间;
步骤4、对于所有的三元组,根据关系及投影后的头实体和尾实体,计算每一个三元组的评分函数;
步骤5、构建两种不同三元组的损失函数Lrc1与Lrc2;
式中,γ为设定的边界值,r表示头实体和尾实体之间的关系的列向量,fr(h,t)表示正确三元组的评分函数,fr(h′,t′)表示错误三元组的评分函数,θ为设定的阀值,(h,r,t)表示正确三元组,S(h,r,t)表示所有正确三元组集合,(h′,r,t′)表示错误三元组,S(h′,r,t′)表示错误三元组集合;
步骤6、利用损失函数Lrc1与Lrc2在训练过程中不同时段的训练效率不同,制定损失函数的使用选择规则,通过该使用选择规则将损失函数Lrc1与Lrc2相结合使用;
步骤7、利用随机梯度下降算法最小化损失函数值,从而降低正确三元组的评分函数值,以学得实体与关系的最佳向量表示,达到优化目标。
上述步骤2中,与关系向量r=(c0,c1,…,ck-2,ck-1)对应的循环矩阵Mrc为:
其中,k为循环矩阵的阶数。
上述步骤3和4中,所有的三元组包括正确三元组和错误三元组。
上述正确三元组的评分函数fr(h,t)为:
式中,hrc表示投影后的正确头实体的列向量,trc表示投影后的正确尾实体的列向量,r表示头实体和尾实体之间的关系的列向量,表示范式,表示范式。
上述正确三元组的评分函数fr(h′,t′)为:
式中,h′rc表示投影后的错误头实体的列向量,t′rc表示投影后的错误尾实体的列向量,r表示头实体和尾实体之间的关系的列向量,表示范式,表示范式。
上述步骤6中,损失函数Lrc1与Lrc2的使用选择规则为:
式中,n为优化过程中需要循环的总次数,ωc为优化过程中循环次数的阀值,ω为当前循环次数。
与现有技术相比,本发明的主要特点是:
第一,提出了嵌入模型中一种全新的投影矩阵,并且投影矩阵具有较高的关系属性,实体经该矩阵投影后将获得关系的唯一属性,使得实体在关系下的表现形式更加的全面和准确,更加符合现实世界的事实;
第二,通过评分函数对三元组的向量表示好坏进行评判;
第三,通过采用两种不同的损失函数,并提供了使用选择规则,使二者相结合使用,更好最小化损失函数值,从而具有较强的可行性和良好的实用性;
第四,通过使用循环矩阵翻译原则,对关系数据中的丰富交互性得到了很好的捕获,使得实体的不同关系表示更加准确。
附图说明
图1本发明一种基于循环矩阵翻译的知识图谱表示学习方法的流程图。
图2知识图谱中实体与关系三元组的示例图。
图3本发明知识图谱表示学习方法循环矩阵翻译原则的示例图。
图4本发明知识图谱表示学习方法嵌入原则的示例图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实例,并参照附图,对本发明进一步详细说明。
本发明公开了一种基于循环矩阵(Cyclic Matrix)翻译原则的知识图谱表示学习方法,首先利用随机生成方法对错误三元组进行生成,并将所有实体与关系分别嵌不同空间;其次利用循环矩阵生成规则,生成循环矩阵对实体进行投影;再次通过评分函数对三元组的嵌入进行评价;最后利用两种不同损失函数将实体和关系关联起来,并使用SGD算法最小化损失函数,当达到优化目标时,即可获得知识图谱中每个实体向量和关系向量的最佳表示,从而更好的表示实体与关系之间的联系,并能够很好的应用于大规模的知识图谱补全当中。本发明解决的是现有的嵌入模型的表示学习方法无法捕获关系数据中实体与实体、实体与关系的丰富交互性,并且同一实体在不同关系下应当具有不同的表示不能很好的体现的问题,具有较强可行性和良好的实用性。参见图1的流程图,本发明具体包括如下步骤:
本发明对知识图谱中的三元组结构化信息进行了考虑,并采用(head,relation,tail)的典型三元组形式进行知识表示,relation是用来连接实体head、tail,并刻画两个实体之间的关联性。图2是典型的知识图谱三元组结构的示例图。其中,圆圈表示为实体节点(如,“唐纳德·特朗普”、“伊万卡·特朗普”、“纽约”等),两个实体之间的连边表示关系(如,“国籍”、“总统”、“出生地”等)。另外可以看到实体“唐纳德·特朗普”与“美国”之间有多种关系,并且存在“国籍”关系对应了多个实体对。
步骤1,为每一个知识图谱中现有的三元组(h,r,t)生成一个错误的三元组(h',r,t'),其中h',t'是通过将三元组中的h或t用现有的实体集中其他的实体进行随机替换,并保证所替换后得到的三元组(h',r,t')在现有的知识图谱三元组集中不存在。替换完成后将实体和关系分别嵌入到实体空间和关系空间。
步骤2,对每一个三元组(h,r,t),将实体h,t和关系r均嵌入的相同维度k,即对于每一个关系r,都设置一个与其相关的投影循环矩阵假设关系向量r为
r=(c0,c1,…,ck-2,ck-1)
则Mrc定义如下:
在投影矩阵Mrc下,定义被投影的实体向量为
hrc=Mrch,trc=Mrct
其中:h表示头实体h的列向量,t表示尾实体t的列向量,hrc表示将头实体经投影矩阵得到投影后的头实体列向量,trc表示将尾实体经投影矩阵得到投影后的尾实体列向量。
投影效果如图3所示,图中h和t分别表示实体空间的某一个实体对,在实体对之间存在r1和r2两个关系,Mr1c和Mr2c分别为r1和r2所生成的投影矩阵,并将h、t从实体空间投影到关系空间,在r1和r2不同关系下,同一实体h、t在关系空间中有不同表示形式hr1、tr1和hr2、tr2。这样的表示使得在不同关系下,相同的实体的表现形式更加准确。
步骤3,为了增加头尾实体之间的交互性,对投影后的头实体向量与尾实体向量进行向量积运算可得到rht=hrc×trc,然后将rht与r进行差值运算,将三元组的评分函数fr(h,t)被定义为(如图4)
其中:h表示头实体,t表示尾实体,r表示头实体h和尾实体t之间的关系;h表示头实体h的列向量,t表示尾实体t的列向量,r表示头实体和尾实体之间的关系r的列向量;表示范式,表示范式,hrc表示将头实体经投影矩阵得到投影后的头实体列向量,trc表示将尾实体经投影矩阵得到投影后的尾实体列向量。
步骤4,定义两种不同的损失函数。
其一为:
其中:[γ|r|+fr(h,t)-fr(h′,t′)]+=max(0,γ|r|+fr(h,t)-fr(h′,t′));γ为设定的边界值;|r|为关系向量r的模;(h,r,t)表示知识图谱中的三元组,即正确三元组,fr(h,t)表示正确三元组的评分函数,S(h,r,t)表示所有正确三元组集合;(h′,r,t′)表示随机替换掉头实体h和尾实体t所构建的错误三元组,fr(h′,t′)表示错误三元组的评分函数,S(h′,r,t′)表示为每一个正确三元组随机替换掉头实体h或尾实体t所构建得到的所有错误三元组集合。
其二为:
其中:[fr(h,t)-θ]+=max(0,fr(h,t)-θ);θ为设定的阀值。
采用随机梯度下降算法算法最小化损失函数,由于损失函数Lrc1与Lrc2在不同时段优化效率不同,在前期优化过程中Lrc1的优化效率明显高于Lrc2,但在优化到一定程度后,Lrc1优化效率明显下降,甚至可能出现恶化的情况,导致损失函数的值增大。此时,利用前后期优化效率稍低,但优化效率稳定的损失函数Lrc2对三元组进行训练,在以达到最小化损失函数值。对此为损失函数的使用制定如下规则:
其中:n为优化过程中需要循环的总次数,ωc为优化过程中循环次数的阀值,ω为当前循环次数。
在每一次循环优化过程中,都对h,r,t的值进行更新存储,直达所有循环结束,达到优化目标。并且由于循环矩阵Mrc是有关系r循环生成的,r一旦发改变,Mrc也会随之发生相应的变化,所以不需要而外的空间来存储Mrc。
本发明利用关系的循环矩阵与向量积,能够很好的捕获关系数据中的丰富交互性,并对不同关系下的实体有了更加完整的表示。
本发明利用关系的循环矩阵与向量积,能够很好的捕获关系数据中的丰富交互性,并对不同关系下的实体有了更加完整的表示。采用实体向量与关系向量基于嵌入的模型,利用关系的循环矩阵定义了循环矩阵翻译原则很好地表示了三元组中实体向量与关系向量之间的相互联系;并且引入的循环矩阵由关系确定,在优化过程中实体的投影向量与关系向量建立了较强的特有联系。体现了实体在不同关系下具有特有的表现形式,更加符合现实世界中的事实。在经过循环矩阵投影后的头尾实体向量,通过头尾实体向量积来表示与关系向量之间的关系,构造了独有的评分函数。最后构造了两种新的损失函数,同时定义了两种损失函数的使用选择规则,使二者相结合使用对实体向量和关系向量进行相互关联。通过SGD算法优化损失函数,当达到最佳优化目标时,就能够获得知识图谱中每一个最优的实体向量和关系向量,从而更好的将实体和关系进行表示,并保存实体和关系之间的联系,从而能够很好的应用于大规模的知识图谱补全当中。
需要说明的是,尽管以上本发明所述的实施例是说明性的,但这并非是对本发明的限制,因此本发明并不局限于上述具体实施方式中。在不脱离本发明原理的情况下,凡是本领域技术人员在本发明的启示下获得的其它实施方式,均视为在本发明的保护之内。