目录
转到了NLP组,算是到了一个新的领域,其实很久之前就想接触NLP了,觉得无头绪,无从下手,很多都是碎片化,过时等资料。看了《ChatGPT对自然语言处理带来什么冲击》,其中以书本为锚点,介绍了NLP的发展史
自然语言发展史
阶段 | 书籍 | 出版年 |
---|---|---|
第一代统计学习 | 宗成庆老师蓝皮的《统计自然语言处理》(第2版) | 2008 |
第一代统计学习 | 《Speech and Language Processing》,中译版《自然语言处理综论》(第2版) | 英文原书出版于2009年 |
第一代统计学习 | 《Natural Language Procesing with Python》,封面游了三条鲸鱼,中译版《Python自然语言处理》 | 2014年出版 |
第二代深度学习词向量 | 《Neural Network Methods for Natural Language Proces》,中译版《基于深度学习的自然语言处理》 | 2018年出版 |
第二代深度学习词向量 | 《Natural Language Procesing in Action》,中译《自然语言处理实战》 | 2020年出版 |
第三代深度学习大模型 | 《自然语言处理:基于预训练模型的方法》 | 2021年出版 |
第一代统计学习
20世纪90年代开始,统计学习方法的愈发成熟,使得以语料库为核心的统计学习方法在自然语言处理领域得以大规模应用,由于大规模的语料库中包含了大量关于语言的知识,使得基于语料库的统计自然语言处理方法能够更加客观、准确和细致地捕获语言规律。在这一时期,词法分析、句法分析、信息抽取、机器翻译和自动问答等领域的研究均取得了一定程度的成功 。尽管基于统计学习的自然语言处理取得了一定程度的成功,但它也有明显的局限性,也就是需要事先利用经验性规则将原始的自然语言输入转化为机器能够处理的向量形式。这一转化过程(也称为特征提取)需要细致的人工操作和一定的专业知识,因此也被称为特征工程
第二代深度学习和词向量
2010年之后,随着基于深度神经网络的表示学习方法(也称深度学习)的兴起,该方法直接端到端地学习各种自然语言处理任务,不再依赖人工设计的特征。所谓表示学习,是指机器能根据输入自动地发现可以用于识别或分类等任务的表示特征。除了可以自动地发现有效特征,表示学习方法的另一个好处是打通了不同任务之间的壁垒。传统统计学习方法需要针对不同的任务设计不同的特征,这些特征往往是无法通用的。而表示学习能够将不同任务在相同的向量空间内进行表示,从而具备跨任务迁移的能力。除了可以跨任务,还可以实现跨语言甚至跨模态的迁移。综合利用多项任务、多种语言和多个模态的数据。
长期以来,自然语言生成的研究几乎处于停滞状态,除了使用模板生成一些简单的语句,并没有什么太有效的解决办法。随着基于深度学习的序列到序列生成框架的提出,这种逐词的文本生成方法全面提升了生成技术的灵活性和实用性,完全革新了机器翻译、文本摘要和人机对话等任务的技术范式
由于自然语言处理这一认知类任务所具有的“主观性”特点,以及其所面对的任务和领域众多,使得标注大规模语料库的时间过长,人力成本过于高昂,因此自然语言处理的标注数据往往不够充足,很难满足深度学习模型训练的需要
早期的静态词向量预训练模型,以及后来的动态词向量预训练模型,特别是2018年以来,以BERT、GPT为代表的超大规模预训练语言模型恰好弥补了自然语言处理标注数据不足的缺点,帮助自然语言处理取得了一系列的突破,使得包括阅读理解在内的所有自然语言处理任务的性能都得到了大幅提高,在有些数据集上达到或甚至超过了人类水平。
第三代大模型预训练加微调
所谓模型预训练(Pre-train),即首先在一个原任务上预先训练一个初始模型,然后在下游任务(也称目标任务)上继续对该模型进行精调(Fine-tune),从而达到提高下游任务准确率的目的。在本质上,这也是迁移学习(Transfer Learning)思想的一种应用。
其实,文本自身的顺序性就是一种天然的标注数据,通过若干连续出现的词语预测下一个词语(又称语言模型)就可以构成一项原任务。由于图书、网页等文本数据规模近乎无限,所以,可以非常容易地获得超大规模的预训练数据。有人将这种不需要人工标注数据的预训练学习方法称为无监督学习(Unsupervised Learning),其实这并不准确,因为学习的过程仍然是有监督的(Supervised),更准确的叫法应该是自监督学习(Self-supervised Learning)。
如OpenAI推出的GPT-3,是一个具有1,750亿个参数的巨大规模,无须接受任何特定任务的训练,便可以通过小样本学习完成十余种文本生成任务,如问答、风格迁移、网页生成和自动编曲等。目前,预训练模型已经成为自然语言处理的新范式。
绪论
自然语言处理所面临的8个难点,即语言的抽象性、组合性、歧义性、进化性、非规范性、主观性、知识性及难移植性。正是由于这些难点的存在,导致自然语言处理任务纷繁复杂,并产生了多种划分方式
类型 | 内容 |
---|---|
任务层级 | 资源建设、基础任务、应用任务及应用系统四个层级 |
任务类型 | 回归、分类、匹配、解析及生成五大问题 |
研究对象 | 形式、语义、推理及语用分析四个等级 |
历史 | 理性主义和经验主义两大发展阶段;其中,经验主义又被分成了基于统计模型、深度学习模型及最新的预训练模型三个阶段 |
自然语言处理的难点
难点 | 描述 |
---|---|
抽象性 | 语言是由抽象符号构成的,每个符号背后都对应着现实世界或人们头脑中的复杂概念,如“车”表示各种交通工具——汽车、火车、自行车等,它们都具有共同的属性,有轮子、能载人或物等。 |
组合性 | 即便是常用的单词,英文和中文也不过各几十万个。然而,这些有限的符号却可以组合成无限的语义,即使是相同的词汇,由于顺序不同,组合的语义也是不相同的,因此无法使用穷举的方法实现对自然语言的理解 |
歧义性 | 由于语言的形式和语义之间存在多对多的对应关系导致的,如:“苹果”一词,既可以指水果,也可以指一家公司或手机、电脑等电子设备 |
进化性 | 语言具有明显的进化性,也称创造性。这主要体现在两方面:一方面是新词汇层出不穷,如“超女”“非典”“新冠”等;另一方面则体现在旧词汇被赋予新的含义,如“腐败”“杯具”等。除了词汇,语言的语法等也在不断变化,新的用法层出不穷 |
非规范性 | 互联网上,尤其是在用户产生的内容中,经常有一些有意或无意造成的非规范文本,为自然语言处理带来了不小的挑战,如音近词(“为什么”→“为森么”,“怎么了”→“肿么了”)、单词的简写或变形(please→pls、cool→coooooooool)、新造词(“喜大普奔”“不明觉厉”)和错别字等 |
主观性 | 和感知智能问题不同,属于认知智能的自然语言处理问题往往具有一定的主观性,这不但提高了数据标注的难度,还为准确评价系统的表现带来了一定的困难。如在分词这一最基本的中文自然语言处理任务中,关于什么是“词”的定义都尚不明确,比如“打篮球”是一个词还是两个词呢?所以,在标注自然语言处理任务的数据时,往往需要对标注人员进行一定的培训,使得很难通过众包的方式招募大量的标注人员,导致自然语言处理任务的标注数据规模往往比图像识别、语音识别的标注数据规模要小得多。此外,由于不同的分词系统往往标准都不尽相同,所以通过准确率等客观指标对比不同的分词系统本身就是不客观的。难以评价的问题在人机对话等任务中体现得更为明显,由于对话回复的主观性,很难有一个所谓的标准回复,所以如何自动评价人机对话系统仍然是一个开放的问题。 |
知识性 | 理解语言通常需要背景知识以及基于这些知识的推理能力。例如,针对句子“张三打了李四,然后倒了”,问其中的“他”指代的是“张三”还是“李四”?只有具备了“被打的人更容易倒”这一知识,才能推出“他”很可能指代的是“李四”。 |
难移植性 | 自然语言处理涉及的任务和领域众多,并且它们之间的差异较大,造成了难移植性的问题。如分为分词、词性标注、句法分析和语义分析等基础任务,以及信息抽取、问答系统和对话系统等应用任务,由于这些任务的目标和数据各不相同,很难使用统一的技术或模型加以解决,因此不得不针对不同的任务设计不同的算法或训练不同的模型。 |
自然语言处理任务体系
任务层级
- 语言学知识库,一般包括词典、规则库等。词典(Dictionary)也称辞典(Thesaurus),除了可以为词语提供音韵、句法或者语义解释以及示例等信息,还可以提供词语之间的关系信息,如上下位、同义反义关系等。
- 语料库资源指的是面向某一自然语言处理任务所标注的数据。无论是语言学资源,还是语料库资源的建设,都是上层各种自然语言处理技术的基础,需要花费大量的人力和物力构建。
任务类别
类别 | 描述 |
---|---|
回归问题 | 将输入文本映射为一个连续的数值,如对作文的打分,对案件刑期或罚款金额的预测等 |
分类问题 | 又称为文本分类,即判断一个输入的文本所属的类别,如:在垃圾邮件识别任务中,可以将一封邮件分为正常和垃圾两类;在情感分析中,可以将用户的情感分为褒义、贬义或中性三类 |
匹配问题 | 判断两个输入文本之间的关系,如:它们之间是复述或非复述两类关系;或者蕴含、矛盾和无关三类关系。另外,识别两个输入文本之间的相似性(0到1的数值)也属于匹配问题 |
解析问题 | 特指对文本中的词语进行标注或识别词语之间的关系,典型的解析问题包括词性标注、句法分析等,另外还有很多问题,如分词、命名实体识别等也可以转化为解析问题 |
生成问题 | 特指根据输入(可以是文本,也可以是图片、表格等其他类型数据)生成一段自然语言,如机器翻译、文本摘要、图像描述生成等都是典型的文本生成类任务 |
研究对象与层次
自然语言处理主要涉及“名”“实”“知”“境”之间的关系,如图1-2所示。其中“名”指的是语言符号;“实”表示客观世界中存在的事实或人的主观世界中的概念;“知”是指知识,包括常识知识、世界知识和领域知识等;“境”则是指语言所处的环境。
自然语言处理的研究由浅入深,可以分为形式、语义、推理和语用四个层次。
形式 | 要研究语言符号层面的处理,研究的是“名”与“名”之间的关系,如通过编辑距离等计算文本之间的相似度 |
语义 | 主要研究语言符号和其背后所要表达的含义之间的关系,即“名”和“实”之间的关系,如“手机余额不足”和“电话欠费了”两个句子的表达方式完全不同,但是背后阐述的事实是相同的。语义问题也是自然语言处理领域目前主要关注的问题 |
推理 | 在语义研究的基础之上,进一步引入知识的运用,因此涉及“名”“实”和“知”之间关系,这一点正体现了自然语言的知识性 |
语用 | 最为复杂,由于引入了语言所处的环境因素,通常表达的是“言外之意”和“弦外之音”,同时涉及了“名”“实”“知”“境”四个方面。例如,同样的一句话“你真讨厌”,从字面意义上明显是贬义,而如果是情侣之间的对话,则含义可能就不一样了。另外,语气、语调以及说话人的表情和动作也会影响其要表达的含义 |
参考资料:
《自然语言处理:基于预训练模型的方法》