老焦专栏 | 解开知识图谱神秘的面纱

1个月前

用易于软件研发理解的语言来介绍使用知识图谱的过程

转载本文需注明出处:微信公众号EAWorld,违者必究。


1知识图谱与人工智能的关系


在人工智能应用层出不穷的今天,作为软件从业者,我们都非常关注如何在自己研发的应用中使用人工智能技术,以提高软件的智能化水平。

回顾过往人工智能应用,主要利用了语音识别、图像识别方面的成果,但是不如想象般遍地开花。究其原因,我们发现,以机器学习为基础的人工智能应用往往需要满足以下几个特点:

1)必须具备充足的数据,而且这些数据是准确可靠的;
2)需要具备完整的信息,例如下棋,是完整信息博弈,只要算的快就可以,而人的决策往往是在不具备完整信息的情况下做出的;
3)结果是明确的,人很容易确定结果是否正确,即使暂时不能确定,确定的代价也不高;
4)过程往往是静态的,缺乏动态的可预测性。

这些特点导致很多情况下无法采用机器学习方式,进行人工智能的应用。例如在大型装备的故障诊断中,我们无法具备大量准确的故障数据进行学习,因为很多故障没有发生过或者很少发生;故障发生后对故障原因的判定,也不是一个很容易判定的结果,因为故障现象难以重现;故障发生后应急方案的制订,目前深度学习、神经网络的方式,由于人无法了解其推理过程,产生的预案也往往不敢使用。

上述四点只要能够改善某一点,就可以给人工智能的应用带来更广阔的空间,这也是知识图谱作为人工智能一个重要方向的原因。

知识图谱(KG  Knowledge Graph)是 Google 2012 年提出的概念,并成功应用于搜索引擎当中。但什么是知识图谱,Google并没有给出明确的定义,目前业界的定义例如维基百科、百度百科都是从 Google 搜索引擎中知识图谱的运用出发,进行相关的功能描述。

我们可以把知识图谱,理解为对知识的一种结构化描述,它以结构化的形式描述客观世界中概念、实体及其之间的关系,便于计算机更好的管理、计算和理解信息。它是新一代的知识库技术,通过结构化、语义化的处理将信息转换为知识,加以应用。

通常结构化知识是以图的形式进行表示,学术术语可以成为语义网络。图的节点表示概念和实体(学术术语称为语义符号),图的边表示节点之间的关系(学术术语称为语义关系),此外每个节点还有属性。

例如:人物、娱乐人物、歌手、影视演员都是概念,这几个概念之间有从属关系,周杰伦是一个实体,周杰伦是歌手,也是影视演员,周杰伦的出生日期等就是属性,周杰伦的妻子是昆凌,昆凌的丈夫是周杰伦,这就是关系,从上述关系可以推理出昆凌的丈夫是一个娱乐人物。



这个简单的示例表明,通过概念、实体以及之间的关系进行知识结构化表示,就可以让计算机具备推理能力,这种推理能力:

1)可以不需要大量数据基础就可以建立起来;
2)不一定需要完备的信息就可以进行推理;
3)推理的过程是可以评估的,人可以通过推理过程判断结果是否准确;
4)可以进行对未来的预测。这就可以在一定程度上解决目前机器学习方式面临的问题。

研究知识图谱、人工智能的时候,我们经常遇到很多专业术语,例如语义网络、本体、知识库等等,理解起来非常费力。实际上如上例而言,用图的结构来表示知识就是语义网络,图的节点表示概念和实体,学术术语称为语义符号,图的边表示节点之间的关系,学术术语称为语义关系。

本体(Ontology)的源自于哲学领域,在哲学中的定义为“对世界上客观事物的系统描述”。哲学中的本体关心的是客观现实的抽象本质,而在计算机领域,本体是一种描述知识的方式。自从本体的概念引进后,就出现了资源描述框架 RDF(Resource Description Framework)、网络本体语言 OWL(Ontology Web Language)这样的语言进行标准化的知识表示。

其实本体也是基于图、概念、实体、属性、关系这些来描述知识的。传统人工智能领域采用了大量的学术术语,而Google的一个创新就是利用“知识图谱”这样直白的语言,形象的表述了一个复杂事物,用 AlphaGo 这样直观的示例,普及了人工智能的概念。而本文也希望尽可能用类比的方式,采用易于软件研发理解的语言来介绍使用知识图谱的过程,这也是取名“解开知识图谱神秘面纱”的初衷。

