QCon北京「鸿蒙专场」火热来袭!即刻报名,与创新同行~ 了解详情
写点什么

知识图谱如何表示结构化的知识?

  • 2019-12-01
  • 本文字数:3761 字

    阅读完需:约 12 分钟

知识图谱如何表示结构化的知识?

互联网时代,人类在与自然和社会的交互中生产了异常庞大的数据,这些数据中包含了大量描述自然界和人类社会客观规律有用信息。如何将这些信息有效组织起来,进行结构化的存储,就是知识图谱的内容。


那么,在知识图谱中以什么样的形式对现实世界中的知识进行表示与存储呢?本编介绍知识图谱中的知识表示,以回答上面的问题。

1  什么是知识表示

知识表示是知识图谱中非常重要的概念,知识表示之于知识图谱的重要性,就好比内功心法之于绝世武功的重要性。比如在英雄大会中,杨过一开始只练了打狗棒法的招数,用他小半调子的打狗棒法无法打赢金轮法王的徒弟霍都,当黄蓉跟他透露了打狗棒法的心法之后,瞬间就击退了敌人。


知识图谱中的知识表示也是如此,例如,要对所存储的知识进行应用,其中最关键的就是要能够进行知识的推理,而知识的表示形式和手段决定了知识推理的形式和难度;此外,知识表示的形式也决定了知识获取的形式和难度。可见,一种合适的知识表示方法对知识图谱的构建至关重要。


所以,我们在学习知识图谱这个绝世武功之时,也需要熟悉它的内功心法,知识表示。


那么,什么是知识表示呢?笔者认为可以从如下两个方面理解什么是知识表示:


1.知识表示表示了什么?


知识表示表示的是人类关于外部世界的结论,这些结论应该是无需实践,仅仅通过思考和推理就可以得到。这样说,可能还有一些抽象,简单的理解,知识表示表示的就是人类世界的一些经验、事实、思想等。例如,物理课本上的各种概念和定理;今年中国娱乐圈发生的各种狗血事件;马克思主义中国化的各种具体论述和历史经验等。


2.如何对人类世界的经验进行表示?


也就是知识表示的具体手段和形式。具体的手段和形式,在后面介绍具体知识表示方法大家就会清楚,这里先介绍所有知识表示的方法所应该具有的特点。


知识表示通常由大量的本体论约定的概念和实体组成,通过某一种有效的方式组织起来,使得知识系统能够得以搭建并支持高效的知识推理,方便人们表达和分享对世界的认知。


那么,到底有哪些知识表示的方法呢?现在流行的知识图谱采用的是哪一套知识表示的方法呢?下面来进行介绍。

2 知识表示的方法

知识图谱,或者说知识系统的研究其实由来已久。在很早的时候,不管是人工智能的研究者还是互联网的工程师们,都试图建立完善的知识系统,以便更好的应用人类的知识成果。所以,知识表示的研究也由来已久,包括逻辑表示法、语义网络、框架表示法、脚本表示法、基于语义网的知识描述体系等。


限于篇幅,本文介绍比较重要的语义网络,框架表示法以及基于语义网的知识描述体系。


1)语义网络


语义网络是 Quillan M Ross1966 年在研究人类联想记忆时提出的一种心理学模型。总的来说,语义网络是一种由有向图表示的知识系统,它将知识表示为相互连接的点和边,节点代表概念,边则代表概念之间的语义关系。


语义网络中最基本的单元称为语义基元,可以用我们熟悉的三元组表示:<节点 1,关系,节点 2>,例如,通过语义网络,可以把“香港坐落于中国南部”表示为下图中的三元组形式:<香港,坐落于,中国南部>



当然,语义网络中的关系可以有很多种,例如实例关系,分类关系,成员关系等。语义网络就是由大量的实体以及他们之间的关系构成,语义网络通过这样一种的简单的方式描述现实世界中所有的知识。他的优点是便于计算机的存储和检索,缺点是推理过程较复杂,也不完善,需要对不同的关系做不同的处理。


此外,需要注意的是在语义网络中,并没有对节点和边进行标准的定义,也就是完全用户自定义的。没有标准,一方面,会增加知识分享的难度;另一方面,知识描述和知识实例难以分隔。


建立于 1988 年的知网(Hownet)是一个典型的语义网络,它由董振东教授建立,感兴趣的同学可以关注下。董振东教授认为知识库或者知识图谱的构建应该首先由知识工程师设计好完备的知识框架,再由相关领域的专家填充领域知识,是一种典型的自顶向下的构建模式。


2)知识框架表示法


