纪念道格:质疑专家系统、知识库和规则引擎


来自AI前沿、符号计算大师stephen wolfram文章,本文阐述了计算第一和逻辑第一的区别,我们知道,世界是由物质构成的,但是stephenwolfram认为世界是由计算构成的,当然传统数学家和计算机科学家、或物理学家认为世界是由数学逻辑构成的,当然,罗素认为世界是由形式逻辑构成的,所有这些对最基础问题的假设,决定了他们不同的研究方向和上下文,stephenwolfram走的是一条孤独的道路,但是ChatGPT的成功间接验证了他的正确性,而道格·莱纳特走的另外一条大众科学认为正确的道路,并且受到政府国家大力资助的那条道路,也许随着他的去世而宣告失败,但是各行各业的实践者还是在坚持本体论等形式逻辑的方式构建自己的领域语言:

从很多方面来说,道格-莱纳特一生的伟大追求就是试图直接继承亚里士多德和莱布尼茨的工作。因为道格在四十年的时间里一直在开发他的 CYC 系统,从根本上说,他想做的是用逻辑框架(与亚里士多德和莱布尼茨的逻辑框架大致相同的形式)来捕捉世界上发生的事情。

它最终证明了在对世界进行有用的表述和推理时,建立超越逻辑的框架的重要性。

道格-莱纳特(Doug Lenat)开始研究人工智能的时候,还没有人真正知道什么是可能的,甚至是容易做到的。人工智能(不管是什么意思)只是一种巧妙的算法或一种新型计算机吗?还是说,这只是一个 "工程问题",只需要把更大更好的 "专家系统 "整合在一起?围绕着人工智能,人们看到了各种各样的谜团,也听到了不少胡言乱语。人们看到的演示是真的证明了什么,还是真的只是一个微不足道的(也许是不知不觉的)骗局?

我第一次见到道格-莱纳特是在 20 世纪 80 年代初。当时我刚刚开发出SMP("符号操纵程序")系统,它是Mathematica和现代Wolfram语言的前身。我还接触过很多 "做人工智能 "的商业活动(事实上,我们的风险投资人甚至推动我的第一家公司取了一个可疑的名字 "推理公司",并配有一个"=>"标志)。我不得不说,当我第一次见到道格时,我很不屑一顾。他告诉我,他有一个程序(他称之为 "AM",意思是 "自动化数学家",这是他斯坦福大学计算机科学博士论文的主题)可以发现(事实上已经发现了)非琐碎的数学定理。

"什么定理?
"你输入了什么?你得到了什么?"

我想,对许多人来说,搜索定理的概念似乎是件了不起的事,而且马上就会令人兴奋。

但我自己不仅刚刚建立了一个以计算形式系统地表示数学的系统,而且还一直在枚举大量简单程序的集合,比如蜂窝自动机。

我仔细研究了道格所说的他所做的一切,但并不信服。

就在同一时间,我碰巧拜访了一所顶尖大学的人工智能小组,他们告诉我,他们有一套系统可以把语言故事从西班牙语翻译成英语。
这个系统只对故事有效。"故事得有多长?"我问。他们说:"实际上,它必须是一种特殊的故事"。"什么样的故事?"我问。他们又反复说了几遍,最后终于说出来了:"系统 "把一个特殊的故事从西班牙语翻译成了英语!

我不确定我的回答中是否包含了脏话,但我想知道这应该是什么样的科学、技术或其他东西。当道格告诉我他的 "自动数学家 "时,我就担心自己会发现这种东西。

CYC
20 世纪 80 年代初到中期,我在一家名为 Thinking Machines 的公司(我当时是该公司的顾问)周围,以及在各种与人工智能有关的活动中,多次遇到道格。当时的人工智能社区规模相当小,而且有些支离破碎,美国的学术界主要集中在麻省理工学院、斯坦福大学和 CMU。在我的印象中,道格从来都不是这个圈子的中心人物,但在某种程度上,他还是一个 "值得注意的成员",尤其是他的工作与数学有关,被认为是在围绕人工智能 "做高端的事情"。

