【NLP自选系列:NLP 联络图 】

“NLP 不是魔术,但是,其结果有时几乎就是魔术一般神奇。”

余致力自然语言处理 (NLP) 凡30年余,其目的在求交流之通畅,信息之自由,语言之归一,世界之大同。积经年之经验,深知欲达此目的,必须启蒙后进,普及科学,同心协力,共建通天之塔,因作文鼓而吹之。处理尚未成功,同志仍需努力。

符号逻辑派的AI与规则系统的NLP,做了一辈子,可以回首一览了吧,老马识途,责无旁贷。样板戏《智取威虎山》里面,杨子荣怀揣一张秘密联络图而成为土匪头子座山雕的座上客。这是因为在山头林立的江湖,谁掌握了联络图,谁就可以一统天下。马克思好像说过人是社会关系的总和,专业领域又何尝不是如此。在关系中定义和把握 NLP,可以说是了解一门学问及其技术的正道。

 (NLP Word Cloud, courtesy of ourselves who built the NLP engine to parse social media to generate this graph )
 

一个活跃的领域会不断产生新的概念,新的术语,没有一个合适的参照图,新人特别容易湮没其中。新术语起初常常不规范,同一个概念不同的人可能使用不同的术语,而同一个术语不同的人也可能有不同的解读。常常要经过一个混沌期,研究共同体才逐渐达成规范化的共识。无论是否已经达成共识,关键是要理解术语的背后含义 (包括广义、窄义、传统定义,以及可能的歧义)。加强对于术语的敏感性,不断探究以求准确定位新概念/新术语在现有体系的位置,是为专业人员的基本功。本文将对NLP(尤其是符号NLP)相关的术语做一次地毯式梳理和解说。提到的所有术语,中文一律加双引号,英语置于括号内,大多有中英文对照。

在我们进入NLP 内部探究其奥秘之前,有必要澄清“自然语言处理”(NLP)的一般概念及其上位概念,以及与 NLP 平起平坐或可以相互替换的一些术语。

NLP  这个术语是根据自然语言这个问题领域而命名的宽泛概念。顾名思义,自然语言处理就是以自然语言为对象的计算机处理。无论为了什么应用,无论分析深浅,只要涉及电脑处理自然语言,都在 NLP 之列。所谓“自然语言”(natural language)指的即是我们日常使用的语言,英语、俄语、日语、汉语等,它与“人类语言”(human language)是同义词,主要为区别“形式语言”(formal language),包括“计算机语言”(computer language)。

自然语言是人类交流最自然最常见的形式,不仅仅是口语,书面语也在海量增长,尤其是移动互联网及其社交网络普及的今天。比较形式语言,自然语言复杂得多,常有省略和歧义,具有相当的处理难度(hence 成就了 NLP 这个专业及其我们的饭碗)。顺便一提,在自然语言灰色地带的还有那些“人造语”(artificial language)方案,特别是广为流传的“世界语”(Esperanto),它们的形式与自然语言无异,也是为人类交流而设计,不过是起源上不太“自然”而已,其分析处理当然也属 NLP。(笔者N多年前的机器翻译专业的硕士课题就是一个把世界语全自动翻译成英语和汉语的系统,也算填补了一项空白。)

与 NLP  经常等价使用的术语是“计算语言学”(Computational Linguistics, or, CL)。顾名思义,计算语言学是“计算机科学”(Computer Science)与“语言学”(Linguistics)之间的交叉学科。事实上,NLP  和 CL 是同一个行当的两面,NLP  注重的是实践,CL 则是一门学问(理论)。可以说,CL 是 NLP 的科学基础,NLP是 CL 的落地应用。由于 CL 与数理等基础学科不同,属于面相应用的学问,所以 CL 和 NLP 二者差不多是同一回事儿。其从业人员也可以从这两个侧面描述自己,譬如,笔者在业界可称为“NLP工程师”(NLP engineer),在学界则是“计算语言学家”(computational linguist)。当然,在大学和研究所的计算语言学家,虽然也要做 NLP 系统和实验,但学问重点是以实验来支持理论和算法的研究。在工业界的 NLP 工程师们,则注重 real life 系统的实现和相关产品的开发,奉行的多是白猫黑猫论,较少理论的束缚。计算语言学作为一个独立学科已经站住脚跟半个多世纪了(其主要学刊是《Computational Linguistics》,学会是 ACL,顶级国际会议包括 ACL 年会等)。

