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

博文

与老前辈谈 NLP 及其趋势

已有 4974 次阅读 2013-1-26 16:37 |个人分类:立委科普|系统分类:科研笔记|关键词:NLP,语言技术,语言处理,自然语言| NLP, 自然语言, 语言处理, 语言技术

【立委按】俗话说,铁打的营盘流水的兵。在我们 NLP(Natural Language Processing)这个营盘里,流水的兵过去了不知几拨。但也有像我这样赖在营盘就是不走的兵,任凭潮起潮落。比我更加坚韧的是我的导师一辈,他们早该退休,但还是抵制不了这个营盘的诱惑,仍然孜孜以求,让人钦佩不已。最近与前辈导师有交流,三句不离本行,似乎时光倒转 30 年,让人感慨几何。择要辑录如下,与同仁和后学分享。



》久未通信,但一直很惦记。

也一直说要给您拜年呢,眼看春节到了,学生先给您拜个早年。

》最近看到信息,有说在全球风靡统计和shallow的时候,你仍坚持deep parsing。赞你做的系统非常成功,表现特好

谬赞了。我坚持 deep parsing 也有无奈,主要为扬长避短。统计的路子和语言学的路子确实各有利弊,但是由于兼通二者的人不多,双方都有贬低对方的时候(更多的是处于主流做统计的人压住语言学家一头)。其实,眼光稍微看远点儿,这种状态是很不健康的。

》你的多语言系统如何?中文的还蒙神助吗?

中文系统进展很好。千头万绪,但是我是边建造边使用,立竿见影,做起来相对不那么枯燥,减少了 “
以有涯随无涯而殆” 的苦恼。产品雏形已成,内部使用,正式推出大概在两三个月后吧:主要不是中文系统本身的问题,而是社会媒体的 content sources 还没有搞定。我在科学网博客上有两个专栏【立委科普】和【社媒挖掘】,常常报告一些中文系统及其产品的最新进展:

【社媒挖掘】
http://blog.sciencenet.cn/home.php?mod=space&uid=362400&do=blog&classid=161685&view=me
【立委科普】:
http://blog.sciencenet.cn/home.php?mod=space&uid=362400&do=blog&classid=123261&view=me

》HowNet 用了么,好玩吗?

选择了
知网HowNet features 整合到词典里面去,正在“玩”呢。刚开始用,将会用得越来越多。这也好,系统编制开始,词典几乎是空的,没有多少 features,只有几十个粗线条和零散的为急用而标注的词典信息,这就迫使系统编制从粗线条轮廓开始。现在引进了 HowNet 的部分,使得我可以开始细化规则系统,慢慢建立一个层级体系,以图优化 parsing 的精度。这个过程还要持续相当一段时候。

名词的分类体系,比较容易理解和一致,形容词和动词则难一些。在引进 HowNet 之前,我对形容词只有自己的三五个分类,现在比以前丰富多了。不过,我注意到有些分类太细,比如 HueValue,词汇表中总共才有二三十个词标注了这个信息,我引进之后又逐渐把这样过细的分类排除了(用它的上位概念 AppearanceValue 代替这些过细的子类)。不是因为系统不能负担,而是因为词典信息过于细琐不利于系统的维护和语言学家的掌握(增加了过多的记忆负担)。在粗细之间怎样切一刀,我采取实用主义策略,无需立即决定一刀切。

用 HowNet 遇到了一个不大不小的烦扰,这个烦扰在当年用 WordNet 的时候更加严重(可以说是其致命缺陷,以致我后来完全放弃了 WordNet,宁愿用自己编制的不完整的词汇语义标注)。这就是,一些简单的单字词(或部分高频二字词),被标注了太多features,虽然每个 feature 都有道理,对应其中的一个义项,但是这些义项有的是非常偏僻的(统计上可以忽略,这种偏僻义项的 feature 客观上成为 NLP 的 noise),有的则是其引申意义。我不得不手工来 clean 它们,否则用到这些 feature 的规则往往在常用词上栽跟头。我以前开玩笑批评 WordNet,说,WordNet 根本不讲理,所有的X都可能是Y。哪怕是最简单的单词如 猫啊(cat)狗(dog)啊,在我们心中完全是意义清晰的动物概念,可是 WordNet 硬要标 cat 是 “人”,dog 也是“人”,那我们做规则系统的人还怎么敢利用这些 feature 来写规则呢?不敢写啊,因为什么事情都可能发生。

HowNet 大概是为了自身概念系统的完整性,也不同程度存在同样的问题,迫使 NLP 使用者不得不人工做二次裁剪,很费精力。