1984 年,我为《科学美国人》的 "计算机软件 "特刊撰写了一篇文章(是的,那时软件很时髦)。我的文章题目是 "科学和数学中的计算机软件",下一篇文章是道格写的,题目是 "智能系统中的计算机软件"。

  • 我文章顶部的摘要写道"计算为描述和研究科学与数学系统提供了一种新的手段。计算机模拟可能是预测某些复杂系统如何演变的唯一方法"。
  • 道格的文章摘要写道"智能解决问题的关键在于减少对解决方案的随机搜索。要做到这一点,智能计算机程序必须挖掘与人类相同的潜在'力量源泉'"。

我想,在很多方面,我们俩在接下来的四十年里,大部分时间都在努力实现这些摘要的承诺。

道格文章中的一个关键点是,要想创造出可以被有效认定为 "人工智能 "的东西,就必须以某种方式内置大量关于这个世界的知识。但应该如何做到这一点呢?如何对知识进行编码?又该如何使用?

将有关世界的知识以逻辑语句的形式编码。然后再想办法把这些语句拼凑起来,推导出结论。

从某种意义上说,这是一种将世界形式化的非常经典的方法--至少在概念上,亚里士多德和莱布尼兹都很熟悉。当然,它现在使用了计算机--既作为一种存储逻辑语句的方式,也作为一种从这些语句中找到推论的方式。

起初,我认为道格认为主要问题在于如何 "寻找正确的推论"。鉴于有一整套逻辑语句,他想知道如何将这些语句编织在一起,以回答某个特定的问题。从本质上讲,这就像数学定理证明一样:如何将公理编织在一起,对某一特定定理进行证明?尤其是在当时的计算机和算法条件下,这似乎是一个几乎任何现实情况下都令人望而生畏的问题。

但人类又是如何做到的呢?道格认为,最关键的因素是启发式方法:猜测如何 "超前 "的策略,而不必像系统方法所暗示的那样进行艰苦的搜索。道格开发了一个名为 EURISKO 的系统,实现了一系列启发式方法--道格希望它不仅能用于数学,而且基本上能用于任何事情,或者至少能用于人类思维有效的任何事情。是的,EURISKO 不仅包括启发式方法,还包括至少某些种类的启发式方法,用于创造新的启发式方法等。

但是,道格认为,EURISKO可以用来 "推理 "任何事情。因此,道格认为,如果EURISKO拥有人类所拥有的知识,那么它就应该能够像人类一样进行推理。换句话说,它应该能够提供某种能够与人类思维相匹配的 "真正的人工智能"。

有各种具体的知识领域需要考虑。但是,道格特别想推动一个似乎最具广泛影响力的方向--解决常识性知识和常识性推理的问题。就这样,道格开始了他的毕生事业--用逻辑语句的形式编码尽可能多的知识。

1984 年,道格的项目--现在被命名为 CYC--成为德克萨斯州奥斯汀市 MCC(微电子和计算机技术公司)的旗舰项目,MCC 是一个工业和政府联合体,成立的目的是为了应对日本 "第五代计算机项目 "带来的威胁,该项目在 "解决人工智能问题 "上投入了大量资源,震惊了美国的研究机构(实际上,该项目强调的许多基本规则技术与道格的项目相同)。在 MCC,道格有足够的资源雇佣几十个人,开始了预计几千人年的工作。

Doug vs. Wolfram
许多年过去了,我当然没有忘记Doug道格,也没有忘记 CYC。有几次,人们建议以某种方式将 CYC 与我们的技术联系起来。但始终没有下文。2009 年春天,Wolfram|Alpha 的第一个版本即将发布,我似乎终于有机会与Doug道格进行有意义的交流。

他说:

你已成为轻描淡写的大师!这当然在过去的 25 年中,我们花费了 1000 年的时间来构建 Cyc 的本体、知识库和推理引擎、知识库和推理引擎。我非常我非常希望能看到一个网络会议演示,这样我们就能发现协同合作的机会。协同作用。

这绝对是一种“你在我的地盘上”的回应。

但几天后,我们与 Doug道格以及现在 Cycorp 团队的一些高级成员进行了长时间的通话。道格做了一件让我印象深刻的事。例如,他并没有挑剔 Wolfram|Alpha “不是人工智能”,他基本上只是说“我们多年来一直在尝试做这样的事情,现在你已经成功了”。

这是一次伟大的、甚至鼓舞人心的智力诚信展示。

