《镜子大全》《朝华午拾》分享 http://blog.sciencenet.cn/u/liwei999 曾任红小兵,插队修地球,1991年去国离乡,不知行止。

博文

【立委科普:自然语言理解当然是文法为主,常识为辅】

已有 6181 次阅读 2013-10-20 09:50 |个人分类:立委科普|系统分类:科普集锦|关键词:常识,自然语言处理,NLP,人工智能| 人工智能, NLP, 常识, 自然语言处理

It is fairly obvious but may require being reminded from time to time that common sense reasoning is to a large extent not necessary (nor feasible either at this point) for Natural Language Understanding (NLU). Parsing is the core in NLU and an enabling technology for a wide variety of NLP tasks and apps. A robust real life parser that scales up to big data with decent quality is like a nuclear weapon in language related use scenarios.


思考这个问题,是自从30年前进入这个行当就开始至今。结论早已清晰无误:对于自然语言处理及其应用,常识在可见的将来不可能单独取得成功,最多是起零星的辅助作用。建立常识及其推导系统,有理论意义,没有多少实用价值。管用的还是语言学,具体地说,就是自动句法语义分析(parsing,更准确地说是,deep parsing)。现在重提这个话题,是因为有人工智能学者提出针锋相对的观点:自然语言理解主要应该靠常识,而不是语法分析。这个观点很迷惑人,但我认为它在实践层面是误导性的,有必要予以批评。

撇开不用系统的文法和常识,基本上只用关键词(关键词所蕴含的语义和特征当然被利用)的机器学习不说,在规则系统的阵营里,有两大类系统:一类是以语法分析为基础的语言学系统,一类是以常识为基础的人工智能系统。在实用系统中,前一类是与机器学习分庭抗礼的主力(虽然在学界实验室系统中节节败退,在业界实用系统中仍然可以说分庭抗礼),后一类系统几乎绝迹,只剩下孤家寡人的 cyc 还在坚持着,但它从来也没有真正在真实世界的应用中大规模成功过。

不错,单看人类理解语言的机制,也许可以说,人在理解语言的过程中,不仅仅是下意识调动了语法知识,往往也同时调用了常识(或领域知识),所以一切显得那么轻而易举。如果单单施行语法分析,有些歧义就难以区分。比如,我鸡吃了鸡我吃了,语法分析本身搞不定谁吃了谁(鸡和我,谁是施事,谁是受事)。这种情况下,可以说,是常识(人可以吃鸡,鸡很难吃人)帮助了这种歧义结构的语义区分,达成对语句的正确理解。

常识至上论者的迷惑性在于,上述的例证似乎支持了他们的主张:既然常识是人类语言理解所自然调动的歧义区分手段,那么常识当然也应该成为机器对自然语言处理的重心。机器模拟人的语言理解过程,就要调动人脑所调用的一切手段,这样才是真正人工智能意义上的自然语言理解。

但是上述观点忽视了两个重要的方面:一是常识与语法知识在解决问题上交叉度的考量,二是二者天壤之别的可操作性。下面分别讨论。

先看交叉度,图示如下。


在自然语言处理的空间里,多年的实践使我们可以做一个宏观估计,大体说来,文法可以搞定大约80%的自然语言现象和问题,表现在图中就是绿色和棕色的区域。常识呢,因为常识系统很难建成,其应用尝试就更加艰难(这一点后面谈可操作性还要重提),我们其实不知道单单用常识、不用文法到底能解决多少语言问题。我们暂先给一个乐观的估计,假设它也可以解决约80%的问题,在图中用红色和棕色表示。绿色区域和红色区域所要说的是,语言中有少数现象文法可以搞定但常识搞不定,也有少数现象常识搞定但文法搞不定。后者有前面所给的“人吃”还是“鸡吃”的例证。至于前者,早在上世纪50年代末乔姆斯基语言学革命时就留下了下面的经典例示:

       Colorless green ideas sleep furiously.

乔姆斯基以此而主张把句法从(常识)语义中独立开来。当然,上述例示不过是乔姆斯基思维实验的结果,并非真实语料,但是,在真实语言数据中,违背常识而在语法上可以确定的语义也并不鲜见,尤其是在特殊场景或童话故事中。譬如,“(我做梦)鸡吃了我”,就是一个完全可能出现的真实语句。此句中,是中文语法中的主谓宾词序的规定决定了违背常识的语义的成立,这样的语言现象显然是常识无能为力的。最后,白色区域不言自明,语言中终归有一小部分现象文法和常识都搞不定,双关语和言外之义是其中一个突出的现象,解构它们要用到语法和常识以外的线索,包括交流双方的过往约定或默契。不过,在文法常识谁主谁副的论证中,这个区域可以不论。

