一种精准描述知识图谱中元素语义的子图抽取方法与流程

文档序号:23719696发布日期:2021-01-24 07:21阅读:304来源:国知局
一种精准描述知识图谱中元素语义的子图抽取方法与流程

[0001]
本发明属于人工智能知识图谱领域,特别涉及一种精准描述知识图谱中元素语义的子图抽取方法。


背景技术:

[0002]
知识图谱是认知智能的核心技术之一,广泛应用于机器翻译、信息检索、智能问答等场景中。如何构建和描述知识图谱中元素的真实语义是大量知识图谱应用的一个基础问题。虽然基于深度学习的知识图谱表示学习方法可将其中的元素和三元组表示为向量形式,但这种隐式表示形式不具有直观的可解释性和可理解性。在显式语义表示上,元素的标识和注释文本可在一定程度上反映其所代表的部分语义,但由于知识图谱构建的随意性,并非每个知识图谱都会提供理想的描述文本,并且这种文本描述对元素语义的解释是含糊的,即其中并不包含明确的语义关系描述。因此,只利用元素自身的信息并不能保证全面理解元素语义。为了正确理解元素在知识图谱中的特定语义,往往还需要考虑与该元素相关的其它知识图谱元素,并称其为元素的语义上下文。同时,大多数知识图谱映射系统并不依靠外部知识库来构造真实的语义,因此本发明考虑在不借助外部知识库的情况下如何直接从知识图谱中获得元素真实的语义描述。本发明借助知识图谱图来分析元素的语义上下文。直观上,知识图谱图中与元素相关的点和边构成了元素在知识图谱中的语义上下文,这种语义上下文是知识图谱图中的一个子图,称之为元素的语义子图。然而,目前尚未一种有效的方法来精准描述知识图谱中表述实体语义子图并对其进行高效抽取。


技术实现要素:

