一种基于掩码的知识图谱嵌入方法

文档序号:31709085发布日期:2022-10-04 15:35阅读:209来源:国知局
1.本发明提供一种基于掩码的知识图谱嵌入方法,具体涉及一种高效、高质量的知识图谱嵌入方法,属于人工智能、机器学习领域。
背景技术
::2.知识图谱嵌入(knowledgegraphembedding,kge)技术的目标是将一个知识图谱中的实体和关系编码为高密度、低维的连续向量表示,从而捕捉其中的语义信息。知识图谱嵌入主要可以分为基于平移距离的kge模型和基于语义匹配的kge模型。在基于平移距离的kge模型中,最具代表性是由bordes等人在neurips2014上提出的transe模型,该模型把知识图谱中的一个三元组(h,r,t)分别嵌入为三个向量(h,r,t),并且假设h+r≈t。在此基础之上,后续有出现了不少基于平移距离的模型,比如transh、transr、transd、rotate等等,他们的共同点是,都设计了一个函数f,以及一个运算·,并假设f(h)·r≈f(t)。即,头实体的某种变形,经过一个跟关系有关的运算之后,要约等于尾实体的某种变形,以此来建立三元组之间的语义联系。3.在现有的方法中,一个实体的嵌入在不同的三元组中关注度总是相同的,然而在现实场景下,我们对实体不同维度的嵌入需要有不同级别的关注度。例如,当考虑(姚明,职业,篮球运动员)这个三元组时,我们更加关注的是与职业相关的语义;而当考虑(姚明,妻子,叶莉)这个三元组时,我们更加关注的是与家庭相关的语义。4.现有技术的kge模型无法解决对不同三元组不同级别关注度的问题。技术实现要素:5.本发明提供一种基于掩码的知识图谱嵌入方法,包括以下步骤:6.一种基于掩码的知识图谱嵌入方法,其特征在于,包括以下步骤:7.获取已知知识图谱数据集,将所述知识图谱数据集划分为训练集和验证集,所述知识图谱数据集包含若干三元组;8.使用知识图谱嵌入模型对所述训练集中的每一个三元组计算原始嵌入向量;9.计算一个掩码,通过所述掩码处理所述原始嵌入向量,得到掩码后的嵌入向量;10.根据所述掩码后的嵌入向量为每一个三元组计算一个置信度分数;11.根据所述置信度分数对所述知识图谱嵌入模型进行优化,得到优化后的知识图谱嵌入模型。12.具体地,计算一个掩码,通过所述掩码处理所述原始嵌入向量,得到掩码后的嵌入向量,包括:13.将所述知识图谱数据集中每一个三元组的三个原始嵌入向量,使用一个线性神经网络进行结合得到一个掩码向量。该网络在训练过程中持续学习更新。14.具体地,所述根据所述置信度分数对所述知识图谱嵌入模型进行优化,得到优化后的知识图谱嵌入模型,具体为:15.以最大化正确三元组的置信度分数、最小化错误三元组的置信度分数为目标,使用梯度下降来优化知识图谱嵌入模型中的各项参数,所述参数包括实体和关系的原始嵌入向量,以及计算掩码向量的线性神经网络。16.进一步,还包括以下步骤:17.对于所述验证集中的每个三元组(h,r,t),保留(h,r),然后在三元组尾部的位置放入所有候选的t',并且计算三元组置信度分数;18.将所述候选t'按照其对应的置信度分数从大到小进行排序;19.查看真实的t在这个序列中的位置t;20.使用该位置t,计算在知识图谱嵌入模型评估领域公认的指标的值。21.进一步,还包括以下步骤:22.对于所述验证集中的每个三元组(h,r,t),保留(r,t),然后在三元组尾部的位置放入所有候选的h',并且计算三元组置信度分数;23.将所述候选h'按照其对应的置信度分数从大到小进行排序;24.查看真实的h在这个序列中的位置h;25.使用该位置h,计算在知识图谱嵌入模型评估领域公认的指标的值。26.优选地,所述知识图谱嵌入模型评估领域公认的指标包括:所有位置的倒数的平均值mrr、正确实体排名在前k的比例hits@k。27.进一步地,所述知识图谱嵌入模型评估领域公认的指标的值为:28.根据位置t和位置h得到知识图谱嵌入模型评估领域公认的指标的平均值。29.本发明的有益效果:30.通过本发明的方法,每个实体的不同维度在具体的不同三元组中将会受到不同程度的关注,从而产生更加精确的三元组正确性评估。附图说明31.图1为本发明方法的流程图;32.图2为本发明方法训练阶段的流程图。具体实施方式33.参见图1,本发明的实施步骤如下:34.a.准备数据集:需要准备一个知识图谱数据集作为验证本发明效果的基础,本发明选择的是fb15k237【toutanovak,chend.observedversuslatentfeaturesforknowledgebaseandtextinference[c]//proceedingsofthe3rdworkshoponcontinuousvectorspacemodelsandtheircompositionality.2015:57-66.】和wn18rr【dettmerst,minervinip,stenetorpp,etal.convolutional2dknowledgegraphembeddings[c]//proceedingsoftheaaaiconferenceonartificialintelligence.2018,32(1).】两个公开的数据集。fb15k237包含14541种实体,237种关系类型,本发明的实验中划分出272115个三元组作为训练集来训练模型,17535个三元组作为验证集来验证模型性能。wn18rr包含40943种实体,11种关系类型,本发明的实验中划分出86835个三元组作为训练集来训练模型,3034个三元组作为验证集来验证模型性能。[0035]b.训练阶段,计算一个掩码,根据掩码得到优化后的kge模型,具体参见图2,对于训练集中的每一个三元组(h,r,t):[0036]b1.计算原始嵌入。本发明可以基于任意的kge模型进行优化,因此在引入本发明的技术之前,需要计算出每个三元组的原始嵌入。以transe作为基础kge模型的情况为例,首先嵌入层会将头实体h,关系r,以及尾实体t使用lookuptable的方式分别嵌入为三个相同维度的向量h,r,t。例如,h指代的是“姚明”这个词,而h则是它对应的实体嵌入,一个向量,比如(0.1,0.3,0.2,…,0.9)。[0037]b2.计算掩码嵌入。先由掩码产生器产生一个掩码,关于mask的产生方式:本发明在每个三元组中,同时考虑头实体、关系和尾实体的三个原始嵌入向量,掩码产生器使用一个线性神经网络来将三个原始向量进行结合后得到一个掩码向量。这里的线性网络输入维度为3*d,输出维度为d,其中d为一个实体或者关系向量的维度。该线性神经网络随机初始化,并在训练过程中持续学习更新。[0038]对于上一步得到的原始三元组嵌入,本发明会为头尾实体计算一个掩码mask,并通过hadamard积来使用掩码处理原始头尾实体的嵌入,从而得到一个掩码后的头尾实体嵌入:[0039][0040][0041]其中指hadamard积,掩码处理后的新嵌入可以在每个三元组中关注到不同的语义,从而表达出更精确的三元组含义。[0042]b3.计算分数。得到掩码后的向量后,本发明需要为每个三元组计算一个置信度分数score,以transe为例,一个三元组的置信度分数被表示为-||h’+r-t’||,该分数越高就代表着这个三元组正确的概率越大。[0043]在训练阶段,本发明以最大化正确三元组的分数、最小化错误三元组的分数为目标优化kge模型,具体损失函数l如下:[0044][0045]其中σ指sigmoid函数,γ为手动设置的超参数,h+,t+为正例三元组的头尾实体的掩码后嵌入,h-,t-为负例三元组的头尾实体的掩码后嵌入(负例由随机替换整理的头实体或尾实体得来,每个正例采样n个负例),d(·)指距离函数,即||h’+r-t’||,为打分函数的相反数。[0046]在本发明实施例中,使用梯度下降法来优化kge模型中的各项参数,直至模型在验证集上的性能基本稳定不再变化。这里的各项参数是指优化kge模型中所有可学习的参数,包括实体和关系的原始嵌入向量、计算得到的掩码向量,在计算掩码向量过程中使用到的线性网络的参数等。[0047]c.性能验证阶段:训练完成一个kge模型后,本发明在fb15k237和wn18rr两个数据集的验证集上对该模型的效果进行了性能的验证。对于验证集中的每个三元组(h,r,t),我们保留(h,r),然后在三元组尾部的位置放入所有候选的t'(在本发明中所有实体都可以作为候选实体)并且计算三元组分数,将这些t'按照其对应的分数从大到小进行排序,然后查看真实的t在这个序列中的位置t。使用该位置t,可以计算四项在kge评估领域公认的指标:mrr,hits@10,hits@3,以及hits@1。mrr(meanreciprocalrank)指所有位置的倒数的平均值(假如验证集中共有两个三元组,一个三元组的正确尾实体排名第2,另一个三元组排名第5,那么mrr=(1/2+1/5)/2=7/20=0.35),hits@k指正确尾实体排名在前k的比例(在刚才那个例子中,没有排名第1的,所以hits@1=0,有1个进入前3,有2个进入前10,因此hits@3=1/2=0.5,hits@10=1/1=1)。同理,保留(r,t),我们对h也做对称的操作,得到真实h在这个序列中的位置h。最后的这四项指标可以为对t的和对h的两类指标的平均值。[0048]通过本发明所提供的掩码表示的改进,transe和rotate两个经典的kge模型在fb15k237和wn18rr两个数据集的验证集上均获得了显著的性能提升。具体提升效果见表1。[0049][0050]表格1:加入掩码(mask)为transe和rotate带来的性能提升[0051]以下给出本发明的一个具体实施方式:[0052]以transe和fb15k237作为基础kge模型和测试性能的数据集。本发明为transe设置超参数如下:使用adam优化器,初始学习率为0.00005,嵌入维度为1000,批量大小为512,负采样率n为256,训练步数为100000步。在此基础之上,本发明在计算一个三元组的掩码时,先将该三元组的头实体嵌入、关系嵌入、尾实体嵌入一起拼接为一个3000维的向量,然后使用一个线性网络将该向量变化为一个1000维的向量。之后,我们对这个1000维的掩码向量使用sigmoid函数将其每一维转化为0~1之间的实数。最后,我们用这个向量与头尾实体分别相乘,得到掩码后的头尾实体向量。该掩码后的向量可以用于后续的分数计算,从而支持训练目标,以及在验证测试的时候作为三元组的置信度依据。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1