速来报名!AICon北京站鸿蒙专场~ 了解详情
写点什么

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

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

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

关注

评论

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

硅谷来信:Google、Facebook员工的“成长型思维”

博文视点Broadview

解决浏览器回退表单重复提交问题

沃德

程序员 javaWeb 7月月更

企事业单位该如何建设知识管理体系

Baklib

亚信科技发布“电信级”核心交易数据库AntDB7.0,助力政企“信”创未来!

亚信AntDB数据库

AntDB 国产数据库 产品发布会

http请求redirect的问题

飞翔

golang

【Docker 那些事儿】关于容器底层技术的奥秘

Albert Edison

7月月更

多链多币种钱包系统开发跨链技术

薇電13242772558

钱包 跨链技术

会用redis吗?那还不快来了解下redis protocol

冉然学Java

Java 分布式 构架 Redis 数据结构

web前端培训nodejs异步IO

@零度

node.js 前端开发

Qt|QWT绘制柱状图一类多种颜色

中国好公民st

qt 7月月更

Java 在Word文档中查找和高亮文本

在下毛毛雨

Java word文档 查找与高亮

Redis 过期的数据会被立马删除么?大有玄机

码哥字节

redis 底层原理 7月月更

LP单双币质押流动性挖矿系统开发

开发微hkkf5566

营销玩法多变,搞懂规则是关键!

CRMEB

龙芯高级工程师直播:视频编解码基础知识入门 | 第 31 期

OpenAnolis小助手

直播 基础 视频编解码 龙蜥大讲堂 龙芯中科

java培训之Java8 Stream 代码简化是如何实现的

@零度

stream JAVA开发

全国首创!洞见科技联合山东数据制定的「数据产品登记」两项标准正式发布

洞见科技

数据 联邦学习 隐私计算

【LeetCode】数组美丽值求和Java题解

Albert

LeetCode 7月月更

Java基本概念详解

五分钟学大数据

Java 7月月更

双目立体匹配之视差优化

秃头小苏

7月月更 双目立体匹配

对象的内存分配一定都是在堆空间吗?

领创集团Advance Intelligence Group

代码优化 内存分配

一道2016年nice的笔试题引发的思考

芒果酱

7月月更

Ceph集群详细部署配置图文讲解(二)

Lansonli

云原生 私有云 Ceph 云存储 7月月更

NFT数字藏品交易平台APP开发搭建

开发微hkkf5566

Hexo在github上构建的博客

沃德

程序员 Hexo 博客 7月月更

FAQ制作工具推荐

Baklib

为什么说企业需要具备企业知识管理的能力?

Baklib

系统首页 DIY,你的个性化需求 Pro 系统来满足!

CRMEB

使用ServiceWorker提高性能

devpoint

JavaScript Service Worker 7月月更

基于SpringBoot 的MCMS系统,完全开源,直接商用太爽了

冉然学Java

Java 源码 springboot 构架

全面打通 DevOps 数据链的研发效能度量平台

思码逸研发效能

开源 DevOps 研发效能 效能度量

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