[0003]
为解决上述问题,本发明提出了一种精准描述知识图谱中元素语义的子图抽取方法,通过分析概念、关系、实体等知识图谱元素的语义在知识图谱中的表示特点,利用电路模型实现描述元素的语义子图建模和抽取。语义子图可准确描述元素在知识图谱中的语义上下文,并且这种描述具有易于理解和可解释的特点,能广泛应用于各种基于知识图谱的智能应用中,本专利提供一种精准描述知识图谱中元素语义的子图抽取方法,该方法包括以下内容:
[0004]
1)知识图谱的图表示和预处理:根据知识图谱的三元组表示特点,将其转换为一个带标签的有向图g
r
,由于g
r
中两节点间可能存在多条边,因此g
r
是一个多图,为了解决多图在应用中难以处理的问题,采用一种结合知识图谱原始图和二部图特点的混合表示方式,并这种图称为知识图谱混合图g
h
,进一步,为简化g
h
中语义信息表示和明确隐含的语义关系,对g
h
分别进行语义扩充、语义明确和精炼操作;
[0005]
2)语义子图:语义子图是用于精确描述知识图谱中给定的概念、属性和实体元素的有限规模子图,其并不强调语义完整性,即知识图谱中有限个三元组便能精确描述元素在该知识图谱中的语义,且元素语义的解释无须用到整个知识图谱全部的知识,语义子图由描述给定元素的top-k个三元组组成;
[0006]
3)语义子图抽取的电路模型构建:提出一种利用电路模型来解决语义子图抽取,即将抽取语义子图的问题转化为一个电路模型进行求解,基于步骤1)中构建的图,图中的边传递信息的能力对应于电路中的电导率c,图中的顶点容纳信息的能力对应于电路中的电压v,电流i表征单位时间内在边上通过的信息量,并给图中增加一个接地的陷入点z,同时让其它的所有点都增加一条指向z的边,知识图谱中s点的语义子图即从s到z的连接子图中捕获电流最大的子图;
[0007]
4)电路模型中的电导率计算方法:针对知识图谱图的特点,提出了一套电导率权重计算规则,知识图谱的图中主要包括概念、属性、实体及元语,首先分析不同成分传递信息时的权重,然后给出由它们构成的三元组的电导率计算规则,包括频率规则、层次规则、实体空间规则、实体属性描述规则和独生实体优先规则;
[0008]
5)语义子图的抽取算法:为解决抽取语义子图的效率问题,采用一种贪心策略设计语义子图抽取算法,算法中的贪心思想是优先选择分配电流与所引入的新节点之比最大的前缀路径,设g
max
是所求的语义子图,首先令g
max
为空,接下来迭代地不断加入从s到z的前缀路径到g
max
中,随着g
max
不断增长,新加入的路径可能包含g
max
中已经存在的点,为了使得算法尽快得到满足图规模约束的结果,贪心规则优先选择分配电流和给g
max
所带来的新节点之比最大的前缀路径。
[0009]
作为本发明进一步改进,对所述步骤1)中的知识图谱混合图g
h
,如果两节点间存在k,k>1,则将k-1条边对应的三元组作为二部图处理,保留剩下的1条边,这种处理在保证g
h
可还原为原始图g
r
的同时,也可使得g
h
可以存放在邻接矩阵中,对g
h
的语义扩充指将知识图谱中的一些隐含语义关系显式表示在图中,对g
h
的语义明确是指将知识图谱中的容器和集合这种超图的表示形式变成简单图的表示形式,对g
h
的精炼是指去除图中对语义分析无关的三元组,精炼通常能减小图的大小,有利于提高后继对图进行分析的效率。
[0010]
作为本发明进一步改进,对所述步骤2)中的语义子图并非否认其它的语义描述与该元素不相关,而只是说舍弃它们并没有对元素的语义理解产生明显的负面影响,同时,语义子图优先关注那些最能将元素与其它元素区分开的语义信息,这些语义信息最能体现元素在知识图谱中的真实含义,语义不等价的元素对应的语义子图也应该不同,不同三元组对元素语义描述的重要程度是不同的,三元组与元素距离越近,并不一定代表它对元素的语义描述就越重要。
[0011]
作为本发明进一步改进,对所述步骤3)中电路模型可根据欧姆定律和基尔霍夫电流定律进行求解,从计算得到电路中节点的电压和边上的电流数值,给定要抽取语义子图的元素s,其初始电压为1,陷入点z的电压为0,不同三元组具有一定对语义信息传播的传到能力,即电阻率,由此求出电路模型中节点的电压和流过三元组的电流。
[0012]
作为本发明进一步改进,对所述步骤3)中的陷入点z,其有三个作用:(1)产生电势差和电流,提供一个电流流向的目标点,该点电压恒为0,即v(z)=0,从而,寻找给定点s语义子图的问题变为求从s到z的连接子图;(2)惩罚度大的节点,从s出发的路径在经过度较大的点时会损失较多的语义信息;(3)惩罚长路径,由于每个点上的信息都有一部分流向z,因此路径越长,流入z的电流越多,路径上的电流减少越快。
[0013]
作为本发明进一步改进,对所述步骤3)中的捕获电流,其量化表示一个子图携带关于s的信息量,对于同样规模的语义子图,取其中捕获电流最大的子图为所求语义子图,
一个子图的捕获电流是所有组成该子图的前缀路径的分配电流总和,前缀路径指从s出发的路径p的下行路径,分配电流为单位时间内从s出发,严格经过前缀路径p的电流。
[0014]
作为本发明进一步改进,对所述步骤4)中的电导率,其表示信息通过三元组<s,p,o>传递时会受到一定的阻力,因此对应电路图中边的电导率应该是一个位于区间[0,1]间的值,此外,信息从s传递到o和从o传递到s所受到的阻力可能不同,即三元组传递信息时还具有方向性。
[0015]
作为本发明进一步改进,对于所述步骤5)中的语义子图抽取问题,其可分解为两个子问题:(1)遍历有向图中所有从s到z的前缀路径,计算每条路径上的分配电流;(2)遍历所有由前缀路径组成的满足图规模约束的子图,计算每个子图的捕获电流,并取其中捕获电流最大者为语义子图,不难分析两个子问题的求解过程都是n-p问题,所以需要一种近似的快速求解算法。
[0016]
与现有技术相比,本发明具有如下优点和有益效果:
[0017]
本发明方法提出了一种精准描述知识图谱中元素语义的子图抽取方法,通过分析元素语义在知识图谱中的表示特点,利用电路模型实现语义子图的抽取。语义子图可准确描述元素在特定知识图谱中的语义,因此,以语义子图为基础构造的应用更具可信度,能在一定程度上降低知识不确定性的负面影响。本发明提出的描述实体语义的方法具有较好的通用性,可直接应用到现有的知识图谱应用中。因此本发明具有较好的应用前景和推广范围。
附图说明
[0018]
图1为本发明方法的逻辑流程图;
[0019]
图2为电路模型计算示例图;
[0020]
图3为分配矩阵计算示例图;
[0021]
图4为属性语义子图抽取示例图。
具体实施方式
[0022]
下面结合附图与具体实施方式对本发明作进一步详细描述:
[0023]
本发明提出了一种精准描述知识图谱中元素语义的子图抽取方法,通过分析概念、关系、实体等知识图谱元素的语义在知识图谱中的表示特点,利用电路模型实现描述元素的语义子图建模和抽取。语义子图可准确描述元素在知识图谱中的语义上下文,并且这种描述具有易于理解和可解释的特点,能广泛应用于各种基于知识图谱的智能应用中。
[0024]
作为本发明一种具体实施例,本发明提供逻辑流程图如图1所示的一种精准描述知识图谱中实体语义的子图抽取方法,包括步骤为:
[0025]
1)知识图谱的图表示和预处理。知识图谱的基本构成是三元组形式的声明(statement),即<subject,predicate,object>的形式,简写为<s,p,o>,这样的形式使得一个知识图谱很容易被表示为图的形式。三元组中的成分包括:统一资源标识符(uris)表示的资源,表示属性值的文本(literals)以及表示空节点(也称匿名节点)的空节点(blank nodes)。令知识图谱中资源、文本和空节点的集合为univ(o);将资源和文本的集合称为词汇,表示为vocab(o);令sub(o)、pred(o)和obj(o)分别表示知识图谱中出现在subject、
predicate和object位置的资源、文本和空节点的集合,显然这三个集合是有可能相交的。知识图谱的三元组表示特点使得它直接对应于一个图结构。
[0026]
定义1(原始知识图谱图);知识图谱o对应着一个带标签的有向图g
r
=<v,e,l
v
,l
e
>,其中v是节点的集合,e是变的集合,l
v
和l
e
分别是图中点和边到对应标签的映射函数。g
r
中的两个顶点和连接顶点的边与知识图谱中的三元组描述具有严格对应关系,称g
r
为原始知识图谱图。
[0027]
原始知识图谱图g
r
是一个多图(multigraph)。由于组成知识图谱的三元组<s,p,o>中,一对s和o间可以有多个p
x
相连,即知识图谱图中两节点间可能存在多条边,因此图g
r
是多图。为了解决多图的表示以及避免全部采用二部图表示所产生的问题,这里采用一种综合知识图谱原始图和二部图优点的混合表示方式,并称这种图为混合知识图谱图。混合知识图谱图的主要思想是:当原始图中的两顶点间存在唯一边时,其表示不变,如果两顶点间存在k(k>1)条边,则将其中的k-1条边采用二部图描述。
[0028]
定义2(混合知识图谱图);给定知识图谱o的原始图g
r
=<v,e,l
v
,l
e
>,则o的混合知识图谱图g
h
=<v

