知识图谱从0到1:原理与Python实战
上QQ阅读APP看书,第一时间看更新

1.2 知识图谱的发展

1.2.1 知识图谱与人工智能

虽然知识图谱在2012年才因为谷歌而得名,但是知识图谱的发展历程可以追溯到上个世纪。知识图谱的发展可以从人工智能和语言网两个方向进行追溯。在人工智能方面,人类致力于利用计算机进行推理、分析、预测、决策等高级思维活动。通过运用计算机处理数据的能力并通过设计响应的算法完成机器的智能行为,实现推理、预测等任务。另一方面,随着互联网的高速发展,产生了大量的数据,对海量数据的处理伴随着日益复杂的推理、预测、决策、问题求解等任务。人类希望引入知识来处理原始数据,使其支撑推理、预测等复杂问题,语义网就是在这一背景下诞生的,知识图谱可以看作为语义网的一种简化后的商业实现。知识图谱的发展历程如图1.6所示。

图1.6 知识图谱的发展历程

从学术的观点看,人工智能的主要学派有三家,即符号主义学派、连接主义学派和行为主义学派。在人工智能发展的早期,符号主义学派和连接主义学派贯穿着人工智能的发展,符号主义是一种基于逻辑推理的智能学习方法,又称为逻辑主义。符号派的核心在于知识的表示和推理。

1.符号主义学派

符号主义学派认为人工智能源于数理逻辑。数理逻辑从19世纪末迅速发展,在20世纪30年代开始用于描述智能行为。计算机出现后,又在计算机上实现了逻辑演绎系统。其有代表性的成果为启发式程序LT逻辑理论家,证明了38条数学定理,表明了可以应用计算机研究人的思维过程,模拟人类智能活动。正是这些符号主义者,早在1956年首先采用“人工智能”这个术语。后来又发展了启发式算法→专家系统→知识工程理论与技术,并在20世纪80年代取得很大发展。符号主义曾长期一枝独秀,为人工智能的发展做出重要贡献,尤其是专家系统的成功开发与应用,为人工智能走向工程应用和实现理论联系实际具有特别重要的意义。在人工智能的其他学派出现之后,符号主义仍然是人工智能的主流派别。这个学派的代表人物有纽厄尔(Newell)、西蒙(Simon)和尼尔逊(Nilsson)等。

2.连接主义学派

连接主义学派认为人工智能源于仿生学,特别是对人脑模型的研究。它的代表性成果是1943年由生理学家麦卡洛克(McCulloch)和数理逻辑学家皮茨(Pitts)创立的脑模型,即MP模型,开创了用电子装置模仿人脑结构和功能的新途径。它从神经元开始,进而研究神经网络模型和脑模型,开辟了人工智能的又一发展道路。20世纪60—70年代,连接主义,尤其是对以感知机(perceptron)为代表的脑模型的研究出现过热潮,由于受到当时的理论模型、生物原型和技术条件的限制,脑模型研究在20世纪70年代后期至80年代初期落入低潮。直到Hopfield教授在1982年和1984年发表了两篇重要论文,提出用硬件模拟神经网络,之后连接主义才又重新抬头。1986年,鲁梅尔哈特(Rumelhart)等人提出多层网络中的反向传播算法(BP)。此后,连接主义势头大振,从模型到算法,从理论分析到工程实现,为神经网络计算机走向市场打下基础。现在,对人工神经网络(ANN)的研究热情仍然较高,但研究成果没有预想的那样好。

3.行为主义学派

行为主义学派认为人工智能源于控制论。控制论思想,早在20世纪40—50年代就成为时代思潮的重要部分,影响了早期的人工智能工作者。维纳(Wiener)和麦克洛克(McCulloch)等人提出的控制论和自组织系统以及钱学森等人提出的工程控制论和生物控制论,影响了许多领域。控制论把神经系统的工作原理与信息理论、控制理论、逻辑以及计算机联系起来。早期的研究工作重点是模拟人在控制过程中的智能行为和作用,如对自寻优、自适应、自镇定、自组织和自学习等控制论系统的研究,并进行“控制论动物”的研制。到20世纪60—70年代,上述这些控制论系统的研究取得一定进展,播下智能控制和智能机器人的种子,并在20世纪80年代诞生了智能控制和智能机器人系统。行为主义在20世纪末以人工智能新学派的面孔出现,一出现便引起了许多人的兴趣。这一学派的代表作者首推布鲁克斯(Brooks)的六足行走机器人被看作是新一代的“控制论动物”,是一个基于感知—动作模式模拟昆虫行为的控制系统。

1.2.2 专家系统

专家系统是符号主义的主要成就,是人工智能领域的一个重要分支。它是一个具备大量专业知识与经验的计算机程序系统,通过知识表示和知识推理来模拟解决那些领域专家才能解决的复杂问题。专家系统通常由人机交互界面、知识库、推理机、解释器、综合数据库、知识获取6个部分构成。专家系统结构图示例如图1.7所示。

图1.7 专家系统结构图

