不小心撞上了科学网上李维老师的博客,读了他个人履历和几篇文章,只能用“敬佩”二字对李维老师表示敬意。作为年后开工的第一篇博文,本无转载计划的,但是这里还是选用李维老师的随笔《机器学习和自然语言处理》,这是一位计算语言学学者和自然语言处理实践者多年来的经验之谈,没有相当的积累,纸上是谈不来的。不过,更推荐有兴趣的读者读读《朝华午拾:在美国写基金申请的酸甜苦辣》,虽然很长,我还是一气呵成读完的,除了佩服李维老师的行文能力外,也能看到成功背后的付出和汗水是多么的巨大。

        《立委随笔:机器学习和自然语言处理》
              作者:李维

有脚客介绍人工智能(AI)现状 ( http://rl.rockiestech.com/node/636 ),认为由于机器学习(ML)技术的长足进步,人工智能正进入繁荣期,并且开始成功用于自然语言处理(NLP). 除了调子过分乐观了一些,这是个不错的介绍。下面的随笔是根据我自己的经验和体会而来。

AI, ML and NLP

NLP 中过分强调 AI 曾经是斜途,其实现在我认为也还是斜途, 我很久以前就有过这个看法,现在觉得并没过时:

机器翻译的另一极是建立在充分理解基础上, 毋须转换的自动翻译, 这是从实质上对人的翻译过程的模拟。这时候, 源语分析才是真正的自然语言理解, 机器翻译才真正属于人工智能。然而, 这里遇到两个难题: 一是知识处理问题; 二是所谓元语言问题。

考察人的翻译活动, 可以发现, 人是靠丰富的知识在理解的基础上从事翻译的。这些知识既包括语言知识, 也包括世界知识(常识、专业知识等)。如何组织这些包罗万象的百科全书一样的知识, 以便适应机器处理和运用的需要, 是人工智能所面临的根本性课题。
……

总之, 虽然机器翻译的最终出路在于人工智能的理论和技术的突破, 但在条件不成熟的时候过份强调机器翻译的人工智能性质, 一味追求基于知识和理解的自动翻译,对于应用型机器翻译系统的研制, 往往没有益处。
摘自【立委科普:机器翻译】: http://www.starlakeporch.net/bbs/read.php?45,18361

AI 里面调子最高的一派是 Doug Lenat,他的 cyc 项目进行了多年,获得了政府和许多 high profile sponsors 的多年资助,一直无法实用,尽管他自己10年前就宣扬已经接近应用前夜了。对于 Doug Lenat,我打心底钦佩,这种基于常识推理的 AI 需要苦功夫,是对人的智能(一个侧面)的逼真模拟。

多数学者对此不以为然,对这种 “纯粹AI” 不看好,大家大都转向以统计为基础的机器学习(ML)。基本上是把人的智能看成黑箱,不再试图从本质上模拟人脑的过程,包括逻辑推理,而是把每一个具体的智能活动定义为一个任务,一个从输入转换成所求的输出的任务,而这是可以客观度量的。只要机器能够训练成尽可能逼近所需的输出,人的智能就局部实现了。

ML 和 NLP

如今,NLP(包括机器翻译MT)也基本上已经被搞机器学习的人统治了,传统的规则方法只能打边鼓。他们也确实弄出一些名堂来,尤其是语音处理,分类(classification),和知识习得(knowledge acquisition) 方面。

目前的情况是,有指导的学习(supervised learning) 比较成熟,但遭遇知识瓶颈,就是需要大数据量的 labeled data 的问题。如果问题单纯,features 选取容易,又有海量数据,学习的结果真地可以很接近人工水平。我们曾经做过一项研究(碰巧的是,IBM 也大体同时做了这项研究,不如我们深入,但大同小异,结果也类似),找到了一个很好的应用领域做大小写恢复工作(Case Restoration),效果奇好。过去很多档案文字的电子版本是全大写的,网络上现在还有很多文件也是不分大小写的(譬如很多语音识别出来的材料,标题,还有论坛和电子邮件的非正式文字,等等),这就给自然语言处理和信息抽取造成困难,因为多数语言处理系统 assume 的 input 是正常大小写夹杂的文字,一旦输入文件没有大小写的区别,一切就乱套了。连最基础的词类区分(POS: Part-of-Speech tagging)和专名识别(NE: named entity tagging)都寸步难行(因为最重要的一个识别专名边界的clue就是大写)。为了解决这个问题,以前的研究者就设计两套系统,比如BBN就把大小写的features统统弃置重新训练一套NE系统来对付没有大小写的input, 除了 overhead, 系统性能也下降很多。我们想,如果我们先把大小写恢复,然后再做 NLP 不就成了。这个恢复大小写的任务相对比较单纯,训练文本几乎是无限的,因为网上文字大多是区分大小写的。我们利用这些现成的 "labeled" data, 用最简单的HMM算法,学出了一个高效能的系统,解决了这个问题,结果超出预料地好。(Niu, C., W. Li, J. Ding, and R. Rohini. 2004. Orthographic Case Restoration Using Supervised Learning Without Manual Annotation. International Journal of Artificial Intelligence Tools, Vol. 13, No. 1, 2004.)

不过,这样讨巧的事并不多 (一个类似可以讨巧的是某些classification的任务:比如想训练一个给评语分类的系统,就可以上网找到很多客户回馈的记录,这些记录除了文字外,常常还有星号标识,以1个星号表示很差,5星表示很好)。多数任务会遇到 lebeling data 的瓶颈。统计界的共识之一就是,data, data and data. 很多时候,算法的优劣是其次的,主要还是要足够多的 data 和合适的 feature design. 数据量大了,学习的效果自然就好了。所以,labeled data 是 supervised learning 的真正知识瓶颈。我就见过这样的系统,本来是指望随时重新训练以适应新情况的,结果 data 跟不上,成了一个只训练一次的死系统,任何后续的改进都不是经过增加数据重新训练,而是在系统外部打各种补丁。机器学习的优势就失去了。

无须指导的学习(Unsupervised learning) 因此引起学者的兴趣,成为热点,因为所需的训练材料无须标注。在网络世界,有的是 raw data. 对某个对象进行 clustering 就可以用 unsupervised leaning, 出了很多有意思的结果。Clustering 有别于 classification, 前者没有预定一个目标,而是根据features,只要长得象的就归在一起,后者是有预定的 tag set 作为分类的目标。只要设计者心中有个大致的目标,features 选取得当,可以控制 clustering 的结果的粗细,然后去现实世界或使用者中印证clustering的合理性和含义。反正是 unsupervised learning, 不妨多来几次,选取最好的结果作为方向,这样就可以把 clustering 转化成具有广泛应用的 classification. (在人类智能活动中,分类是最常用的技能,也是应用最广泛,相对单纯,比较易于机器学习和模拟成功的任务。大千世界,林林总总,为了把握它,人类第一个要做的就是分类。分类以后,才好缩小范围,集中到某个子领域,钻进去仔细分析。)

正如自如所述,目前很多研究者对所谓 weakly supervised learning 情有独衷,觉得这是一个具有突破性的研究方向。传统的 supervised learning 有知识瓶颈而为人诟病,完全没有指导的学习效率不高,因此尝试利用有限 labeled data 作为种子(seeds), 怎样引导学习程序一步一步向指定方向去,这是一个充满魅力的路子。这方面的成果令人鼓舞,但总体还在探索阶段,只有少部分课题已经接近临床实用,譬如分类和词典习得(lexicon acqusition).

机器学习的缺点和局限等有时间再接着谈。先说一点,任务一复杂,ML 就麻烦。遇到复杂的难以分解的任务,基本是没戏,譬如 自然语言的深度结构分析(deep parsing)。而任务相对单纯的浅层分析(shallow parsing),ML 的效果就很好,可以媲美人工系统。

注:转载请注明出处“我爱自然语言处理”:www.52nlp.cn

本文链接地址:https://www.52nlp.cn/立委随笔-机器学习和自然语言处理

作者 52nlp

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注