一种基于注意力机制的知识图谱嵌入方法与流程

文档序号:15851104发布日期:2018-11-07 09:56阅读:382来源:国知局
一种基于注意力机制的知识图谱嵌入方法与流程
本发明涉及知识图谱嵌入领域,具体涉及一种基于注意力机制的知识图谱嵌入方法。
背景技术
知识图谱是由实体作为节点和关系作为边构成的有向图。通常,一个知识图谱会编码数百万个实体的结构化信息和数十亿个关系事实。但这样还不够完备,需要对知识图谱进行补全。知识图谱补全的目的就是根据现有的知识图谱中的信息来预测没有边连接的实体之间是否存在关系,即连接预测。一类知识图谱补全的方法是基于嵌入的,这类方法会将知识图谱中的每个对象编码成一个连续空间中的向量。最近这类方法在知识图谱补全上展现出了强大的效果。因此这种方法变得越来越流行。在这类方法中,基于转化的方法因为简单和有效大受青睐。他们有着目前最好的连接预测表现。在2013年的国际机器学习顶级会议advancesinneuralinformationprocessingsystems中,论文《translatingembeddingsformodelingmulti-relationaldata》,第2787页到第2795页公开了一种叫transe的基于转化的方法,它受到最近大获成功的词嵌入方法的启发,将实体和关系分别嵌入到向量空间当中。对于一个三元组(h,r,t),它表示头实体h与尾实体t具有关系r。基于转化的方法的基本思想是这个三元组会诱导一个嵌入的向量空间中的函数关系,例如h+r≈t。由于transe模型不能很好的解决一对多、多对一和多对多的关系,研究者们陆续提出了一系列工作来弥补它的缺点,比如transh,transr和transparse。在2014年的国际人工智能顶级会议associationfortheadvancementofartificialintelligence中,论文《knowledgegraphembeddingbytranslatingonhyperplanes》,第1112页到第1119页公开了一种叫transh的知识图谱嵌入方法。它通过引入关系相关的投影向量和并将实体投影到关系相关的超平面上来解决问题。然而不同的关系可能只关注实体的部分属性,在2015年的国际人工智能顶级会议associationfortheadvancementofartificialintelligence中,论文《learningentityandrelationembeddingsforknowledgegraphcompletion》,第2181页到第2187页公开了一种叫transr的知识图谱嵌入方法,它通过引入关系相关的变换矩阵并将实体向量转换到不同的关系空间来解决问题。除此之外,关系还具有异质性,在2015年的国际人工智能顶级会议associationfortheadvancementofartificialintelligence中,论文《knowledgegraphcompletionwithadaptivesparsetransfermatrix》,第985页到第991页公开了一种叫transparse的知识图谱嵌入方法,它通过引入更加复杂的关系相关的变换矩阵来解决这个问题。尽管这些工作也有提到不同的关系可能只关注实体的几个不同的属性,并采用与关系相关的实体嵌入来使不同的关系在不同的空间中计算转化结果,但它们实际上并没做到不同的关系只关注实体的几个不同的属性。即之前的工作都不存在真正意义上的注意力机制。但实际上和某个关系相关的只是实体的部分属性,比如判断(司机,的工作是,种地)和(农民,的工作是,种地)这两个三元组我们只用关注司机和农民的职业技能属性,不用关注他们的平均收入等属性。能不能将模型的注意力集中在这些相关属性上是知识图谱补全中的一个重要问题。技术实现要素:本发明提供了一种基于注意力机制的知识图谱嵌入方法,通过注意力机制每个关系可以只关注实体与该关系相关的部分属性,从而排除无关属性的干扰,提高知识图谱补全的准确度,学到更好的知识图谱嵌入表示。一种基于注意力机制的知识图谱嵌入方法,包括以下步骤:(1)输入需要补全的知识图谱数据集,基于注意力机制对知识图谱数据集进行初始化;(2)基于注意力机制对嵌入表示进行更新,得到嵌入表示结果和注意力机制参数;(3)根据嵌入表示结果和注意力机制参数,补全知识图谱数据集。步骤(1)中,所述初始化的具体步骤为:(1-1)随机初始化数据集中所有的关系与实体对应的向量,得到初始的关系向量与实体向量。(1-2)对于每个关系向量r,将出现在训练条目头部的实体加入到头实体集合shr,将出现在训练条目尾部的实体加入到尾实体集合str。(1-3)将每个关系向量r的头实体集合shr与尾实体集合str分别加入到候选头实体集合hr与候选尾实体集合tr,将候选头实体集合hr和候选尾实体集合tr初始化为整个实体集合e。初始化的时候不知道实体的类别信息,所以认为整个头实体集合shr都为候选头实体集合hr,整个尾实体集合str都为候选尾实体集合,之后在注意力机制更新部分会更新hr和tr。(1-4)将每个关系r的注意力向量ar初始化为每一维都是1的向量。知识图谱里的每一个词条都是文本或者其他不能做运算的形式,嵌入就是把它们映射到一个多维实数空间中,表示成一个向量。这个向量就是那个词条的嵌入表示。步骤(2)中,所述基于注意力机制对嵌入表示进行更新的具体步骤为:(2-1)从数据集的训练集中采样固定大小的一批数据δbatch;(2-2)对δbatch中的每一个三元组(h,r,t)随机生成一个错误的三元组(h′,r,t′),用三元组对{(h,r,t),(h′,r,t′)}构成当前迭代所用的训练数据tbatch;(2-3)计算整个算法的损失函数,并采用随机梯度下降算法更新嵌入表示;所述损失函数的公式为:其中,h,r,t,h′,t′为三元组对{(h,r,t),(h′,r,t′)}的嵌入表示;用代表式中的fr(h,t)=||ar*h+r-ar*t||,fr(h,t)为评估函数,ar关系注意力向量;hr为候选头实体集合,tr为候选尾实体集合,α为两部分损失的权重系数,γ为正负样例之间的最小间隔,[x]+表示取正,当x<0时结果为0。(2-4)当迭代次数达到预定值m,则更新注意力机制相关的参变量hr,tr,ar;所述更新注意力机制相关的参变量的算法包括:(2-4-1)利用kmeans算法将所有实体向量聚成c类,c1,…,cc;(2-4-2)根据以下两个表达式分别得到hr和tr;其中,cj为聚类得到的第j个类别的实体集合,shr为头实体集合,str为尾实体集合;(2-4-3)对于每一个关系向量r,计算hr与tr中所有实体向量的方差与若或者的第j维大于临界值δ,则ar,j=1;否则,ar,j=0。(2-5)重复步骤2-1~步骤2-4,直至整个算法收敛。步骤(3)中,所述补全知识图谱数据集的具体步骤为:(3-1)对于一个关系三元组(h,r,t),首先检查h是否属于hr,t是否属于tr,不属于的话,那么h或t的类别就不适合作为关系r的头实体或尾实体,这个三元组不成立,如果属于的话,则执行下一步;(3-2)将h和t的表示向量分别乘以注意力向量ar;(3-3)计算评估函数fr(h,t)=||arh+r-art||,如果分值低于阈值则认为该三元组成立,并且分数越低该关系成立的可能性越大。本发明基于注意力机制的知识图谱嵌入方法具有以下优点:1、本发明能更好的处理以前算法不能很好处理的复杂关系,如一对多,多对一和多对多的关系。2、本发明得到的实体向量能很好的反应类别信息。3、本发明具有有效的注意力机制,在关系判断时可以将注意力集中在与关系相关的部分维度上,提高判断的准确性。附图说明图1为本发明基于注意力机制的知识图谱嵌入方法流程示意图。具体实施方式下面结合附图对本发明的具体实施方式进行描述,以便本领域的技术人员更好的理解本发明。本发明所述方法的有效性,在wn18和fb15k上通过对比实验验证。这两个公开的知识图谱数据集分别由wordnet和freebase语料中检索的信息构成。所有这些数据集由训练集、验证集和测试集组成,这些集合是很有组织的。表1列出了数据集的数据统计数据。每一个训练条目都是一个关系三元组(h,r,t),表示h和t具有关系r。表1数据集关系数实体数训练条目数验证条目数测试条目数wn18184049314144250005000fb15k1345149514831425000059071下面以wn18为例介绍本发明学习知识图谱嵌入表示并利用得到的表示向量做连接预测。如图1所示,一种基于注意力机制的知识图谱嵌入方法,具体步骤如下:s1、基于注意力机制的知识图谱初始化;s1.1、随机初始化实体与关系,得到初始点实体向量和关系向量,就是给数据集中的18个关系和40493个实体先随机生成一个表示向量;s1.2、对于每个关系向量r,如果一个实体出现在了训练条目的头部(尾部),则将其加入到头实体集合shr(尾实体集合str);s1.3、将每个关系的候选头实体集合hr和候选尾实体集合tr初始化为整个实体集合e,对于wn18即所有的40493个实体都可以作为头实体和尾实体出现在任意一个关系上;s1.4、将每个关系的注意力向量ar初始化为每一维都是1的向量。s2、基于注意力机制的嵌入表示更新;s2.1、从完整的141442条训练条目δ中采样固定大小的一小批数据δbatch;s2.2、对δbatch中的每一个三元组(h,r,t)随机替换h或者t生成一个错误的三元组(h′,r,t'),用三元组对{(h,r,t),(h',r,t')}构成当前迭代所用的批训练数据tbatch;s2.3、计算以下的损失函数,并采用随机梯度下降算法更新嵌入表示;其中,h,r,t,h′,t′为三元组对{(h,r,t),(h′,r,t′)}的嵌入表示,fr(h,t)=||ar*h+r-ar*t||,fr(h,t)为评估函数,ar关系注意力向量,hr为候选头实体集合,tr为候选尾实体集合,α为两部分损失的权重系数,[x]+表示取正,当x<0时结果为0。s2.4、如果迭代次数除以某个数字余数为零,则更新注意力机制相关的参变量hr,tr,ar,具体步骤如下:s2.4.1、利用kmeans算法将所有实体向量聚成c类,c1,…,cc;s2.4.2、根据以下两个表达式分别得到hr和tr;s2.4.3、对于每一个关系r,计算hr(tr)中所有实体向量的方差对于临界值δ,或者的第j维大于临界值,则ar,j=1。否则,ar,j=0。s2.5、重复步骤2.1~步骤2.4,直至整个算法收敛。这样就得到了所有关系和实体的嵌入表示结果r,e和注意力机制参数hr,tr,ar。s3、根据嵌入表示结果和注意力机制参数,基于注意力机制的连接预测(补全知识图谱):s3.1、对于一个关系三元组(h,r,t),首先检查h(t)是否属于hr(tr)。如果h(t)不属于的话,那么h(t)的类别就不适合作为关系r的头(尾)实体,这个三元组不成立。如果属于的话,进入下一步。s3.2、将h和t的表示向量分别乘以注意力向量ar,这样就只保留了它们与关系r相关的,应该受到关注的那些维度。s3.3、计算评估函数fr(h,t)=||arh+r-art||,如果分值低于阈值则认为该三元组成立,并且分数越低该关系成立的可能性越大。本实验在测试集上与目前最有效的同类方法transparse做了比较。主要比较了平均排序(meanrank)和前十召回率(hits@10)这两个指标。对于测试集中的每一个三元组(h,r,t),当我们确定头实体h和关系r要去预测尾实体t时,把数据集中的所有可能的尾实体都用评估函数计算分数,然后根据分数排序,如果要预测的尾实体t的分数很低,排在比较前面我们就能成功预测出(h,r,t)这个三元组成立。所以尾实体t的排序和尾实体t是否排在前十都可以作为衡量算法好坏的指标。类似的,我们也能确定关系r和尾实体t去预测头实体h,这样能得到头实体的排序和头实体是否排在前十的结果。尾实体排序和头实体排序的均值称为平均排序,成功排在前十的尾实体所占的百分比和成功排在前十的头实体所占的百分比的平均值称为前十召回率。另外由于一些排在前面的实体构成的三元组也是真实存在的,可以将它们剔除得到过滤后的排序结果。所以所有的评价指标还有粗排序(raw)下的结果和过滤排序(filt)下的结果。从表2结果看出,总体来说,我们的方法(transat)相比于同类方法具有更好的表现。表2当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1