Doug 写了一篇题为“ Wolfram Alpha 给我留下了积极的印象”的博文,并立即开始邀请我们参加他所参与的各种人工智能和行业活动。

道格似乎真的很高兴,因为我们在与他长期目标如此接近的领域取得了如此大的进展。我和他讨论了我们的方法之间的比较。
我说:

  • 他只是在进行 "纯粹的类人推理",就像在中世纪不得不做的那样。但我说,"从某种意义上说,我们作弊了"。因为我们使用了现代科学和数学等领域发明的所有东西。
  • 如果他想知道某个机械系统会如何运行,他就必须通过推理来解决:"如果你把这个推下去,那个就会拉上来,然后这个就会滚动",等等。

但对于我们现在所做的事情,我们只需将一切转化为数学(或类似数学的东西),然后用方程等方法系统地解决它

还有一点:我们并不只是试图用逻辑来表现世界,我们正在使用计算的全部力量和丰富性。在谈论太阳系时,我们不只是说 "火星是太阳系中的一颗行星",我们还有计算其详细运动的算法,等等。

道格和 CYC 还强调了似乎出现在我们 "常识 "中的知识碎片;但我们感兴趣的是:

  • 系统的、可计算的知识。
  • 我们需要的不仅仅是关于动物的一些零散的 "常识"。我们想要的是数百万物种属性的系统表
  • 我们有非常通用的计算方法来表示事物:不仅仅是词语或事物的标签,而是捕捉计算结构的系统方法,无论它们是实体、图形、公式、图像、时间序列,还是几何形式或其他任何形式。

我认为,道格将 CYC 视为他想象中人类大脑工作方式的某种形式化理想化:提供一个框架,将大量关于世界的(相当无差别的)知识 "注入 "其中。在某种程度上,这是一个非常 "纯粹的人工智能 "概念:建立一个类似大脑的通用东西,然后 "它就会做剩下的事情"。但道格仍然认为,这个东西必须按照逻辑运行,而输入它的东西也必须由以逻辑形式包装起来的知识组成。

不过,道格的出发点是人工智能和逻辑,而我的出发点则不同,实际上是计算。

我一直认为逻辑并不特别:它是一种特殊的形式系统,可以描述某些类型的事物,但并不具有很大的通用性。对我来说,真正通用的概念是计算。我一直以此为基础。这也是现代沃尔夫拉姆语言的基础,它是一种全面的计算语言。

这是有原则的基础。但它不是逻辑。它是一种更普遍、更结构化的东西:任意的符号表达及其转换。

在过去的四十年里,我花了大量时间为我们在世界和思考世界的过程中遇到的各种概念和构造建立连贯的计算表征。我们的目标是:

  • 拥有一种语言--实际上是一种符号--能够以精确、计算的方式表征事物
  • 然后,还要真正具备使用这种表征方式进行计算的内在能力。不是要弄清楚如何将逻辑语句串联起来,而是要完成任何可能需要完成的计算,从而得到答案。

除了技术愿景和架构之外,CYC 和 Wolfram 语言之间还有某种相似之处:

  • 两者都是庞大的项目。二者的开发时间都超过了 40 年。
  • 而且,这两个项目一直由一个人领导。没错,Wolfram 语言无疑是两者中规模最大的。
  • 但在技术项目的范围内,CYC 仍然是一个非常特别的例子,体现了长久的生命力和坚持不懈的愿景,也是一个真正令人印象深刻的成就。

后来的岁月
在Wolfram|Alpha出现之后,我开始与道格有了更多的交流,尤其是因为我经常参加奥斯汀的SXSW会议,而我通常会在参加会议时主动联系道格。CYC 能否使用 Wolfram|Alpha 和 Wolfram 语言?我们能否以某种方式将我们的技术与 CYC 联系起来?

当我与道格交谈时,他倾向于淡化 CYC 的常识性方面,而是谈论国防、情报分析、医疗保健等方面的应用。他会兴致勃勃地告诉我,CYC 中包含了哪些特殊的知识。但我不得不一次又一次地告诉他,实际上我们在这些领域已经有了系统的数据和算法。我常常为此感到有些难过。就好像他辛辛苦苦地把庄稼一棵一棵地种下去,而我们却用一台巨大的工业机器来完成一样。