,e,l
v
,l
e
>由如下规则构造:
[0029]
(1)如果两节点间的边数k=1,则将对应的边和点直接转化到g
h
中;
[0030]
(2)如果两节点间的边数k>1,则任取其中1条边直接转化到g
h
中,并将其余k-1条边转化为二部图表示后再保存到g
h
中。
[0031]
混合知识图谱图能用邻接矩阵存储,在需要对节点间关系进行分析的时候只需将其中的二部图表示的边转化为原始图的形式。混合知识图谱图与原始知识图谱图均不要求所有的元素必须位于图的节点上。
[0032]
2)语义子图。知识图谱图中与元素相关的点和边构成了元素在知识图谱中的语义上下文,这种语义上下文是知识图谱图中的一个子图,称之为元素的语义子图。
[0033]
定义3(语义子图);给定知识图谱o,e是o中的元素,称精确描述e的语义的三元组构成的子图为e的语义子图g
s
(e)。语义子图具有如下特点:
[0034]
(1)元素的语义子图规模是有限的。本发明认为知识图谱中有限个三元组便能精确描述元素在该知识图谱中的语义,或者说对元素语义的解释无须用到整个知识图谱全部的知识。这并非否认其它的语义描述与该元素不相关,而只是说舍弃它们并没有对元素的语义理解产生明显的影响。
[0035]
(2)语义子图并不强调语义完整性,而优先关注那些最能将元素与其它元素区分开的语义信息,这些语义信息最能体现元素在知识图谱中的真实含义。
[0036]
(3)同一知识图谱中,语义不等价的元素对应的语义子图也应该不同。
[0037]
(4)不同三元组对元素语义描述的重要程度是不同的,应用中优先选择与元素关系密切的三元组信息将会有益于得到质量更好的结果。
[0038]
(5)三元组与元素距离越近,并不一定代表它对元素的语义描述就越重要,所以构成元素语义子图的三元组不一定都是与元素直接关联的。
[0039]
语义子图的上述特点使得它能给出一种关于元素语义的清晰、准确和可信的描述。本发明认为,根据语义子图所得到的显示表示更具可信度,有利于减少知识不确定性对应用造成的负面影响。
[0040]
3)语义子图抽取的电路模型构建。假设关于s的语义信息是可度量的,设为1。s的
语义信息由节点s发出,并通过与之关联的三元组传播到其它节点s
i
。由于三元组对语义信息的传播具有一定阻力,使得s
i
得到的关于s的语义信息会有损失。这样的传播过程在知识图谱图中不断进行。s的语义子图由那些从节点s出发,经过若干次传播后,依然保留较多关于s的语义信息的若干条路径组成。上述过程正好对应一个电路模型:s点发出语义信息的过程相当于在电路中s点加上+1伏的电压;从s出发,经过一条路径到达s
i
点的语义信息相当于通过这条路径到达s
i
的电流;传播中的阻力对应于电路中的电阻。
[0041]
本发明将予以子图抽取问题转化为一个电路模型进行求解。图中的边传递信息的能力对应于电路中的电导率c,图中的顶点容纳信息的能力对应于电路中的电压v,电流i表征单位时间内在边上通过的信息量。在s上加上+1伏的电压,同时,在语义子图中增加一个陷入点(sink node)z,令z接地,即v(z)=0,让其它的所有点都增加一条指向z的边,从而将问题变为求从s到z的连接子图。
[0042]
给定图g,u和v是图中的点。令i(u,v)表示从u流向v的电流,v(u)和v(v)分别表示u和v的电压,c(u,v)是对应边的电导率,它与电阻的关系为c(u,v)=1/r(u,v)。
[0043]
根据欧姆定律有:
[0044][0045]
根据基尔霍夫电流定律有:
[0046][0047]
由上两式可得电路图中关于电压的线性方程:
[0048][0049]
其中,c(u)=∑
v
c(u,v)表示与点u相邻的所有边的电导率之和。
[0050]
根据问题的描述可知电路图中的电压初始条件为:
[0051]
v(s)=1,v(z)=0
[0052]
联立可求得电路图中全部节点的电压,并可进一步求得各边的电流。
[0053]
电路图中指向陷入点z的边的电导率为:
[0054]
c(u,z)=α∑
w≠s
c(u,w)
[0055]
其中,系数α>0,本发明实现中取α=0.85。
[0056]
陷入点z有三个作用:(1)使电路有电势差,产生由s流出的电流。由于z点接地,电压为0,s出发的电流将会经过某些路径流入z。(2)惩罚度大的节点。由于节点会将拥有的语义信息通过相邻边进一步传播下去,从s出发的路径在经过度较大的点时会损失较多的语义信息,因此包含度较大的三元组并不是传播路径优先选择的对象。节点的度越大,经由该点指向z的边的电导率也可能越大,从该点流入z的电流便越多,从该点传播出去的电流也越少,从而避免路径优先选择度较大的点。(3)惩罚长路径。z的另一个额外的作用是惩罚长路径,由于每个点上的信息都有一部分流向z,因此路径越长,流入z的电流越多,路径上的电流减少越快。
[0057]
语义子图对元素的描述程度,即语义子图的质量可通过它们的捕获电流进行定量衡量。子图的捕获电流越大,表明该子图携带关于s的信息越多,但同时会导致语义子图规模增加。因此,对于同样规模的语义子图,取其中捕获电流最大的子图为所求语义子图。有关捕获电流的相关定义如下:
[0058]
定义4(下行关系);给定电路中相邻两点u,v,如果i(u,v)>0,则有v(u)>v(v),称
v是u的下行,表示为u

