一种基于路径张量分解的知识图谱表示学习方法与流程

文档序号:12121230阅读:3172来源:国知局

本发明属于知识表示和知识发现以及人工智能领域,特别涉及一种基于路径张量分解的知识图谱表示学习方法。



背景技术:

知识图谱(Knowledge Graph)作为一种新的知识表示方法和数据管理模式,在自然语言处理、问题回答、信息检索等领域有着重要的应用。知识图谱是结构化的语义知识库,用于以符号形式描述物理世界中的概念及其相互关系,其主要采用(head,relation,tail)三元组形式进行知识表示,head是头实体,tail是尾实体,relation是关系,实体之间是通过关系相互联结,形成了网状的知识结构。

知识图谱推理是从已有的实体关系三元组,经过推理计算,建立起实体间的新关系,从而丰富和拓展知识图谱。目前常用的知识图谱表示学习方法是将高维知识图谱通过嵌入(embedding)转换到低维连续向量空间,产生了多种不同方式的推理算法,包括基于张量分解推理算法和基于路径推理算法等。基于张量分解算法将整个知识图谱看作是一个大的张量,然后通过张量分解技术分解为多个小的张量片,也就是将高维的知识图谱进行降维处理,大大减少计算时的数据规模。然而,现有的张量分解过程中,只是考虑直接相关联的实体间联系,未考虑到知识图谱的多路径特点,因此,其推理性能受到一定的限制,并不能深层次地挖掘出实体间的关系。基于路径推理算法根据知识图谱图形结构的特点,利用实体间的路径关系进行推理计算,能有效地挖掘出知识图谱中实体间的新关系。但是,现有推理算法还不能解决长路径推理,而且并未考虑路径可靠性和语义组合问题,同时由于关系路径推理算法还处于研究初期,还有很多细致的工作需要完善。



技术实现要素:

本发明的目的,在于提供一种基于路径张量分解的知识图谱表示学习方法,其可提高知识发现的推理准确性,提高预测精度,主要应用于知识图谱的学习和推理过程,达到丰富和拓展知识图谱的目的。

为了达成上述目的,本发明的解决方案是:

一种基于路径张量分解的知识图谱表示学习方法,包括如下步骤:

步骤1,提取知识图谱中的实体集、关系集和三元组集,把满足三元组的实体集、关系集嵌入到低维连续向量空间;

步骤2,通过PRA算法获得实体间的路径;

步骤3,在全部实体可能存在的路径上均进行张量分解,计算分解损失函数值;

步骤4,重复步骤3,直至达到收敛的预设值或迭代最大次数;

步骤5,如果达到迭代最大次数或收敛于预设值,则进入下一个三元组相关的路径计算,重复步骤2至步骤4,直到训练集全部的三元组都被执行;

步骤6,输出训练模型中相应的实体集和关系集。

上述步骤1中,还包括对实体集和关系集进行规范化处理,并将规范化后的实体集与关系集,按照原来的三元组对应关系映射到相应的向量矩阵中。

上述步骤2中,从数据集中任意选择一个初始实体s,通过随机游走方式,取得从实体s经过路径p到达实体集,即产生了路径查询数据集(q,t),这里q=s/r1/…/rk,q表示路径p所经历的各个子路径,r1、…、rk表示各个具体的子路径,t表示在这个路径上的实体集;重复执行上面过程,直到全部实体都执行过,最终构造出路径训练集和测试集。

上述步骤3中,设知识图谱G中含有n个实体和m个关系,基于路径张量分解推理模型的值函数计算为:

其中,xei和xej表示在路径中的起始实体ei和终点实体ej在低维向量空间的向量,而表示关系ri的关系矩阵,i=1,2,…,t,t≤n,k=1,2,…,m,P=(r1r2…rt)表示路径,即eir1ei+1r2…ei+t-1rtej

上述步骤3中,利用下式计算分解损失函数值:

其中,表示整个张量在路径分解过程中的损失函数模型,如果在知识图谱中存在着三元组(ei,rk,ej),那么χijk则为1,否则为0;表示在路径上矩阵张量分解,表示为了避免模型过度拟合引入的修正过程,其中λ是修正参数,λ≥0。

