资讯

尼克 | 从专家系统到知识图谱

转载 2018-01-15 07:12 尼克 来源:尼克

本文节选自尼克老师的《人工智能简史》第 3 章:从专家系统到知识图谱。从第一个专家系统 DENDRAL 到语义网再到谷歌的开源知识图谱,对知识图谱的发展历程进行了全面回顾和深度点评。

尼克,早年曾任职哈佛和惠普;后创业投资,往返于大陆和硅谷。无论忙闲不忘读书写字,作品多发表于《上海书评》,并有著作《UNIX系统 V内核剖析》和《哲学评书》。

1. 费根鲍姆和DENDRAL

费根鲍姆进入卡内基理工学院(卡内基梅隆的前身)攻读电气工程(简称 EE)本科时才 16 岁。大三时一门“社会科学的数学模型”的课设定了他的人生轨迹,那门课的老师是司马贺。本科毕业后他留校,在司马贺任院长的工业管理研究生院读博士。博士毕业后他来到加州大学伯克利分校的工商管理学院任教。他曾和师弟菲尔德曼(Julian Feldman)合编过一本论文集《计算机与思维》,这本文集的版税后来被用来在国际人工智能联合会(IJCAI)资助“计算机与思维”奖,这成为人工智能界给 40 岁以下青年学者最重要的奖项,初衷有点像数学界的菲尔茨奖。排在一长串获奖人第一位的是维诺格拉德(Terry Winograd),其中还有雷纳特(Douglas Lenat)、英年早逝的马尔以及吴恩达,最新的一位(2016 年度)是斯坦福大学做自然语言处理的新秀 Percy Liang。1962 年麦卡锡从东岸的麻省理工学院搬到美丽的旧金山湾区,组建了斯坦福大学计算机系。1964 年费根鲍姆响应麦卡锡的召唤,离开伯克利,到不远处的斯坦福大学协助麦卡锡。

费根鲍姆(1936— )

1958 年李德伯格(Joshua Lederberger)获得诺贝尔生理奖时才 33 岁,得奖的第二年,他就离开当时任教的威斯康星大学前往加州,受邀重建斯坦福大学的医学院并担任遗传学系主任。那时,斯坦福大学的医学院还在旧金山,和公立的加州大学旧金山分校一起。加州大学其他各分校没有医学院,旧金山分校就是整个加州大学的医学院,直到 20 世纪 90 年代末期,斯坦福医学院和加州大学旧金山分校分久必合,寻求合并但最终未果。话说回来,李德伯格在哥伦比亚大学读本科时就受到“莱布尼茨之梦”的影响,企图寻找人类知识的普遍规则。1962 年夏,李德伯格还在斯坦福计算中心听编程的课,他上手的第一门语言是 BALGOL 。他很快就结识了刚从麻省理工学院加入斯坦福大学的麦卡锡,他们还企图把明斯基也吸引到斯坦福医学院。

李德伯格(1925—2008)

费根鲍姆 1964 年在斯坦福大学高等行为科学研究中心的一次会上见到了李德伯格,对科学哲学的共同爱好促成了他们漫长而富有成效的合作。那时李德伯格的研究方向是太空生命探测,更具体地说就是用质谱仪分析火星上采集来的数据,看火星上有无可能存在生命。费根鲍姆的兴趣则是机器归纳法,用现在的话说就是机器学习。他们俩,一个有数据,一个搞工具,一拍即合。从科学史的角度看,这是个跨学科的合作,李德伯格的影响力和领导力起了核心作用。按照布坎南的说法,以费根鲍姆为首的计算机团队的任务就是把李德伯格的思路算法化。李德伯格完成哲学构思后就兴趣迁移了,他最初的想法花了费根鲍姆们 5 年的时间才得以实现,李德伯格责怪他们太慢了。

