知识图谱概论(二)

本节描述知识可以被表示和包含的演绎形式

在这里插入图片描述

2. 演绎知识

作为人类,我们可以从数据图本身的信息中推断出更多知识。比如Fig.1中,我们可以推断通过航班连接的城市一定会有机场。如果我们先验地知道关于世界的一般规则,那么给定数据作为前提,我们可以使用演绎过程来导出新的数据,使我们知道的比数据本身拥有的更多信息。

机器没有固有的演绎能力,而是需要蕴涵机制entailment regimes)来形式化一组给定前提的逻辑结果。一旦以这种方式进行指导,机器通常可以以超出人类性能的精度、效率和规模来应用推理。

在这里插入图片描述
演绎可以服务于一系列应用程序,例如改进询问与回答的分类、发现不一致,等等。以Fig.12中的查询为例,查询位于 Santiago 的节日。对于Fig.1中的图,查询没有返回任何结果:没有类型为 Festival 的节点,也没有 l o c a t i o n \color{blue}{location} location为 Santiago 的节点。但是,假设x是 Food Festival 那就意味着x是一个节日,满足Festival类型。并且如果y是x的地点,y位于城市z,就意味着x有地点z,那么答案( Ñam )可能会被推理出来。蕴含制度会自动进行这样的推理。

2.1 本体(Ontologies)

为了使蕴涵成为可能,我们必须准确地了解我们使用的术语的含义。例如,我们将图1中的节点 EID15 和 EID16 称为“事件(event)”。但是,例如,如果我们希望为 EID16 组织在两场不同场所的活动,该怎么办呢?我们是否应该把在每场活动发生的事情视为不同的事件?如果一个事件在一个地点有不同的开始和结束日期,这些将被视为一个重复事件还是多个事件?
这些问题是一个更普遍问题的侧面:我们所说的“事件”是什么意思?“事件”一词可以有多种解释,其答案取决于惯例。

在计算中,本体是一种具体的、形式化的表示,或者是一种约定——关于术语在它们被给定领域内的含义。像所有约定一样,本体的实用性取决于它被采用的范围和一致性,以及它有多详细。使用共享本体的知识图谱将更具互操作性。鉴于本体是形式化的表示,它们可以进一步用于自动化蕴涵。

在介绍这些特性之前,我们必须讨论如何解释图。

2.1.1 解释(Interpretations)

作为人类,我们可以将Fig.1数据图中的节点 Santiago 解释为现实世界中智利的首都城市。我们可以进一步将边 Arica– f l i g h t \color{blue}{flight} flight–> Santiago 解释为有从 Arica 到这个 Santiago 的航班。因此,我们将数据图解释为另一个图,在这里称之为域图(domain graph)。域图由现实世界关系连接的现实世界实体组成。这里的解释过程涉及到将数据图中的节点和边映射到域图的节点和边。

因此,我们可以抽象地将数据图的解释定义为:数据图的节点与边标签到域图的映射和域图的组合。

域图遵循与数据图相同的模型。我们把域图的节点称为实体(entities),把域图的边称为关系(relations)。给定数据图中的节点 Santiago ,我们用 Santiago 表示它在域图中引用的实体(根据给定的解释)。同样地,对于边 Arica– f l i g h t \color{blue}{flight} flight–> Santiago,我们将用边 Arica– f l i g h t \color{blue}{flight} flight–> Santiago 表示它所引用的关系。在这个解释的抽象概念中,我们不要求 Santiago 或 Arica 是现实世界的城市,因为解释可以具有任何域图和任何映射。

2.1.2 假设(Assumptions)

为什么解释这个抽象概念有用?当我们定义本体特征和蕴涵的含义时,节点(边)和实体(关系)之间的区别才变得清晰起来。

