知识表示与知识建模

上一篇文章(

浅谈知识图谱

)对知识图谱的前世今生进行了简要介绍,主要从语义网、应用场景及技术体系等方面予以阐述。近年来,很多公司基于自己的业务场景开始构建了各种用途的知识图谱,知识图谱作为AI要实现通用智能不可或缺的一环,其重要性不言而喻。而要构建出知识图谱,首先第一步需要了解的是知识该如何表示计算机才能读懂呢?如何表示才能让计算机可以根据现有知识来推理出知识库中没有存储的知识呢?所以,本文将系统的去介绍知识表示和知识建模的方法,为知识图谱赋予灵魂。

知识建模依赖于知识表示的语言和框架,这里说的“知识”不仅仅是普通的数据,它和数据的不同之处在于它除了要表达数据本身呈现的意义,还要提供机器能理解的强大推理能力,而推理能力和深度学习的学习能力一样都是机器智能的重要特征。

早期知识表示方法

(一)一阶谓词逻辑(First-Order-Logic)

百度百科对谓词逻辑的阐述:

谓词,在谓词逻辑中,原子命题分解成个体词和谓词。 个体词是可以独立存在的事或物,包括现实物、精神物和精神事三种。谓词则是用来刻划个体词的性质的词,即刻画事和物之间的某种关系表现的词。如“苹果”是一个现实物个体词,"苹果可以吃"是一个原子命题,“可以吃”是谓词,刻划“苹果”的一个性质,即与动物或人的一个关系。

谓词逻辑本身比较复杂,一般使用它的子集来表示知识,比如Horn逻辑,其表达形式简单,复杂度低,著名的Prolog语言就是基于Horn逻辑设计实现的。

has_child(Helen,Jack)

比如Helen的小孩Jack可以用上面的逻辑结构来表示,has_child是谓词,Helen和Jack是常量。

has_child(Helen,Jack) :- has_son(Helen,Jack)

也可以根据上面的Horn表达式来说明:Helen有儿子叫Jack,可以推导出Helen有小孩叫Jack。

一阶谓词逻辑的特点是表达很自然,接近自然语言,用于表示精确的知识、有严格的形式定义和推理规则,但是它无法表示不确定性知识,同时效率也较低,推理的复杂度较高。相比较而言,产生式系统对于以上缺点做了优化和补充。

(二)产生式系统

产生式系统是一种更广泛意义的规则系统,其模型如下:

谓词逻辑规则只能表示精确知识,其值非“真”即“假”,而产生式不仅可以表示精确知识,而且还可以表示不精确的知识,比如:

IF 平安xx的产品和开发在打架

产品的身体素质应该更好

THEN 打输了的是开发,置信度为CF=0.7

CF表示的是知识的强度,谓词逻辑是的规则不可以这样做。由于产生式系统采用了人类常用的因果关系的知识表示形式,既直观、自然,又便于进行推理。但是它的工作效率也不高,也不能表达具有结构化的知识,一般和其他的知识表示(如框架表示法、语义网络表示法)相结合。

早期知识表示的方式除了以上介绍的两种,还有框架表示法和语义网路等,框架表示的基本思想是认为人们对现实世界中各种事物的认识都是以一种类似于框架的结构存储在记忆中,当面临一个新事物时,就从记忆中找出一个合适的框架,并根据实际情况对其细节加以修改、补充,从而形成对当前事物的认知。而语义网络本质上是将逻辑运算符和逻辑项映射成语义网络图中的元素,但由于表示形式的不一致使得其对处理的复杂性提高,对知识的检索也就相对复杂。知识的表示发展至今,在学术领域使用较多的是RDF--资源描述性框架,其表达知识的能力更强,将在下一小节介绍。

总的而言,知识表示只是语言学家们设计的一种为了建立并丰富知识之间联系、拓宽知识推理手段的方式方法。随着学术的发展,有很多种表达方式,不健全的知识表示方法已经逐渐淘汰,下面介绍目前比较主流的基于语义网的知识表示框架。

基于语义网的知识表示框架

(一)RDF--资源描述框架

RDF:资源描述框架(Resource Description Framework,RDF),一种用于描述Web资源的标记语言,一般采用三元组表示。

Resource:页面、图片、视频等任何具有URI标识符的资源;

Decription:属性、特征和资源之间的关系;

Framework:模型、语言和这些描述的语法;

RDF是一个三元组(Triple)模型,即每一份知识可以被分解为如下形式:

RDF可以用多种形式或语言来表示,可以是XML的形式、也可以用Turtle或N-Triples的形式表示。

例如:CCF ADL邀请王昊奋作为讲者,演讲主题是知识图谱

XML表示如下:

(二)RDFS(RDF Schema)

RDFS是RDF框架,在RDF的基础上提供了一个术语、概念等的定义方式,以及哪些属性可以应用到哪些对象上。换句话说,RDFS为RDF模型提供了一个基本的类型系统。

常用的Schema词汇有:Class,subClassOf,type,Property,subPropertyOf,Domain,Range。

基于以上的Schema词汇,节点之间的表达变得更加丰富,下面展示了使用Schema后的“知识表示”具备推理了能力。

RDFS尽管能表达更丰富的语义,但是它也有一些缺陷,例如,它在以下两个方面表达不完整:基数约束--即对某属性值可能或必须的取值范围进行约束的场景,如说明一个人有双亲(包括两个人),一门课至少有一名教师。属性特性描述--即声明属性的某些特性,如传递性、函数性、对称性,以及声明一个属性是另一个属性的逆属性等。由于RDFS有以上缺陷,W3C在2002年7月提出了OWL本体语言(OWL Web Ontology Language)去拓展RDF(S),作为在语义网上表示本体的推荐语言,其目的是为了更好的开发语义网。

(三)OWL本体语言

这里主要简单举例介绍一下前文所述RDFS不能描述的场景,比如:

a、声明属性的具体约束:全称限定

其中,allValuesFrom、onProperty是OWL语言中的关键词,hasMother在主语属于exp:Person类的时候,宾语的取值只能来自exp:Women这个类。

a、声明属性的具体约束:存在限定

exp:publishedIn在主语属于exp:SenmanticWebPaper类的时候,宾语的取值部分来自exp:AAAAI这个类。上面的三元组相当于:关于语义网的论文部分发表在AAAI上。

(四)SPARQL简介

SPARQL是RDF的查询语言,关于其语法网上的资料很多,这里就不详细介绍了。需要注意的是SPARQL可以对不同的数据集撰写复杂的连接(joins),也就是说可以同时访问不同的图谱获取想要的答案,这对于复杂业务场景具有一定的现实意义。

有的读者可能会问,包括作者本人在学习的在过程中也会产生这个疑问:RDF+SPARQL相对传统的关系数据库使的优势在哪里?为什么要设计这么多本体语言去描述知识之间的关系?

其实,很多场景下,关系型数据库例如Mysql使用SQL查询也能解决很多问题,但是关系数据库的数据是哑巴语言,一方面可能需要写很复杂的SQL语句才能查到答案,另一方面如果数据发生变更,关系数据库的可能需要去更改字段名、表名,甚至需要添加新表才能建立数据之间的关联,而RDF表示的数据更改很方便,且由于本体语言对于语义的良好表达,SPARQL查询语句甚至不需要去做任何变动。所以由RDF表示的知识的非关系型数据库可以良好的适应各种场景,使用起来更加方便。

后面的文章(知识图谱 |知识抽取与挖掘)将详细介绍知识抽取和数据挖掘的知识点,重点对其中涉及到的NLP算法进行介绍与剖析,请感兴趣的读者关注。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180804G1LJ8P00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励