上述步骤4中,采用交替最小二乘法更新实体矩阵E和关系矩阵即通过先固定对E进行更新,然后再固定E对进行更新。

采用上述方案后,本发明利用PRA算法计算知识图谱中实体对间的路径,并在这些路径上采用张量分解进行推理,能有效挖掘出知识图谱中实体之间的多路径关系以及实体间的新事实,使得训练模型更加精确,从而更好地丰富和完善知识图谱。

附图说明

图1是本发明的流程图。

具体实施方式

以下将结合附图,对本发明的技术方案及有益效果进行详细说明。

如图1所示,本发明提供一种基于路径张量分解的知识图谱表示学习方法,首先将知识图谱中的实体和关系通过embedding的方式嵌入到d维向量空间,使其成为向量矩阵,接下来在向量空间中,利用PRA算法查找每个实体对间的关系路径,并利用路径张量模型进行路径分解,计算模型的损失函数值,在更新迭代过程中采用交替最小二乘法分别对实体矩阵和关系矩阵进行更新,直到更新收敛于某个值或达到迭代的最大次数。本发明具体包括如下步骤:

步骤1,将训练集嵌入转换到低维连续向量空间

提取知识图谱中的实体集、关系集和三元组集,把满足三元组的实体集、关系集嵌入(embedding)到低维连续向量空间,作为推理算法的输入。在向量空间中,把关系看作是实体间向量平移转换。

在本实施例中,设置低维连续向量空间的维数为{20,50,80,100},并对实体集和关系集进行规范化处理,如:e←e/||e||,r←r/||r||,其中||e||和||r||表示实体向量和关系向量的欧式距离。

将规范化后的实体集与关系集,按照原来的三元组对应关系映射到相应的向量矩阵中。

步骤2,通过PRA算法获得实体间的路径P=(r1r2…rt)

知识图谱中,如果存在着这样的三元组:(h,BornInCity,e1),(e1,CityInState,e2),(e2,StateInCountry,t),通过关系路径传递,可以推出实体h和t之间可能存在着三元组(h,Nationality,t)。为了能获得知识图谱中实体间的关系路径,本发明采用Lao等人提出的Path Ranking Algorithm(PRA)算法进行实体间路径的获取。PRA算法的基本思想是将知识图谱视为图形(以实体为节点,以关系或属性为边),从源节点(头实体)开始,在图上执行随机游走,如果能够通过一个路径到达目标节点(尾实体),则推测源和目的节点间可能存在关系。因此,通过PRA算法后,可以获得知识图谱中实体ei和实体ej之间存在路径P=(r1r2…rt),即:eir1ei+1r2…ei+t-1rtej

从数据集中任意选择一个初始实体s,通过随机游走方式,取得从实体s经过路径p到达实体集,即产生了路径查询数据集(q,t),这里q=s/r1/…/rk,其中,q表示路径p所经历的各个子路径,r1、…、rk表示各个具体的子路径,t表示在这个路径上的实体集。重复执行上面过程,直到全部实体都执行过,最终构造出路径训练集和测试集。为了避免训练集中的数据集重复出现在测试集中,在构造测试集数据样本时,剔除那些存在于训练集中的路径三元组,为了避免因出现过多路径导致训练集样本数据过于庞大,构造数据限定在路径长度为4之内较好。

步骤3,构建基于路径张量分解模型函数f(h,r(P),t)

在含有n个实体和m个关系的知识图谱G中,对于给定三元组(ei,rk,ej),其中实体ei和ej分别用向量Xei和Xej来表示,而关系rk用一个关系矩阵Rk表示,即i,j=1,2,…,n,k=1,2,…,m,表示将实体和关系嵌入到低维向量空间,d表示向量空间的维数。如果实体ei和实体ej之间存在路径P=(r1r2…rt),即:eir1ei+1r2…ei+t-1rtej,则基于路径张量分解推理模型的值函数计算为:

其中,xei和xej表示在这个路径中的起始实体ei和终点实体ej在低维向量空间的向量,而(i=1,2,…,t,t≤n)表示关系ri的关系矩阵。

例如,如果知识图谱存在两个三元组(eh,r1,e1)和(e1,r2,et),即第一个三元组的尾实体和第二个三元组的头实体是一致的,而eh和et之间的关系路径为r1r2,即路径长度为2,则其路径张量分解函数值如下:

