知识表示是什么?把知识写成计算机能存储和推理的形式
知识表示(Knowledge Representation)是人工智能中研究如何把人类的知识用计算机能够存储、处理和推理的形式表达出来的领域。它关心的问题是:世界上的事实、概念、规则和常识,应该用什么样的结构写下来,才能让计算机利用它们回答问题、得出结论、做出决策。
为什么知识表示很重要
同样的知识,用不同的方式表示,计算机使用它的难易程度可能完全不同。一个好的知识表示需要在几方面取得平衡:表达能力,能不能把需要的知识都表达出来;推理效率,能不能高效地从已有的知识推出新的结论;可理解性,人能不能方便地阅读、编写和检查;以及可扩展、易于维护。表达能力越强,推理往往越困难,甚至在理论上不可判定,这是知识表示中一个基本的权衡。
常见的知识表示方法
逻辑表示:用一阶谓词逻辑等形式化的语言表示知识,比如“所有的人都会死”“苏格拉底是人”,再用逻辑推理得出“苏格拉底会死”。它严格、精确,有成熟的推理理论,Prolog 等逻辑编程语言就建立在它之上。产生式规则:用“如果……那么……”的形式表示知识,是专家系统中最常用的方式,直观易懂,便于由领域专家编写。语义网络:用节点表示概念,用带标签的边表示概念之间的关系,比如“鸟”通过“是一种”连接到“动物”,通过“能”连接到“飞”,可以沿着关系进行继承和推理。框架:由马文·明斯基在 1974 年提出,用一个带有若干“槽”的结构来描述一类事物的典型特征,比如“餐厅”框架包含菜单、服务员、付账等槽,每个槽可以有默认值。本体:对某个领域中的概念、属性及其关系进行规范化、形式化的描述,常用基于描述逻辑的 OWL 语言来编写,被用于语义网、生物医学等领域,比如基因本体。知识图谱:用“实体-关系-实体”的三元组来表示大量的事实,比如“北京-首都-中国”。谷歌在 2012 年推出知识图谱,用于改善搜索结果,此后知识图谱被广泛用于搜索、问答和推荐。
符号表示与分布式表示
上述方法都属于符号表示:知识被写成人类可读的、离散的符号和结构。深度学习兴起之后,另一种方式变得越来越重要:分布式表示,也就是把概念和知识编码为神经网络中的向量和权重。比如词向量把每个词表示为一串数字,意思相近的词向量也相近;知识图谱嵌入把实体和关系也表示为向量,用于补全缺失的事实。大语言模型可以看作把海量的知识隐式地存储在了它的参数之中,能够回答各种问题,但这种知识难以直接查看和修改,有时还会出错或产生幻觉。
当前的趋势
如今,两种表示方式正在走向结合:用知识图谱等结构化的知识来补充大语言模型,比如检索增强生成和 GraphRAG,让模型的回答更准确、可追溯;反过来,也用大语言模型从文本中自动地抽取知识,构建和扩充知识图谱。知识表示这个经典的人工智能问题,在大模型时代仍然具有重要的意义。