费根鲍姆很快就发现李德伯格是遗传学家,对化学其实也是一窍不通,于是他们找到同校的化学家兼作家兼口服避孕药发明人翟若适(Carl Djerassi)帮忙。翟若适没得过诺贝尔奖,但他得过美国国家科学奖(得奖人包括维纳、哥德尔、香农、丘成桐)和美国国家技术与创新奖(得奖人包括杜邦公司和 HP 创始人帕卡德、Intel 创始人诺伊斯、微软创始人盖茨),这是非常独特的。另一位两个奖都得过的是发明了计算机 RISC 架构的寇克(John Cocke)。翟若适那时刚从韦恩州立大学转到自由的斯坦福大学,李德伯格是他在加州结识的第一个朋友。三人合作的结果就是第一个专家系统 DENDRAL。DENDRAL 输入的是质谱仪的数据,输出是给定物质的化学结构。费根鲍姆和他的学生捕捉翟若适和他的学生的化学分析知识,把知识提炼成规则。这个专家系统有时做得比翟若适的学生还准。在翟若适的大部头自传中,只有一小段提到 DENDRAL,这个项目在他成果辉煌的学术生涯和多姿多彩的生活中,实在算不上什么。翟自传中说费根鲍姆一直把 DENDRAL 的核心称为“翟算法”,而布坎南则记得大家都认为专业知识的提供者是李德伯格,也许是费根鲍姆圆滑,也许是计算机团队更多地接触李德伯格。

费根鲍姆是学术活动家,刚到斯坦福大学就担任计算中心主任,当时这个职位比计算机系主任恐怕还更有影响力。20 世纪 60 年代初期和中期,费根鲍姆曾两次访问苏联,对苏联的计算机科学和控制论研究印象深刻,他早就观察到苏联的研究偏理论而轻实践。但苏联下棋程序的胜利确实让世界吃惊。苏联控制论的定义太宽泛,无所不包,其结果也没有重点,难有突破性成果,而当时中国的自动化学科就是仿效苏联的。美国不存在自动化学科,无所不包的 EE 和自动化有很大交集。费根鲍姆意识到他的苏联同行企图利用他的名望来为苏联同行背书并争取资助。而在美国,动态规划的发明人贝尔曼则通过军方智库兰德公司给空军建议美国应该提防苏联的计算机科学研究。费根鲍姆不爽贝尔曼的报告,认为这是他利用苏联威胁论来为自己争取科研红利。而若干年后,费根鲍姆却利用日本的五代机项目宣扬日本威胁论,这不得不让人怀疑他的动机。费根鲍姆创办的数家公司因各种原因,都没有大的成功。其中 Teknowledge 公司没成,倒是副产品、知识库项目 SUMO 留了下来,现在开源了,成为几大基础的常识知识图谱之一。

2. MYCIN

MYCIN 的牵头人布坎南也是 DENDRAL 的核心成员。布坎南是哲学出身,兴趣广泛。1964 年,在密执安州立大学学哲学的布坎南想在系统开发公司(SDC)找份夏季实习的工作,没曾想 SDC 居然把他的简历发给了兰德公司,敢情国防口的简历也共享。当时在兰德做夏季工作的费根鲍姆给布坎南打了个电话,于是布坎南到兰德公司实习并和费根鲍姆结缘。布坎南的研究方向是科学发现,他走的是逻辑路数而不是心理路数,没曾想费根鲍姆也对科学哲学兴趣浓厚。事实上,费根鲍姆和李德伯格最早关于 DENDRAL 的文章中提到了“机械化科学推理”(mechanizing scientific inference)的概念。布坎南博士毕业后想去教哲学,请费根鲍姆写推荐信,但费说服布坎南到斯坦福大学和他一起搞真正的科学发现。布坎南的哲学背景帮助了他,在 DENDRAL 项目的开头,李德伯格和费根鲍姆都没想到假设生成和理论生成的区别,同时布坎南也意识到他在哲学课堂里学到的卡尔纳普理论在计算上行不通。整个 DENDRAL 团队中没有一个人对其中涉及的化学知识有全部的了解,每个人都假设其他人知道。布坎南早期的演讲开头都得讲点化学背景知识,听众听不懂也不耐烦,他记得有一次是麦卡锡站出来对听众大喊:“你们就不能好好听着吗?”(Just listen,will you?)麦卡锡的威望为他解了围。

DENDRAL 获得成功后,布坎南开始寻找新的方向。实验科学与理论科学比较,是相对原始的,原始经验也相对容易转换成规则。除了化学和生物学,医学是另一个可以马上利用专家系统的领域。此时的斯坦福医学院来了一位从哈佛大学本科数学毕业的高才生肖特莱福(Edward Shortliffe),他 1976 年在斯坦福医学院拿到医学学位 M.D.,但一年前在布坎南的指导下,他已经获得了计算机科学的博士,论文就是专家系统 MYCIN,一个针对细菌感染的诊断系统。MYCIN 的处方准确率是 69%,当时专科医生的准确率是 80%,但 MYCIN 的成绩已经优于非本专业的医生。肖特莱福因此获得 1976 年 ACM 为青年计算机科学家设立的霍普(Grace Murray Hopper)奖。肖特莱福随后去麻省总医院做了三年内科住院医生,1979 年回到斯坦福大学兼任医学院和计算机系的教授。

