自然语言处理导论
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.1.1 自然语言处理简史

自然语言处理的研究历史可以追溯到1947年,当时第一台通用计算机ENIAC刚刚面世一年,Warren Weaver就提出了利用计算机翻译人类语言的可能,并于1949年发表了著名的Trans-lation(《翻译》)备忘录。1950年,Alan Turing发表了著名的具有划时代意义的论文ComputingMachinery and Intelligence(《计算机器与智能》)[2],提出了使用图灵测试(Turing Test)对机器是否具有智能进行评测,即:如果一台机器能够与人类展开对话而不能被辨别出其机器身份,那么这台机器就具有智能。1951年,语言学家Yehoshua Bar-Hillel在麻省理工学院开始了机器翻译研究。1954年,乔治城大学(Georgetown University)与IBM合作的机器翻译演示系统将60多个俄语句子翻译成了英文。当时,研究者们期望通过三五年的时间完全解决机器翻译问题。20世纪50年代初是自然语言处理的萌芽期。自然语言处理简史的时间线如图1.1所示。大体来看,自然语言处理经历了20世纪50年代末到60年代的初创期、20世纪70年代到80年代的理性主义时代、20世纪90年代到21世纪初的经验主义时代,以及2006年至今的深度学习时代。

图1.1 自然语言处理简史的时间线

20世纪50年代末到60年代,大量的研究不断涌现,并且形成了两大流派:符号学派(Sym-bolic)和随机学派(Stochastic)。以美国语言学家Noam Chomsky为代表的符号学派提出了形式语言理论,基于1957年出版的Syntactic Structures(《句法结构》)介绍了生成语法的概念,并提出了一种特定的生成语法,被称为转换语法,开启了使用数学方法研究语言的先河。随机学派则以1959年Bledsoe和Browning将贝叶斯方法(Bayesian Method)应用于字符识别问题为代表,试图通过贝叶斯方法来解决自然语言处理中的问题。这期间计算语言学(Computational Linguistics)概念也被正式提出。1962年,美国成立了机器翻译和计算语言学学会(Association for Machine Translation and Computational Linguistics)。1965年,国际计算语言学委员会(The International Committee on Computational Linguistics,ICCL)成立,并于当年召开了第一届国际计算语言学大会(The International Conference on Computational Linguistics,COLING)。20世纪60年代还出现了第一个大规模语料库——布朗美国英语语料库(Brown Corpus),其包含来自不同文体的500多篇书面文本,超过100万个单词,涉及新闻、小说、科技文化等。自此,自然语言处理研究全面开启。

20世纪70年代到80年代,更多的工作从不同的角度开展了系统的研究,也产生了一系列的研究范式,至今仍对自然语言处理研究起着重要作用。这些范式主要包括:基于逻辑的范式(Logic-based Paradigm)、基于规则的范式(Rule-based Paradigm)和随机范式(Stochastic Paradigm)。1970年,Colmerauer等人使用逻辑方法研制出Q系统(Q-system)和变形语法(Metamorphosis Grammar),并在机器翻译中得到应用。1980年,Pereira和Warren提出的定子句语法(Definite Clause Grammar)是基于逻辑的范式成功应用的范例之一。基于规则的范式是这个时代最典型的模式之一,1972年研制的SHRDLU系统是其中的一个代表性工作。该系统模拟了一个玩具积木世界,能够接收自然语言的书面指令(如Pick up a big red block.),指挥机器人移动玩具积木块。1970年,William A. Woods提出了扩充转移网络(Augmented Transition Network)用来描述自然语言输入,并用于自然语言处理的若干任务中。得益于20世纪80年代初隐马尔可夫模型(Hidden Markov Model)和噪声信道与解码模型(Noisy Channel Model and Decoding Model)在语音识别中的成功应用,随机范式也逐渐在自然语言处理任务中崭露头角,包括词性标注[3]、姓名检索[4]等。