d
v。
[0059]
从点u流出的电流总和为:i
out
(u)=∑
{v|u

v}
i(u,v)。
[0060]
定义5(前缀路径);对于从s出发的路径p=(s=u
1
,...,u
i
),如果路径上相邻点满足下行关系,即u
j

d u
j+1
,则称p为一条前缀路径。
[0061]
由下行关系的特点可知,前缀路径不会出现环路。
[0062]
定义6(分配电流);将单位时间内从s出发,严格经过前缀路径p=(s=u
1
,...,u
i
)到达u
i
的电子总量称为p上的分配电流,记为
[0063]
分配电流可用如下公式归纳计算:
[0064][0065]
分配电流在物理上描述了源自于s点的电流,在经过某条前缀路径后所剩下的总量。这里用它描述知识图谱图中经过特定路径后,该路径还保留多少关于源点的信息。
[0066]
若干条前缀路径可组合为一个关于点s的子图,定义该子图的捕获电流为:
[0067]
定义7(捕获电流);子图g
s
的捕获电流是所有组成g
s
的前缀路径的分配电流总和:
[0068][0069]
在给定语义子图规模为n的限制条件下,其中具有最大捕获电流的子图便是所求的语义子图。
[0070]
图2给出抽取最大捕获电流子图的示例。如图2所示的电路图,源点s和陷入点t的电压分别为+1伏和0伏。为简单起见,这里省略了每个节点指向陷入点的边。设图中每条边的电导率均为1。容易得知,图中共有5条从s到t的前缀路径,如(d)所示。其中,携带分配电流最多的路径是s