MYCIN 团队认为 DENDRAL 是专家系统的始祖,这一方面考虑了 DENDRAL 的时间点确实更早,另一方面布坎南本身就出自 DENDRAL。但纽厄尔,作为外人,却认为 MYCIN 才是专家系统的鼻祖,因为 MYCIN 首创了后来作为专家系统要素的产生式规则:不精确推理。DENDRAL 的初衷则是从专家采集来的数据做机器归纳,或者说机器学习。虽然 MYCIN 从来没被临床使用过,但 MYCIN 的开发原理后来逐步被提炼成为专家系统核心 EMYCIN 的基础。EMYCIN 的动机是两方面的,除了通用化外,政府资助也是一个原因。20 世纪 70 年代初,DARPA 削减对人工智能的资助,原来的长期资助改为每年评审。每次向 DARPA 汇报时,费根鲍姆团队都得事先对词,他们不敢说研究经费被用来做医学相关的研究。直到后来他们拿到美国国家健康研究院(NIH)和美国国家医学图书馆(NLM)的资助,情况才有所好转。


3. 专家系统的成熟

一个领域成熟与否的主要测度之一是赚不赚钱。人工智能没有商业应用一直是被批评的原因之一。专家系统时代最成功的案例是 DEC 的专家配置系统 XCON。DEC 是 PC 时代来临之前的宠儿,他们用小型机冲击 IBM。当客户订购 DEC 的 VAX 系列计算机时,XCON 可以按照需求自动配置零部件。从 1980 年投入使用到 1986 年,XCON 一共处理了八万个订单。

XCON 到底为 DEC 省了多少钱一直是个谜,最高的说法是一年省四千万美元,还有的说法是两千五百万,最低的说法是顶多几百万。无论如何,DEC 是把 XCON 当作商业成功来宣传的。XCON 确实体现了技术的进步,其起源是卡内基梅隆的 R1。说来也有意思,最早的 XCON 居然是用 Fortran 语言写的,失败后居然令人发指地改用 BASIC 语言。纽厄尔的博士生 Charles Forgy 发明了 Rete 算法和 OPS 语言,极大地提高了专家系统的效率,XCON 迅速采用 OPS 和随后的 OPS5。

20 世纪 80 年代初到 20 世纪 90 年代初,专家系统经历了十年的黄金期,随着日本五代机的幻灭,“专家系统”变成了一个不仅不时髦,反而有负面含义的词。互联网催生的电子商务,有很多和 XCON 类似的应用场景,于是新瓶装旧酒,专家系统摇身一变,改名规则引擎,成为中间件的标配。征信、反欺诈和风险控制一直是规则系统擅长的领域,征信公司 FICO 收购了一系列一直苟延残喘的专家系统公司,包括 Forgy 的 RulesPower。目前已经很少有独立的专家系统公司了。

4. 知识表示

知识表示一直是人工智能不温不火的一个领域,催生者是专家系统和自然语言理解。KRL(Knowledge Representation Language)是最早的知识表示语言之一,有影响但不成功。参加过施乐实验室(XEROXParc)KRL 项目的维诺格拉德在多年后总结教训时说,KRL 要同时解决两个问题:第一,知识工程师的可用性,也就是说人可读可写;第二,得有底层的麦卡锡风格的逻辑来支撑语义。要同时解决这两个互相矛盾的问题,必然导致结果太复杂,四不像,知识工程师和逻辑学家都不买账。

逻辑

逻辑是最方便的知识表示语言,从亚里士多德开始人们就熟悉,逻辑同时具有各种数学性质。任何一本逻辑入门书都会有那个著名的苏格拉底的例子:人必有一死,苏格拉底是人,所以苏格拉底必死。这个三段论表示成现代的数理逻辑就成了如下形式。

大前提和小前提:(∀x) Man(x) ⊃ Mortal(x) & Man(Socrates)

结论:Mortal(Socrates)