知识框架表示法是人工智能学者 Minsky 在 1975 年提出来的。所谓知识框架法,就是通过模仿人类认识世界的模式,将现实世界中的事物根据具体的情况抽象成一定的框架,框架中定义了这个事物应该或者可能具有属性,也被称为槽(slot)。


举个具体的例子大家就明白了,如下图所示,通过框架表示法来表示“计算机主机”,它总共有 6 个属性,也就是槽,包括“主机名称”,“生产厂商”等。"联想主机"是“计算机主机”这个概念的一个示例,分别对各个属性的值进行了填充。



有编程经验的同学应该很快就能理解框架表示法。它跟面向对象的编程的思想如出一辙,都是对现实世界的模仿。面向对象的编程里的类就是框架表示法里定义的框架;面向对象的编程里的类属性对应框架表示法里的槽;面向对象的编程里的对象对应框架表示法里的具体实例。


框架表示法的优点在于其强大的结构表达能力和接近人类的思维过程;其缺点在于,面对现实世界的复杂性和多样性,框架体系设计的难度太大;另一方面,不同框架系统之间的框架很难对齐,难以建立一个统一的标准;此外,基于框架体系的思想,很难实现知识体系的自动化构建。


一个比较有名的基于框架的知识库叫 FrameNet,感兴趣的同学可以关注了解。


3)语义网中的知识表示法


首先要说的是,这里的语义网与上面的语义网络是完全不同的概念。语义网的概念来源于互联网,人们期望互联网能够更为有效的组织信息,使得互联网内丰富的资源得到充分的利用,而不是像现在这样,互联网中的信息仅仅通过薄弱的结构组织起来。因此,语义网也叫 Web3.0。


那么,在语义网中,如何实现知识的表示的呢?目前,语义网中存在三种知识描述体系,包括 XML,RDF 和 OWL,他们定义了互联网中知识表示的形式。


1.XML


全称是可扩展标记语言(eXtensible Markup Language),是最早的语义网络标记语言。XML 是从网页标签式语言向语义表达语言的一次飞跃。XML 源于 HTML,相比于 HTML,XML 可扩展性更强,结构性更强。因此,在语义网络中得以应用。在语义网络中,XML 标签不再仅仅是网页格式的标志,而是含有自身的语义。


如下图所示,是一个用 XML 表示“影星”这个概念的例子,它定义了“名字”,“出生地”,“民族”等属性,能够完整的表示这个概念。


<影星>


<名字>张国荣</名字>


<出生地>中国香港</出生地>


<民族>汉</民族>


<代表作>霸王别姬</代表作>


</影星>


2.RDF(Resource Description Frame)


资源描述框架(RDF)也是 W3C 提出的一种语义网描述框架,它假定任何复杂的语义都可以通过若干个三元组的组合来表示,并定义这种三元组的形式为“对象-属性-值”或“主语-谓语-宾语”。怎么样,是不是非常的耳熟?其实他与语义网络并没有本质的差别,差别在于,RDF 规范化了所有的属性和概念,避免了语义网络不便于分享和难以区隔知识描述和知识实例的缺点。


因此,RDF 可以有一套完整的知识查询语言,叫 SPARQL。


3.OWL(Web Ontology Language)


网络本体语言(OWL),是 RDF 的改进版。OWL 在 RDF 的基础上定义了自己独有的语法,主要包括头部主体两个部分。


头部:OWL 描述一个本体(概念)时,会预先定制一系列的命名空间,并使用命名空间中预定义的标签来形成某个概念的头部,例如电影明星本体的头部可以这样表示:


<owl:Ontology rdf:about="">


rdfs:comment一个概念的例子</rdfs:comment>


rdfs:label电影明星</rdfs:label>


</owl:Ontology>


其中<owl:Ontology rdf:about="">表示模块当前描述的概念。


主体:OWL 的主体是用来描述概念的类别、实例、属性之间相互关联的部分,它是 OWL 的核心。例如上面电影明显的概念可以有如下的组成部分:


<owl:Ontology rdf:ID=“电影明星”>


<rdfs:Name rdf:resource=“张国荣”>


<rdfs:Birthplace rdf:resource=“中国香港”>


</owl:ObjectProperty>


总的来说,OWL 也是基于三元组的方式来描述知识,相比于 RDF,OWL 更为规范,功能更强。

3  知识图谱中的知识表示

知识图谱中的知识表示方法,总体来是,就是以本体为核心,以 RDF 的三元组模式为基础框架,但更多的体现实体、类别、属性、关系等多颗粒度多层次的语义关系。


