目录
自然语言处理的目标是使得机器具有和人类一样的语言理解和运用能力。在过去的十年里,自然语言处理经历了两次里程碑式的重要发展。第一次是深度学习的勃兴,使得传统的特征工程方法被摒弃,而基于深度神经网络的表示学习迅速成为自然语言处理的主流。第二次则是2018年以来大规模预训练语言模型的应用,开启了基于“预训练+精调”的新一代自然语言处理范式。每一次的发展都为自然语言处理系统的能力带来了巨大进步。与此同时,这些令人欣喜的发展也带给我们很多关于语言智能的更本质的思考。
自然语言是人类思维的载体和交流的基本工具,也是人类区别于动物的根本标志,更是人类智能发展的重要外在体现形式。自然语言处理主要研究用计算机理解和生成自然语言的各种理论和方法,属于人工智能领域的一个重要的甚至核心的分支。随着互联网的快速发展,网络文本规模呈爆炸性增长,为自然语言处理提出了巨大的应用需求。同时,自然语言处理研究也为人们更深刻地理解语言的机理和社会的机制提供了一条重要的途径,因此具有重要的科学意义。
自然语言处理技术经历了从早期的理性主义到后来的经验主义的转变。近十年来,深度学习技术快速发展,引发了自然语言处理领域一系列的变革。但是基于深度学习的算法有一个严重的缺点,就是过度依赖于大规模的有标注数据。2018年以来,以BERT、GPT为代表的超大规模预训练语言模型恰好弥补了自然语言处理标注数据不足的这一缺点,帮助自然语言处理取得了一系列的突破,使得包括阅读理解在内的众多自然语言处理任务的性能都得到了大幅提高,在有些数据集上甚至达到或超过了人类水平。
第1章 绪论
本章首先介绍了自然语言以及自然语言处理的基本概念,并总结了自然语言处理所面临的8个难点,即语言的抽象性、组合型、歧义性、进化性、非规范性、主观性、知识性及难移植性。正是由于这些难点的存在,导致自然原因处理任务纷繁复杂,并产生了多种划分方式,如按照任务层级,可以分为资源建设、基础任务、应用任务及应用系统四个层级;按照任务类型,可以分为回归、分类、匹配、解析及生成五大问题;按照研究对象的不同,可以分为形式、语义、推理及语用分析四个等级。从历史上看,自然语言处理经过了将近60年的发展,期间经历了理性主义和经验主义两大发展阶段。其中,经验主义又被分成了基于统计模型、深度学习模型及最新的预训练模型三个阶段,尤其是“预训练+精调”的方式,已成为自然语言处理的最新范式。
1.1 自然语言处理的概念
目前,人们普遍认为人工智能的发展经历了从运算智能到感知智能,再到认知智能的三个发展阶段。运算智能关注的是机器的基础运算和存储能力,在这方面,机器已经完胜人类。感知智能则强调机器的模式识别能力,如语音的识别以及图像的识别,目前机器在感知智能上的水平基本达到甚至超过了人类的水平。然而,在涉及自然语言处理以及常识建模和推理等研究的认知智能上,机器与人类还有很大的差距。
1.2 自然语言处理的难点
自然语言具有高度的抽象性、近乎无穷变化的语义组合性、无处不在的歧义性和进化性,以及理解语言通常需要背景知识和推理能力等。
1.2.1 抽象性
语言是由抽象符号构成的,每个符号背后都对应着现实世界或人们头脑中的复杂概念。
1.2.2 组合性
每种语言的基本符号单元都是有限的,然而,这些有限的符号却可以组合成无限的语义,即使是相同的词汇,由于顺序不同,组合的语义也是不相同的,因此无法使用穷举的方法实现对自然语言的理解。
1.2.3 歧义性
歧义性主要是由于语言的形式和语义之间存在多对多的对应关系导致的。
1.2.4 进化性
语言具有明显的进化性,也称创造性。
1.2.5 非规范性
和感知智能问题不同,属于认知智能的自然语言处理问题往往具有一定的主观性,这不但提高了数据标注的难度,还为准确评价系统的表现带来了一定的困难。
1.2.7 知识性
理解语言通常需要背景知识以及基于这些知识的推理能力。
1.2.8 难移植性
由于自然语言处理涉及的任务和领域众多,并且它们之间的差异较大,造成了难移植性的问题。
综上所述,由于自然语言处理面临的众多问题,使其成为目前制约人工智能取得更大突破和更广泛应用的瓶颈之一。因此自然语言处理又被誉为“人工智能皇冠上的明珠”,并吸引了越来越多的人工智能研究者加入。
1.3 自然语言处理任务体系
1.3.1 任务层级
自然语言处理的一大特点是涉及的任务众多。按照从低层到高层的方式,可以划分为资源建设、基础任务、应用任务和应用系统四大类。其中,资源建设主要包括两大类任务,即语言学知识库建设和语料库资源建设。所谓语言学知识库,一般包括词典、规则库等。语料库资源指的是面向某一自然语言处理任务所标注的数据。
基础任务包括分词、词性标注、句法分析法和语义分析等,这些任务往往不直接面向终端用户,除了语言学上的研究价值,它们主要为上层应用任务提供所需的特征。
应用任务包括信息抽取、情感分析、问答系统、机器翻译和对话系统等,它们往往可以作为产品直接被终端用户使用。
应用系统特指自然语言处理技术在某一领域的综合应用,又被称为NLP+,即自然语言处理技术加上特定的应用领域。
凡是涉及文本理解和生成的领域,自然语言处理技术都可以发挥巨大的作用。
1.3.2 任务类别
自然语言处理的任务基本上都可以归纳为回归、分类、匹配、解析或生成五类问题中的一种。
1.回归问题
即将输入文本输入为一个连续的数值。
2.分类问题
即判断一个输入的文本所属的类别。
3.匹配问题
判断两个输入文本之间的关系。
4.解析问题
特指对文本中的词语进行标注或识别词语之间的关系。
5.生成问题
特指根据输入生成一段自然语言。
1.3.3 研究对象与层次
自然语言处理主要涉及“名”“实”“知”“境”之间的关系。其中“名”指的是语言符号;“实”表示客观世界中存在的事实或人的主观世界中的概念;“知”是指知识,包括常识知识、世界知识和领域知识等;“境”则是指语言所处的环境。
随着涉及的研究对象越来越多,自然语言处理的研究由浅入深,可以分为形式、语义、推理和语用四个层次。
1.4 自然语言处理技术发展历史
自然语言处理自诞生之日起经历了两大研究范式的转换,即理性主义和经验主义。
早期的自然语言处理主要采用基于理性主义的规则方法,通过专家总结的符号逻辑知识处理通用的自然语言现象。
基于统计学习的自然语言处理取得了一定程度的成功,但它也有明显的局限性,也就是需要事先利用经验性规则将原始的自然语言输入转化为机器能够处理的向量形式。这一转化过程(也被称为特征提取)需要细致的人工操作和一定的专业知识,因此但也被称为特征工程。
表示学习,是指机器能根据输入自动地发现可以用于识别或分类等任务的表示。表示学习打通了不同任务之间的壁垒,能够将不同任务在相同的向量空间内进行表示,从而具备跨任务迁移的能力。除了可以跨任务,还可以实现跨语言甚至跨模态的迁移。
综合利用多项任务、多种语言和多个模态的数据,使得人工智能向更通用的方向迈进了一步。
虽然深度学习技术大幅提高了自然语言处理系统的准确率,但是基于深度学习的算法有一个致命的缺点,就是过度依赖于大规模有标注数据。
由于自然语言处理这一认知类任务所具有的的“主观性”特点,以及其所面对的任务和领域众多,使得标注大规模语料库的时间过长,人力成本过于高昂,因此自然语言处理的标注数据往往不够充足,很难满足深度学习模型训练的需要。
早期的静态词向量预训练模型,以及后来的动态词向量预训练模型,特别是2018年以来,以BERT、GPT为代表的超大规模预训练语言模型恰好弥补了自然语言处理标注数据不足的特点,帮助自然语言处理取得了一系列的突破。
所谓模型预训练,即首先在一个原任务上预先训练一个初始模型,然后在下游任务(也称目标任务)上继续对该模型进行精调,从而达到提高下游任务准确率的目的。在本质上,这也是迁移学习思想的一种应用。
文本自身的顺序性就是一种天然的标注数据,通过若干连续出现的词语预测下一个词语(又称语言模型)就可以构成一项原任务。