1965年,费根鲍姆等人在总结通用问题求解系统的成功与失败经验的基础上,结合化学领域的专门知识,研制了世界上第一个专家系统DENDRAL。20世纪70年代,第二代专家系统(mycin、casnet、prospector、hearsay等)属单学科专业型、应用型系统,其体系结构较完整,移植性方面也有所改善,而且在系统的人机接口、解释机制、知识获取技术、不确定推理技术、增强专家系统的知识表示和推理方法的启发性、通用性等方面都有所改进。20世纪70年代,斯坦福大学使用LISP语言研制了MYCIN系统,用于帮助医生对住院的血液感染患者进行诊断和用抗菌素类药物进行治疗。从功能与控制结构上可分成两部分:①以患者的病史、症和化验结果等为原始数据,运用医疗专家的知识进行推理,找出导致感染的细菌。若是多种细菌,则用0~1的数字给出每种细菌的可能性。②在上述基础上,给出针对这些可能的细菌的药方。尽管MYCIN系统并没有被运用于实践中,但是研究报告显示这个系统所给出的治疗方案可接受度约为69%,比大部分使用同一参考标准给出治疗方案要好得多。20世纪80年代初到90年代初,专家系统发展迅速,商业价值被各行各业看好。20世纪80年代初,专家系统主要应用于医疗领域,主要原因是医疗专家系统属于诊断性系统且容易开发。到了20世纪80年代中后期,专家系统在商业上应用越来越广泛。第三代专家系统属多学科综合型系统,采用多种人工智能语言,综合采用各种知识表示方法和多种推理机制及控制策略,并开始运用各种知识工程语言、骨架系统及专家系统开发工具和环境来研制大型综合专家系统。专家系统时代最成功的案例是DEC的专家配置系统XCON。当客户订购DEC的VAX系列计算机时,XCON可以按照需求自动配置零部件。从1980年投入使用到1986年,XCON一共处理了8万个订单[2]

1.2.3 语义网

专家系统经过数十年的研究和实践,尽管已经在很多领域具备了AI所拥有的能力,但其知识获取能力仍然存在瓶颈且无法自我学习。随着包括日本第五代计算机计划在内的许多超前概念失败后,人们开始质疑专家系统。一方面,与专家系统一脉相传的这一派自身的逻辑功力不够,他们和定理证明派发生分歧;另一方面,他们的工程实践又略显欠缺。专家系统风口过后,他们变成了暗流,直到万维网支持者之一蒂姆·伯纳斯·李(Tim Berners-Lee)提出了“语义网”(Semantic Web),也就是知识图谱的前身。蒂姆·伯纳斯·李以便捷的HTTP协议和超文本链接标准HTML而闻名,被各种媒体称为万维网的发明人。

“语义网”是以资源描述框架(W3C标准RDF)、OWL(Web ontology language,网络本体语言)和SPARQL为核心,研究知识本体、关联数据和知识图谱的基础和应用的领域。语义网的设计可以理解为使计算机更好地解读万维网。

着手构建一个更“语义的”万维网有多种方式。一种方式是构建一个“巨型Google”,依赖“数据不可思议的效力”来发现诸如词语之间、术语和情境之间的正确关联。我们在过去几年中已经见证了搜索引擎性能的停滞,这似乎暗示了此种方式存在缺陷——没有一个搜索巨头能够超越仅返回分散页面的简单扁平列表的情况。

语义网(近年来被逐渐熟知的数据万维网)遵循了不同的设计原则,可以概括如下。

(1)使结构化和半结构化的数据以标准化的格式在万维网上可用。

(2)不仅制造数据集,还创建万维网上可解读的个体数据元素及其关系。

(3)使用形式化模型来描述这些数据的隐含语义,使这些隐含语义能够被机器处理。

设计原则体现在语义网中的技术如下。

(1)使用带标签的图(labeled graph)作为对象及其关系的数据模型,图中将对象作为节点,对象间的关系表示为边。使用被草草命名为资源描述框架的形式化模型来表示这种图结构。

(2)使用万维网标识符——统一资源标识符(uniform resource identifier,URI)来标识出现在数据集中的单个数据项以及它们之间的关系。这同样反映在RDF的设计中。

(3)使用本体(ontology,简言之:类型和关系的层次化词汇表)作为数据模型来形式化地表达数据的隐含语义。诸如RDF模式(RDF schema)和网络本体语言的形式化模型来描述这些数据的隐含语义,使得这些隐含语义能够被机器处理,同样也使用URI来表示类型和它们的属性。[3]

2000年,蒂姆·伯纳斯·李为未来的Web发展提出了语义网的体系结构,其各层表达式的描述如表1.1所示。在语义网模型中,第2、3、4层是语义Web的关键层,用于表示Web信息的语义,也是现在语义Web研究的热点所在。其中XML(eXtensible markup language,可扩展标记语言)层作为语法层,RDF层作为数据层,本体层作为语义层。

表1.1 语义网模型

