自然语言处理之路- 前提——语言学
一个自然语言处理炼丹师的自白
往期:
前提的最后一部分,也是我最想提及的部分。之前的英文与数学,可以算是比较通用的能力。即使是其他领域,也常用到。而语言学这块,却是自然语言处理 (NLP) 特有的。毕竟 NLP 科学家,也被称为 Computational Linguists (计算语言学家),作为语言学家总得懂点语言学吧。
用语言学 or 不用语言学?
然而,随着深度学习的兴起和在 NLP 上的大规模应用。虽然取得很多成功,但却也带了当前对语言学忽视的问题。利用序列模型,往往“计算语言学家”都不需要了解任何语言学知识,直接端到端就能研究语言处理问题,对他们来说语言不过是一段字符串序列。
近来,也有很多学者对这个趋势提出了强烈质疑,比如之前 Yoav Goldberg 的博文。认为现在很多论文,特别是来自深度学习领域,可能什么语言学知识都不懂,却会写出论文标着已解决某 NLP 问题的。做为NLP的铁杆粉,Yoav 当然不能忍直接发文一阵怼。
看最近 NLP 顶会的论文,也会发现大家都开始意识到这个问题,并且对如何将语言学结构用入 NLP 深度学习模型进行了大量研究。这可以看做是,”语言学架构的回归“吧。关于这部分详细内容,参考我之前的文章:《自然语言处理中的语言学》。
对个人而言,非常赞同如果研究 NLP 而不单单是深度学习的话,了解语言学知识是必要的。
- 首先,如人脑的视觉层次结构能给卷积网络(CNN)提供启发,语言学结构也能给我们启发,在单纯的序列模型上提出更复杂而有效的模型。比如 Recursive Neural Network (递归神经网络) 就是基于语言是树状的假设,而提出的模型;
- 再来,进来很多实验证明,语言学结构确实是可以帮组提高模型性能。而且我也相信过去几十年语言学研究沉淀下来的东西,也必然是有用的。
- 最后,我并不认为语言就只是单单的序列,其实大家自己在脑袋思考一下就发现这是有违我们的直觉的。这意味着,要到达真正的理解语言的 AI,那么可能语言学本身将是绕不过去的一道坎。
语言本能
语言是人类与其他动物最显著的不同。人类直立行走,动物中也不乏很多会直立行走;人类有性快感,会不为繁衍后代做爱,这个你去看看可爱的海豚们,就会发现它们更“可爱”。只有语言,这一项仿佛是人类特有的技能,可以用它来交流,用它创造历史神话,用它来进行各种复杂的社会活动。
语言是人类的一种本能,所以当你问自己,我为什么会说话,为什么是这样说,如果没有语言我们怎么思考时,往往有种想破脑袋也不明白的感觉。也正因如此,才导致搞清语言背后原理变得如此有趣。从而进一步希望利用计算机,来模拟出一个相同的机器,这便是 AI。
因此对 NLP 感兴趣的话,最好是先了解一下自然语言与我们人类的关系,这能激发出对问题本身探索的好奇。
这里推荐史蒂芬平克 (Steven Pinker) 的《语言本能 (Language Instinct)》。非常有趣的一本书,书中不光探讨了各种人类语言中的现象,比如词的形态和语言的树状结构,还花了很大篇幅探讨语言与思想的关系,还有人类的语言的习得。
语言本能之前和隔壁的大佬东条教授喝酒聊天时,听说此书在多年前曾是其实验室必读书目之一。
读过这本书后,再看各个 NLP 书中提到的语言概念就会变得很熟悉了,因为明白了这后面的原理了嘛。
其他
关于激起对语言的兴趣,上面那本语言本能足矣。关于语言的科普书还有很多,比如《The Unfolding of Language》还有《Empires of the Word》,感兴趣可以当课外书读。
如果更直接关心语言学在 NLP 研究的应用,把 《Linguistic Fundamentals for Natural Language Processing》扫一遍就行了。
到此,啰嗦的前提部分便告一段落。