b

t,它的分配电流计算如下:经s

b的电流是0.5a,这部分电流的1/5流向c,4/5流向t,因此这条前缀路径的分配电流是0.5
×
4/5=2/5a。点{s,b,c,t}构成的图g
s
是连接s和t的一个子图,g
s
的捕获电流是其中包含的所有前缀路径的分配电流之和,即s

b

c

t和s

b

t两条路径上的分配电流和:2/5+1/10=0.5a。进一步的分析还可以得知,在连接s和t的所有规模为4的子图中,g
s
具有最大捕获电流,即它是当前规模下s的语义子图。注意,g
s
并不是规模为4的条件下唯一的语义子图,本例中的另一个语义子图由点{s,a,b,t}组成,它同样具有0.5a的捕获电流。
[0071]
4)电路模型中的电导率计算方法。本发明认为信息通过三元组<s,p,o>传递时会受到一定的阻力,因此对应电路图中边的电导率应该是一个位于区间[0,1]间的值;此外,信息从s传递到o和从o传递到s所受到的阻力可能不同,即三元组传递信息时还具有方向性。本发明针对知识图谱图的特点提出了一套全面和适用的电导率权重计算规则。
[0072]
首先分析不同成分传递信息时所拥有的权重,然后给出由它们构成的三元组的电导率。
[0073]
规则1.频率规则
[0074]
如果一个元素频繁出现在不同三元组中,那么当它对应知识图谱图中顶点时,该顶点的度会较大;当它对应图中边时,这条边会涉及较多三元组。这里将元素出现次数视为频率。可见,元素频率越大,它传递信息的能力越弱。这种传递能力可表示为权重。为了避免直接用频率倒数衡量权重而导致权重随频率增加而迅速下降,先引入一个退火函数g(x,
m):
[0075][0076]
其中,m是一个预先设定的常数;ε是一个很小的正常数,用于避免出现分子为0的情况。这里将退火函数中的x设为元素频率f(e),m设为某成分中元素的最大频率f
max
(e
k
),则元素对应的权重为:
[0077]
μ
f
(e)=g(f(e),f
max
(e
k
))
[0078]
此时退火函数中的前半部分衡量元素在知识图谱中的全局频率权重,后半部分衡量在同类元素中的相对频率权重。
[0079]
这种根据元素频率计算权重的方法称为频率规则。频率规则对知识图谱中的概念、关系和元语都适用。由于知识图谱一般不会将领域内的实例相关的知识全部加入进来,因此得到的实例频率并不可信,所以实例权重计算时不采用频率规则。
[0080]
规则2.层次规则
[0081]
层次关系rdfs:subclassof和rdfs:subpropertyof是知识图谱中的概念和关系重要组织形式。直观上,元素越是位于层次结构中的底层,它传播信息的能力就越强。因此,由层次造成的传播能力可用如下权重衡量:
[0082][0083]
其中d(ei)表示元素在层次中的深度,而h
max
(e
k
)表示e
i
所处的层次结构最大深度。
[0084]
层次规则适用于概念和关系。
[0085]
规则3.实例空间规则
[0086]
概念和关系都是知识图谱中的抽象资源,它所对应的实体或事实的集合称为其实例空间。称概念c对应的全部实例的集合i
sp
(c)={a
i
|a
i
∈c}为它的实例空间。称关系p所对应的形如<a
i
,p,b
j
>的全部二元组<a
i
,b
j
>的集合为它的实例空间,记作i
sp
(p)={<a
i
,b
j
>|a
i
∈dom(p),b
j
∈rng(p)},其中dom(p)和rng(p)分别表示p的值域和定义域。
[0087]
在知识图谱描述中,组成概念c的实例空间的a
i
满足<a
i
,rdf:type,c>形式的三元组,组成关系p的实例空间的<a
i
,b
j
>满足<a
i
,p,b
j
>形式的三元组。概念的实例空间的规模越大,说明它对应的实例越多,则它位于概念层次上层的可能性越大,因此包含此概念的三元组传递的信息就越少。类似地,如果关系的实例空间规模越大,说明该关系被使用得越普遍,因此相应的三元组传递的信息就越少。考虑实例空间所得到的权重仍然可用退火函数计算:
[0088][0089]
其中|i
sp
(e)|表示元素e对应的实例空间大小,表示知识图谱中同类元素所对应的实例空间大小的最大值。
[0090]
规则4.实例属性描述规则
[0091]
通常,当一个实例比较重要时,知识图谱会用较多的三元组来对其进行描述。由于对任意实例a
i
的描述都具有<a
i
,p
m
,b
j
>的形式,这里属性值b
j
可能是具体数值或其它实例对象,因此可通过统计p
m
的数目来衡量知识图谱对于实例a
i
的描述程度。这里采用如下的公式来计算实例的这种权重:
[0092][0093]
其中,dp(a
i
)和op(a
i
)分别表示描述中使用的datatypeproperty和objectproperty,dp
max
(a
k
)和op
max
(a
k
)是所有实例的描述中使用的两类属性的最大数目。
[0094]
规则5.独生实例优先规则
[0095]
设实例a
i
对应的概念是c,那么c中所包含的实例个数越少,这些实例传播信息的能力越强,即概念的实例越少,这些实例传递的语义信息越多。这种计算实例权重的规则称为独生实例优先规则,它也可采用退火函数来计算:
[0096]
μ
io
(a
i
)=g(|c(a
i
)|,c
max
(a
k
))
[0097]
其中,|c(a
i
)|表示实例a对应的概念所包含的实例总数,|c
max
(a
k
)|表示知识图谱中概念所包含的最大实例数目。
[0098]
知识图谱中各类元素的总权重可综合上述5条规则计算得到。设有概念c、关系p、实例i和元语m,它们的综合权重如下:
[0099]
μ(c)=γ
c1
×
μ
f
(c)+γ
c2
×
μ
h
(c)+γ
c3
×
μ
isp
(c)
[0100]
μ(p)=γ
p1
×
μ
f
(p)+γ
p2
×
μ
h
(p)+γ
p3
×
μ
isp
(p)
[0101]
μ(i)=γ
i1
×
μ
id
(i)+γ
i2
×
μ
io
(i)
[0102]
μ(m)=μ
f
(m)
[0103]
其中,γ
c1

