本发明属于人工智能领域;尤其涉及一种使用共享参数卷积神经网络的知识图谱表示方法。
背景技术:
随着互联网和大数据时代的到来,信息的爆炸式增长带来了海量的信息冗余,这种从信息缺失到信息过剩的转变,给人们快速高效地获取知识带来了干扰。2012年,谷歌将知识图谱技术融合到其搜索引擎中,从海量网页中抽取命名实体及其属性,并提取它们之间的关系,进行重新整合,大大提升了其搜索效率,知识图谱的热度也随之上升。
知识图谱是描述现实世界概念、实体及其关系的知识库,它采用三元组来表示知识,其构成形式为(实体a,关系,实体b)。实体指的是抽象的概念或具体的实例,关系指的是实体之间存在的某种联系。这样的关系使其可以基于图的结构来表示:其中图的节点表示实体或概念,节点之间的边表示实体或概念之间的关系。也可以这样说,知识图谱是一种描述知识的语义网络。
现有大型知识图谱,诸如wikidata、yago、dbpedia,富含海量世界知识,但在其构建过程注定会使其中包含的知识不具有完整性,即知识库无法包含全部的已知知识.此时知识图谱补全技术就显得尤为重要,任何现有的知识图谱都需要通过补全来不断完善知识本身,甚至可以推理出新的知识。
近年来,表示学习在知识图谱上的运用获得了巨大成功,显著提高了知识图谱的表示与自动补全性能。表示学习使用分布式表示方法,将实体与关系映射到低维连续向量空间中,解决了之前知识图谱表示学习中的稀疏性问题,同时也提高了效率。但是,现有的知识图谱表示学习方法会初始化两种维度的关系表示矩阵,往往面临参数量过多,空间复杂度高,训练效率低下的问题,无法应用到实际场景。因此本发明使用参数共享卷积的表示学习方法,将关系表示作为卷积核参数,直接与实体表示进行卷积运算交互,输出的结果作为知识图谱补全的依据。
技术实现要素:
本发明的目的是提供了一种使用共享参数卷积神经网络的知识图谱表示方法。
本发明是通过以下技术方案实现的:
本发明涉及一种使用共享参数卷积神经网络的知识图谱表示方法,包括如下步骤:
将实体表示向量变换成二维的实体表示矩阵;将关系表示向量设置为卷积层的参数;将实体表示矩阵通过两层卷积层,再通过一层全连接层,得到特征向量;将特征向量与实体嵌入层的参数做点积,得到分类概率。
具体步骤为:
数据预处理:
本发明使用的示例数据集是fb15k-237,该数据集中共包含14541个实体,237个关系,其中训练集中包含141442个三元组,验证集中包含17535个三元组,测试集中包含20466个三元组。针对该数据集,数据预处理如下:构造一个实体词典,一个关系词典,对数据集中每一个元组进行遍历,如果元组中的头实体没有在实体词典中出现过,就将该头实体放入实体词典中,并从0开始给予其一个数字id表示,尾实体同上;对于元组中的关系,如果没有在关系词典中出现过,就将该关系放入关系词典中,并从0开始给予其一个数字id表示,它的反关系r_reverse,并将该关系放入关系词典中,给予其一个数字id表示。如果数据集中存在<e1,r,e2>这样的元组,与之对应构造出一个<e2,r_reverse,e1>元组,这样做的目的是用来扩充数据。根据以上做法将237个关系扩充为474个关系,并用数字0-473来表示。这样,就可以使用给定的数字id去表示数据集中的元组,例如:e1在实体词典中用23来表示,r在关系词典中用76表示,e2在实体词典中用173来表示,那么,对于<e1,r,e2>这样的元组,可以使用<23,76,173>这样的元组来等价表示。
经过预处理之后,获得了若干组由数字表示的三元组,这些三元组将作为本发明技术的输入数据。
利用实体嵌入层生成一个维度为14541×200的实体表示矩阵,对于这474个关系,利用关系嵌入层生成一个维度为474×288的矩阵,并都对矩阵进行随机初始化;矩阵的某一行,代表的是某个实体或某个关系的表示向量;
每一组输入数据都对应了三个向量,分别是200维的头实体表示向量,288维的关系实体表示向量,200维的尾实体表示向量;将1×200维的头实体表示向量变形成为10×20维的矩阵a,将288维的关系向量变形成为32个3×3维的矩阵b,将矩阵a与矩阵b做卷积操作,获得32个8×18维的特征矩阵c,再将c与b做卷积操作,得到1024个6×16维的特征矩阵d,将特征矩阵d变形成为1个1×98304维的特征向量e,通过全连接神经网络,将该特征向量的维度由98304维降为200维,得到特征向量f,将该特征向量与实体表示矩阵的转置相乘,上述过程可以用如下评分函数来表示:
其中,
再通过sigmod函数,得到每个实体可能作为输入头实体与关系对应的尾实体的概率值p,p的公式表示如下。
p=σ(f(s,r,o))
其中,σ(·)表示sigmod函数。
本发明方法最小化二元交叉熵损失函数,通过随机梯度下降方法对参数进行不断更新,二元交叉熵公式如下:
其中,t为标签向量,ti表示第i个实体是否是尾实体,ti=1表示该实体是尾实体,0表示不是,pi表示方法预测出来的第i个实体为尾实体的概率。
本发明具有以下优点:
(1)本发明使用共享参数卷积神经网络的知识图谱表示方法,在两层卷积网络中使用了相同的参数,降低了空间资源开销,相比于两层不同参数的卷积网络,使得参数得到充分训练,提升了表示效果,并提高了使用本发明生成的表示向量进行关系预测任务的准确率。
(2)本发明使用共享参数卷积神经网络的知识图谱表示方法,将卷积核参数固定为唯一维度的关系表示向量,减少空间资源开销,并使关系表示与实体表示进行充分交互,提升交互效率,获得更加高效、鲁棒的表示向量,使用该表示向量提升知识图谱补全任务、知识图谱元组分类任务的准确率。
(3)本发明没有使用relu激活函数,relu激活函数会将负值变为0值,影响实体表示与关系表示的稳定分布,从而影响利用本发明得到的表示向量进行的链接预测、元组分类等问题的准确率。
(4)本发明使用共享参数卷积神经网络的知识图谱表示方法,只生成单一维度的关系表示向量,在减少空间开销的情况下同时提升了表示效果;本发明使用较少参数就可以达到很高的准确率,生成表示向量的速度较快,具有很大的应用前景。
附图说明
图1是本发明的总体流程图;
图2是本发明的模型示意图。
具体实施方式
下面结合具体实施例对本发明进行详细说明。应当指出的是,以下的实施实例只是对本发明的进一步说明,但本发明的保护范围并不限于以下实施例。
实施例
本实施例涉及一种使用共享参数卷积神经网络的知识图谱表示方法,如图1和图2所示:包括如下步骤:
将实体表示向量变换成二维的实体表示矩阵;将关系表示向量设置为卷积层的参数;将实体表示矩阵通过两层卷积层,再通过一层全连接层,得到特征向量;将特征向量与实体嵌入层的参数做点积,得到分类概率。
具体步骤为:
数据预处理:
本发明使用的示例数据集是fb15k-237,该数据集中共包含14541个实体,237个关系,其中训练集中包含141442个三元组,验证集中包含17535个三元组,测试集中包含20466个三元组。针对该数据集,数据预处理如下:构造一个实体词典,一个关系词典,对数据集中每一个元组进行遍历,如果元组中的头实体没有在实体词典中出现过,就将该头实体放入实体词典中,并从0开始给予其一个数字id表示,尾实体同上;对于元组中的关系,如果没有在关系词典中出现过,就将该关系放入关系词典中,并从0开始给予其一个数字id表示,它的反关系r_reverse,并将该关系放入关系词典中,给予其一个数字id表示。如果数据集中存在<e1,r,e2>这样的元组,与之对应构造出一个<e2,r_reverse,e1>元组,这样做的目的是用来扩充数据。根据以上做法将237个关系扩充为474个关系,并用数字0-473来表示。这样,就可以使用给定的数字id去表示数据集中的元组,例如:e1在实体词典中用23来表示,r在关系词典中用76表示,e2在实体词典中用173来表示,那么,对于<e1,r,e2>这样的元组,可以使用<23,76,173>这样的元组来等价表示。
经过预处理之后,获得了若干组由数字表示的三元组,这些三元组将作为本发明技术的输入数据。
利用实体嵌入层生成一个维度为14541×200的实体表示矩阵,对于这474个关系,利用关系嵌入层生成一个维度为474×288的矩阵,并都对矩阵进行随机初始化;矩阵的某一行,代表的是某个实体或某个关系的表示向量;
每一组输入数据都对应了三个向量,分别是200维的头实体表示向量,288维的关系实体表示向量,200维的尾实体表示向量;将1×200维的头实体表示向量变形成为10×20维的矩阵a,将288维的关系向量变形成为32个3×3维的矩阵b,将矩阵a与矩阵b做卷积操作,获得32个8×18维的特征矩阵c,再将c与b做卷积操作,得到1024个6×16维的特征矩阵d,将特征矩阵d变形成为1个1×98304维的特征向量e,通过全连接神经网络,将该特征向量的维度由98304维降为200维,得到特征向量f,将该特征向量与实体表示矩阵的转置相乘,上述过程可以用如下评分函数来表示:
其中,
再通过sigmod函数,得到每个实体可能作为输入头实体与关系对应的尾实体的概率值p,p的公式表示如下。
p=σ(f(s,r,o))
其中,σ(·)表示sigmod函数。
本发明方法最小化二元交叉熵损失函数,通过随机梯度下降方法对参数进行不断更新,二元交叉熵公式如下:
其中,t为标签向量,ti表示第i个实体是否是尾实体,ti=1表示该实体是尾实体,0表示不是,pi表示方法预测出来的第i个实体为尾实体的概率。
与现有技术相比,本发明具有以下优点:
(1)本发明使用共享参数卷积神经网络的知识图谱表示方法,在两层卷积网络中使用了相同的参数,降低了空间资源开销,相比于两层不同参数的卷积网络,使得参数得到充分训练,提升了表示效果,并提高了使用本发明生成的表示向量进行关系预测任务的准确率。
(2)本发明使用共享参数卷积神经网络的知识图谱表示方法,将卷积核参数固定为唯一维度的关系表示向量,减少空间资源开销,并使关系表示与实体表示进行充分交互,提升交互效率,获得更加高效、鲁棒的表示向量,使用该表示向量提升知识图谱补全任务、知识图谱元组分类任务的准确率。
(3)本发明没有使用relu激活函数,relu激活函数会将负值变为0值,影响实体表示与关系表示的稳定分布,从而影响利用本发明得到的表示向量进行的链接预测、元组分类等问题的准确率。
(4)本发明使用共享参数卷积神经网络的知识图谱表示方法,只生成单一维度的关系表示向量,在减少空间开销的情况下同时提升了表示效果;本发明使用较少参数就可以达到很高的准确率,生成表示向量的速度较快,具有很大的应用前景。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变形或修改,这并不影响本发明的实质。
1.一种使用共享参数卷积神经网络的知识图谱表示方法,其特征在于,包括如下步骤:
将实体表示向量变换成二维的实体表示矩阵;将关系表示向量设置为卷积层的参数;将实体表示矩阵通过两层卷积层,再通过一层全连接层,得到特征向量;将特征向量与实体嵌入层的参数做点积,得到分类概率。
2.如权利要求1所述的使用共享参数卷积神经网络的知识图谱表示方法,其特征在于,具体步骤为:对于一个实体个数为ne,关系个数为nr的待表示的知识库,利用实体嵌入层生成一个维度为ne×de的实体表示矩阵,其中de为实体表示向量的长度,对于这nr个关系,利用关系嵌入层生成一个维度为nr×dr的矩阵,其中dr为关系表示向量的长度,一般设置dr的数值为9×nf,nf为卷积神经网络中的卷积核个数,并都对矩阵进行随机初始化;矩阵的某一行,代表的是某个实体或某个关系的表示向量;
每一组输入数据都对应了三个向量,分别是长度为de的头实体表示向量,长度为dr的关系实体表示向量,长度为de的尾实体表示向量;将实体表示向量变形成为二维实体表示矩阵a,将关系向量变形成为nf个3×3的卷积核ω,将矩阵a与卷积核ω做卷积操作,获得特征矩阵f1,再将f1与卷积核ω做卷积操作,得到特征矩阵f2,将特征矩阵f2变形成为中间向量,将其通过全连接神经网络,将该中间向量的维度降为de,得到特征向量,将该特征向量与实体表示矩阵的转置相乘,再通过sigmod函数,得到每个实体作为输入头实体与关系对应的尾实体的概率值,其中sigmod函数由下列公式定义