其中,xeh和xet表示实体h和t的向量矩阵,R1和R2表示关系r1和r2的关系矩阵。

如果两个实体间的关系路径为1时,该模型就退化为一般的三阶张量分解。因此,基于路径张量分解推理是对三阶张量RESCAL的扩充。

在式(1)中,根据PRA算法可以获得实体ei和ej之间路径关系ri(i=1,2,…,t),路径张量分解模型首先通过计算实体向量和关系矩阵的乘积,可以获得一个新的矩阵,其表示实体ei通过关系r1到达另一个实体,整个路径推理的过程重复上面操作,直到实体ej为止。因此,式(1)能用于关系路径的张量分解推理。

为了避免路径张量分解模型在训练过程中,出现过度拟合而失去鲁棒性,需对它进行修正与优化,具体修正方法如式(3)所示:

在式(3)中,表示整个张量在路径分解过程中的损失函数模型,如果在知识图谱中存在着三元组(ei,rk,ej),那么χijk则为1,否则为0,表示在路径上矩阵张量分解,表示为了避免模型过度拟合引入的修正过程,其中λ是修正参数,λ≥0,括号后面是对实体和关系进行规范化过程。

步骤4,重复步骤3,直至达到收敛的预设值或迭代最大次数

在训练过程中,为了能使优化模型尽快收敛,需对实体矩阵E和关系矩阵进行更新。本实施例在更新实体矩阵和关系矩阵过程中,采用交替最小二乘法(Alternating Least Squares,ALS),即通过先固定对E进行更新,然后再固定E进行更新具体更新公式如下:

其中

整个更新过程直到收敛于预设值或者到达迭代最大次数。

步骤5,如果达到迭代最大次数或收敛于预设值,则进入下一个三元组相关的路径计算,重复步骤2至步骤4,直到训练集全部的三元组都被执行。

步骤6,输出训练模型中相应的实体集和关系集。

本发明以路径问题回答和实体链接预测两个简单的实验,验证所提供方法的有效性。

验证数据集来自于两个通用知识图谱:WordNet和FreeBase的子集WN11和FB13,经过随机游走方式构造了WN11(Paths)和FB13(Paths)数据集,获得路径的训练集和测试集。具体构造过程是:从基本数据集(WN11和FB13)中,任意选择一个初始实体s,通过随机游走方式,取得从实体s经过路径p到达实体集,即产生了路径查询数据集(q,t),这里q=s/r1/…/rk,t表示在这个路径上的实体集。重复执行上面过程,直到全部实体都执行过,最终构造出路径训练集和测试集。为了避免训练集中的数据集重复出现在测试集中,在构造测试集数据样本时,剔除了那些存在于训练集中的路径三元组,同时也为了避免因出现过多的路径,而导致训练集样本数据过于庞大,本次构造数据是限定在路径长度为4之内。

实验评价指标为Mean Rank(排在正确实体前的平均实体个数)和HITS@10(%)(正确实体排在前10%的个数),其中Mean Rank的值越小,HITS@10值越大,模型预测准确性越高。

1)针对路径问题回答实验,在数据集WN11(Paths)中,Mean Rank的值为382,HITS@10值为76.8%,而在FB13(Paths)中,Mean Rank的值为478,HITS@10值为68.5%。

2)针对实体链接预测实验,在数据集WN11(Base)中,Mean Rank的值为256,HITS@10值为83.1%,而在FB13(Base)中,Mean Rank的值为212,HITS@10值为56.4%。

通过上述2个实验验证,可以看出本发明在知识图谱表示学习方法中的可行性,能够使推理获得较高的准确率和精度,从而能适应于丰富和拓展知识图谱

综合上述,本发明一种基于路径张量分解的知识图谱表示学习方法,通过在知识图谱中随机游走的方式,获得知识图谱中实体间的关系路径,然后在关系路径上采用张量分解进行推理计算,获得实体间可能存在的新关系,提高知识图谱推理的预测准确率,解决了现有知识图谱张量分解推理算法中未考虑实体间路径关系,忽略实体间路径传递性的问题。

以上实施例仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明保护范围之内。

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