2.1

关于浅显中的深奥


人工智能研究在1956~1976的前20年里集中研究logic language(指人工智能语言)和procedures(指知识运用的规则),而忽视了作为人工智能基础的知识本身。在开始重视知识以后又经历了大约10年时间,即1986年,McCarthy先生才对这一浅显方面的错误作了谋略高度的反思,对知识表示的关键作用进行了全面而深刻的论述。这是多么有趣的现象,人工智能专家们竟然不懂得一般智能、专业智能和特定专业智能的区别特征,就象当年共产国际派来的军事专家不懂得战争、革命战争和中国革命战争的区别特征一样。

在语言学和自然语言处理领域,浅显方面的错误就更多了,更加不幸的是,这两个专业领域还没有一位权威人士像McCarthy先生那样,进行过战略高度的反思。当然,国内外都曾有人作过这样的努力,如美国的Schank和Lenat先生,国内的张志公先生和申小龙先生,但Schank先生半途而废,Lenat先生误入歧途,张志公先生壮志未筹(见林杏光:“张志公先生90年代的汉语语法观”),而申小龙先生则羁绊于中国式的古典思考。

《专著》p100曾对Lenat先生的Cyc计划表示敬意,同时指出,“主建者犯了70年代Schank先生同样的错误,在沼泽地上建立高楼大厦”。下面全文引录Lenat先生在1990年的两段关键性论述,以便对他的“沼泽地”和“高楼大厦”作具体说明。两段论述的原标题分别译为:“软件脆弱性的根源”和“脆弱性的根治”,为了忠实保留Lenat先生论述的原意,仅引录原文而不翻译,但为了读者的便利,对某些英语多义词或罕用词给出了中文译词。

The Source of Software Brittleness

There is indeed a strong local maximum of cost-effectiveness: by investing one or two person-years of effort, one can end up with a powerful expert system. The trouble is that this is just a local maximum. Knowing an infinitesimal fraction as much as the human expert, the program has only the veneer of intelligence. Let us illustrate what this means.
Programs often use names for concepts such as predicates, variables, etc., that are meaningful to humans examining the code; however, only a shadow (少量) of that rich meaning is accessible to the program itself. For example, there might be some rules that conclude assertions of the form
                    laysEggsInWater(x)
and other rules triggered off that predicate, but that only a fragment of what a human can read into "laysEggsInWater." Suppose an expert system has the following four rules:
IF frog(x), THEN amphibian(x) (两栖动物)
IF amphibian(x) THEN laysEggsInWater(x)
IF laysEggsInWater(x) THEN livesNearLotsOf(x,Water)
IF livesNearLotsOf(x,Water) THEN ┐livesInDesert(x)
                                (符号 ┐表示否定)
Given the assertion frog(Freda), those rules could be used to conclude that various facts are true about Freda: amphibian(Freda),laysEggsInWater(Freda),┐lives-InDesert(Freda), etc. Yet the program would not "know" how to anwer questions like: Does Freda lay eggs? Is Freda sometimes in water?
Humans can draw not only those direct conclusions from laysEggsInWater(Freda), but can also answer slightly more complex queries which require a modicum (少量) of "outside" knowledge: Does Freda live on the sun? Was Freda born live or from an egg? Is Freda a person? Is Freda larger or smaller than a bacterium? Is Freda larger or smaller than the Pacific Ocean? Or even: How is Freda's egg-laying like Poe's story-writing?
Thus much of the "I" in these "AI" programs is in the eye-and "I"-of the beholder.(观看者) . Carefully selecting just the fragments of relevant knowledge leads to adequate but brittle performance: when confronted by some unanticipated situation, the program is likely to reach the wrong conclusion. It is too easy to find examples of such brittle behavior: a skin disease diagnosis system is told about rusty (生锈的) old car, and concludes it has meassles (麻疹); a car loan authorization system approves a loan from someone whose "years at the same job" exceeds the applicant's age; a dosage (配药) system does not complain when someone accidentally types a patient's age and weight in reverse order (even though this 49-pound,102-year-old patient was taken to hospital by his mother); and so on.
This, then, is the bottleneck of which we spoke earlier: brittle response to unexpected situations. It is a characterization of software today: it is the quality that separate it from human cognition. The programs' limitations are both masked and exacerbated (激化) by the misleading sophistication (精致包装) of their templates for English output, by the blind confidence their users place in them, and by their being labelled with pretentious generalization of their functionality.