2010 年,我们制作了一张大型 "系统数据和可计算知识发展年表 "海报,CYC 作为始于 20 世纪 80 年代的六个条目之一(与网络等并列)出现在海报上。道格和我一直在讨论以某种方式开展合作,但始终没有结果。其中一个问题是不对称:道格可以随时使用 Wolfram|Alpha 和 Wolfram 语言。但我从未真正尝试过 CYC。道格曾多次承诺提供 API 密钥,但都没有兑现。

最后道格对我说"听着,我担心你会认为这是假的"。我特别了解道格所谓 "假 "的历史,我试图向他保证我的目的不是评判。或者,就像我在 2014 年的一封电子邮件中所说的那样"请不要担心我们会认为它是'假的'。我感兴趣的是发现你所做工作中的优点,而不是批评它的缺点"。

但当我第二年参加 SXSW 大会时,道格还有别的东西想给我看。那是一款数学教育游戏。道格似乎对这款游戏的电子游戏设置感到无比兴奋,其中还包括 3D 太空飞船场景。我的儿子克里斯托弗当时也在场,他礼貌地问我这是不是 Unity 的默认场景。我不停地说:"道格,我以前看过电子游戏,给我看看人工智能!"但道格似乎对此不感兴趣了,他最后说,这款游戏没有使用 CYC,但(在某种程度上)仍然使用了 "基于规则的人工智能"。

不过,我已经和道格讨论过了,在我看来,CYC 在 Wolfram|Alpha 中的应用是显而易见的,而且功能强大:解决数学单词问题。如果给我们一个方程形式的问题,我们几乎可以解决任何问题。但对于类似 "如果玛丽有 7 个弹珠,其中 3 个掉进了下水道,她现在有多少个?"这样的文字问题,我们却毫无胜算。因为解决这个问题需要对世界的常识性了解,而这并不是 Wolfram|Alpha 的目的。但这正是 CYC 应该做的。但遗憾的是,尽管我们多次提醒,却从未尝试过。(是的,我们在 Wolfram|Alpha 中为这种事情建立了各种简单的语言模板,现在有了 LLM)。

与其他任何事情无关,道格多年来一直维持着CYC和Cycorp的运转,这一点令人印象深刻。但当我在 2015 年见到他时,他正兴致勃勃地向我讲述他围绕 CYC 所做的一笔在我看来 "好得不真实 "的交易。过了一会儿,他又奇怪地试图向我们推销 CYC 的技术,我想在那之后我们的团队就再也没有互动了。

不过,我个人还是继续与道格保持着联系。我给他寄去了我写的关于数学形式化的东西。他回复我,给我指出他在 AM 上做的事情。在Wolfram|Alpha十周年之际,道格给我发了一张漂亮的便条,并表示:"如果你想合作,比如,把维诺格拉德句子对敲出来,请告诉我。我不得不说,我很想知道什么是 "维诺格拉德句对"。这感觉像是人工智能时代过去很久的某种挑战(显然它与识别代词参照有关,当然这在现代英语使用中变得更加困难)。

今天写这篇文章时,我意识到自己在 2016 年时犯下的一个错误。多年来,我一直在思考我所称的 "符号话语语言"--一种可以代表 "日常话语 "的计算语言的扩展。在区块链和计算合约理念的刺激下,我终于在 2016 年写了一些关于这方面的文章,现在我才意识到,我忽略了给道格发送一个链接。这真是个遗憾,因为也许这篇文章最终会让我们把系统连接起来。

现在有了大语言模型LLM
道格是一个相信形式主义的人,尤其是逻辑学。在我的印象中,他一直认为神经网络等方法不可能真正 "解决人工智能问题"。但现在我们有了 LLM。那么,它们如何与 CYC 的理念相融合呢?

LLMs 的惊喜之一在于,尽管它们的设置中没有任何明确涉及逻辑的内容,但它们实际上似乎在使用逻辑。但是(正如我在其他地方所描述的那样),我很确定发生的事情是:

  • LLMs "发现 "了逻辑,就像亚里士多德所做的那样--通过观察人们陈述的大量例子,找出其中的规律。
  • 同样,LLM也 "发现 "了许多常识性知识和推理。

