[发明专利]一种引入实体上下文的三维旋转知识图谱嵌入方法有效
申请号: | 202110382919.1 | 申请日: | 2021-04-09 |
公开(公告)号: | CN113254661B | 公开(公告)日: | 2022-09-23 |
发明(设计)人: | 陆佳炜;王小定;朱昊天;郑嘉宏;程振波;徐雪松;肖刚 | 申请(专利权)人: | 浙江工业大学 |
主分类号: | G06F16/36 | 分类号: | G06F16/36 |
代理公司: | 杭州斯可睿专利事务所有限公司 33241 | 代理人: | 王利强 |
地址: | 310014 浙江省*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 引入 实体 上下文 三维 旋转 知识 图谱 嵌入 方法 | ||
1.一种引入实体上下文的三维旋转知识图谱嵌入方法,其特征在于,所述方法包括以下步骤:
第一步:定义知识图谱三种主要关系模式和相关形式化表述,过程如下:
1.1、定义对称/反对称关系模式和相关形式化表述:关系r是对称关系,当且仅当成立时,关系r被称为对称关系;关系r是反对称关系,当且仅当成立时,关系r被称为反对称关系;
1.2、定义逆关系模式和相关形式化表述:关系r1与关系r2是一组互逆关系,当且仅当成立时,关系r1与关系r2互为逆关系;
1.3、定义组合关系模式和相关形式化表述:关系r1是关系r2与关系r3的组合,当且仅当成立时,关系r1被称为是关系r2与关系r3的组合关系;
其中,e1,e2,e3分别表示知识图谱实体集E中的不同实体,r,r1,r2分别表示关系集R中的不同关系,是正确三元组,即正例的集合,是错误三元组,即负例的集合;
第二步、定义四元数的基础和基于四元数乘法的三维旋转表示;
第三步、基于四元数进行关系三维旋转建模,然后引入实体的上下文信息,计算打分函数,重新评估三元组的质量,同时推导模型针对知识图谱三种关系模式建模的能力,并进行模型训练以获得更好的四元数向量表示;
3.1、基于四元数进行关系三维旋转建模,给定一个三元组(h,r,t),其中h表示头实体,t表示尾实体,r表示为头实体和尾实体之间的关系,将这个三元组的头尾实体h,t和关系r的嵌入表示为四元数的向量形式h,t和r;
3.2、引入实体上下文信息,并计算打分函数;
所述3.2的过程如下:
3.2.1、获取该三元组(h,r,t)的头实体-关系对上下文,并将头实体-关系对上下文放入一个初始化后的ArrayList,命名为arrayList;实体t是三元组中的尾实体,它的头实体-关系对上下文定义如下:
把知识图谱从有向图的角度理解,rc是尾实体t的入边,hc是尾实体t通过关系rc所关联到的实体,因此尾实体t的头实体-关系对上下文的规模就是所有与尾实体t有直接关系rc相连的头实体hc的数量,(hc,rc)是由hc和rc组成的头实体-关系对,(hc,rc,t)表示由头实体-关系对上下文(hc,rc)和尾实体t组成的三元组,尾实体t的头实体-关系对上下文的规模由|Chr(t)|表示;
3.2.2、计算该三元组(h,r,t)的头实体-关系对上下文的规模|Chr(t)|,|Chr(t)|的大小等于arrayList的大小,即|Chr(t)|=arrayList.size;
3.2.3、计算所有头实体-关系对上下文Chr(t)从头实体和关系到尾实体的映射Rot+(hc,rc);
3.2.4、计算尾实体t的头实体-关系对上下文表示,计算公式如下,其中t是尾实体t的四元数向量表示:
3.2.5、计算尾实体t的头实体-关系对上下文表示与相关的基于四元数向量表示的三元组之间的距离,计算公式如下,其中k是模型维数:
3.2.6、获取该三元组(h,r,t)的关系-尾实体对上下文,并将关系-尾实体对上下文放入一个初始化后的ArrayList,命名为arrayList1;实体h是三元组中的头实体,其关系-尾实体对上下文定义如下:
把知识图谱从有向图的角度理解,rc是头实体h的出边,tc是头实体h通过关系rc所关联到的实体,因此头实体h的关系-尾实体对上下文的规模就是所有与头实体h有直接关系rc相连的尾实体tc的数量,(rc,tc)是由rc和tc组成的关系-尾实体对,(h,rc,tc)表示由关系-尾实体对(rc,tc)和头实体h组成的三元组,头实体h的关系-尾实体对上下文的规模由|Crt(h)|表示;
3.2.7、计算该三元组(h,r,t)的关系-尾实体对上下文的规模|Crt(h)|,|Crt(h)|的大小等于arrayList1的大小,即|Crt(h)|=arrayList1.size;
3.2.8、计算所有关系-尾实体对上下文Crt(h)从尾实体和关系到头实体的映射Rot-(tc,rc);
3.2.9、计算头实体h的关系-尾实体对上下文表示,计算公式如下,其中h是头实体h的四元数向量表示:
3.2.10、计算头实体h的关系-尾实体对上下文表示与相关的基于四元数向量表示的三元组之间的距离,计算公式如下,其中k是模型维数:
3.2.11、计算三元组的基于距离的打分函数,计算公式如下,其中d((h,r),t)是映射结果到尾实体ti的基于距离的打分函数,d(h,(r,t))是计算映射结果到头实体hi的基于距离的打分函数,dc((h,r),t)是3.2.5的结果,dc(h,(r,t))是3.2.10的结果:
3.3、与RotatE相比,继承了三维旋转的特征,学习和推理三种基本关系模式的能力得到了进一步增强;针对各种关系模式,给出了模型对关系模式的建模能力;
3.4、训练模型以获得更好的四元数向量,过程如下:
3.4.1、准备知识图谱的实体集E,关系集R,训练集三元组集合这些训练集三元组集合是由实体集E和关系集R组成的能够成立的三元组,即正例的集合,设置模型实体和关系的维度k,从三元组集合中取随机个批处理数据,数量设为batch_size;设置负例三元组的数目nneg,负例三元组指的是将某一个正例三元组中的头实体或者尾实体替换后生成的不成立的三元组,nneg的大小表示由一个正例三元组生成nneg个负例三元组;设置边界值γ,用于判断打分函数的值是否超过边界值γ,若超过则表示这个三元组不成立,否则,这个三元组成立;设置自对抗采样温度a,当a=0时,自对抗采样退化为均匀采样,当a0时,得分越小的负例三元组对应的采样权重就越大;设置模型训练的最大步数MaxStep,表示训练的轮数;
3.4.2、随机初始化实体向量h,t和关系向量r,将它们表示成四元数向量,此时生成的四元数向量并不精准,初始化变量step=1表示当前已进行训练步数;
3.4.3、判断step的值是否小于MaxStep,若小于,执行3.4.3.1~3.4.3.10,并且step+1,否则,执行3.4.4;
3.4.3.1、从三元组集合中随机采样batch_size数量的正例三元组集Sbatch;
3.4.3.2、遍历Sbatch,取Sbatch中第m个三元组,0≤m<batch_size;构造nneg个负例三元组,初始化一个HashMap,将第n+1个负例三元组装入HashMap,HashMap的key值为n,value为负例三元组,0≤n<nneg;
3.4.3.3、获取第m个三元组,执行步骤3.1和3.2,获得3.2.11中打分函数的值,第m个三元组的打分函数值记为dfinalm(h,r,t);
3.4.3.4、遍历HashMap,取key为i的value值,获取第i+1个负例三元组,执行步骤3.1和3.2,获得3.2.11中打分函数的值,第i个负例三元组的打分函数记为dfinali(h′i,r,t′i),h′i,t′i表示替换后的第i个负例三元组的头实体和尾实体;
3.4.3.5、判断HashMap是否遍历完成,若是执行3.4.3.6,否则,返回3.4.3.4;
3.4.3.6、计算第i个负例三元组的采样权重,计算公式如下所示:
其中,pi(h′i,r,t′i)表示负例三元组的采样权重,exp(x)=ex;
3.4.3.7、计算第m个三元组的损失函数,计算公式如下所示:
其中σ是sigmoid函数,其计算公式如下所示:
3.4.3.8、判断Sbatch是否遍历完成,若是,执行3.4.3.9,否则,执行3.4.3.2;
3.4.3.9、计算Sbatch中所有正例三元组的损失函数,计算公式如下:
3.4.3.10、根据Sbatch的损失函数值,通过梯度反向传播去更新所涉及的实体和关系四元数向量;3.4.4、获取最新的实体和关系四元数向量,此时的实体和关系四元数向量相比之前的实体和关系表示成的四元数向量更加准确,此时完成了知识图谱嵌入过程,即将知识图谱中的实体和关系转化成向量的过程。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江工业大学,未经浙江工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110382919.1/1.html,转载请声明来源钻瓜专利网。