从20世纪90年代开始,自然语言处理开启了繁荣发展的时代。自1989年在机器翻译任务中引入语料库方法之后,这种建立在大规模真实语料上的研究方法将自然语言处理研究推向了新的高度。从90年代后期开始,基于机器学习和数据驱动的方法取代了早期基于规则和基于逻辑的方法,成为自然语言处理的标准模式。自然语言处理的各类任务,包括词法分析、词性标注、句法分析、文本分类、机器翻译等都开始引入机器学习算法。这期间朴素贝叶斯(Naive Bayes)[5]K近邻(K-Nearest Neighbor)[6]、支持向量机(Support Vector Machine,SVM)[7]、最大熵模型(Maximum Entropy,ME)[8]、神经网络(Neural Network)[9]、条件随机场(Conditional Random Field)[10]、感知机(Perceptron)[11]等方法也都在自然语言处理的不同任务上进行了尝试并取得了一定的成功。这种以大规模数据为基础进行分析的方法被称为经验主义(Empiricism)。随着数据驱动方法的发展,大部分关于自然语言处理的早期理论都大打折扣,特别是随着数据量的不断增加以及计算能力的不断提高,而经验主义方法直到现在也还在主导着自然语言处理领域。从当前自然语言处理领域重要会议EMNLP(Empirical Methods in Natural Language Processing)的名称和发展也可以看到经验主义的发展过程。

2006年,加拿大多伦多大学教授Geoffery Hinton和他的学生Ruslan Salakhutdinov在Sci-ence(《科学》)杂志上发表了关于基于深度信念网络(Deep Belief Network,DBN)以及无监督预训练结合有监督训练微调的方法解决深层神经网络训练中梯度消失问题的论文[12],将神经网络重新拉回到机器学习研究者的视野中。2012年,基于卷积神经网络(Convolutional Neural Network,CNN)的AlexNet在图像识别领域的ImageNet竞赛中取得惊人的效果,掀起了深度学习在学术界和工业界的浪潮[13]。2011年,论文Natural language processing(almost)from scratch引起了极大的关注,深度神经网络在不使用人工特征的情况下,使用一个统一的网络架构,在词性标注、组块分析、命名实体识别、语义角色标注等任务中都取得了很好的效果[14]。2014年,Seq2Seq(序列到序列)模型[15]在机器翻译任务上取得了非常好的效果,并且完全不依赖任何人工特征,推动了神经机器翻译的广泛落地。使用这种端到端的方式进行编码和解码不仅在包括生成式摘要[16]、对话系统[17-18]等在内的自然语言生成问题上取得了突破,还被应用于自然语言处理的很多任务中,包括句法分析[19]、问题回答[20]、中文分词[21]等。此外,循环神经网络(Recurrent Neural Network,RNN)[22]、长短期记忆网络(Long Short-Term Memory Network,LSTM)[23]、递归神经网络(Recursive Neural Network)[24]、卷积神经网络(Convolutional Neural Network,CNN)[25]、图神经网络(Graph Neural Network,GNN)[26-27]等神经网络模型也都被成功应用于自然语言处理的各个任务中。

2018年,美国艾伦人工智能研究所(Allen Institute for AI)和华盛顿大学(Washington Uni-versity)联合发表的论文中提出了名为ELMo的与上下文相关的文本表示方法,其首先利用语言模型或其他自监督任务进行预训练,然后在处理下游任务时,从预训练的网络中提取对应词的网络各层的词嵌入作为新特征补充到下游任务中。它在多个自然语言处理任务上的表现都非常突出[28]。此后,深度学习开启了预训练模型(Pre-trained Model,PTM)结合任务微调的新范式。谷歌、Ope-nAI、微软、清华大学、百度、智源研究院等先后提出了BERT[29]、GPT[30]、XLNet[31]、ERNIE(THU)[32]、ERNIE(Baidu)[33]、悟道等大规模预训练模型,在几乎所有的自然语言处理任务上都取得了非常好的效果,甚至在很多任务的标准评测集合上也取得了超越人类准确率的水平。尤其是在类似于阅读理解、常识推理等的任务上有惊人的效果提升。与此同时,预训练模型的规模也越来越大,2018年谷歌开发的BERT-Base模型有1.1亿个参数,BERT-Large模型有3.4亿个参数。到了2019年,OpenAI开发的GPT-2模型就达到了15亿个参数。2021年GPT-3模型的参数更是达到了1750亿个,而同年谷歌开发的Switch Transformer模型的参数首次超过万亿个,达到了1.6万亿个。此后不久,北京智源人工智能研究院发布的“悟道2.0”模型就刷新了上述纪录,模型参数达到了1.75万亿个。虽然预训练大模型取得了巨大的成功,但是其仍然面临模型的稳健性亟待提升、超大规模的模型如何高效适配下游任务、大模型的理论解释等诸多问题。