他们只是在遵循他们所见过的模式,但是--可能实际上组织成了我所说的 "语义语法",确定了 "语义运动规律"--这就足以经常取得一些相当令人印象深刻的类似于常识的结果。

我猜想,许多被输入 CYC 的语句现在都可以用 LLM 相当成功地生成。也许有一天,会有足够好的 "LLM 科学",能够确定 LLM 在常识领域所能做的事情背后的机制--也许这些机制看起来甚至有点像 CYC 中的机制,以及它是如何使用逻辑的。但从某种意义上说,LLM 在常识领域的成功有力地表明,你根本不需要深层次的 "结构化逻辑"。当然,与直接的符号方法相比,LLM 的效率可能要低得多,可靠性也可能要低得多。

顺便说一句,计算语言和计算的情况截然不同:

  • LLM 自始至终都是基于语言和通过语言找到的模式。
  • 而计算--它可以通过结构化的计算语言来获取--则截然不同。

它所涉及的过程在某种意义上是完全非人类的,涉及对一般形式规则更深入的遵循,以及结构化程度更高的数据种类等。

LLM 也许能像人类一样进行基本的逻辑推理。但在人类必须系统地使用形式工具进行严肃计算的事情上,它却毫无胜算。

就 LLM 代表 "统计人工智能 "而言,CYC 代表了某种程度的 "符号人工智能"。但计算语言和计算更进一步,到了LLMs无法也不应该追随的地方,而应该只把它们称作工具。

我收到道格的最后一封邮件是在 2023 年 1 月 10 日--他告诉我,他认为我正在讨论将我们的技术与 ChatGPT 连接起来,这非常好。不过他说,他发现 "这些模型训练的是说服力而不是正确性,这一点越来越令人担忧",然后他举了一个 ChatGPT 做错数学单词题的例子。

遗憾的是,我们再也没有聊过天。我们现在有一个团队正在积极研究符号话语语言,就在上周,我向他们提到了 CYC,并感叹自己一直没能尝试一下。

周五,我听说道格去世了。他是一位杰出的人工智能先驱,在整个职业生涯中都在坚定不移地追求自己的理想,却过早地离开了人世。

黑客网友
1、CYC 将成为一个终极专家系统,通过一个庞大的知识/规则集(最初估计是一个耗时 1000 人年的项目)来捕捉人类对世界的常识性知识,了解日常物体的行为方式。该系统希望通过其规模和完整性,能够以与人类相同的方式对世界进行推理,因为人类通过体现和互动获得了相同的知识。

CYC 项目持续了数十年,拥有一支庞大的团队,根据自己复杂的本体对规则进行编码,但最终还是没能实现目标。现在回想起来,似乎这个想法从一开始就注定要失败,但尽管如此,它仍然是一个需要尝试的重要项目。任何专家系统在对固定知识集进行推理时都会遇到一个问题,那就是它总是很 "脆"--在它所知道的范围内的情况下,它可能会表现出色,但当被要求对需要常识性知识和相关行为推断的事情进行推理时,它就会失败;CYC 希望通过扩大规模来避免这种情况,因为它的规模非常大,不会出现重要的知识空白。

2、Cyc 在以下几个方面领先于时代:

  • 1. 认识到人工智能是一个规模问题。
  • 2. 理解常识是要解决的核心问题。

虽然你说 Cyc 不能进行常识推理,但这其实不是他们喜欢宣传的一个主要功能吗?IIRC 的很多 Cyc 演示都是各种形式的常识推理。

我曾经玩过 OpenCyc,当时 OpenCyc 还很盛行。这很有趣,因为他们必须解决许多较小的理论系统从未解决过的问题。它们的核心特征之一被称为微观理论。知识库的想法是它是内部一致的,因此可以对其执行形式逻辑,但现实世界的知识并非如此。微观理论可以让你对关于世界的矛盾知识进行编码,这样它们就可以叠加在更一致的基础之上。

Cyc 方法的一个非常主要和基本的问题是核心算法不能很好地扩展到大尺寸。微观理论也是限制计算复杂性的一种方法。LLM之所以能发挥作用,部分原因是人们找到了利用 GPU 进行扩展的方法。Cyc 的谓词逻辑算法没有等效的算法。

