3.1 NLP发源时代

1948年,香农提出信息熵的概念。此时尚未有NLP,但由于熵也是NLP的基石之一,在此也算作是NLP的发展历程。[1]

自然语言处理的历史通常始于20世纪50年代。1950年,艾伦·图灵发表了一篇题为“智能”的文章,提出“图灵测试”,用以检验计算机是否真正拥有智能。[1]

3.2 NLP规则时代

1950-1970年,模拟人类学习语言的习惯,以语法规则为主流。除了参照乔姆斯基文法规则定义的上下文无关文法规则外,NLP领域几乎毫无建树。

1954年的乔治敦实验涉及将60多个俄语句子完全自动翻译成英语。作者声称,三到五年内,机器翻译将是一个解决的问题。[2]然而,实际进展要慢得多,在1966年的《 ALPAC报告》发现十年的研究没有达到预期后,机器翻译的资金急剧减少。直到20世纪80年代末,人们才开始对机器翻译进行进一步的研究,那时才开发出第一个统计机器翻译系统。

一些在20世纪60年代开发的显著成功的自然语言处理系统是SHRDLU ,一种在具有有限词汇的受限“blocks world ”中工作的自然语言系统,和ELIZA ,一种由约瑟夫·维森鲍姆在1964年至1966年间编写的对罗格利亚精神治疗师的模拟。ELIZA几乎没有使用任何关于人类思想或情感的信息,有时提供一种令人吃惊的类似人类的互动。当“病人”超出非常小的知识库时,伊莱扎可能会给出一个通用的回答,例如,用“为什么你说你的头疼”来回答“我的头疼”。

3.3 NLP统计时代

70年代开始统计学派盛行,NLP转向统计方法,此时的核心是以具有马尔科夫性质的模型(包括语言模型,隐马尔可夫模型等)。

在20世纪70年代,许多程序员开始写“概念性的”本体”,它将真实世界的信息结构化成计算机可理解的数据。例子有MARGIE (Schank,1975)、SAM (Cullingford,1978)、PAM (Wilensky,1978)、航空小英雄(Meehan,1976)、QUALM (Lehnert,1977)、Politics (Carbonell,1979)和Plot Units (Lehnert,1981)。在此期间,许多聊天机器人包括挡开,Racter,和含糊不清。

直到20世纪80年代,大多数自然语言处理系统都是基于复杂的手写规则集。然而,从20世纪80年代末开始,随着语言处理的机器学习算法的引入,自然语言处理发生了一场革命。这是由于计算能力的稳步增长(见摩尔定律)和乔姆斯基语言学理论(例如转换语法)的主导地位的逐渐减弱,其理论基础不鼓励作为语言处理机器学习方法基础的那种语料库语言学。[3]一些最早使用的机器学习算法,如决策树,产生了类似于现有手写规则的硬“如果-那么”规则系统。然而,《词性标注》将隐马尔可夫模型引入自然语言处理,并且越来越多的研究集中在统计模型上,这些模型基于将实值权重附加到构成输入数据的特征上来做出软的、概率性的决策。许多语音识别系统现在依赖的缓存语言模型就是这种统计模型的例子。当给定不熟悉的输入,特别是包含错误的输入(这在现实世界数据中非常常见)时,这种模型通常更健壮,并且当集成到包含多个子任务的更大系统中时,会产生更可靠的结果。

许多显著的早期成功发生在机器翻译领域,特别是由于在IBM研究院的工作,在那里相继开发了更复杂的统计模型。这些系统能够利用现有的多语种文本语料库,这些语料库是加拿大议会和欧洲联盟由于法律要求将所有政府程序翻译成相应政府系统的所有正式语文而制作的。然而,大多数其他系统依赖于专门为这些系统实现的任务开发的语料库,这是(并且经常继续是)这些系统成功的主要限制。因此,大量的研究已经投入到从有限的数据中更有效地学习的方法中。

2001年,神经语言模型,将神经网络和语言模型相结合,应该是历史上第一次用神经网络得到词嵌入矩阵,是后来所有神经网络词嵌入技术的实践基础。也证明了神经网络建模语言模型的可能性。

2001年,条件随机场CRF,从提出开始就一直是序列标注问题的利器,即便是深度学习的现在也常加在神经网络的上面,用以修正输出序列。

2003年,LDA模型提出,概率图模型大放异彩,NLP从此进入“主题”时代。Topic模型变种极多,参数模型LDA,非参数模型HDP,有监督的LabelLDA,PLDA等。