XML不仅提供对资源内容的表示,还提供资源所具有的结构信息。但仅有XML是不够的。XML页面上还包含大量其他信息,如图像、音频和其他说明性文字等,这些信息难以被智能软件代理处理。需要对所描述对象结构和内容进行规范说明,提供描述XML的元数据。RDF是W3C推荐的用于描述和处理元数据的方案,能为Web上应用程序间的交互提供机器能处理的信息,是处理元数据的基础。XML和RDF都能为所描述的资源提供一定的语义,同时XML标签集和RDF属性集不存在限制[4]

语义网体系结构[5]由以下7层组成。

 字符集层:该层使用Unicode作为数据格式,可以表示世界上所有主要语言的字符,并通过URI为资源提供唯一的标识符。Unicode的使用确保了多语言的支持和跨语言的检索能力。

 根标记语言层:在这一层,使用XML作为标记语言。XML具有灵活的结构和易用性,允许用户自定义文档结构,并通过命名空间避免不同应用之间的命名冲突。此外,XML schema用于定义和验证数据的结构,提供了更多的数据类型和校验机制。

 资源描述框架层:RDF是用于表示网络上互连数据的通用框架,用于描述网络上的信息资源。RDF采用三元组(主体-谓词-客体)的形式表示知识,使信息具有机器可理解性。此外,RDFS提供了一种词汇定义语言,用于定义资源之间的关系和属性,进一步丰富了资源描述的语义。

 本体词汇层:在这一层,通过使用专门的本体语言(如OWL)定义概念、关系和约束等。本体词汇层提供了更高层次的语义描述,允许用户建立领域特定的知识模型,并进行推理和推断。

 逻辑层:逻辑层为语义网提供了推理和推断的能力。通过采用逻辑语言(如规则语言)和推理机制,可以从已知的事实中推导出新的知识,填补信息的缺失并发现隐藏的关联。

 证明层:在这一层,使用Proof交换和数字签名技术建立信任关系并验证数据的可靠性。通过证明的交换和验证过程,可以确保数据的真实性和完整性。

 信任层:信任层用于评估和确定语义网中资源和信息的可信度。它可以基于证明层提供的证据和其他信任度评估机制,为用户提供对语义网数据和服务的信任度评估,并根据信任度做出决策和使用资源。

1.2.4 知识图谱的发展

实际上,知识图谱在谷歌正式提出知识图谱的前几年就已经有了雏形,Metaweb公司将现实世界中各种实体数据信息存储于系统中,并在数据之间建立关联关系,从而发展出区别于传统关键词搜索的技术。谷歌为了改善其搜索服务于2010年收购了Metaweb。Metaweb的标签数据数据库将有助于让谷歌搜索变得更智能。

Metaweb为Web开发了语义存储基础设施和Freebase,是一个类似维基百科的创作共享类网站,于2007年3月发布。Freebase是一个巨大的,合作编辑的交联(cross-linked)数据知识库,由大量三元组组成。其背后的想法是为语义网建造一个像维基百科系统的产品。Freebase允许任何人提供、组织、查询、复制及利用其数据。这听起来很像维基百科,但是不同于维基百科按作品安排结构,Freebase的结构更像一个人和软件均能读取的数据库。Metaweb已经使用多种技术构建了一个高质量的知识图谱,包括爬取和解析维基百科。所有这些都是由其内部构建的一个图数据库驱动的,这个数据库叫作Graphd,是一个图守护程序(现在已经发布在GitHub上)。Graphd具有一些非常典型的属性,像一般守护进程一样,它在一台服务器上运行,所有数据都放在内存中。整个Freebase网站都基于Graphd。收购完成后,谷歌面临的挑战之一是继续运行Freebase。2012年5月16日,谷歌在Freebase的基础上提出了谷歌知识图谱。截至2012年发布时间,其语义网络包含超过5亿个对象,超过35亿个关于这些不同对象的事实和关系,这些不同的对象之间存在的链接关系用来理解搜索关键词的含义。

知识图谱从三个主要方面增强了Google搜索:(1)找到正确的内容。(2)获得最佳摘要。(3)更深入、更广泛。

谷歌在商品硬件和分布式软件上建立了一个帝国。单个服务器数据库永远无法容纳搜索的爬网、索引和服务。谷歌先是创建了SSTable,然后提出了Bigtable的概念,Bigtable可以横向扩展到数百或数千台服务器,协同运行PB级的数据。谷歌还构建了Borg(K8s的前驱)分配机器,使用Stubby(gRPC的前驱)进行通信,通过Borg的名称服务解析IP地址(BNS,K8s组件之一),数据存储在Google的分布式架构文件系统GFS上(Hadoop FS)。分布式策略有效地避免了系统因为机器崩溃而不稳定的情况。由于Graphd是单机式,无法满足谷歌的需求,特别是Graphd需要消耗大量的内存,于是,如何替换Graphd且以分布式方式工作的想法被提出。一个被命名为Dgraph的真正的图数据库服务系统,不仅可以取代Graphd for Freebase,还可以为将来的所有知识图谱工作服务。Dgraph是一个分布式的图数据库服务系统,Dgraph是一个升级版的Graphd。[6]