一阶逻辑也称谓词逻辑,是希尔伯特简化罗素的《数学原理》中逻辑的结果。谓词逻辑没有本体,也就是没有关于特定世界的公理。也正因此,哲学家、逻辑学家蒯因把逻辑等同于一阶逻辑。一阶逻辑只是语法,没有本体,没有语义;而高阶逻辑,在蒯因的眼里,其实是“披着伪装的集合论”(set theory in disguise)。费根鲍姆所谓的知识就是本体。当然,费根堡姆不是从逻辑的角度而是从心理的角度看问题,这显然受到他的老师纽厄尔和司马贺的影响。

可计算性和计算复杂性理论与逻辑密不可分。一阶逻辑是不可判定的,命题逻辑的可满足性问题是 NP 完全的。知识表示的一个核心问题是找到一个一阶逻辑的子集,它是可判定的,并且尽可能地有效。描述逻辑应运而生。描述逻辑可以表达实体和类以及类和类之间的关系。描述逻辑中的实体就是一阶逻辑中的常量。实体的表示在描述逻辑中也称 Abox,例如“牛顿是物理学家”可以表示为:

Physicist(Newton)

描述逻辑中不需要变量,描述逻辑的术语更像是集合论,类和类之间的关系也称 TBox。例如,在一个本体中,律师事务所(Lawfirm)是公司(Company)的子集,公司是组织(Organization)的子集,组织是 Agent 的子集,Agent 是 Thing 的子集,这样一系列关系可以表示为:

律师事务所 ⊑公司 ⊑组织⊑Agent ⊑Thing

其对应的一阶逻辑表达式为:    Lawfirm(x) → Company(x), Company(x) → Agent(x) ,    Agent(x) → Thing(x)

一阶逻辑的定理证明的 Term Index 技术中有 Subsumption 的概念,表示 Term 之间的集合从属关系。Tbox 表达了一种简化的 Subsumption。除了 ABox 和 TBox,还有 RBox 表示关系或者角色,关系之间可以有集合论中常有的子集、交集、并集等操作,例如“父亲的父亲是祖父”可表示为:has Father ◦ has Father ⊑ has GrandFather其对应的一阶逻辑表达式为:

has Father(x, y ) ∧ has Father(y, z) → has GrandFather(x, z)

心理学和语言学

知识表示的另一个来源是心理学和语言学,例如概念的上下位继承关系最方便的表示方式是树而不是一阶逻辑。心理学实验表明人在回答“金丝雀会飞吗?”要比回答“鸟会飞吗?”花的时间长,要回答第一个问题,人要再做一次“金丝雀是鸟”的推理。因为人在存储知识时只存储抽象的,这是空间经济的考虑。心理学家米勒和乔姆斯基等一起开拓了认知科学,他最出名的论文大概就是那篇“魔力数字七”(The Magic Number Seven)。他除了理论的贡献,晚年带领普林斯顿大学的认知科学实验室同仁做了“词网”(WordNet)。WordNet 不单是一个同义词辞典,还定义了词的上下位关系,例如,car 的一种上位是 motor,可以再上位到 wheeled vehicle,直到 entity。WordNet 成为自然语言处理的基本工具。

图WordNet

明斯基的框架

框架(Frame)就是类型。金丝雀是鸟,所有鸟的性质自动流传给金丝雀,鸟能飞,金丝雀也能飞。苹果手机是手机,手机能打电话,苹果手机也能打电话。框架导致了面向对象(OO,Object-Oriented)的设计哲学,相关的程序设计语言都受此影响。从这个意义上还真验证了:当一个概念有了成熟的实现时,就自动脱离了人工智能。差不多同时出现的语义网络(Semantic Net,注意这个和后面讲到的 Semantic Web 相关但不同)是与框架等价的表示方式。语义网络中的每个节点就是一个框架,每个节点上的边可以看作一个 slot。

Sowa 的概念图

IBM 的索瓦(John Sowa)在 20 世纪 80 年代初提出“概念图”(Conceptual Graph),企图把知识表示奠定在更加坚实的数学和逻辑基础上。大约同时或稍早,德国数学家威勒(Rudolf Wille)提出基于代数的“形式化概念分析”(Formal Concept Analysis)。程序设计语言理论也变得越发严谨。在概念图中,多重继承的类型层次(Muliple Inheritance)可以用代数的偏序关系“格”(Lattice)来表示。“全序”关系(total-order)是“偏序”的一个特例。一个全序集中的成员要么是 a

0 0

网友评论

取消