知识工程(Knowledge Engineering,KE)作为人工智能领域的一个分支,其产生与发展与人工智能密切相关。
1956年8月,在美国达特茅斯学院,几位心理学家、数学家、计算机科学家、信息论学家在一场研讨用机器模拟人类智能问题的会议中,第一次提出人工智能概念。起初人工智能取得了一系列丰硕成果,如机器定理证明、跳棋程序等,掀起人工智能发展的第一个高潮。但是在20世纪60—70年代,一系列不切实际的研发目标接二连三失败,人工智能进入寒冬。在1977年,Edward分析传统的人工智能忽略具体知识,才导致了失败,这意味着人工智能必须引入知识。也由此开发出第二代人工智能的核心领域——专家系统,专家系统作为早期人工智能的重要分支,是一种在特定领域内具有专家水平解决问题能力的程序系统。1977年美国斯坦福大学计算机科学家Feigenbaum在第五届国际人工智能会议上提出知识工程的概念。知识工程诞生之后,这个领域不断发展,不断产生新的逻辑语言和方法。1980年,卡内基梅隆大学为数字设备公司设计了一套名为XCON的“专家系统”,标志了人工智能逐步开始商用。可惜好景不长,1987年,苹果和IBM生产的台式机性能都超过了Symbolics等厂商生产的通用型计算机,因此“专家系统”也迎来了人生终点。随着日本五代机的幻灭,专家系统在经历了十年的黄金期后,终因无法克服人工构建成本太高、知识获取困难等弊端,逐渐没落,知识工程也进入了一段低潮期。1998年,WWW的出现,为知识工程中的难点知识获取提供了极大方便。大数据时代的到来和人工智能的第三次兴起,为知识工程的发展带来了新的机遇。2010年,谷歌收购Metaweb,并将其命名为“知识图谱”,知识图谱由此诞生。知识图谱的出现标志着知识工程进入了新时代 [20] 。现在,深度学习、强化学习等人工智能新技术的出现,使得知识工程有了新的变化。
知识工程的创始人Feigenbaum在“人工智能的艺术”的演讲中 [21] 提出“知识工程”这一名词,并指出“知识工程是应用人工智能的原理与方法,对那些需要专家知识才能解决的应用难题提供求解的手段。恰当地运用专家知识的获取、表达和推理过程的构成与解释,是设计基于知识的系统的重要技术问题”。
知识工程作为人工智能学科的一个分支,它主要研究知识的表示、获取、组织与利用等。知识的多样性决定了它需要有一种科学的手段进行处理,知识工程就是这种基于知识的方法和应用,它与知识管理有着密不可分的联系 [22] 。
从知识工程的发展历史可以看出,知识工程是伴随“专家系统”的研究而产生的。专家之所以能成为专家,主要在于其通过长期的实践总结和积累,拥有大量专业知识。所以知识公众的焦点就是知识。知识工程领域的主要研究方向包含知识获取、知识表示和推理方法等,其研究目标是挖掘和抽取人类知识,用一定的形式表现这些知识,使之成为计算机可操作的对象,从而使计算机具有一定的人类智能。
知识管理和知识工程都是通过对数据、信息、知识的运用和处理,以解决问题、提高效率。知识工程是知识管理的技术支柱,知识管理中的许多关键技术都属于“知识工程”范畴。知识管理是完成知识获取、共享、应用和创新的管理过程。知识工程利用计算机来建造知识系统,并应用知识系统解决问题。知识管理要求实现的知识获取、知识共享、知识应用过程都可以由知识工程核心部分知识库来完成。
但是,知识工程与知识管理不是完全相同的,它们主要有以下几个区别 [23] 。
(1)知识管理与知识工程的研究角度不同。
知识管理主要从管理学角度,以知识为基础,重点在于对知识进行系统的收集、整理、加工,从而产生相应的价值。知识管理应用以知识工程为技术支柱,知识管理应用于社会管理、企业管理与知识工作者个人的管理,它的理念、方法、技巧被各种职能和领域所应用。知识工程从技术角度出发,利用计算机来建造知识系统,并应用知识系统解决智力问题,侧重于布局、构造、设计和规划,通常涉及知识库和专家系统。
知识工程是研究知识信息处理的学科,提供开发智能系统的技术,是人工智能、数据库技术、数理逻辑、认知科学等学科交叉发展的结果。
(2)知识管理与知识工程的核心内容不同。
邱均平教授指出,广义知识管理的研究内容包括理论研究和应用研究两方面,其中前者可细分为知识的特性和运动规律的研究、知识组织管理研究、知识信息管理研究、知识管理方法体系的研究,后者是指各行业、各学科领域的知识创新和管理在本领域的应用 [24] 。
知识管理主要包括知识转化与知识序化。知识转化是知识共享的过程,同时知识共享也是知识转化的前提。知识管理中的知识转化包括四个方面:从隐性知识到隐性知识的社会化过程;从隐性知识到显性知识的外化过程;从显性知识到显性知识的综合过程;从显性知识到隐性知识的内化过程 [25] ,这些转化主要是知识存在形态及附着主体的变化。知识管理中的知识组织以知识的序化为主,包括分类、检索、排序等操作。知识管理不仅涉及获取、组织与检索信息的问题,还涉及数据挖掘、文本聚类、数据库与文档等问题。
知识工程包括知识获取、知识表示与知识利用三大过程。知识获取有三种方式 [26] :非自动知识获取、知识抽取、机器学习知识。非自动知识获取由知识工程师通过阅读有关文献或与领域专家交流,获取原始知识并进行分析、归纳、整理,形成用自然语言表述的知识条目并输入数据库中。知识抽取是对蕴含于文本文献中的知识进行识别、理解、筛选、格式化,把文献的每个知识点抽取出来,以一定形式存入知识库中。机器学习知识通过机器的视觉、听觉等途径,直接感知外部世界,输入自然信息,获取感性和理性知识,或者根据系统运行经验从已有的知识或实例中演绎、归纳出新知识,补充到知识库中。知识表示方法包括介谓词逻辑表示法、产生式表示法、框架表示法、脚本表示法、过程表示法、语义网表示法、Petri网表示法、面向对象表示等方法 [27] 。不同的知识类型使用不同的表示方法。知识利用包括知识搜索及知识推理。知识搜索确定在什么情况下需要什么样的知识,搜索到的知识是否满足当前的需求。找到了适当的知识后,进行推理,得到结果。
(3)知识管理与知识工程的应用范围不同。
知识管理可以应用于整个社会、组织或者个人,知识管理一般重视以改进效果、竞争优势、创新、分享知识学习、整合知识和持续改进为企业目标,可以分为社会的知识管理、组织的知识管理、个人的知识管理等。知识工程主要应用于某些具体的流程或者操作,可以看成人工智能在知识信息处理方面的发展,主要研究如何由计算机表示知识,进行问题的自动求解。知识工程的研究使人工智能的研究从理论转向应用,从基于推理的模型转向基于知识的模型。