为了说明这一点,如果我们问在Fig.1中的数据图中是否有一条在 Arica 和 Viña del Mar 之间的标签为 f l i g h t \color{blue}{flight} flight的边,那么答案是否定的。然而,如果我们问实体 AricaViña del Mar 是否通过关系 flight 连接,那么答案取决于我们在解释图时所做的假设:

  • 封闭世界假设Closed World Assumption,CWA)下,如果没有进一步的知识,答案是否定的。
  • 相反,在开放世界假设Open World Assumption,OWA)下,关系可以不通过图来描述而存在。
  • 唯一名称假设Unique Name Assumption,UNA)下,即没有两个节点可以映射到同一个实体,我们可以说数据图描述了至少两个飞往 Santiago 的航班(因为 Viña del MarArica 必须是不同的实体)。
  • 相反,在无唯一名称假设No Unique Name Assumption,NUNA)下,我们只能说至少有一次这样的飞行,因为 Viña del MarArica 可能是具有两个“名称”的同一实体(即两个节点引用同一实体)。

这些假设定义了哪些解释是有效的,哪些解释满足哪些数据图。
UNA禁止将两个节点映射到同一实体,而NUNA则不这样做。
在CWA下,在其域图中包含 x– p \color{blue}{p} p–> y 边的解释只能满足我们可以推导 x– p \color{blue}{p} p–> y 的数据图。在OWA下,包含 x– p \color{blue}{p} p–> y 边的解释可以满足不包含 x– p \color{blue}{p} p–> y 边的数据图,只要它不与该边相矛盾。

本体通常采用NUNA和OWA,即最一般的情况,它考虑到数据可能不完整,两个节点可能引用同一个实体。

2.1.3 语义条件(Semantic Conditions)

除了我们的基本假设之外,我们还可以将数据图中的某些模式与语义条件联系起来,这些语义条件定义了哪些解释可以满足它。

例如,如果我们的数据图中有这样一条边 venue – s u b p . o f \color{blue}{subp.of} subp.of–> location ,那么我们可以在一个特定标签 s u b p . o f \color{blue}{subp.of} subp.of上添加一个语义条件来让它强制执行。这样之后,在域图的解释中,任何 x – v e n u e \color{blue}{venue} venue–> y 的边都必须有一个这样的边 x – l o c a t i o n \color{blue}{location} location–> y 与之对应。

本体条件的特征即通过语义条件形成。

2.1.4 个体(Individuals)

在这里插入图片描述
在Table.2中,列出了本体支持的用于描述个体(又名实体)的主要特性。首先,我们可以使用像 Santa Lucía– c i t y \color{blue}{city} city–>Santiago 这样的边断言个体之间的(二元)关系。在Condition列中,当我们写 x– y \color{blue}{y} y–>z 时,例如,我们指的是给定关系在解释中是否符合条件;如果是,则解释满足断言。

我们可以进一步断言,两个项指的是同一个实体,我们也可以用否定来声明一个关系不成立。

2.1.5 属性(Properties)

属性可以用作表示边标签的术语。我们可以使用各种特性来定义属性的语义,如Table.3所示。
在这里插入图片描述

首先,我们可以像前面举例说明的那样定义子属性(subproperties)
在Fig.1 中,我们可以将标签 city 和 venue 看做属性 location 的子属性,这样给定一条边 Santa Lucia — c i t y \color{blue}{city} city→ Santiago ,我们就可以推理出 Santa Lucia — l o c a t i o n \color{blue}{location} location→ Santiago。

我们还可以通过定义类的范围将类与属性关联起来。我们可以进一步说明一对性质是等价的逆的不相交的,或者定义一个特定的性质来表示传递的对称的不对称的自反的非自反的关系。我们还可以定义由属性表示的关系的多重性,基于是功能性的(多对一)还是反功能性的(一对多)。

我们可以进一步为类定义一个键(key),表示一组属性,这些属性的值唯一地标识该类的实体。如果不采用唯一名称假设(UNA),从后三个特征,我们可以得出两个或多个术语指同一实体的结论。最后,我们可以将一个属性关联到一个链(chain)(一个只允许属性连接的路径表达式),这样由链关联的实体对也由给定的属性关联。

2.1.6 类(Classes)

通常,我们可以使用 t y p e \color{blue}{type} type属性将图中的节点分组为类(例如Event、City等)。Table.4列出了一系列用于定义类语义的特性。

