【知识图谱】知识推理

知识图谱推理

推理:通过已有知识推断出未知知识的过程。按照推理方式不同包含两大类:

演绎推理:自上而下的推理逻辑,指在给定的一个或多个前提的情况下,推断出一个必然成立的结论的过程。

  • 典型案例有:肯定前件假言推理、否定后件假言推理、三段论
  • 假言推理中,给定的前提中一个是包含前件和后件的假言推理,一个性质命题,假言推理根据假言命题前后件之间的逻辑关系进行推理。
    • 其中,肯定前件假言推理是指性质命题肯定了假言命题的前件,从而推理出肯定的假言后件。
    • 否定后件假言推理指性质命题否定了假言命题的后件,从而推理出否定的假言前件。
  • 假言三段论中,给定两个假言命题,且第二个假言命题的前件和第一个假言的后件的申明内容相同,可以推理出一个新的假言命题,其前件与第一个假言命题前件相同,后件与第二个假言命题的后件相同。

归纳推理:自下而上的推理,基于已有部分观察得出一般结论的过程。典型的归纳推理有以下两种:

  • 归纳泛化:基于对个体的观察而得出可能使用于整体的结论,在整体的一些样本中得到的结论可以泛化到整体上。
  • 统计推理:将整体的统计结论应用于个体。

归纳推理是一种非形式化的推理,是由具体到一般的推理过程。归纳推理又包含了溯因推理和类别推理两种。

溯因推理:在给定一个或多个已有观察事实O并根据已有的知识T推动出对已有观察最简单且最有可能的解释的过程。推理过程要使基于知识T而生成的对观察O的解释E是合理的。需要满足以下两个条件“

  • E可以由T和O经过推理得出,可以是演绎、归纳推理等多种方式。
  • E和T是相关且相容的。

类比推理:可以看作只基于一个事物的观察而进行的对另一个事物的归纳推理,是通过寻找两者之间可以类比的信息,将已知事物上的结论迁移到新的事物上的过程。

面向知识图谱的推理

主要围绕关系的推理展开,基于图谱中已有事实或关系推断出来未知的事实或关系,一般着重考察实体、关系和图谱结构三个方面的特征信息。知识图谱推理主要能够辅助推理出新的事实、新的关系、新的公理以及新的规则。

基于演绎的知识图谱推理

明确定义的先验信息,多围绕本体展开。本体一般定义为概念化的显示规约,它给不同的领域提供了共享的词汇。因为共享的词汇需要赋予一定的语义,所以基于演绎的推理一般都在具有逻辑描述基础的知识图谱上展开。

对逻辑描述的规范,W3C提出了OWL。OWL按表达能力从低到高划分成不同逻辑描述。

OWL模型论语义

除了包含实体和二元关系,还包含了许多更抽象的信息,如描述实体类别的概念以及关系之间的从属信息等。一系列推理问题包括:

  • 概念包含:判定概念C是否为D的子概念(C是否被D包含)。
  • 概念互斥:判断两个概念C和D是否互斥,即不相交。
  • 概念可满足:判定概念C是否可满足,需要找到该知识库的一个模型,使C的解释非空。
  • 全局一致:判定给定的知识库是否全局一致,需要找到该知识库的一个模型。
  • TBox一致:判定给定知识库的TBox是否一致,需要判定TBox中所有原子概念是否都满足。
  • 实例测试:判定个体a是否是概念C的实例,需要判定C(a)是否为给定知识库的逻辑结论。
  • 实例检索:找到概念C在给定知识库中所有实例,需要找到属于C的所有个体a,即C(a)是给定知识库的逻辑推论。
基于逻辑编程的推理方法

逻辑编程是一族基于规则的知识表示语言。与本体推理相比,规则推理有更大的灵活性。

Datalog语言是一种面向知识库和数据库设计的逻辑语言。可以应用在知识图谱中进行规则推理。

知识图谱可以被自然的看作一个事实集,只需人为引入一个特殊的谓词triple,每一个三元组便可以作为一个事实triple。

另一种方法是按照描述逻辑ABox的方式来看待,即三元组(s,rdf:type,C)看作C(s),其他三元组(s,p,o)看作p(s,o)。

1、基于查询重写的方法

当知识图谱已经存在的时候,在知识图谱上的查询称为本体介导的查询回答。在该方式下,查询重写的任务是将一个本体TBox T上的查询q重写为查询qT,使得对于任意的ABox A,qT在A上的执行结果等价于q在(T,A)上的执行结果。