另外一个经常与 NLP 平行使用的术语是“机器学习”(Machine Learning, or, ML)以及近年来引起人工智能界革命性突破的“深度学习”(Deep Larning, DL)及其“深度神经网络”(Deep Neural Network)的算法路线。严格说起来,深度学习与 NLP 是完全不同层次的概念,前者是方法,后者是问题领域。然而,由于深度学习的普适性质,加之 DL 成为 NLP 领域(尤其在学界)的主流方法,很多人除了深度学习,忘记或者忽视了 NLP 还有语言规则的“符号逻辑”(symbolic logic)方法。在他们眼中,NLP  就是深度学习。其实,机器学习/深度学习并不局限于 NLP 领域,那些用于语言处理的学习算法也大多可以用来做很多其他“人工智能”(台湾同胞称“人工智慧”,Artificial Intelligence, or AI)的事儿,如信用卡欺诈监测(detecting credit card fraud)、机器视觉(computer vision)、DNA测序分类(classifying DNA sequences),甚至医疗诊断(medical diagnosis)。DL 是显学,研究力量和资源雄厚,发展换代快,文献汗牛充栋,里面又有很多方法和术语,追踪其前沿进展的同学,可以去看NLP 顶级会议的最新论文,或学刊上的文献综述。本文聚焦梳理的内容,属于符号逻辑、以知识和结构作为基础的NLP符号规则派。

在 NLP 领域,与机器学习平行的传统方法有“语言学家”(linguist)或“知识工程师”(knowledge engineer)专家编制的“语言规则”(linguistic rules),这些规则的集合称作“计算文法”(computational grammar),由计算文法支持(or 编译)的系统叫做“规则系统”(rule system)。

机器学习和规则系统这两种方法各有利弊,可以取长补短。统而言之,机器学习擅长“文件分类”(document classification),从宏观上“粗线条”(coarse-grained)把握语言现象。计算文法则擅长细致深入的语言学分析,从细节上捕捉语言现象。如果把语言看成森林,语句看成林中形态各异的树木,比喻的说法是,机器学习见林不见木,计算文法则见木不见林(本来这是很自然的互补关系,但人工智能这两大学派中,双方都有少数“原教旨主义极端派”不愿承认对方的长处或存在)。从效果上看,机器学习常常以覆盖面胜出,覆盖面的业内术语叫“召回”(recall),而计算文法则长于分析的“精度”(precision)。

由于自然语言任务比较 复杂,一个实用系统(real-life system)常常需要在在粗线条和“细线条”(fine-grained)以及召回与精度之间取得某种平衡,因此结合两种方法的 NLP “混合式系统”(hybrid system)往往更加实惠好用。一个简单有效的软件工程式结合方式是把系统建立成一个“松耦合”(loose coupling)的“后备式模型”(back-off model),对每个主要任务,先让计算文法做高精度低召回的处理,再行机器学习出来的统计模型(statistical model),以便粗线条覆盖遗留问题,增强召回。至于所谓融合两条技术路线的“紧耦合”(tight coupling )前景,研究界有识之士中的老专家和新锐都有呼吁和探索,认为很可能是下一代人工智能和NLP的突破口,会形成革命性的紧耦合“范式转变”(paradigm shift)。两条路线背靠不同的设计哲学,“经验主义”(empiricism)和“理性主义”(rationalism)。

人工智能及其NLP的历史上,两大学派各领风骚,此伏彼起,二十年河西,三十年河东。肯尼斯·丘吉(Kenneth Church) 是自然语言领域的先驱,“语料库语言学”(Corpus linguistics)和机器学习的开拓者之一。丘吉的长文《钟摆摆得太远》(A Pendulum Swung Too Far) 是一篇主流反思的扛鼎之作,详细回顾了两条路线在NLP领域此消彼长的历史印迹。

