框架、词向量、脚本、语义网络
其他常用的知识表示方法包含个体概念,而不是整个领域(如医学诊断或服装设计)。
例如,可以通过规定分层数据结构(有时称为“框架”)告诉计算机什么是房间。它将一间房表示为有地板、天花板、墙壁、门、窗户和家具(床、浴缸、餐桌……)。真实的房间具有不同数量的墙壁和门窗,因此可在框架中的“插槽”里填充特定数字,并提供缺省赋值(四道墙、一扇门和一扇窗)。
计算机可以使用这类数据结构找到相似类、回答问题、参与对话、创作或理解故事。它们是CYC(encyclopedia,即百科全书)的基础:一个试图表示所有人类知识的大胆尝试。有人甚至说这个想法是痴人说梦。
然而,框架也可能造成误导。例如,缺省赋值就有诸多问题(有些房间没有窗户,开放式的房间没有门)。更糟糕的情况是:该如何表示下落或溢出这样的日常概念?符号人工智能这样表示“朴素物理学”的常识性知识:构造对事实进行编码的框架,如未支撑的物体会下落,但也有例外——氦气球就不会下落。考虑清楚这类情况是一项永无止境的任务。
在一些利用最新技术处理大数据的应用中,单个概念可能被表示为一个簇或“云”,由成百上千个偶尔相关的概念组成(概念对之间的相关性概率各不相同,详见第3章)。类似地,概念现在可以用“词矢量”而不是单词来表示。此处的语义特征生成许多不同概念并连接各个概念,由(深度学习)系统发现,可用来预测接下来的词——例如,在机器翻译中的运用。然而,这些表示用在推理或谈话中的时候,不像经典框架那么经得起检验。
有些数据结构(称为“脚本”)表明熟悉动作的顺序。例如,哄小孩子睡觉通常要做以下动作:盖被子、读故事、唱首摇篮曲、打开小夜灯。这样的数据结构既可用来问答问题,也可用来提问题。如果妈妈省掉打开小夜灯的动作,就会出现这样的问题,如“为什么”以及“接下来发生了什么”,换句话说,这里有故事开始的缘由。因此,这种形式的知识表示被用于自动书写故事,也正是和人类能正常交谈的“陪护”计算机所需要的知识表示形式(见第3章)。
概念的另一种知识表示形式是语义网络(这些是集中式网络,见第4章)。20世纪60年代,罗斯·奎利恩(Ross Quillian)率先提出了几个延伸示例(例如WordNet)作为人类联想记忆的模型,现在属于公共数据资源。语义网络通过以下方法连接概念:如同义、反义、从属、上位、部分—整体这样的语义关系;以及将真实的世界知识比作语义学的联想连接(见第3章)。
语义网络可能增加为音节、初始字母、语音学和同音异义词编码的连接,来表示概念和词。金·宾斯泰德(Kim Binsted)的JAPE和格雷姆·里奇(Graeme Ritchie)的STAND UP在使用这种网络,它们基于双关语、解释和变换音节来制造笑话(9种不同类型)。例如,问:什么叫沮丧的火车?答:低压机车;问:羊和袋鼠生出来的宝宝是什么?答:一位毛茸茸的跳高运动员。
注意:语义网络与神经网络不同。我们将在第4章中看到,分布式神经网络以迥然不同的方式表示知识。在神经网络中,单个概念不是用精心定义的联想网络中的单个节点来表示,而是用整个网络上活动的变化模式来表示。这类系统可以容忍冲突迹象,因此不需要考虑保持逻辑一致性的问题(将在下一节描述)。但它们无法进行精确推理。不过,这种知识表示类型十分重要(并且是实际应用的一个重要基础),值得我们用一个单独的小节对其展开讨论。