上面图示要传达的关键信息是,即便文法和常识都能搞定很多语言问题,二者必然具有相当大的重复面或论据冗余度(棕色区域)。这个推测应该是有道理的,因为文法可以搞定多数现象是可以证实的,笔者也多次经历过。那么常识如果可以大部搞定同样的问题领域,就必然与其大面积相交。(如果常识只能搞定少部分现象,它与文法掌控区域的重合面冗余度倒是减少了,但所谓常识应该成为自然语言技术主力的论题就失去了讨论的价值,本文批判的立论靶子没了,可以就此结题告捷。)如此看来,如果不考虑可操作性,常识路线与文法路线比最多是半斤八两,不分伯仲,并不是用了常识,系统显得高级了,就更有用场,最多是有宣传(marketing)上的利益,毕竟可以说常识是理论上人工智能的核心。既然无实际的必要性,杀鸡焉用牛刀?当然,杀鸡用牛刀本来也没什么不可以,反正是达到目的把鸡杀了。关键是这个牛刀是不是真地在那儿,有多少可行性,handyhandyoverhead   cost 有多大,这就是下面要考察的可操作性的一面。

常识系统听上去很诱人、很人性,也很智能。但是常识千头万绪,涉及人类概念的方方面面,其内涵是普通人通过人生经验和知识传授而得到的概念之间的常态关系。中文维基的常识内容不完全举例如下:

这么多的常识要想结构化形式化为电脑推理所用,其难度可想而知。Cyc 是世界上最著名的常识系统,经过多年的努力,其海量的常识库据说达到了普通少年的常识水平。关键是,瓶颈不仅仅在常识的形式化表达,更在于常识的使用。使用上的挑战除了overhead 大,难以实用,还存在不好用的问题。模糊性是人类知识的特点,常识还具有常规性的局限,这就要求在使用常识的时候,只能进行模糊匹配,概率性推导,而不能走确定性路径。这些挑战使得常识系统的研究从来就没有走出过实验室。值得一提的历史尝试包括Wilks教授的优选语义学实践,他用常识语义模板设计过一款绕过文法的“纯语义”机器翻译系统,做过小规模的实验。但那终归是手工编制的实验室玩具系统。盖茨从IBM挖过来的NLP团队,在微软设计的 MindNet 知识库不是手工编制,而是通过百科全书和辞书的定义部分的自动分析而建立,其中就包含了很多常识。MindNet 概念间关系的种种图示,演示起来真地很漂亮。可他们多年来一直想在自然语言领域寻找其应用的突破口,最终也还是绣花枕头,派不上用场,可见常识应用之难。Cyc 经过多年的来自各方的资助和努力,似乎突破了玩具系统的框架,但在应用层面还是少有进展。这些常识系统在应用上的失败,说明常识系统是一条不现实的路线。从可操作性角度,常识系统无法与文法分析器比。

在自然语言理解螺旋式上升的道路上,一切以时间为函数,应该承认,现时的可操作性难题在未来也许不再成为问题。本文批评常识的要点也是以时间作为背景,常识在现时既无必要也无可能。站高一点看自然语言,词汇层、语法层和常识层形成一个从低级到高级的人类理解语言的层级体系。必须承认,把词汇层用到极致并取得炫目成果的是过去20年来机器学习界的关键词模型(keyword models)。这些统计模型没有语法分析,对语言结构完全盲目,单靠词汇层的线索在 n-gramn一般小于等于3)这样非常有限的上下文中,可以走得这么远,解决这么多自然语言问题。这不但令我们语言学家惊异,实际上也远远超出了机器学习开创者的最初设想。这说明,不仅语法层与常识层在自然语言问题上有很大的重合面,词汇层与语法层也有相当大的重合面。在一些自然语言任务上,关键词模型效果很好(相对应的说法是,keywords are often hard to beat 即便利用了语法分析)。不过,美国机器学习和语料库语言学的开拓者之一丘吉(Church)老教授最近指出,关键词的模型差不多走到了尽头,这些没有语法的经验主义近似方法已经快要采摘完自然语言树上所有的低枝果实(low-hanging fruits),到了呼唤理性主义更高层次方法的时候了。我的理解是,果实采摘完之后,是语法层方法大显身手的历史时期。自然语言处理的发展不大可能会跃过语法分析这样一个稳健的“社会主义”初级阶段,一举进入常识层的“共产主义”。鼓吹常识为主实质上就是自然语言界的共产风。

综上所述,规则系统中,文法为主的路子比起常识为主的路子要靠谱得多。无论规则系统还是机器学习,常识成为自然语言核心技术,既无必要,更无可能,后学谨记。作为科学家,你可以进军这一领域,但不要指望它在现实中开花结果。如果你要做工程,请绕开常识这个monster,你可以零星地收编一些常识,切忌陷入深不见底的常识(推理)系统的泥坑。