基于本体的数据访问,即数据不以知识图谱形式存在,而是存在外部数据库中。由映射Mapping将数据库的数据映射为一个知识图谱。映射的标准语言为W3C的R2RML语言。

OBDA

包含外延和内涵两个部分。

  • 外延层为符合某个数据库架构S的一个源数据库D,S通常包括数据库表的定义和完整性约束。
  • 内涵层为一个OBDA规范 P=(T,M,S) ,其中T为本体,S是数据源模式,M是从S到T的映射。
  • OBDA的实例定义为外延层和内涵层的一个对I=(P,D),其中 P=(T,M,S),且D符合S。
    • 用M(D)表示将映射M作用于数据库D上生成的知识图谱。给定一个OBDA实例I,OBDA的语义定义为一个知识库(T,M(D))。

OBDA的主要推理任务是查询。本体T为用户提供了一个高级概念视图数据和方便的查询词汇,用户只针对T查询,而数据库存储层和映射层对用户完全透明。

OBDA有多种实现方式,最直接的方式是生成映射得到的知识图谱M(D),然后保存到一个三元组存储库中,该方式称之为ETL。而在虚拟OBDA方式下,三元组并不需要被真正生成,而通过查询重写的方式来实现,OBDA将在主体层面的SPARQL查询重写为在原始数据库上的SQL查询。相比于ELT方式,虚拟OBDA方式更轻量化、更灵活,也不需要额外的硬件。

给定一个OBDA实例I=(P,D)、P(T,S,M)以及一个SPARQL查询q,通过重写回答查询的具体步骤为:

  1. 查询重写,对于OMQ 情况利用本体T将输入的SPARQL q 重写为另一个SPARQL。
  2. 查询展开。将SPARQL利用映射M展开,把每一个查询中的谓词替换成映射中的定义,生成SQL语句查询。
  3. 查询执行。将生成的SQL语句交给数据库引擎并执行。
  4. 结果转换。SQL语句查询的结果做一些简单的转换,变成了SPARQL的查询结果。
2、基于产生式规则方法

是一种前向推理系统,可以按照一定机制执行规则并达到某些目标。产生式系统由以下三部分组成:

  • 事实集合:是一种前向推理系统,可以按照一定机制执行规则并达到某些目标。
  • 产生式集合:IF conditions THEN actions
    • conditions是由条件组成的集合,又称LHS
      • 各条件之间为且的关系,当LHS中所有条件均被满足时,触发规则。
    • actions是由动作组成的序列,又称RHS。动作种类共三种:
      • ADD pattern:向WM中加入形如pattern的WME。
      • REMOVE i:从WM中移除当前规则第i个条件匹配的WME。
      • MODIFY i:对于当前规则第i个条件匹配的WME,其对应于attr属性的值改为spec。
  • 推理引擎:用于控制系统的执行。执行过程如下:
    • 模式匹配:用规则的条件部分匹配事实集中的事实,整个LHS都被满足的规则被触发,并被加入议程。
    • 选择规则:按一定策略从被触发的多条规则中选择一条。
    • 执行规则:执行被选择出来的规则的RHS,从而操作WM。
基于归纳的知识图谱推理

通过对知识图谱已有信息的分析和挖掘进行推理的,最常用的信息为已有三元组。根据推理要素不同分为以下几种类型:

基于图结构的推理

有向图中丰富的图结构反应了知识图谱丰富的语义信息,典型的图结构是两个实体之间的路径。

  • 路径是一种重要的进行关系推理的信息,也是一种重要的图结构。
  • 实体的邻居节点以及它们之间的关系也是刻画和描述一个实体的重要信息,离实体越近的节点对描述这个实体的贡献越大,在知识图谱推理的研究中,常考虑的是实体一跳和两跳范围内的节点和关系。