在这里插入图片描述
首先,子类可以用来定义类的层次结构。我们可以进一步将类对定义为等价不相交。我们也可以基于集合操作符定义新类:作为另一个类的补集,其他类的列表的并集交集,或作为其所有实例的枚举

其次,通过对特定属性 p 进行限制,我们可以定义类中的所有实例满足如下公理:

  • some value:通过 p 连接到一个指定类的实例(存在即可,至少一个)
  • all values:通过 p 连接到一个指定类的实例(只允许该类,可以不存在)
  • has value:通过 p 连接到特定的个体
  • has self:通过 p 连接至自身
  • has cardinality:包含指定数量的 p
  • qualified cardinality:包含连接到指定类的指定数量的 p

2.2 语义和蕴含(Semantics and Entailment)

2.2.1 模型论语义(Model-theoretic Semantics)

对于上述表格中描述的每条公理,当将其添加到一张图中,即会触发某些满足该图的解释的条件,我们将这些满足图的解释称为图的模型(models)。在OWA下,图的模型的数量是无限多的。

此外,在NUNA下,考虑到我们可以将图中的多个节点映射到模型中的一个实体,任何具有(例如)关系 a — a \color{blue}{a} a→ a 的解释都是任何图的模型,只要对于图中的每条边 x — y \color{blue}{y} y→ z ,它在解释中一直有x = y = z = a(换句话说,解释将所有内容映射到a)。当我们向图中添加公理及其相关条件时,我们限制了图的模型;例如,考虑一个有两条边的图—— x — y \color{blue}{y} y→ z 和y – t y p e \color{blue}{type} type→ Irreflexive 时,用a — a \color{blue}{a} a→ a, x = y =…= a不再是一个模型,因为它打破了非自反公理的条件。

2.2.2 蕴含(Entailment)

我们说,当且仅当前一个图的任何模型也是后一个图的模型时,一个图蕴含另一个图。直观地说,这意味着后一个图在前一个图上没有任何新的内容,前一张图包括了后一张图的所有内容,因此后一个图是前一个图的逻辑结果。

比如:现在有这两张图Santiago— t y p e \color{blue}{type} type→City — s u b c . o f \color{blue}{subc.of} subc.of→ Place 和 Santiago— t y p e \color{blue}{type} type→ Place .
后一张图的所有模型必须满足关系 Santiago— t y p e \color{blue}{type} type→ Place ,前一张图的模型也是如此。不过,前一张图还需要进一步满足子类的关系。因而前一张图的范围大于后一张图,前一张图蕴含了后一张图。

2.3 推理(Reasoning)

给定两张图,根据蕴涵的定义以及上述所有本体特征,我们是无法判断其中一张图是否蕴涵另一张图的——没有(有限)算法可以保证基于输入的所有蕴涵判断都是正确的。不过,我们可以为本体提供实用的推理算法:

  1. 暂停输入本体并停止在错误的判断,但可能遗漏一些蕴含。
  2. 总是停止在正确的答案,但只接受有限制特征的输入本体。
  3. 对于任意输入本体都只返回正确的判断,但是对于某些特定的输入可能会无限循环。

虽然选项3已经被探索使用,例如,一阶逻辑的定理证明[119],但是选项1和2更常用于使用规则和描述逻辑。选项1通常允许更高效和可扩展的推理算法,并且在数据不完整且具有一些隐含价值的情况下非常有用。选项2在医学本体等领域可能是更好的选择,在这些领域中,错误的蕴含可能会产生不良后果。

2.3.1 规则(Rules)

实现推理的直接方法是通过推理规则(inference rules),由body(IF)和head(THEN)组成。

body和head由图模式给出,有一条规则表明,如果我们可以用数据图中的项替换body的变量,并形成给定数据图的子图,那么在head使用相同的变量替换将产生一个有效的蕴涵。head通常必须使用出现在正文中的变量子集,以确保结果中没有留下不可替换的变量。