3、Norvig 结论是,机器学习/人工智能/统计/科学分析有几种概念方法:

  • 一种是“自上而下”:向系统传授一些与已知一般概念相对应的高级原理,
  • 另一种是“自下而上”:从数据本身确定结构并使用它来生成一般概念。

他观察到,虽然前者对许多人有吸引力,但后者却不断地以更少的努力取得更多更好的成果。

基于经验的概率模型是解决重要工程和科学问题的更便宜、更快捷的方法,即使它们在智力上可能不太令人满意。廉价的近似值通常比难以找到的解析解要好得多。

4、我在 Cycorp 作为承包商工作了几个月。毫无疑问,莱纳特是我一生中遇到的最聪明的人。聪明程度有些可怕……他的聪明程度简直令人恐惧。
我很难过看到这么多人称他的工作失败。他的工作绝非失败。我认为这种看法归结于这样一个事实:公司做了很多不公开的事情,而他做了很多宣传和自我推销。

5、很多年前,当我还是一名博士生,在 2006-10 年间从事计算语义学领域的研究时,我曾对它进行过简单的研究。不过那时已经过了 CYC 的鼎盛时期。
第一个绊脚石是 CYC 并不公开。他们的研究小组非常封闭,他们非常保护自己的知识产权,希望通过许可交易、行业或学术合作来为自己的工作买单。

不过,他们有一个名为 "OpenCYC "的子集,他们更公开地发布了这个子集,希望引起更多关注。我试着用了一下,但很快就对这个软件感到失望。它是用一种名为 "CycL "的 CYC 专用语言表示的,推理引擎也是 CYC 专用的,而且是基于一种专门为 CYC 发明的奇怪描述逻辑。因此,你不能随便连接一个一阶定理证明器或类似的东西。而 "描述逻辑 "是对他们的软件所做工作的一个礼貌用语。他们为了激励自己的工作而设计的那种开放式推理,往往依赖于知识库中缺失的常识性知识。我很快就对这个软件感到失望,最终放弃了。

当时正值人工智能寒冬,做人工智能的人甚至不敢用 "人工智能 "这个词来描述他们正在做的事情。人们都说自己在做 "图像模式处理 "或 "音频信号处理 "或 "自然语言处理 "或 "自动定理证明 "之类的工作。任何提到 "人工智能 "的词都会让人觉得你很幼稚。但莱纳特的小组把他们的东西称为 "人工智能",并坚持自己的观点,即使在当时这似乎有点政治无能。

据我道听途说,CYC 也在做一些事情,比如接受国防部的资助,突然之间,本体论中的大部分事实都是关于军用直升机的。但他们仍在不停地鼓吹他们是如何编纂 "常识 "知识的,而且,只要他们能获得足够多的 "常识 "知识,他们就能在某个时候突破阻力,让人工智能自己编程,即通过阅读和理解纯文本,利用现有事实推导出更多事实。


6、符号知识表示和推理是一个非常有趣的领域。我认为 wikidata.org 和 CYC 等项目的设计选择严重限制了它的应用。
例如,当谈论“iPhone 是最畅销的手机”等事实时,上下文感知就变得更加重要。现在可能是这样,但在 2006 年手机发布之前,情况肯定不是这样。

上下文也有多种形式,这对于进行有用的推理是必要的。例如,考虑这样一个问题:"如果有人用炸弹炸掉珠穆朗玛峰" "世界上最高的山会是哪座?"这个问题不是关于此时此地的真实世界,而是关于一个并不存在的假设世界。

再远一点,你可能想问 "谁是企业号的最佳舰长 "这样的问题。这可能是关于美国海军 CVN-64 号名为 "企业 "号的实际舰艇、计划中的 CVN-80 号舰艇,或者是参加过二战的 CV-6 号 "企业 "号舰艇。又或者,这个问题的相关背景是 "星际迷航",而我们是在几个虚构世界中的一个,这将导致完全不同的事实。

我认为,要处理这项技术的实际应用,还必须具备一些处理不确定性的能力(如概率图形模型)。我们可能既要处理 "客观事实"(我们还是不要讨论科学哲学了),又要处理我们可能不那么确定的其他事实。

在我看来,成功的符号推理系统将会非常非常庞大和复杂。我甚至不知道这些知识应该如何表示,更不用说试图用数字形式捕捉这些知识的问题了。