2008年,分布式假设理论提出,为词嵌入技术的理论基础。(分布式假设的思想并非直到08年才有)

在统计时代,NLP专注于数据本身的分布,如何从文本的分布中设计更多更好的特征模式是这时期的主流。在这期间,还有其他许多经典的NLP传统算法诞生,包括tfidf、BM25、PageRank、LSI、向量空间与余弦距离等。值得一提的是,在20世纪80、90年代,卷积神经网络、循环神经网络等就已经被提出,但受限于计算能力,NLP的神经网络方向不适于部署训练,多停留于理论阶段。[1]

最近的研究越来越集中在无监督和半监督学习算法上。这种算法能够从没有用所需答案手工注释的数据中学习,或者使用注释和非注释数据的组合。通常,该任务比监督学习困难得多,并且对于给定量的输入数据通常产生不太准确的结果。然而,有大量未注释的数据可用(除其他外,包括万维网的整个内容),如果所使用的算法具有足够低的时间复杂度,则这些数据通常可以弥补较差的结果。

在2010年,表示学习和深度神经网络风格的机器学习方法在自然语言处理中变得广泛,部分原因是一系列结果表明这些技术[4][5]可以在许多自然语言任务中实现最先进的结果,例如在语言建模中,[6]解析,[7][8]和许多其他人。流行的技术包括使用单词嵌入来捕获单词的语义属性,以及增加对更高级任务的端到端学习(例如,问答),而不是依赖于单独的中间任务流水线(例如,词性标记和依赖性解析)。在某些领域,这种转变带来了自然语言处理系统设计方式的巨大变化,因此基于深度神经网络的方法可以被视为不同于统计自然语言处理的新范例。例如,术语神经机器翻译(NMT)强调基于深度学习的机器翻译方法直接学习序列到序列的转换,不需要像统计机器翻译 (SMT)中使用的单词对齐和语言建模这样的中间步骤。

3.4 NLP深度时代

2013年,word2vec提出,是NLP的里程碑式技术。

在网页上提供客户服务的自动在线助理,是自然语言处理是主要组件的应用程序示例。[9]

2013年,CNNs/RNNs/Recursive NN,随着算力的发展,神经网络可以越做越深,之前受限的神经网络不再停留在理论阶段。在图像领域证明过实力后,Text CNN问世;同时,RNNs也开始崛起。在如今的NLP技术上,一般都能看见CNN/LSTM的影子。本世纪算力的提升,使神经网络的计算不再受限。有了深度神经网络,加上嵌入技术,人们发现虽然神经网络是个黑盒子,但能省去好多设计特征的精力。至此,NLP深度学习时代开启。

第一项主要研究进行于2013年进行,正值计算语言学协会 (ACL)成立周年之际,举办了一个名为“重新发现自然语言处理领域50年的发现”的研讨会[9]。 同年,启动了NLP4NLP项目,旨在发现这些年来引入了哪些术语,以及有关作者和相关会议的详细信息[10]。 随后,该项目扩展到其他方向,同时涵盖了34场演讲和全国新闻发布会。NLP4NLP项目的完整综合已于2019年以《研究度量和分析前沿》双重出版物的形式出版。 涵盖50年的出版物[11] [12]。

2014年,seq2seq的提出,在机器翻译领域,神经网络碾压基于统计的SMT模型。

2015年,attention的提出,可以说是NLP另一里程碑式的存在。带attention的seq2seq,碾压上一年的原始seq2seq。记得好像17年年初看过一张图,调侃当时学术界都是attention的现象,也证明了attention神一般的效果。

2017年末,Transformer的提出。似乎是为了应对Facebook纯用CNN来做seq2seq的“挑衅”,google就纯用attention,并发表著名的《Attention is All You Need》。初看时以为其工程意义大于学术意义,直到BERT的提出才知道自己还是too young。

2018年末,BERT的提出,横扫11项NLP任务,奠定了预训练模型方法的地位,NLP又一里程碑诞生。光就SQuAD2.0上前6名都用了BERT技术就知道BERT的可怕。

深度学习时代,神经网络能够自动从数据中挖掘特征,人们从复杂的特征中脱离出来,得以更专注于模型算法本身的创新以及理论的突破。并且深度学习从一开始的机器翻译领域逐渐扩散到NLP其他领域,传统的经典算法地位大不如前。[1]