c2

c3
=1,γ
p1

p2

p3
=1,γ
i1

i2
=1。
[0104]
三元组t=<s,p,o>的电导率可综合s、p和o的权重得到。电导率计算时,考虑到s和o由于位于顶点,它们的权重会被分化到多个三元组中,因此除以度。本发明用下式计算三元组t的电导率。
[0105][0106]
上述得到的电导率是从s到o方向的,如果电流是从o到s的逆方向,则将此时的电导率设为正向的α(0<α≤1)倍。本发明实现中取α=0.8。
[0107]
虽然这5条权重计算规则都较为直观,但均是本发明具体实践中的经验性总结,它们在本质上符合信息论中熵的观点,即事件出现的概率越小,它所传播的信息就越多。
[0108]
5)语义子图抽取的抽取算法。
[0109]
由于语义子图是由若干条前缀路径组合而成,因此寻找语义子图的问题可分解为两个子问题:(1)遍历有向图中所有从s到z的前缀路径,计算每条路径上的分配电流;(2)遍历所有由前缀路径组成的满足图规模约束的子图,计算每个子图的捕获电流,并取其中捕获电流最大者为语义子图。不难分析两个子问题的求解过程都是n-p问题,对于规模较大的图,效率较低。
[0110]
为有效解决语义子图抽取问题,本发明采用贪心思想进行近似求解,改算法优先选择分配电流与所引入的新节点之比最大的前缀路径。设g
max
是所求的语义子图。首先令g
max
为空,接下来迭代地不断加入从s到z的前缀路径到g
max
中。随着g
max
不断增长,新加入的路径可能包含g
max
中已经存在的点。为了使得算法尽快得到满足图规模约束的结果,贪心规则优先选择分配电流和给g
max
所带来的新节点之比最大的前缀路径。
[0111]
可构造一个矩阵d来辅助上述的贪心算法思想的实现。矩阵中k行v列位置的值d
v,k
由此确定:d
v,k
表示从s出发,沿前缀路径p=(s=u
1
,...u
x
=v)到达v,且满足条件(i)和(ii)
的分配电流:
[0112]
(i).p正好有k个点不在图g
max
中;
[0113]
(ii).在所有从s到v的前缀路径中,p的分配电流最大。
[0114]
可见,矩阵d中的列为电路图中的顶点,行方向为g
max
不包括前缀路径中点的数目,称矩阵d为分配矩阵。
[0115]
为方便计算d,可利用电流的一个特性:将d中列方向的点u
1
=s,u
2
,u
3
,...,t=u
n
按照下行关系排列,即如果u
i
是u
i
的下行,则u
j
在序列中排在u
i
之后。这样,列方向中的顶点按照电压从高到低排列,于是电流总是从序列中左边的点流向右边的点。按照这样的拓扑序列填充表d,可以保证当计算d
v,k
时,对任意的u

