什么是知识图谱?有哪些典型应用?终于有人讲明白了
Posted ZSYL
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了什么是知识图谱?有哪些典型应用?终于有人讲明白了相关的知识,希望对你有一定的参考价值。
知识图谱?有哪些典型应用?
01 知识图谱背景
很多机器学习和深度学习的算法训练的模型,更像是一个具有统计知识的机器,从关联和概率的角度出发,试图在描述世界背后的 “真理”。然而,我们更希望的是,像人一样,具有分析和推理能力的机器智能。如果你问我,哪一种形式最接近我心中的 “人工智能”,我会说:知识图谱。
在给出知识图谱的定义之前,我们先分开讨论一下什么是知识,什么是图谱。
1. 什么是知识
首先看一下什么是知识。有读者可能会提出这样的问题,在大数据时代,人类拥有海量的数据,这是不是代表人类可以随时随地利用无穷无尽的知识呢?答案是否定的。
知识是人类在实践中认识客观世界(包括人类自身)的成果,它包括事实、信息、描述以及在教育和实践中获得的技能。知识是人类从各个途径中获得的经过提升、总结与凝炼的系统的认识。
因此,可以这样理解,知识是人类对信息进行处理之后的认识和理解,是对数据和信息的凝炼、总结后的成果。
让我们来看一下Rowley在2007年提出的DIKW体系[1],如图1-3所示,从数据、信息、知识到智慧,是一个不断凝炼的过程。
举一个简单的例子,226.1厘米,229厘米,都是客观存在的孤立的数据。此时,数据不具有任何意义,仅表达一个客观事实。而“姚明臂展226.1厘米”“姚明身高229厘米”是事实型的陈述,属于信息的范畴。
知识,则是对信息层面的抽象和归纳,把姚明的身高、臂展,及其他属性整合起来,就得到了对于姚明的一个认知,也可以进一步了解到姚明的身高是比普通人高的。对于最后的智慧层面,Zeleny提到的智慧是指知道为什么(Know-Why)[2],感兴趣的读者可以自行了解,本文暂不对此进行深入探讨。
2. 什么是图谱
那么什么是图谱?图谱的英文是Graph,直译过来就是“图”的意思。在图论(数学的一个研究分支)中,图表示一些事物(Object)与另一些事物之间相互连接的结构。
一张图通常由一些结点(Vertice或Node)和连接这些结点的边(Edge)组成。“图”这一名词是由詹姆斯·约瑟夫·西尔维斯特在1878年首次提出的[3]。图1-4是一个非常简单的图,它由6个结点和7条边组成。
从字面上看,知识图谱就是用图的形式将知识表示出来。图中的结点代表语义实体或概念,边代表结点间的各种语义关系。
我们再将姚明的一些基本信息,用计算机所能理解的语言表示出来,构建一个简单的知识图谱。比如,<姚明,国籍,中国>
表示姚明的国籍是中国,其中“姚明”和“中国”是两个结点,而结点间的关系是“国籍”。
这是一种常用的基于符号的知识表示方式——资源描述框架(Resource Description Framework,RDF),它把知识表示为一个包含主语(Subject)、谓语(Predicate)和宾语(Object)的三元组<S,P,O>。
3. KG “考古史”
2012 年 5 月 17 日,Google 正式提出了知识图谱(Knowledge Graph)的概念,其初衷是为了优化搜索引擎返回的结果,增强用户搜索质量及体验。
假设我们想知道 “周杰伦的妻子
” 是谁,百度或谷歌一下,搜索引擎会准确返回昆凌
的信息,说明搜索引擎理解了用户的意图,知道我们要找 “昆凌
”,而不是仅仅返回关键词为 “周杰伦的妻子
” 的网页:
实际上,知识图谱并不是一个全新的概念,早在 2006 年就有文献提出了语义网(Semantic Network)的概念,呼吁推广、完善使用本体模型来形式化表达数据中的隐含语义,RDF(resource description framework,资源描述框架)模式和 OWL(Web ontology language,万维网本体语言)就是基于上述目的产生的。用电子科技大学徐增林教授的论文原文来说:
知识图谱技术的出现正是基于以上相关研究,是对语义网标准与技术的一次扬弃与升华。
目前,随着智能信息服务应用的不断发展,知识图谱已广泛应用于智能搜索,智能问答,个性化推荐等领域。
02 知识图谱的定义
上一节对知识图谱给出了一个具象的描述,即它是由结点和边组成的语义网络。那么该如何准确定义知识图谱呢?这里我们可以先回顾一下其概念的演化历程。
知识图谱概念的演化历程如图:
语义网络由剑桥语言研究所的Richard H. Richens提出,前文中已经简单介绍了语义网络的含义。它是一种基于图的数据结构,是一种知识表示的手段,可以很方便地将自然语言转化为图来表示和存储,并应用在自然语言处理问题上,例如机器翻译、问答等。
到了20世纪80年代,研究人员将哲学概念本体(Ontology)引入计算机领域,作为“概念和关系的形式化描述”, 后来,Ontology也被用于为知识图谱定义知识体系(Schema)。
而真正对知识图谱产生深远影响的是Web的诞生。Tim Berners-Lee在1989年发表的“Information Management: A Proposal”[4]中提出了Web的愿景, Web应该是一个以“链接”为中心的信息系统(Linked Information System),以图的方式相互关联。
1994年,在第一届国际万维网大会上,Tim又指出,人们搜索的并不是页面,而是数据或事物本身,由于机器无法有效地从网页中识别语义信息,因此仅仅建立Web页面之间的链接是不够的,还应该构建对象、概念、事物或数据之间的链接。
随后在1998年,Tim正式提出语义网(Semantic Web)的概念。语义网是一种数据互连的语义网络,它仍然基于图和链接的组织方式,但图中的结点不再是网页,而是实体。
通过为全球信息网上的文档添加“元数据”(Meta Data),让计算机能够轻松理解网页中的语义信息,从而使整个互联网成为一个通用的信息交换媒介。我们可以将语义网理解为知识的互联网(Web of Knowledge)或者事物的互联网(Web of Thing)。
2006年,Tim又提出了链接数据(Linked Data)的概念,进一步强调了数据之间的链接,而不仅仅是文本的数据化。后文还会介绍链接开放数据(Linked Open Data,LOD)项目,它也是为了实现Tim有关链接数据作为语义网的一种实现的设想。
随后在2012年,Google基于语义网中的一些理念进行了商业化实现,其提出的知识图谱概念也沿用至今。
可以看到,知识图谱的概念是和Web、自然语言处理(NLP)、知识表示(KR)、数据库(DB)、人工智能(AI)等密切相关的。所以我们可以从以下几个角度去了解知识图谱。
- 从Web的角度来看,像建立文本之间的超链接一样,构建知识图谱需要建立数据之间的语义链接,并支持语义搜索,这样就改变了以前的信息检索方式,可以以更适合人类理解的语言来进行检索,并以图形化的形式呈现。
- 从NLP的角度来看,构建知识图谱需要了解如何从非结构化的文本中抽取语义和结构化数据。
- 从KR的角度来看,构建知识图谱需要了解如何利用计算机符号来表示和处理知识。
- 从AI的角度来看,构建知识图谱需要了解如何利用知识库来辅助理解人类语言,包括机器翻译问题的解决。
- 从DB的角度来看,构建知识图谱需要了解使用何种方式来存储知识。
由此看来,知识图谱技术是一个系统工程,需要综合利用各方面技术。国内的一些知名学者也给出了关于知识图谱的定义。这里简单列举了几个。
由此看来,知识图谱技术是一个系统工程,需要综合利用各方面技术。国内的一些知名学者也给出了关于知识图谱的定义。这里简单列举了几个。
电子科技大学的刘峤教授给出的定义是:
知识图谱,是结构化的语义知识库,用于以符号形式描述物理世界中的概念及其相互关系,其基本组成单位是“实体–关系–实体”三元组,以及实体及其相关属性–值对,实体之间通过关系相互联结,构成网状的知识结构[5]。
清华大学的李涓子教授给出的定义是:
知识图谱以结构化的方式描述客观世界中概念、实体及其关系,将互联网的信息表示成更接近人类认知世界的形式,提供了一种更好地组织、管理和理解互联网海量信息的能力[6]。
浙江大学的陈华钧教授对知识图谱的理解是:
知识图谱旨在建模、识别、发现和推断事物、概念之间的复杂关系,是事物关系的可计算模型,已经被广泛应用于搜索引擎、智能问答、语言理解、视觉场景理解、决策分析等领域。
东南大学的漆桂林教授给出的定义是:
知识图谱本质上是一种叫作语义网络的知识库,即一个具有有向图结构的知识库,其中图的结点代表实体或者概念,而图的边代表实体/概念之间的各种语义关系[7]。
当前,无论是学术界还是工业界,对知识图谱还没有一个唯一的定义,本文的重点也不在于给出理论上的精确定义,而是尝试从工程的角度,讲解如何构建有效的知识图谱。有一些常见概念,这里列举如下。
-
实体:对应一个语义本体,例如“姚明”“中国”等。
-
属性:描述一类实体的特性(例如“身高”:姚明的身高是229厘米)。
-
关系:对应语义本体之间的关系,将实体连接起来(例如“国籍”:姚明的国籍是中国)。
有些学者也将属性定义为关系,属于属性关系的一种。但本文将属性和关系作为两种不同的概念区别对待。
知识图谱,本质上,是一种揭示实体之间关系的语义网络。
- 信息是指外部的客观事实。举例:这里有一瓶水,它现在是7°。
- 知识是对外部客观规律的归纳和总结。举例:水在零度的时候会结冰。
“客观规律的归纳和总结” 似乎有些难以实现。Quora 上有另一种经典的解读,区分 “信息” 和 “知识” 。
有了这样的参考,我们就很容易理解,在信息的基础上,建立实体之间的联系,就能行成 “知识”。当然,我认为叫事实(Fact)更为合适。换句话说,知识图谱是由一条条知识组成,每条知识表示为一个SPO三元组(Subject-Predicate-Object)。
知识图谱实际上就是如此工作的。曾经知识图谱非常流行自顶向下(top-down)的构建方式。自顶向下指的是先为知识图谱定义好本体与数据模式,再将实体加入到知识库。该构建方式需要利用一些现有的结构化知识库作为其基础知识库,例如 Freebase 项目就是采用这种方式,它的绝大部分数据是从维基百科中得到的。
03 知识图谱的体系架构
知识图谱的架构主要包括自身的逻辑结构以及体系架构,
知识图谱在逻辑结构上可分为模式层与数据层两个层次.
- 数据层主要是由一系列的事实组成,而知识将以事实为单位进行存储。如果用(
实体1--关系-->实体2
)、(实体--属性-->属性值
)这样的三元组来表达事实,可选择图数据库作为存储介质,例如开源的 Neo4j、Twitter 的 FlockDB、JanusGraph 等。 - 模式层构建在数据层之上,主要是通过本体库来规范数据层的一系列事实表达。本体是结构化知识库的概念模板,通过本体库而形成的知识库不仅层次结构较强,并且冗余程度较小。
知识图谱的体系架构是指其构建模式的结构,如下图所示:
大规模知识库的构建与应用需要多种智能信息处理技术的支持。
通过知识抽取技术,可以从一些公开的半结构化、非结构化的数据中提取出实体、关系、属性等知识要素。
通过知识融合,可消除实体、关系、属性等指称项与事实对象之间的歧义,形成高质量的知识库。知识推理则是在已有的知识库基础上进一步挖掘隐含的知识,从而丰富、扩展知识库。分布式的知识表示形成的综合向量对知识库的构建、推理、融合以及应用均具有重要的意义。
1. 知识抽取
知识抽取主要是面向开放的链接数据,通过自动化的技术抽取出可用的知识单元,知识单元主要包括实体(概念的外延)、关系以及属性3个知识要素,并以此为基础,形成一系列高质量的事实表达,为上层模式层的构建奠定基础。
知识抽取有三个主要工作:
- 实体抽取:在技术上我们更多称为 NER(named entity recognition,命名实体识别),指的是从原始语料中自动识别出命名实体。由于实体是知识图谱中的最基本元素,其抽取的完整性、准确、召回率等将直接影响到知识库的质量。因此,实体抽取是知识抽取中最为基础与关键的一步;
- 关系抽取:目标是解决实体间语义链接的问题,早期的关系抽取主要是通过人工构造语义规则以及模板的方法识别实体关系。随后,实体间的关系模型逐渐替代了人工预定义的语法与规则。
- 属性抽取:属性抽取主要是针对实体而言的,通过属性可形成对实体的完整勾画。由于实体的属性可以看成是实体与属性值之间的一种名称性关系,因此可以将实体属性的抽取问题转换为关系抽取问题。
2. 知识表示
近年来,以深度学习为代表的表示学习技术取得了重要的进展,可以将实体的语义信息表示为稠密低维实值向量,进而在低维空间中高效计算实体、关系及其之间的复杂语义关联,对知识库的构建、推理、融合以及应用均具有重要的意义。graph embedding 就是一种表示学习。
3. 知识融合
由于知识图谱中的知识来源广泛,存在知识质量良莠不齐、来自不同数据源的知识重复、知识间的关联不够明确等问题,所以必须要进行知识的融合。知识融合是高层次的知识组织,使来自不同知识源的知识在同一框架规范下进行异构数据整合、消歧、加工、推理验证、更新等步骤,达到数据、信息、方法、经验以及人的思想的融合,形成高质量的知识库。
其中,知识更新是一个重要的部分。人类的认知能力、知识储备以及业务需求都会随时间而不断递增。因此,知识图谱的内容也需要与时俱进,不论是通用知识图谱,还是行业知识图谱,它们都需要不断地迭代更新,扩展现有的知识,增加新的知识。
04 知识图谱的典型应用
知识图谱为互联网上海量、异构、动态的大数据表达、组织、管理以及利用提供了一种更为有效的方式,使得网络的智能化水平更高,更加接近于人类的认知思维。
1. 智能搜索
我们在前文中已经接触到了知识图谱对搜索引擎的成功应用。知识图谱为搜索提供了丰富的结构化结果,体现了信息和知识的关联,可以通过搜索直接得到答案。
如同我们在开篇介绍的例子,用户的查询输入后,搜索引擎不仅仅去寻找关键词,而是首先进行语义的理解。比如,对查询分词之后,对查询的描述进行归一化,从而能够与知识库进行匹配。查询的返回结果,是搜索引擎在知识库中检索相应的实体之后,给出的完整知识体系。
除了通用搜索引擎之外,在一些特定领域中,知识图谱也发挥着重要作用,例如同花顺公司的问财系统、文因互联的文因企业搜索等。
2. 医疗领域
在医疗领域,为了降低发现新药的难度,Open Phacts联盟构建了一个发现平台,通过整合来自各种数据源的药理学数据,构建知识图谱,来支持药理学研究和药物发现。
IBM Waston通过构建医疗信息系统,以及一整套的问答和搜索框架,以肿瘤诊断为核心,成功应用于包括慢病、医疗影像、体外检测在内的九大医疗领域。
其第一步商业化运作是打造了一个肿瘤解决方案(Waston for Oncology),通过输入纪念斯隆·凯特琳癌症中心的数千份病例、1500万页医学文献,可以为不同的肿瘤病人提供个性化治疗方案,连同医学证据一起推荐给医生。
3. 金融投资领域
在投资研究领域,成立于2010年的AlphaSense公司打造了一款新的金融知识引擎。
与传统的金融信息数据平台不同,这款知识引擎并不仅仅局限在金融数据的整合和信息平台的范围,而是通过构建知识图谱,加上自然语言处理和语义搜索引擎,让用户可以更方便地获取各种素材并加工再使用。
另外一款非常具有代表性的金融知识引擎是Kensho。它通过从各种数据源搜集信息,构建金融知识图谱,并关注事件和事件之间的依赖,以及对结果的关联和推理,从而可为用户提供自动化语义分析、根据特定行情判断走势等功能。
4. 政府管理和安全领域
在政府管理和安全领域,一个具有代表性的案例是Palantir,因通过大规模知识图谱协助抓住了本·拉登而声名大噪。
其核心技术是整理、分析不同来源的结构化和非结构化数据,为相关人员提供决策支持。例如在军事情报分析系统中,将多源异构信息进行整合,如电子表格、电话、文档、传感器数据、动态视频等,可以对人员、装备、事件进行全方位实时的监控分析,使调度人员第一时间掌握战场态势,并做出预判。
除了协助抓住本·拉登,Palantir的另外一项赫赫有名的成就是协助追回了前纳斯达克主席麦道夫金融欺诈案的数十亿美金。
5. 电商领域
在电商领域,阿里巴巴生态积聚了海量的商品和交易数据,它以商品、产品、品牌和条码为核心,构建了百亿级别的商品知识图谱,可以广泛应用于搜索、导购、平台治理、智能问答等业务,同时保持每天千万级别的恶意攻击拦截量,极大提升了消费者的购物体验。
6. 聊天机器人领域(深度问答)
问答系统是信息检索系统的一种高级形式,能够以准确简洁的自然语言为用户提供问题的解答。
多数问答系统更倾向于将给定的问题分解为多个小的问题,然后逐一去知识库中抽取匹配的答案,并自动检测其在时间与空间上的吻合度等,最后将答案进行合并,以直观的方式展现给用户。
在聊天机器人领域,具有问答功能的产品,例如Siri、微软小冰、公子小白、琥珀·虚颜、天猫精灵、小米音箱,背后均有大规模知识图谱的支持。知识图谱使得机器与人的交互,看起来更智能。
7. 社交网络
Facebook 于 2013 年推出了 Graph Search 产品,其核心技术就是通过知识图谱将人、地点、事情等联系在一起,并以直观的方式支持精确的自然语言查询,例如输入查询式:“我朋友喜欢的餐厅”,“住在纽约并且喜欢篮球和中国电影的朋友”
等,知识图谱会帮助用户在庞大的社交网络中找到与自己最具相关性的人、照片、地点和兴趣等。
Graph Search 提供的上述服务贴近个人的生活,满足了用户发现知识以及寻找最具相关性的人的需求。
05 总结
从技术来说,知识图谱的难点在于 NLP,因为我们需要机器能够理解海量的文字信息。但在工程上,我们面临更多的问题,来源于知识的获取,知识的融合。搜索领域能做的越来越好,是因为有成千上万(成百万上亿)的用户,用户在查询的过程中,实际也在优化搜索结果,这也是为什么百度的英文搜索不可能超过 Google,因为没有那么多英文用户。知识图谱也是同样的道理,如果将用户的行为应用在知识图谱的更新上,才能走的更远。
知识图谱肯定不是人工智能的最终答案,但知识图谱这种综合各项计算机技术的应用方向,一定是人工智能未来的形式之一。
更多: 知识图谱-专栏
加油!
感谢!
努力!
以上是关于什么是知识图谱?有哪些典型应用?终于有人讲明白了的主要内容,如果未能解决你的问题,请参考以下文章