电子说
1.1 什么是知识图谱
知识图谱是一种用图模型来描述知识和建模世界万物之间的关联关系的技术方法[1]。知识图谱由节点和边组成。节点可以是实体,如一个人、一本书等,或是抽象的概念,如人工智能、知识图谱等。边可以是实体的属性,如姓名、书名,或是实体之间的关系,如朋友、配偶。知识图谱的早期理念来自Semantic Web[2,3](语义网),其最初理想是把基于文本链接的万维网转化成基于实体链接的语义网。
1989年,Tim Berners-Lee 提出构建一个全球化的以“链接”为中心的信息系统(Linked Information System)。任何人都可以通过添加链接把自己的文档链入其中。他认为,相比基于树的层次化组织方式,以链接为中心和基于图的组织方式更加适合互联网这种开放的系统。这一思想逐步被人们实现,并演化发展成为今天的World Wide Web。
1994年,Tim Berners-Lee 又提出 Web 不应该仅仅只是网页之间的互相链接。实际上,网页中描述的都是现实世界中的实体和人脑中的概念。网页之间的链接实际包含语义,即这些实体或概念之间的关系;然而,机器却无法有效地从网页中识别出其中蕴含的语义。他于1998年提出了Semantic Web的概念[4]。Semantic Web仍然基于图和链接的组织方式,只是图中的节点代表的不只是网页,而是客观世界中的实体(如人、机构、地点等),而超链接也被增加了语义描述,具体标明实体之间的关系(如出生地是、创办人是等)。相对于传统的网页互联网,Semantic Web的本质是数据的互联网(Web of Data)或事物的互联网(Web of Things)。
在 Semantic Web 被提出之后,出现了一大批新兴的语义知识库。如作为谷歌知识图谱后端的Freebase[5],作为IBM Waston后端的DBpedia[6]和Yago[7],作为Amazon Alexa后端的True Knowledge,作为苹果Siri后端的Wolfram Alpha,以及开放的Semantic Web Schema——Schema.ORG[8],目标成为世界最大开放知识库的Wikidata[9]等。尤其值得一提的是,2010年谷歌收购了早期语义网公司 MetaWeb,并以其开发的 Freebase 作为数据基础之一,于2012年正式推出了称为知识图谱的搜索引擎服务。随后,知识图谱逐步在语义搜索[10,11]、智能问答[12-14]、辅助语言理解[15,16]、辅助大数据分析[17-19]、增强机器学习的可解释性[20]、结合图卷积辅助图像分类[21,22]等多个领域发挥出越来越重要的作用。
如图1-1所示,知识图谱旨在从数据中识别、发现和推断事物与概念之间的复杂关系,是事物关系的可计算模型。知识图谱的构建涉及知识建模、关系抽取、图存储、关系推理、实体融合等多方面的技术,而知识图谱的应用则涉及语义搜索、智能问答、语言理解、决策分析等多个领域。构建并利用好知识图谱需要系统性地利用包括知识表示(Knowledge Representation)、图数据库、自然语言处理、机器学习等多方面的技术。
图1-1 知识图谱:事物关系的可计算模型
1.2 知识图谱的发展历史
知识图谱并非突然出现的新技术,而是历史上很多相关技术相互影响和继承发展的结果,包括语义网络、知识表示、本体论、Semantic Web、自然语言处理等,有着来自Web、人工智能和自然语言处理等多方面的技术基因。从早期的人工智能发展历史来看, Semantic Web是传统人工智能与Web融合发展的结果,是知识表示与推理在Web中的应用;RDF(Resource Description Framework,资源描述框架)、OWL(Web Ontology Language,网络本体语言)都是面向 Web 设计实现的标准化的知识表示语言;而知识图谱则可以看作是Semantic Web的一种简化后的商业实现,如图1-2所示。
图1-2 从语义网络到知识图谱
在人工智能的早期发展流派中,符号派(Symbolism)侧重于模拟人的心智,研究怎样用计算机符号表示人脑中的知识并模拟心智的推理过程;连接派(Connectionism)侧重于模拟人脑的生理结构,即人工神经网络。符号派一直以来都处于人工智能研究的核心位置。近年来,随着数据的大量积累和计算能力的大幅提升,深度学习在视觉、听觉等感知处理中取得突破性进展,进而又在围棋等博弈类游戏、机器翻译等领域获得成功,使得人工神经网络和机器学习获得了人工智能研究的核心地位。深度学习在处理感知、识别和判断等方面表现突出,能帮助构建聪明的人工智能,但在模拟人的思考过程、处理常识知识和推理,以及理解人的语言方面仍然举步维艰。
哲学家柏拉图把知识(Knowledge)定义为“Justified True Belief”,即知识需要满足三个核心要素:合理性(Justified)、真实性(True)和被相信(Believed)。简而言之,知识是人类通过观察、学习和思考有关客观世界的各种现象而获得并总结出的所有事实(Fact)、概念(Concept)、规则(Rule)或原则(Principle)的集合。人类发明了各种手段来描述、表示和传承知识,如自然语言、绘画、音乐、数学语言、物理模型、化学公式等。具有获取、表示和处理知识的能力是人类心智区别于其他物种心智的重要特征。人工智能的核心也是研究怎样用计算机易于处理的方式表示、学习和处理各种各样的知识。知识表示是现实世界的可计算模型(Computable Model of Reality)。从广义上讲,神经网络也是一种知识表示形式,如图1-3所示。
图1-3 知识图谱帮助构建有学识的人工智能
符号派关注的核心正是知识的表示和推理(KRR,Knowledge Representation and Reasoning)。早在1960年,认知科学家 Allan M.Collins 提出用语义网络(Semantic Network)研究人脑的语义记忆。例如,WordNet[23]是典型的语义网络,它定义了名词、动词、形容词和副词之间的语义关系。WordNet被广泛应用于语义消歧等自然语言处理领域。
1970年,随着专家系统的提出和商业化发展,知识库(Knowledge Base)构建和知识表示更加得到重视。专家系统的基本想法是:专家是基于大脑中的知识来进行决策的,因此人工智能的核心应该是用计算机符号表示这些知识,并通过推理机模仿人脑对知识进行处理。依据专家系统的观点,计算机系统应该由知识库和推理机两部分组成,而不是由函数等过程性代码组成。早期的专家系统最常用的知识表示方法包括基于框架的语言(Frame-based Languages)和产生式规则(Production Rules)等。框架语言主要用于描述客观世界的类别、个体、属性及关系等,较多地被应用于辅助自然语言理解。产生式规则主要用于描述类似于IF-THEN的逻辑结构,适合于刻画过程性知识。
知识图谱与传统专家系统时代的知识工程有着显著的不同。与传统专家系统时代主要依靠专家手工获取知识不同,现代知识图谱的显著特点是规模巨大,无法单一依靠人工和专家构建。如图1-4所示,传统的知识库,如Douglas Lenat从1984年开始创建的常识知识库 Cyc,仅包含700万条[1]的事实描述(Assertion)。Wordnet 主要依靠语言学专家定义名词、动词、形容词和副词之间的语义关系,目前包含大约20万条的语义关系。由著名人工智能专家 Marvin Minsky于1999年起开始构建的 ConceptNet[24]常识知识库依靠了互联网众包、专家创建和游戏三种方法,但早期的 ConceptNet 规模在百万级别,最新的ConceptNet 5.0也仅包含2800万个RDF三元组关系描述。谷歌和百度等现代知识图谱都已经包含超过千亿级别的三元组,阿里巴巴于2017年8月发布的仅包含核心商品数据的知识图谱也已经达到百亿级别。DBpedia已经包含约30亿个RDF三元组,多语种的大百科语义网络BabelNet包含19亿个RDF三元组[25],Yago3.0包含1.3亿个元组,Wikidata已经包含4265万条数据条目,元组数目也已经达到数十亿级别。截至目前,开放链接数据项目Linked Open Data[2]统计了其中有效的2973个数据集,总计包含大约1494亿个三元组。
现代知识图谱对知识规模的要求源于“知识完备性”难题。冯·诺依曼曾估计单个个体大脑的全量知识需要2.4×1020个bits存储[26]。客观世界拥有不计其数的实体,人的主观世界还包含无法统计的概念,这些实体和概念之间又具有更多数量的复杂关系,导致大多数知识图谱都面临知识不完全的困境。在实际的领域应用场景中,知识不完全也是困扰大多数语义搜索、智能问答、知识辅助的决策分析系统的首要难题。
图1-4 现代知识图谱的规模化发展
全部0条评论
快来发表一下你的评论吧 !