d v,d
u,x
已经被计算。需要注意的是,分配矩阵是动态的,对于一个特定的g
max
,有着一个特定的分配矩阵。如图3的例子所示,当g
max
是由{s,b,t}组成,且语义子图的规模约束为4时,对应的分配矩阵如图中(b)表所示。分配矩阵中某个位置所对应的前缀路径需要额外的空间记录下来。
[0116]
根据上面的分析,可得到抽取关于s的语义子图的贪心算法,如算法1所示。
[0117]
其中算法1语义子图抽取的贪心算法具体如下;
[0118][0119]
算法中的i(u,v)/i
out
(u)表示到达u的电流中继续流向v的比例,它乘以d
u,k

表示通过这条前缀路径分配到v的电流。这里需要得到满足d
z,k
/k最大的前缀路径,它可以通过查表d得到。图3中,算法将选择d
t,1
=1/10所对应的前缀路径s

b

c

t加入g
max
;虽然d
t,2
/2=1/8>d
t,1
/1,但由于加入d
t,2
对应的路径s

a

c

t会导致g
max
的规模超过4,所以不能
选择这条路径。
[0120]
下面对语义子图构造的复杂度进行分析。求解元素的语义子图的电路模型可分为两个步骤,即解电路线性方程和抽取语义子图。对于一个有n个点e条边的电路图,利用直接法求解电路线性方程的复杂度为o(n
3
)。而语义子图抽取算法的时间复杂度为o(ekb),其中k是从s到z的路径中的最大长度,b是输出图的期望规模。因此,模型求解总的时间复杂度为o(n
3
+ekb)。由于b是常数,通常b远小于n,k≤n-1,且在通常的图中,可假定边和点的数目具有线性关系e=λn,则总时间复杂度的后一项可视为n
2
级别的,所以该模型求解的复杂度可进一步简化为o(n
3
),即求解速度主要取决于解电路线性方程所需的时间。解线性方程组需要o(n
2
)空间,而抽取算法需要o(nk)空间,因此总的空间复杂度为o(n
2
)。
[0121]
在实际求解中,由于知识图谱图对应的电路线性方程通常是稀疏的线性方程,因此本发明实现中采用专门的稀疏线性方程求解方法,并进一步使用运行较快的c++语言来提高解线性方程的求解效率。本发明利用了lapack++提供的api实现对稀疏线性方程的快速求解,其速度约为普通求解方法的8~10倍。
[0122]
由于语义子图是由若干条分配路径组合得到,其中的分配电流体现了分配路径与元素的相关程度,因此可将语义子图中存在的最小分配电流作为算法的结束条件。假设分配电流的阀值为则当不存在分配电流大于该阀值的分配路径存在时就可结束抽取过程。然而,根据前面的描述,抽取所使用的贪心算法并非按照分配电流的大小顺序来寻找分配路径的,因此这种结束条件得到的是一个近似结果。本发明实现中取另一种结束条件则是直接限制语义子图的规模,当语义子图达到预计规模时算法就结束。为了便于分析各种映射方法随语义子图变化的情况,本发明主要使用第二种抽取结束条件。
[0123]
概念和实体总是位于知识图谱图中顶点位置。对于任意概念c,只需在顶点c加上1伏电压,然后寻找从c到陷入点z的不大于规模约束n且具有最大捕获电流的子图作为c的语义子图。当抽取过程碰到二部图形式的边时,需要将其还原为<s,p,o>的原始形式进行分析,这样的处理可保证结果图中的多重边信息是完整的。算法2描述了概念语义子图的抽取过程。
[0124]
其中算法2.概念和实体语义子图抽取算法具体如下;
[0125][0126]
关系的语义子图抽取与概念语义子图抽取具有差异,这种差异主要是由于关系在知识图谱图中既可以在顶点出现,也可出现在边的特点造成的。当知识图谱中对关系进行抽象声明描述时,关系对应于知识图谱图中的点,当实例使用关系进行属性值描述时,关系对应于知识图谱图中的边。图4正是关系属性p
i
同时出现在边和点的例子,如果仅仅在点p
i
上施加1伏电压,有可能会使得那些以p
i
为边的三元组<c
k
,p
i
,d
k
>上通过的电流过少,而这些三元组有可能对描述p
i
的语义是有益的。这里采用添加辅助边的方法来弥补语义子图抽取中p
i
同时出现在点和边的问题,即通过添加由p
i
指向c
k
的边t
k
,增加流经三元组<c
k
,p
i
,d
k
>的电流,从而提高语义子图中包含<c
k
,p
i
,d
k
>的可能性。
[0127]
直观上,c
k
和d
k
的权重越大,辅助边t
k
的权重也相应越大。此外,当<p
i
,rdfs:domain,c>和<p
i
,rdfs:range,d>的电导率和越大,从p
i
流出的电子也越容易经过边t
k
。综上分析,可用下式计算辅助边t
k
的电导率。
[0128][0129]
根据上述思路,同样可得关系语义子图抽取算法3,抽取过程中的多重边处理同概念语义子图抽取过程相同。
[0130]
其中算法3.知识图谱关系语义子图抽取算法具体如下;
[0131][0132]
以上所述,仅是本发明的较佳实施例而已,并非是对本发明作任何其他形式的限制,而依据本发明的技术实质所作的任何修改或等同变化,仍属于本发明所要求保护的范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1