知识图谱建设的主要过程

目前知识图谱应用的领域比较多,例如智能问答、智能搜索、金融行业的反欺诈/信用审核/信用证审核、电子商务的智能推介、公共安全的数据对碰、大型装备的故障检测与维修、电网的故障检测与应急预案、保险行业的智能核保/智能核赔,总之这是一种让软件更加智能化的手段。但是如何构建一个相对完备的知识图谱应用是一个挑战,难点主要包括:

1)如何建立知识的模型,也就是上述的“概念”如何建立;
2)知识的获得比较困难,因为我们面临的可能是海量的知识;
3)所获得知识的正确性如何验证;
4)如何存储知识,进行快速的推理;
5)如何将知识在软件中得到应用,发挥价值等等。

这里面归根结底还是如何用工程化方式建设知识图谱,如何用工程化方式基于知识图谱建设应用的问题,因此后面我们主要探讨如何进行知识图谱建设与应用的工程化方法。

知识图谱可以分为通用知识图谱和领域知识图谱,实际上谷歌或者百度这样的大型互联网公司在构建的是通用知识图谱,它主要是用于搜索引擎,它的用户是全部的互联网的用户,它构建的是常识性知识为主,包括结构化的百科知识,它强调的是一种知识的广度,对知识的深度方面不做更多的要求,它的使用者也是普通的用户。对于领域知识图谱而言,它首先是面向一个特定的领域,它的知识来源是特定行业,基于行业的数据来构建,而且要有一定的行业的深度,它强调的是深度能够解决行业人员的问题,它的使用者也是这个行业内的从业人员。

从上述定义上可以看出,这两者的构建过程和目的会有很大的不同,作为一个企业级软件的从业者,我关注的主要是领域知识图谱,因此这里我要探讨的也是领域知识图谱构建与应用的工程化问题。

由于是工程化问题,我们希望不要讲更多的理论,而是采用类似软件工程的方法,将知识图谱构建与应用的过程讲清楚,在过程的每一个环节上探讨涉及的方法与技术:

1)知识图谱技术架构:确定知识的表示方式和知识的存储方式;
2)知识图谱建设方法论:知识图谱建设可以分为知识建模、知识抽取、知识验证这样几个阶段,形成一个知识图谱;
3)基于知识图谱建设应用:每一类应用的侧重点不同,使用技术和达到的效果也不同,我们总结为知识推理类、知识呈现类、知识问答类、知识共享类,后面会具体介绍。



知识图谱技术架构

知识图谱的关键技术架构分为知识表示、知识存储两个部分。常用的知识图谱表示是通过三元组方式,三元组是由实体、属性和关系组成的(由Entity、Attribute、Relation组成)。具体表示方法为,实体1跟实体2之间有某种关系,或者是实体属性、属性词。基于已有的三元组,可以推导出新的关系,知识图谱要有丰富的实体关系,才能真正达到它实用的价值。

如果我们把上面周杰伦的例子描绘如下图,你会发现知识的表示方式和面向对象的概念非常类似,概念就是元模型/类,实体就是对象,关系就是对象间的关系。实际上,在很多著作中也把面向对象作为一种知识表示方法。



利用我们熟悉的面向对象方式进行知识的表述,结合其他一些知识图谱的技术,是一个比较容易入手的方式。既然知识的表示以概念、实体、关系、属性为基础元素,就可以利用图数据库存储,目前有很多图数据库可以做选择,例如Neo4J、JanusGraph等,也可以在传统关系数据库上进行存储,这里我就不深入探讨了,因为确定了表示方式,如何存储不是一个大问题。

这一篇我们介绍了知识图谱的基本概念和用途,下一篇主要介绍知识图谱建设的方法论,第三篇将用实际的案例,介绍一个基于知识图谱的知识推理类应用。

- The End -


关于作者:焦烈焱,普元信息CTO,致力于技术创新和金融创新解决方案研究。专注于企业技术架构领域,对分布式环境的企业计算、 企业信息架构的规划与实践有着丰厚经验,带领普元技术团队相继在云计算、大数据及移动开发领域取得多项突破,并主持中国工商银行、中国建设银行等多家大型企业技术平台的规划与研发。

关于EAWorld:微服务,DevOps,数据治理,移动架构原创技术分享。长按二维码关注!

COMMENTS

需要 后方可回复
如果没有账号可以 一个帐号。