最后,有没有一种可能,科学界机器学习领域进展很牛很牛(譬如近年热翻了天的知识图谱和深度学习高歌猛进,不断取得突破),结果千丝万缕的常识被恰当学习出来,也被恰当地应用到自然语言理解当中?毕竟理论上看,千丝万缕是规则系统的滑铁卢,但却可以是统计系统的擅长。模糊知识、模糊匹配及应用对于概率型机器学习也是可以想像的事情。至于overhead太大,组合爆炸等顾虑,电脑硬件、算法以及云技术的进展一再证明,很多以前不敢想像的计算或近似计算最终可以成为现实。我不敢铁口说,这种愿景完全不可能,但是根据我对常识表达和运用复杂性的多年思考,我要说在可以预见的未来,大家不要指望这个奇迹发生。“可预见”的将来有多远?两代人吧。本来的估计其实还要远得多,考虑到两代人之后,我辈早已成灰,这个世界已然与我无关,anything happens, or anything does not happen, 不用老朽为几代人之后操心。我又不要做未卜先知,预言的准确与否,在大时间的尺度下了无意义,这一立论暂时就止于两代人的极限吧。两代人的长度足以使后学在进入人工智能专业之前清醒一点儿,了解常识之道的艰险及缺乏实用价值。理性主义这边连 Lenat 这样的常识大师都注定成为历史悲剧人物,不要以为机器学习了,常识的本性就变了,就一下子打开了大门。退100步说,这个奇迹发生了,so what?最多不过是在自然语言理解中比纯文法系统多做了5%-10%(上图的红色区域),而文法为主的系统暗渡陈仓,从后门引进零星的词汇化的常识,也可以逐渐搞定5%以上。谁主谁副,两条道路在实用上的取舍,难道还有疑问么?



【后记】

这篇“科普”本来是由人工智能学人 AIMan 对我博文的评论引起的,但仔细再读他的评论,可能是我误解他了(他似乎用的是虚拟语气,说真正的理解应该靠常识而不是语法,说的可能是人工智能的未来和远景,那样的话,其实并不错),很可能战的是子虚乌有的唐吉珂德风车,:=) 花费老夫大半天时间。尽管如此,对人工智能和自然语言感兴趣的后学,本篇仍然有一定价值,可资参考。


[2]AIMan  2013-10-18 09:01

做简单的NLP应用,如舆情之类,TFIDF+Ensemble已经很有效了。要真的做到人类级别的复杂语义的NLP,个人以为重点并不是语法分析,而是commonsense(MIT最近在做这方面的工作),这就必需大量引入Embodied,需要和机器人技术、虚拟现实结合,做模拟训练。AI里面有个流派做这个,不过实验的规模很小,做人类级别的commonsense,不是简单的大数据就可以实现的,数据并非重点,而是context。
大数据时代是人工智能的春天,机器学习的各类算法的第一次大规模一展拳脚的时候到了。


博主回复(2013-10-18 12:44)另外,说 common sense 比语法分析,对于语言任务的完成更为重要,是很大的误导。cyc 很多年来试图证明这一点,一直没有说服力,也拿不出像样的常识支持语言任务的成果出来。道理不难明白,常识的千丝万缕和模糊性使得它不好用,即使常识可以学出来或编制出来。语法分析则不同,它的句型结构有限,容易把握,可操作性强。你当然可以找到这样的案例,说明语法分析不足以达成理解或完成任务,需要常识才能最终搞定(中文里这样的例子更多一些)。但是,这样的案例实际上是少数。说这话是以一辈子的实验和思考做底,是负责任的。


博主回复(2013-10-18 10:57)你说的是 cyc,那是唯一坚持多年用手工+逻辑做common sense的,其心可鉴,但可预见的将来不被看好。舆情是简单的NLP应用,很难同意。其实那种粗线条舆情分类,很难实用,而且对于越来越普遍的短消息,质量大有问题。不管怎样机器学习,没有语法结构垫底,结构最终会成为瓶颈。不排除有些任务不需要结构也可以将就了,但复杂一点的任务离开语法分析是很难的。

from http://blog.sciencenet.cn/blog-362400-733863.html

围脖:一个人对抗一个世界,理性主义大师 Lenat 教授 

【置顶:立委科学网博客NLP博文一览(定期更新版)】



http://blog.sciencenet.cn/blog-362400-734340.html

上一篇:【立委科普:美梦成真的通俗版解说】
下一篇:事情的提法和分类

2 郑小康 闫钟峰

该博文允许注册用户评论 请点击登录 评论 (7 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备14006957 )

GMT+8, 2019-10-15 00:21

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部