值得一提的是,“古典” AI 也倚重手工编制的规则系统,或称“专家系统”(expert system)。但是它与语言学家的计算文法有一个根本的区别:AI 规则系统通常远不如计算文法现实可行。AI 的规则系统不仅包括比较容易把握(tractable)和形式化(formalized)的语言(学)规则,还试图涵盖包罗万象的常识以及其他世界知识,并通过精巧设计的逻辑推理系统把这些知识整合起来,所谓“常识推理”(common sense reasoning)。可以说,古典 AI 旨在从本质上模拟人的智能过程,因雄心太大而受挫,以致多年来进展甚微。过去的辉煌也只表现在极端狭窄的领域的玩具系统(后来也发展了一些比较实用的专家系统),当时统计模型还是没有睡醒的雄狮。以 ML 为核心以“大数据”(big data)为支撑的统计方法的兴起,以及近年神经网络的突破,让古典 AI 相形见绌。把人类智能当作联接输入输出的黑匣子的“端到端”(end-to-end)的学习方法,已经成为现代AI的代表。由于方法学上的南辕北辙,以“知识表示”(knowledge representation)和“逻辑推理”(logical reasoning)为基础的古典 AI 符号学说越来越难担当实用“智能系统”(intelligent systems)的指导,智能系统的地盘逐渐为以统计学和信息论为基础的机器学习所占领。熊猫般珍稀的坚持古典AI的逻辑学家(如 cyc 发明人 Douglas Lenat 老先生)与擅长 DL 的统计学家虽然问题领域几乎完全重合,解决方案却形如陌路,渐行渐远。

还有一个几乎与自然语言处理等价的术语,叫“自然语言理解”(Natural Language Understanding, or NLU)。从字面上,这个义为机器理解语言的术语 NLU 带有浓厚的人工智能的烂漫主义意味,不象“机器处理语言”那样直白而现实主义,但实际上,使用 NLP 还是 NLU, 正如使用 NLP 还是 CL 一样, 往往是不同圈子人的不同习惯,所指基本相同。说基本相同,是因为 NLP 也可以专指浅层的语言处理,包括“浅层解析”(shallow parsing),而“深层解析”(deep parsing)才是 NLU 的题中应有之义。

此外,“自然语言技术”或“语言技术”(Natural language Technology)也是 NLP 的通俗化表达。

千头万绪,纲举目张,《弘·扬 | 首席科学家李维科普:自然语言系统架构简说》用了四幅联络图来讲解 NLP 的四个层面,分别是:

1. 语言层(linguistic level);
2. 抽取层(extraction level);
3. 挖掘层(mining level);
4. 应用层(app level)。
 

从NLP总体架构来看,这四个层次的子系统之间的关系,基本就是自底而上的支持关系:1 ==》2 ==》 3 ==》4。显然,NLP 的核心“解析器”(Parser)处于第一层, 而“问答系统”(question answering system)和“机器翻译”(machine translation)这样的系统则是第四层应用的例子。

需要说明的是,NLP 的对象自然语言有两种形式,语音(Speech)和文本(Text),因此NLP自然涵盖语音方面的两个重要方向:教电脑听懂人话的“语音识别”(speech recognition);教电脑说人话的“语音合成”(speech synthesis),统称“语音处理”(speech processing)。语音识别和语音合常常是文本处理(text processing)的前奏和后续。譬如 NLP 在手机上的应用如苹果的 Siri 就是先行语音识别,输出文本结果,再行文本解析,然后根据分析理解的结果采取行动(根据主人指令去查天气预报、股票、播放某支音乐等等)。

 
 
 

原载: 科学网—【立委科普:NLP 联络图

 

发布者

立委

立委博士,问问副总裁,聚焦大模型及其应用。Netbase前首席科学家10年,期间指挥研发了18种语言的理解和应用系统,鲁棒、线速,scale up to 社会媒体大数据,语义落地到舆情挖掘产品,成为美国NLP工业落地的领跑者。Cymfony前研发副总八年,曾荣获第一届问答系统第一名(TREC-8 QA Track),并赢得17个小企业创新研究的信息抽取项目(PI for 17 SBIRs)。

发表回复

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

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据