常见算法 PRA:利用实体节点之间的路径当作特征从而进行链接预测推理。
  1. 基于知识图谱路径特征的PRA算法

    处理关系推理问题,包含两个任务:

    • 尾实体链接预测:给定关系r和头节点h预测可能的尾实体t是什么
    • 头实体链接yuce

    PRA算法主要针对自底向上自动化构建的含有较多噪声的图谱,通过将关系推理的问题形式化为一个排序问题,对每个关系的头实体预测和尾实体预测都单独训练一条排序模型。PRA将存在于知识图谱中的路径当作特征,通过图上的计算对每个路径赋予相应特征是,利用特征学习一个Logistic分类器完成关系推理。

    在PRA中,利用随机游走的路径排序算法首先需要生成一些路径特征,一个路径P是由一系列关系组成的:
    P = T 0 → r 1 T 1 → r 2 . . . → r n − 1 T n − 1 → r n T n P=T_0\stackrel{r_1}{\rightarrow} T_1\stackrel{r_2}{\rightarrow} ...\stackrel{r_{n-1}}{\rightarrow} T_{n-1}\stackrel{r_{n}}{\rightarrow} T_{n} P=T0r1T1r2...rn1Tn1rnTn
    Tn为关系rn的作用域以及关系r_{n-1}的值域。即
    T n = r a n g e ( r n ) = d o m a i n ( r n − 1 ) T_n= range(r_n)=domain(r_{n-1}) Tn=range(rn)=domain(rn1)
    关系的值域和作用域通常指实体的类型。基于路径的随机游走定义了一个关系路径的分布,并得到每条路径的特征值s_{h,P(t)}(沿着路径P从h开始能够达到t的概率)。

    具体操作为:在随机游走的初始阶段,s_{h,P(e)}初始化为1,如果e = s,否则初始化为0。随机游走过程中更新原则如下:
    s h , P ( e ) = ∑ e " ϵ r a n g e ( P " ) s h , P " ( e " ) ( e " ) ⋅ P ( e ∣ e " ; r l ) s_{h,P(e)}=\sum_{e^"\epsilon range(P^")}s_{h,P^"(e^")}(e^")·P(e|e^";r_l) sh,P(e)=e"ϵrange(P")sh,P"(e")(e")P(ee";rl)

    P ( e ∣ e " ; r l ) = r l ( e " , e ) ∣ r l ( e " ∣ ⋅ ) ∣ 表示从节点 e " 出发沿着 r l 通过一步游走能够达到节点 e 的概率。 P(e|e^";r_l) = \frac{rl(e^",e)}{|r_l(e^"|·)|} 表示从节点e^"出发沿着r_l通过一步游走能够达到节点e的概率。 P(ee";rl)=rl(e")rl(e",e)表示从节点e"出发沿着rl通过一步游走能够达到节点e的概率。

    对于关系r,在通过随机游走得到一系列路径特征Pr={P1,···,Pn}之后,PRA利用这些路径特征为关系r训练一个线性的预测实体排序模型。其中关系r下每个训练样本,即一个头实体和尾实体组合的得分计算方法如下:
    s c o r e ( h , t ) = ∑ p i ϵ P r θ i s h , p i ( e ) = θ 1 s h , p 1 ( e ) + θ 2 s h , p 2 ( e ) + ⋅ ⋅ ⋅ + θ n s h , p n ( e ) score(h,t) = \sum_{p_i \epsilon P_r}\theta_is_{h,p_i(e)}=\theta_1s_{h,p_1(e)}+\theta_2s_{h,p_2(e)}+···+\theta_ns_{h,p_n(e)} score(h,t)=piϵPrθish,pi(e)=θ1sh,p1(e)+θ2sh,p2(e)+⋅⋅⋅+θnsh,pn(e)
    基于每个样本的得分,通过一个Logistic回归函数得到样本概率:
    p ( r i = 1 ∣ s c o r e ( h i , t i ) ) = e x p ( s c o r e ( h i , t i ) ) 1 + e x p ( s c o r e ( h i , t i ) ) p(r_i=1|score(h_i,t_i))=\frac{exp(score(h_i,t_i))}{1+exp(score(h_i,t_i))} p(ri=1∣score(hi,ti))=1+exp(score(hi,ti))exp(score(hi,ti))
    再通过一个线性变化加上最大似然估计,设计损失函数如下:
    l i ( θ ) = w i [ y i ln ⁡ p i + ( 1 − y i ) ln ⁡ ( 1 − p i ) ] l_i(\theta)=w_i[y_i\ln p_i+(1-y_i)\ln (1-p_i)] li(θ)=wi[yilnpi+(1yi)ln(1pi)]
    y_i为训练样本(hi,ti)是否具有关系r的标记。

  2. PRA演化算法

在PRA中的路径是连续的且在路径中的关系是同向的,这种路径特征可以理解为一种简单的霍恩规则,但是在知识图谱中,有很多种路径是含有常量的。

通过提出CoR-PRA算法,增加了带有常量的路径特征搜索算法,并将搜索过程由单向搜索改为了双向搜索。但由于使用随机游走策略在一定程度上降低搜索空间,但仍面临特征爆炸问题。

SFE模型提出去除路径特征的概率计算这个需要较大计算量的过程,直接保留其二值特征。SFE首先通过随机游走采集每个实体的指定步数以内的子图特征,并记录下子图的所有结束节点实体e。如果对某个关系训练样本实体对(h,t),实体e同时存在于h和t的结束实体集上,就以e为链接节点,将h和t对应子图的结构生成一条h和t之间的路径。

基于规则学习的推理

规则一般包括两个部分:规则头和规则主题,一般形式为
r u l e : h e a d ← b o d y rule:head \leftarrow body rule:headbody
解读为有规则主题的信息可推出规则头的信息。规则头由一个二元的原子构成,规则主题由一个或多个一元原子或二元原子组成。原子指包含了变量的元组。
r u l e : h e a d ← b o d y + ∧ b o d y − rule: head \leftarrow body^+ \land body^- rule:headbody+body
分别表示肯定形式的原子逻辑合取集合和否定形式的原子逻辑合取集合。

路径规则的表现形式如下:
r 0 ( e 1 , e n + 1 ) ← r 1 ( e 1 , e 2 ) ∧ r 1 ( e 2 , e 3 ) ∧ ⋅ ⋅ ⋅ ∧ r 1 ( e n , e n + 1 ) r_0(e_1,e_n+1) \leftarrow r_1(e_1,e_2) \land r_1(e_2,e_3) \land ··· \land r_1(e_n,e_{n+1}) r0(e1,en+1)r1(e1,e2)r1(e2,e3)⋅⋅⋅r1(en,en+1)
对规则的评估方法:

  • 支持度

    • 满足规则主题和规则头的实例个数,规则的实例化指将规则中的变量替换为知识图谱中真实实体后的结果。
    • 通常是一个大于0的整数值。支持度越大,规则实例在知识图谱中存在的越多,规则比较好。
  • 置信度
    c o n f i d e n c e ( r u l e ) = s u p p o r t ( r u l e ) # b o d y ( r u l e ) confidence(rule)=\frac{support(rule)}{\#body{(rule)}} confidence(rule)=#body(rule)support(rule)
    支持度和满足规则主题实例个数的比值。

    • 一个规则的置信度越高,规则的质量越高。
  • 规则头覆盖度
    H C ( r u l e ) = s u p p o r t ( r u l e ) # h e a d ( r u l e ) HC(rule) = \frac{support(rule)}{\#head(rule)} HC(rule)=#head(rule)support(rule)
    即规则支持度和满足规则头的实例个数的比值。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
知识图谱是一种将知识以图状结构进行表示和组织的方法。它通过构建实体间的关系,将各种信息元素(如人物、事物、事件等)以节点的形式连接起来,形成一个庞大的知识网络。知识推理则是在知识图谱的基础上进行的一种逻辑推理过程,通过对知识图谱中的信息进行分析、比较和综合,进而得出新的结论和发现。 知识图谱的核心是实体与关系的建模。通过对各种实体进行抽象和分类,可以将它们以节点的形式表示在知识图谱中。而关系则用边的形式连接各个节点,表示实体之间的联系和属性。知识图谱可以从多个信息源中获得并整合知识,使得不同领域的知识可以相互连结,形成一个全面而丰富的知识体系。 在知识图谱中,知识推理是通过对知识之间的关系进行推理来获得新的知识。通过分析已有的实体和关系,可以推导出新的实体和关系,并进一步进行知识的补全和扩展。知识推理可以根据事实和规则进行逻辑运算,通过不同的推理算法和方法,可以发现隐藏在知识图谱中的关系和规律。 知识图谱知识推理人工智能、语义理解、智能搜索等领域具有广泛的应用前景。通过构建和利用知识图谱,可以实现对知识的深度挖掘和理解,为人们提供精准的信息检索和个性化推荐服务。同时,知识推理可以帮助人们发现新的知识和规律,为科学研究和业务决策提供重要支持。总的来说,知识图谱知识推理的发展将为人类带来全新的智能化应用和体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值