写点什么

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

  • 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:191753
用户头像
刘燕 InfoQ高级技术编辑

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

关注

评论

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

一周信创舆情观察(12.7~12.13)

统小信uos

终于有人把性能优化讲清楚了!阿里架构师推荐的Java性能权威指南可太强了

Java架构之路

Java 程序员 架构 面试 编程语言

沪上首座“区块链生态谷”揭开面纱!

CECBC

大数据 生态产业

工作多年还是只会用wait和notify?30分钟用案例告诉你有更好得选择

小Q

Java 学习 编程 架构 面试

详解C/C++协程实现原理及使用

赖猫

c++ 协程

原创 | 使用JPA实现DDD持久化-启动JPA程序+通过JPA原生API访问数据

编程道与术

Java hibernate 编程 mybatis jpa

朱嘉明:产业周期、科技周期与金融周期的失衡

CECBC

金融 科技

点燃“云+AI”的烽火,照亮网络安全的月之暗面

脑极体

算法爱好者福利—拓扑排序的简介及实现

比伯

Java 编程 架构 程序人生 算法

请回答2020:芯片巨头并购潮究竟意味着什么?

脑极体

JVM垃圾回收性能分析

积极&丧

【得物技术】基于配置的通用化动态报表平台设计与使用

得物技术

设计 动态 报表 平台 通用化

第四周命题作业

cc

架构师训练营第四周命题作业

Geek_xq

滴滴开源Super-jacoco:java代码覆盖率收集平台

滴滴技术

Java 开源 滴滴开源 Super-Jacoco

微服务架构及其技术栈

飞鸟

微服务 Spring Cloud spring cloud alibaba

原创 | 使用JPA实现DDD持久化-通过Spring Data JPA访问数据

编程道与术

Java hibernate 编程 mybatis jpa

“九章”问世,量子计算将如何影响区块链技术?

CECBC

量子计算机

架构2期第八周作业(1)

浮生一梦

极客大学架构师训练营 2组 第八周作业

牛啤了!字节跳动Java岗面试官把内部面试题(含答案)泄露了,明年金三银四有望了

面试 算法 架构师

如何让组织文化不在虚无?

Alan

团队管理 个人提升 文化 28天写作

Java程序员还没有掌握SpringBoot?这一份文档你真应该好好学学!

Java架构之路

Java 程序员 架构 面试 编程语言

架构师训练营第 1 期 -week13

习习

极客大学架构师训练营 - 同城快递业务架构设计

好吃不贵

极客大学架构师训练营

90分钟10个手写案例,从源码底层给你讲解7种线程池创建方式

小Q

学习 源码 架构 面试 多线程

第四周学习心得

cc

架构师训练营 1 期 -- 第十三周作业

曾彪彪

极客大学架构师训练营

基于区块链的政务平台设计探索

华为云开发者联盟

区块链 架构 安全

盘点 2020 | 感悟总结

idonkeyliu

盘点2020

我不喜欢挫折教育

熊斌

成长 自我思考 自我独白 个体成长

架构师训练营第十三周作业

月殇

极客大学架构师训练营

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