这里正式介绍一下本体的概念,所谓本体,实际上就是知识图谱中的一个概念,它用一些属性或特征,描述了客观世界某一类事物的共性特征;并通过“关系”描述它与其他本体之间的关系。例如,本体“作家”,有“代表作”,“获奖”等属性,与本体“艺术家”属于“从属关系”。


在知识图谱中,知识表示有知识定义(知识体系)知识实例两个层面。


知识定义(知识体系)描述了本体以及本体之间的关系,是上层建筑。知识实例是本体的一个一个实例,对应的是真实的数据存储层。


此外,因为知识图谱最重要的功能就是实现知识推理,进行语义计算。为此,一些知识的数值化表示方法的研究开始出现。基于数值化的知识表示,有利于知识推理,但目前仅处于研究阶段。

总结

知识图谱是人工智能技术最重要的基础设施,是计算机能够实现推理、预测等类似人类思考能力的关键。在知识图谱中,如何有效表示现实世界中的知识,就是知识表示的内容。知识表示的研究由来已久,在如今的知识图谱领域,基于语义网的框架(三元组)来表示知识。


作者介绍


小 Dream 哥,公众号“有三 AI”作者。该公号聚焦于让大家能够系统性地完成 AI 各个领域所需的专业知识的学习。


原文链接


https://mp.weixin.qq.com/s/gm-46sXSUb1mdp4g5DuTfA


2019-12-01 21:191795
用户头像
刘燕 InfoQ高级技术编辑

发布了 1112 篇内容, 共 555.1 次阅读, 收获喜欢 1978 次。

关注

评论

发布
暂无评论
发现更多内容

从λ演算到函数式编程聊闭包(1):闭包概念在Java/PHP/JS中形式

zhoulujun

闭包 闭包函数

面试侃集合 | SynchronousQueue公平模式篇

码农参上

队列 SynchronousQueue 8月日更

ShardingSphere Proxy 初步体验

ShardingSphere-Proxy

Rust从0到1-高级特性-Traits 进阶

rust Traits 高级特性

InnoDB解决幻读的方案——LBCC&MVCC

阿Q说代码

MySQL innodb MVCC 8月日更 LBCC

redis6安装和可视化工具

4ye

redis 后端 8月日更

微信业务架构和学生管理系统架构设计

Geek_db27b5

微信业务架构 学生管理系统架构

微信业务架构图-外包学生管理系统架构

毛先生

架构实战营

netty系列之:在netty中使用protobuf协议

程序那些事

Java Netty 程序那些事

Week1 Homework

Ray_c

#架构实战营

本科毕业六年,裸辞备战三个月,四面阿里巴巴定级P7

编程susu

Java 编程 程序员 面试 计算机

使用明道云搭建电梯维修与保养系统

明道云

Go,一文搞懂 defer 实现原理

微客鸟窝

Go 语言 8月日更

JavaScript 有关数组的 slice 截断函数

HoneyMoose

IntelliJ IDEA 如何显示提交输入的信息历史

HoneyMoose

多云管理中的多租户解决方案

鲸品堂

多租户 多云管理 实践案例

正经人一辈子都用不到的 JavaScript 方法总结 (一)

编程三昧

JavaScript 大前端 8月日更 模板字符串 String.raw

微信业务架构图 & 学生管理系统方案

缘分呐

架构 设计

百度地图开发-显示实时位置信息 04

Andy阿辉

android Android 小菜鸟 Android端 8月日更

Vue进阶(六十四):iframe更改src后页面未刷新问题解决

No Silver Bullet

Vue iframe 跨域 8月日更

JIT-动态编译与AOT-静态编译:java/ java/ JavaScript/Dart乱谈

zhoulujun

dart JIT AOT 动态编译 静态编译

从λ演算到函数式编程聊闭包(2):彻底理解JavaScript闭包规则

zhoulujun

闭包 闭包函数

LeetCode刷题09-简单 回文数

ベ布小禅

8月日更

微信业务架构

一叶知秋

架构实战营

Linux之nc命令

入门小站

Linux

从Docker到Kubernetes | 爱数云原生演进历程

爱数技术范儿

Kubernetes 云原生

5年程序员问我:什么是断言?

CodeNongXiaoW

测试 后端 接口工具

干货 | 数据为王,携程国际火车票的 ShardingSphere 之路

SphereEx

数据库 开源

在线JSON转YAML工具

入门小站

工具

docker入门:vue和可视化界面的部署,另附ngxin配置

小鲍侃java

8月日更

带你入门antv.g6流程图

华为云开发者联盟

可视化 流程图 API graph 图可视化引擎

知识图谱如何表示结构化的知识?_AI&大模型_小Dream哥_InfoQ精选文章