我想词典标注的一个原则应该是,如果一个词的某个意义必须要明确的上下文才能成立,那就可以舍弃(特别是,如果一个单字的某个义项总是出现在多字合成词中,那么这个单字就没有理由标注这个意义及其相应的feature,因为 vocabulary 中的多字词已经 cover 了,它不是一个开放集)。

当一个词孤零零站在那里,进入人头脑的概念才是需要标注的。否则使用时很麻烦。

还有一个既可以维护完整性又不增添二次清除负担的办法是给 features 分档次:统计上的档次或者其他的区别对待,这样使用者可以根据需要随时 filter 掉不必要的 features

》我还是老样子。天天在调试系统。现在又风靡世界的是big data和deep learning。美国人就是善于出点子。

deep learning 从概念上没有问题。跟过去十多年闹得火热的 weakly supervised learning 以及
boot-strapping 的潮流一样,方向上是没有问题的,前景很诱人。但是这些潮流,结果真正引起实用技术革命的有多少呢?花样翻新可以吸引眼球和热情,但真正的好处还需要拭目以待。前一阵子有搞搜索的老友问到这个题目,我是这样回答的:

>>How do you think about current hot topic: deep learning and knowledge graph?

I am not a learning expert, and cannot judge how practical and convenient for the new deep learning trend to solve a practical problem in industry. But conceptually, it is fair to say that deep learning is in the right direction for research. For a long time, the learning community has been struggling between the supervised and unsupervised leaning dilemma, the former being tractable but facing knowledge bottleneck (i.e. the requirement of big labeled training corpus) and the latter only proven to work for (label-less) clustering, which usually cannot directly solve a practical problem. Now in addition to many different ways of semi-supervised or weakly supervised approaches, deep learning provides yet another natural way to combine unsupervised and supervised learning. It makes lots of sense to let the unsupervised learning scratch the surface of a problem area and use the results as input for some supervised learning to take on to deeper levels.

Personally, I believe to solve a real life problem in scale, it is best to combine manual rules with machine learning. That makes tasks much more tractable for engineering implementation.

》我觉得rulebased系统的问题,并不是按下葫芦起了瓢,而主要是遇到的新的语言现象。

exactly

按下葫芦起了瓢 的问题出现在不严谨的工业开发环境中。如果开发环境好,data-driven 又有及时的大数据 regression-testing 的反馈来指导规则系统的开发,这个问题就自然消解了。

新的语言现象的问题,能想到的法子就是用时间去磨。只要开发样本选择得当,不急于求成,这个问题也不最可怕,后面的 long tail 中的相当部分迟早总是可以抓住,直到达到某一点,再往下追去已经没有什么(统计)意义了(diminishing returns)。

值得强调的是,新的语言现象的问题不是规则系统专有,对于机器学习它更是难题,本质上就是困扰统计学家多年的 sparse data 的问题。

我感觉到的规则系统的特有挑战主要是编制规则时的“平衡术”(balancing art)不好掌握分寸。人的思维有盲点,结果,有些规则开发不够而影响精度,也有规则开发过度而丧失鲁棒性(robustness),譬如规则做得过于精巧细致,结果系统稍有变动,规则就散架了。这个火候不好拿捏,没有多年的经验和功夫,往往容易跌入陷阱,使得系统越来越庞杂无序,无法维护。

在克服上述挑战的时候,统计可以大派用场。无论是把统计用于数据上,或者用于半自动编写规则,或者有机整合到规则系统中去,都有很多二者亲密合作的机会。譬如让机器学习有统计意义的可能patterns,然后提供给语言学家细化(instantiation),是确保克服人脑盲点的一个有效方法。
与 deep learning 的道理一样,见林不见树的机器学习与见树不见林的专家编写难道不能各个发挥一己之长么?

【后记】上面提到了 HowNet 使用中 feature noise 的困扰,指的是其当下的中文系统。刚刚核实过,显然 HowNet 的发明者早已意识到这个问题,因此,英文的 HowNet 已经解决了这个问题,汉语的问题最终也会解决。他们对 lexical features 做了如下分类,以方便使用者根据不同使用场景对 features 进行筛选:

具体做法是:英文的单字词,采用标记:1、2、3表示可用的优先等级;7表示封存,不采用;
                 英文的词组,采用标记:4、5表示可用的优先等级;6表示封存,不采用;
HowNet Browser中查“ability”其中“能力”标记为2;“本领”、“本事”为3;而“能”、“力”标记为7,即被封存,不可采用。
可惜还没有标记中文的等级,将来会做的,方法是跟英文一样的。


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

上一篇:读【围观“二李”和饶院长辩论的个人感想】的感想
下一篇:对孩子们的“研究”模仿的点评

2 赵凤光 张婷婷

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

数据加载中...

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

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

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部