规则可用于捕获本体条件下的蕴涵。在这里,我们提供了两个规则的例子,用于捕获子类的一些有效的蕴涵:(箭头前的是body,箭头后的是head)
在这里插入图片描述

规则可以以多种方式用于推理。

物化Materialisation)将规则递归地应用到图中,向图中不断添加生成的结论,直到达到规定的最大值。物化后的图可以像任何其他图一样处理;然而,物化图形可能变得大得难以管理。
另一种策略是使用规则进行查询重写(query rewriting),给定一个查询,可以自动地扩展该查询以找出规则集合所得出的蕴涵。

Fig.13提供了一个查询重写的例子,其规则用于重写Fig.12的查询。
在这里插入图片描述
如果在Fig.1的图上求值,那么将返回 Ñam 作为解决方案。虽然不是所有的本体特性都能以这种方式得到支持,但查询重写足以支持轻量级本体语言的完整推理。

虽然规则可用于捕获本体蕴涵,但它们也可以独立于本体进行定义,从而捕获给定领域的蕴涵。事实上,一些规则,比如下面的,不能用之前看到的本体特征来模拟,因为出于可计算性的原因,它们不支持从循环图模式推断二进制关系的方法。
在这里插入图片描述

2.3.2 描述逻辑(Description Logics)

描述逻辑DL)在知识图谱的逻辑形式化中占有重要地位:它们最初是作为形式化框架frames)和语义网络semantic networks)的一种方式而引入的。由于语义网络可以看做是知识图谱的早期版本,且 DL 很大程度上影响了 OWL 的形成,因此 DL 在知识图谱的逻辑形式化中占有重要地位。
DL是一系列的逻辑,而不是某条特定的逻辑。最初,DL是一阶逻辑(FOL)的受限片段,允许可决定的推理任务,如蕴涵检查。DL后来被扩展为有用的图形数据建模功能,这些功能超出了FOL,比如传递闭包、数据类型等等。

DL基于三种基本元素:个体(individuals)、类(classes)、属性(properties)。DL允许对这些元素进行声明,并称为公理(axioms)断言公理assertional axioms)可以是个体的一元类关系,如 City(Santiago),也可以是个体的二元属性关系,如 flight(Santiago, Arica)。断言公理组成的系统叫做断言盒(Assertional Box,A-Box)。DL 又进一步地引入了逻辑符号,来定义类公理class axioms)以及属性公理property axioms)。类公理组成的系统叫术语盒(Terminology Box,T-Box),属性公理组成的系统叫角色盒(Role Box,R-Box)

举例来看:

  • 类公理 City⊑Place 表明前一个类是后一个类的子类。
  • 属性公理 flight⊑connectsTo 则表明前一个属性是后一个属性的子属性。
  • DL 还允许基于现有术语定义类。

例如我们可以定义一个类公理 ∃nearby.Airport 来表示这类个体附近有机场。
DL 中的 ⊤ 用来表示类中的所有个体。所以我们可以给上述类公理增加成∃flight.⊤⊑∃nearby.Airport 来表示有航班的个体都在其位置附近有机场存在(类似于存在性限制)。
DL中 ⊔ \sqcup 用来表示并集,我们可以进一步定义Airport ⊔ \sqcup DomesticAirport ⊔ \sqcup InternationalAirport,也就是说,机场要么是国内机场,要么是国际机场(或两者兼而有之)。

表达性的 DL 支持复杂的蕴涵,包括存在性、普遍性、计数等。一种确定这些蕴涵的常用策略是将蕴涵减少至可满足性(satisfiability),其决定了一个本体是否是一致的。我们可以使用诸如 tableau 的方法来检查可满足性,通过使用类似之前提到的物化策略的方式构建模型,但需要额外地进行一些操作,如在涉及到分离disjunction)时需要额外对模型进行分支;在涉及到存在性existentials)时引入新元素等。如果模型构建完成,该过程会总结出原始的定义是否可以满足。由于计算复杂度较高,虽然这种推理策略在建模复杂领域时很有用,但通常不会在大规模的数据中使用。

思维导图

在这里插入图片描述
部分参考:知识图谱入门

  • 35
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值