这里,Lenat先生非常生动地揭示了所谓智能专家系统虚有其表的本质:

The program has only the veneer of intelligence
The "I" in these "AI" programs is in the eye of the beholder
Brittle response to unexpected situations

同时,Lenat先生也对科研工作的市场炒作行为-misleading sophistication和pretentious generalization of their functionality表示谴责,这都是值得赞赏的。但是,从Lenat先生就命题frog(Freda) 提出的一系列富有想象力的问题,可以清楚地看到,Lenat先生采纳了图灵先生的计算机智能标准,而没有深入思考:这个标准是否适用于人工智能研究的谋略?要求计算机智能系统回答那些有趣的问题,是不是当务之急?

在讨论这个根本问题之前,让我们先阅读Lenat先生的第二段论述。

Overcoming Brittleness

People are not brittle.Why? Because they have many possible ways to resolve a novel situation when it arises: asking someone for advice (this may include reading some written material), refering to increasingly general knowledge, comparing to a similar but unrelated situation. But each one of these paths to flexibility is closed to today's programs: they do not understand natural language very well, they do not have general knowledge from which to draw conclusion, and they do not have far-flung (广泛) knowledge to use for comparisons.

A serious attempt at knowledge would entail building a vast knowledge base, one that is 104 to 105 larger than today's typical expert system, which would contain general facts and heuristics and contain a wide sample of specific facts and heuristics for analogizing as well. Such a KB would have to span human consensus reality knowledge: the facts and concepts that you and I know and which we each assume the other knows. Moreover, this would include beliefs, knowledge of others' (often grouped by culture, age group, or historical era) limited awareness of what we know, various ways of representing things, knowledge of which approximations are resonable in various contexts, and so on.


这里,Lenat先生从“People are not brittle. Why?”这个问题入手寻求根治软件智能脆弱性的方案,他认为:人工智能系统之所以脆弱是因为它们“不能很好理解自然语言、不具备基本常识、不具有广泛的比较知识”。因此加强表达这些知识的知识库建设是根治脆弱性的关键,他以一个专家的专业判断眼光,把该知识库的具体规模设定为典型领域专家系统的一万倍到十万倍,并要求Such a KB would have to span human consensus reality knowledge,即你、我、他都知道的事实和概念,而且,该知识库还要包括信念、异国他乡的知识、各种信息交流方式的知识、不同语境中近似表示的合理性知识以及其他。
Lenat先生作为一位机器学习领域的专家,对自然语言理解提出了如此精到的见解,说明他对语言学是有一定研究的,比那些局限于语法的语言专家更理解语言的真谛。Lenat先生按照这一思路,历时10年建立了一个推理规则多达160万条的Cyc知识库。这个知识库曾被宣称将成为个人计算机的基本配置之一,但是,到10年届满时,这个梦想完全落空,Cyc被一些人视为失败的典型。这是一个值得深思的悲剧。
产生这一悲剧的根源是Lenat先生对图灵标准深信不疑,缺乏革命阶段论的知性认识,如同前文提到的中国革命过程中的“左”倾机会主义者那样,盲目信奉某些“教条”,犯了盲动的也叫“左”派幼稚病的路线错误。林杏光教授在为《专著》写的“编者的话”和《书评》(《科技导报》2/1999)中尖锐地指出:
人工智能界多年来对“自然语言的计算机理解”中的“理解”这一含义贪大求全,妄图一步登天,企求使计算机一下就像人脑一样去理解自然语言。…黄曾阳先生总结了这方面的经验教训,提出“消解模糊”作为“自然语言理解”初级阶段的标准,并认为口语有五重模糊:发音模糊、音词转换模糊、词的多义模糊、语义块构成的分合模糊、指代冗缺模糊,书面语只有后三重模糊。这五重或三重模糊的消解可进一步概括为“多义选一”的能力。“多义选一”是世界计算语言学的一个重大难题,也是人脑和计算机理解自然语言的首要任务。我认为HNC理论的这个定位至关重要。
为什么林教授强调“HNC理论这个定位至关重要”?因为它涉及自然语言理解的战略或路线问题。如果定位于图灵标准,那首先就要面对浩瀚无垠的所谓世界知识,建设一个规模庞大的常识知识库就成了当务之急;如果定位于“多义选一”标准,则直接服务于这一目标的知识库建设才是当务之急,一般性世界知识就变成第二位的知识需要了。
“多义选一”标准的提法,即五重或三重模糊的消解可进一步概括为“多义选一”的能力的提法,是高度概括性的。五重或三重模糊消解的具体内容就是本文所说的20项难点处理,包括全局性难点13项,局部性难点7项,全局性难点中又区分句内全局难点和句间全局难点。
从第一章对全局性难点的分析中,我们看到,每一项全局性难点的处理,都需要一些关键性知识,拥有并善于运用这些对症下药的知识,相应的难点就有望获得解决。这些知识综合起来有下列17项:
    1基本句类知识
    2混合句类的继承和增生知识
    3词语的多句类代码知识(1.1)
    4特征语义块的构成知识(1.1)
    5全局E(Eg)与局部E(El)的辨认知识(1.2)
    6必然块扩与可能块扩知识(1.10)
    7句蜕类型知识(1.9)
    8广义对象语义块的构成知识(1.7)
    9Ek~JKm或JKm~JKn的要素之间的概念关联知识
    10句类检验的必要性和充分性知识
    11基本句类和混合句类的自足性知识
    12复合句类的公用语义块知识
    13句类转换知识(1.5)
    14主辅语义块变换知识(1.6)
    15主语义块分离知识(1.8)
    16语义块的默认省略和语句格式的默认违例知识(1.11)
    17信息激活点知识(1.2,1.12)

20项难点和17项知识的提出,代表着对于“自然语言理解”的一种具体的理解处理标准。在自然语言理解处理初期,以为单靠语法知识就能达到计算机的语句理解;这个认识持续了很长一段时间,后来才认识到单靠语法知识是不够的,还要依靠语义知识,这前进了一步,然而仅仅是一小步;再后来,进一步认识到仅仅依靠语言知识仍然是不够的,还要依靠更广阔的世界知识,Lenat先生的上述论断是这一认识的代表作;90年代以后,机器翻译学界一些头脑比较清醒的学者反思该领域第二次高潮与失望(80年代)的经验教训,提出了语用知识更为关键的认识。从而大体完成了对理解处理的“知其然”的认识历程。
从谋略的角度来看,所有“知其然”的认识,都只是事物的浅显或表层方面,而事物的深奥或本质方面在于“知其所以然”,因此,人们对这个问题的认识还没有完结,还要继续向着“知其所以然”的方向前进。HNC是这一探索的勤奋耕耘者之一,并认为:在这一探索中准确把握有所必为和有所不为的步骤和分寸是至关紧要的,20项难点和17项知识是这一步骤和分寸的具体体现。
HNC理论坚定支持这样的观点-自然语言理解和生成的本质在于语言空间和概念空间的相互映射,“理解的本质是概念联想脉络激活、扩展、浓缩、转换与存储的全过程运作”(Paper31) 。20项难点和17项知识是以57个基本句类表示式和3192个混合句类表示式为基础的,是从这个基础演绎和综合出来的,它架设了语言空间和概念空间相互映射的主要桥梁,句类分析将通过这些知识的运用取得20项难点的基本突破,从而达到HNC所定义的对语句的初步理解,并且是具有自知之明的理解。像本文1.4节所指出的那样,这些知识的主要或精华部分在传统语法理论的视野里是见不到的,在各种句法语义理论的视野里也是见不到的,目前的各种统计算法是不能获得这些关键知识的。但同时也应该指出,HNC理论虽然揭示了这些知识的存在,但尚未充分证明这些知识对于理解处理的关键性作用。这项证明需要从理论和软件两方面来进行,不能单纯着眼于软件,1999年1月19日我对理论组的讲话系统阐述过这一观点。
20项难点的提法本身就意味着对许多难点暂时有所不为,目前主要是两个方面,一是与基本理解无关或影响较小的常识,Lenat先生就命题frog(Freda) 所提出的一序列有趣的问题就是这类常识的典型代表。二是对语句基本理解不造成严重影响的语言隐知识,包括metaphor和metonymy,也包括机器翻译学界特别重视的各语种的习惯用语(包括成语、谚语、歇后语)及习惯表达方式,前者如毛泽东先生爱说的成语“和尚打伞,无法无天”,后者如英语词组go to see。隐喻的显式意义在语言感知过程中是可以置之不理的,这是关键所在。“和尚打伞”是一种语言游戏,当你(计算机)遇到此类难以理解的词组时,要首先懂得把它当做语言游戏来处理,这才是高明的策略思想,反应灵活的口语翻译者实际上就是这么干的。至于go to see之类的高层概念词组的难点,实质上就是1号难点,只能通过扩展句类检验的方式得到部分解决。
17项知识只是概念联想脉络知识的一部分,然而是承上启下的关键性部分。概念联想脉络这个提法本身仅有字面意义,重要的是联想脉络的具体符号表示,没有这个具体表示,就等于是一句空话。
HNC理论把概念联想脉络的具体符号表示先分为“物质基础”和“上层建筑”两个方面。基元、基本和语言逻辑概念的超级语义网络,基本逻辑、综合、语法和基本物概念的语义网络,构成概念联想脉络的“物质”基础,这个基础是静态的,其基本构成是可以穷尽的;上述语义网络的概念节点之间的各种组合和关联方式(分别见Paper1和Paper6),形成概念联想脉络的上层建筑,这个建筑是动态的,其基本构成具有不可穷尽和可穷尽的两重性。马克思主义对社会的构成与发展以及各种社会现象的分析,以物质基础和上层建筑的关系为主线,这是一个十分杰出的思想,语言学能否从这里吸取一点思路?我认为,能!如果把自然语言的句子以下的东西看作“物质”基础,把句子以上的东西看作上层建筑,而句子本身是两者的交叉点,将是一个有益的观点,因为它有助于一系列概念基元思想的诞生。上述语义网络的每一个节点是一个概念基元,抽象语义网络的五元组特性蕴涵着语义块构成的概念基元,主体基元网络的概念节点蕴涵着基本句类的概念基元,这些概念基元是自然语言的“物质”基础,也是概念联想脉络的“物质”基础,概念联想脉络本身又是这一“物质”基础的上层建筑。
上述论点肯定会引起无休止的争论,因此,过去我一直隐而不谈,但是在我心里,这一观点是坚定的。认知学家会争辩说,概念联想脉络的物质基础是神经网络,有些辩证唯物主义者会指责说,这是连马克思主义基本常识都不懂的妄人或别有用心者的胡说八道,语言学家会讥笑说,这种奇谈怪论我们听得多了。面对着这些可怕的议论,为什么我要在这里把这个观点说出来呢?因为我越来越感到,“物质”基础与上层建筑的关系是一切探索从浅显走向深奥的关键,是一切谋略的基本立足点,学术探索征途中的许多悲剧都与它密切相关。
上面我们介绍了Lenat先生在知识处理对策方面的悲剧,类似的悲剧实在是不胜枚举。汉语语法研究的各种“本位”说的争论(陆俭明、郭锐1998);语言研究竟有所谓理性主义和经验主义的划分,实际上也确实存在这样的不同流派;90年代的机器翻译在对LBMT(Linguistics-based MT) 深感失望的同时,竟然出现了寄厚望于EBMT(Example-based MT)、SBMT(Statistics-based MT) 和KBMT(Knowledge-basedMT) 的天真(Jun'ichi Tsujii 1995);关于句子分析必须先句法、后语义的教条;关于分词是汉语理解处理瓶颈的神话;“把”字句的论著已不少于500项之多,而依然未得要领的事实,语言学研究中的所有这些奇特现象都具有浓厚的悲剧色彩,若问根源何在?显然,对“物质”基础与上层建筑相互关系的认识模糊不清是重要原因之一。
HNC理论研究计划中的《HNC概念符号体系手册》和《HNC句类知识手册》是概念联想脉络的“物质”基础的两大支柱,是两个有待继续深入开发的巨大知识宝藏,是从浅显走向深奥、从知识的漫谈沼泽走向知识的精练平台的标志,在这个平台上才能建立起自然语言理解的符合百年大计要求的高楼大厦。
探求真理的根本障碍在于人们往往满足于浅显性和习惯性认识,不要以为专业人员在这方面一定比常人高明。市场时代的舆论炒作、包括科学界内部的炒作极不利于科学探索精神的弘扬,我们应对此保持警惕,经常检讨自己,是否在浅显方面踌躇满志而不知自拔!