欢迎光临散文网 会员登陆 & 注册

自然语言处理:基于预训练模型的方法

2023-03-31 00:13 作者:破产的哔站用户  | 我要投稿

链接:https://pan.baidu.com/s/170U6oBoo-Hf0zIUub7Runw?pwd=6zbs 

提取码:6zbs

精彩书评

自然语言处理被誉为“人工智能皇冠上的明珠”。近年来,以BERT、GPT 为代表的大规模预训练语言模型异军突起,使问答、检索、摘要、阅读理解等自然语言处理任务性能都得到了显著提升。《自然语言处理:基于预训练模型的方法》一书深入浅出地阐述了预训练语言模型技术,全面深入地分析了它的发展方向,非常适合人工智能和自然语言处理领域的学习者和从事研发的人士阅读。读者可在较短的时间内了解和掌握其关键技术并快速上手。

特此推荐!


周明

创新工场首席科学家

微软亚洲研究院原副院长

中国计算机学会副理事长

国际计算语言学会(ACL)主席(2019 年)


预训练语言模型是当今自然语言处理的核心技术。车万翔教授等人所著的本书从基础知识、预训练词向量、预训练模型等几个方面全面系统地介绍了该项技术。选题合理,立论明确,讲述清晰,出版及时。相信每一位读者都会从中获得很大的收获。向大家推荐!


李航

ACL/IEEE Fellow

字节跳动人工智能实验室总监


在运动智能和感知智能突飞猛进的发展态势下,以自然语言处理为核心的认知智能已成为人工智能极大的挑战。随着业界对认知智能重视程度的持续提升,基于预训练模型的自然语言处理方法一经提出,便快速席卷了诸多NLP 任务。本书系统地介绍了该类方法,并配套了丰富的实践案例和代码,对于从事AI 技术研究和相关行业的爱好者而言,是一本不可多得的参考学习佳作!


胡郁

科大讯飞执行总裁


目录

目录

推荐序/III

推荐语/IV

前言/V

数学符号/IX

第1 章绪论/1

1.1 自然语言处理的概念/2

1.2 自然语言处理的难点/2

1.2.1 抽象性/ 2

1.2.2 组合性/ 2

1.2.3 歧义性/3

1.2.4 进化性/3

1.2.5 非规范性/3

1.2.6 主观性/3

1.2.7 知识性/3

1.2.8 难移植性/4

1.3 自然语言处理任务体系/4

1.3.1 任务层级/4

1.3.2 任务类别/5

1.3.3 研究对象与层次/6

1.4 自然语言处理技术发展历史/7


第2 章自然语言处理基础/11

2.1 文本的表示/12

2.1.1 词的独热表示/13

2.1.2 词的分布式表示/13

2.1.3 词嵌入表示/19

2.1.4 文本的词袋表示 /19

2.2 自然语言处理任务 /20

2.2.1 语言模型/20

2.2.2 自然语言处理基础任务/23

2.2.3 自然语言处理应用任务/31

2.3 基本问题 /35

2.3.1 文本分类问题/35

2.3.2 结构预测问题/ 36

2.3.3 序列到序列问题/38

2.4 评价指标/40

2.5 小结/43


第3 章基础工具集与常用数据集45

3.1 NLTK 工具集/46

3.1.1 常用语料库和词典资源/46

3.1.2 常用自然语言处理工具集 /49

3.2 LTP 工具集/51

3.2.1 中文分词/51

3.2.2 其他中文自然语言处理功能/52

3.3 PyTorch 基础/52

3.3.1 张量的基本概念/53

3.3.2 张量的基本运算/54

3.3.3 自动微分/57

3.3.4 调整张量形状/58

3.3.5 广播机制/ 59

3.3.6 索引与切片/60

3.3.7 降维与升维 / 60

3.4 大规模预训练数据 /61

3.4.1 维基百科数据/62

3.4.2 原始数据的获取/62

3.4.3 语料处理方法/ 62

3.4.4 Common Crawl 数据/66

3.5 更多数据集 /66

3.6 小结 /68


第4 章自然语言处理中的神经网络基础/69

4.1 多层感知器模型/70

4.1.1 感知器/70

4.1.2 线性回归 /71

4.1.3 Logistic 回归/71

4.1.4 Softmax 回归 /72

4.1.5 多层感知器 /74

4.1.6 模型实现 /76

4.2 卷积神经网络/78

4.2.1 模型结构 /78

4.2.2 模型实现 /80

4.3 循环神经网络/83

4.3.1 模型结构/ 83

4.3.2 长短时记忆网络 / 85

4.3.3 模型实现/ 87

4.3.4 基于循环神经网络的序列到序列模型/88

4.4 注意力模型 /89

4.4.1 注意力机制/89

4.4.2 自注意力模型/90

4.4.3 Transformer/ 91

4.4.4 基于Transformer 的序列到序列模型/93

4.4.5 Transformer 模型的优缺点/ 94

4.4.6 模型实现/94

4.5 神经网络模型的训练/96

4.5.1 损失函数/96

4.5.2 梯度下降 /98

4.6 情感分类实战/101

4.6.1 词表映射/101

4.6.2 词向量层/ 102

4.6.3 融入词向量层的多层感知器/103

4.6.4 数据处理/106

4.6.5 多层感知器模型的训练与测试/108

4.6.6 基于卷积神经网络的情感分类 / 109

4.6.7 基于循环神经网络的情感分类/110

4.6.8 基于Transformer 的情感分类/111

4.7 词性标注实战 /113

4.7.1 基于前馈神经网络的词性标注 /114

4.7.2 基于循环神经网络的词性标注 /114

4.7.3 基于Transformer 的词性标注/116

4.8 小结/116


第5 章静态词向量预训练模型/119

5.1 神经网络语言模型 /120

5.1.1 预训练任务/120

5.1.2 模型实现/124

5.2 Word2vec 词向量 /130

5.2.1 概述/ 130

5.2.2 负采样/133

5.2.3 模型实现/134

5.3 GloVe 词向量/140

5.3.1 概述/140

5.3.2 预训练任务/140

5.3.3 参数估计/140

5.3.4 模型实现/141

5.4 评价与应用/143

5.4.1 词义相关性/144

5.4.2 类比性/146

5.4.3 应用/147

5.5 小结/148


第6 章动态词向量预训练模型/151

6.1 词向量——从静态到动态/ 152

6.2 基于语言模型的动态词向量预训练/153

6.2.1 双向语言模型/153

6.2.2 ELMo 词向量/155

6.2.3 模型实现/156

6.2.4 应用与评价/169

6.3 小结/171


第7 章预训练语言模型/173

7.1 概述/174

7.1.1 大数据/174

7.1.2 大模型/175

7.1.3 大算力/175

7.2 GPT /177

7.2.1 无监督预训练/178

7.2.2 有监督下游任务精调/179

7.2.3 适配不同的下游任务/180

7.3 BERT/182

7.3.1 整体结构/182

7.3.2 输入表示/ 183

7.3.3 基本预训练任务/184

7.3.4 更多预训练任务 /190

7.3.5 模型对比/194

7.4 预训练语言模型的应用/194

7.4.1 概述/194

7.4.2 单句文本分类/195

7.4.3 句对文本分类/ 198

7.4.4 阅读理解/201

7.4.5 序列标注/206

7.5 深入理解BERT /211

7.5.1 概述/ 211

7.5.2 自注意力可视化分析 / 212

7.5.3 探针实验/ 213

7.6 小结/215


第8 章预训练语言模型进阶/217

8.1 模型优化 /218

8.1.1 XLNet/218

8.1.2 RoBERTa/223

8.1.3 ALBERT/227

8.1.4 ELECTRA/229

8.1.5 MacBERT/232

8.1.6 模型对比/234

8.2 长文本处理 /234

8.2.1 概述/234

8.2.2 Transformer-XL/235

8.2.3 Reformer/238

8.2.4 Longformer /242

8.2.5 BigBird/243

8.2.6 模型对比/244

8.3 模型蒸馏与压缩 / 244

8.3.1 概述/244

8.3.2 DistilBERT /246

8.3.3 TinyBERT/ 248

8.3.4 MobileBERT /250

8.3.5 TextBrewer/252

8.4 生成模型/ 257

8.4.1 BART / 257

8.4.2 UniLM/260

8.4.3 T5 /263

8.4.4 GPT-3/264

8.4.5 可控文本生成 /265

8.5 小结/267


第9 章多模态融合的预训练模型/269

9.1 多语言融合/ 270

9.1.1 多语言BERT /270

9.1.2 跨语言预训练语言模型 /272

9.1.3 多语言预训练语言模型的应用/273

9.2 多媒体融合/274

9.2.1 VideoBERT /274

9.2.2 VL-BERT / 275

9.2.3 DALL·E/ 275

9.2.4 ALIGN/276

9.3 异构知识融合/276

9.3.1 融入知识的预训练/277

9.3.2 多任务学习 / 282

9.4 更多模态的预训练模型/285

9.5 小结/ 285

参考文献/287

术语表/297


查看全部↓

精彩书摘

预训练模型并不是自然语言处理领域的“首创”技术。在计算机视觉(ComputerVision,CV)领域,以ImageNet[14] 为代表的大规模图像数据为图像识别、图像分割等任务提供了良好的数据基础。因此,在计算机视觉领域,通常会使用ImageNet进行一次预训练,让模型从海量图像中充分学习如何从图像中提取特征。然后,会根据具体的目标任务,使用相应的领域数据精调,使模型进一步“靠近”目标任务的应用场景,起到领域适配和任务适配的作用。这好比人们在小学、初中和高中阶段会学习数学、语文、物理、化学和地理等基础知识,夯实基本功并构建基本的知识体系(预训练阶段)。而当人们步入大学后,将根据选择的专业(目标任务)学习某一领域更深层次的知识(精调阶段)。从以上介绍中可以看出,“预训练+ 精调”模式在自然语言处理领域的兴起并非偶然现象。

由于自然语言处理的核心在于如何更好地建模语言,所以在自然语言处理领域中,预训练模型通常指代的是预训练语言模型。广义上的预训练语言模型可以泛指提前经过大规模数据训练的语言模型,包括早期的以Word2vec、GloVe 为代表的静态词向量模型,以及基于上下文建模的CoVe、ELMo 等动态词向量模型。在2018 年,以GPT 和BERT 为代表的基于深层Transformer 的表示模型出现后,预训练语言模型这个词才真正被大家广泛熟知。因此,目前在自然语言处理领域中提到的预训练语言模型大多指此类模型。预训练语言模型的出现使得自然语言处理进入新的时代,也被认为是近些年来自然语言处理领域中的里程碑事件。相比传统的文本表示模型,预训练语言模型具有“三大”特点——大数据、大模型和大算力。接下来介绍这“三大”特点代表的具体含义。

1. 大数据

“工欲善其事,必先利其器。”要想学习更加丰富的文本语义表示,就需要获取文本在不同上下文中出现的情况,因此大规模的文本数据是必不可少的。获取足够多的大规模文本数据是训练一个好的预训练语言模型的开始。因此,预训练数据需要讲究“保质”和“保量”。

•“保质”是希望预训练语料的质量要尽可能高,避免混入过多的低质量语料。这与训练普通的自然语言处理模型的标准基本是一致的;

•“保量”是希望预训练语料的规模要尽可能大,从而获取更丰富的上下文信息。

在实际情况中,预训练数据往往来源不同。精细化地预处理所有不同来源的数据是非常困难的。因此,在预训练数据的准备过程中,通常不会进行非常精细化地处理,仅会预处理语料的共性问题。同时,通过增大语料规模进一步稀释低质量语料的比重,从而降低质量较差的语料对预训练过程带来的负面影响。

2. 大模型

在有了大数据后,就需要有一个足以容纳这些数据的模型。数据规模和模型规模在一定程度上是正相关的。当在小数据上训练模型时,通常模型的规模不会太大,以避免出现过拟合现象。而当在大数据上训练模型时,如果不增大模型规模,可能会造成新的知识无法存放的情况,从而无法完全涵盖大数据中丰富的语义信息。因此,需要一个容量足够大的模型来学习和存放大数据中的各种特征。在机器学习中,“容量大”通常指的是模型的“参数量大”。那么,如何设计这样一个参数量较大的模型呢?这里主要考虑以下两个方面。

• 模型需要具有较高的并行程度,以弥补大模型带来的训练速度下降的问题;

• 模型能够捕获并构建上下文信息,以充分挖掘大数据文本中丰富的语义信息。

综合以上两点条件,基于Transformer 的神经网络模型成为目前构建预训练语言模型的最佳选择。首先,Transformer 模型具有较高的并行程度。Transformer 核心部分的多头自注意力机制(Multi-head Self-attention)[15] 不依赖于顺序建模,因此可以快速地并行处理。与此相反,传统的神经网络语言模型通常基于循环神经网络(RNN),而RNN 需要按照序列顺序处理,并行化程度较低。其次,Transformer 中的多头自注意力机制能够有效地捕获不同词之间的关联程度,并且能够通过多头机制从不同维度刻画这种关联程度,使得模型能够得到更加精准的计算结果。因此,主流的预训练语言模型无一例外都使用了Transformer 作为模型的主体结构。

3. 大算力

即使拥有了大数据和大模型,但如果没有与之相匹配的大算力,预训练语言模型也很难得以实现。为了训练预训练语言模型,除了大家熟知的深度学习计算设备——图形处理单元(Graphics Processing Unit, GPU),还有后起之秀——张量处理单元(Tensor Processing Unit, TPU)。下面就这两种常见的深度学习计算设备进行简单的介绍。


查看全部↓

前言/序言

推荐序


自然语言处理的目标是使得机器具有和人类一样的语言理解与运用能力。在过去的十年里,自然语言处理经历了两次里程碑式的重要发展。第一次是深度学习的勃兴,使得传统的特征工程方法被摒弃,而基于深度神经网络的表示学习迅速成为自然语言处理的主流。第二次则是2018 年以来大规模预训练语言模型的应用,开启了基于“预训练+ 精调”的新一代自然语言处理范式。每一次的发展都为自然语言处理系统的能力带来了巨大的进步。与此同时,这些令人欣喜的发展也带给我们很多关于语言智能的更本质的思考。由车万翔等人所著的《自然语言处理:基于预训练模型的方法》一书从预训练模型的角度对这两次重要的发展进行了系统性的论述,能够帮助读者深入理解这些技术背后的原理、相互之间的联系以及潜在的局限性,对于当前学术界和工业界的相关研究与应用都具有重要的价值。

本书包括三部分,共9 章。书中从自然语言处理与神经网络的基础知识出发,沿着预训练模型的发展轨迹系统讨论了静态词向量、动态词向量,以及语言模型的预训练方法,还深入讨论了模型优化、蒸馏与压缩、生成模型、多模态融合等前沿进展,内容上兼具广度与深度。本书作者车万翔等人研发的语言技术平台LTP,是国内自然语言处理领域较早、影响力大且仍在不断发展完善的开源平台之一。LTP 的“进化”历程也对应着作者对于自然语言处理不同时期范式变迁的思考与实践——从最初发


自然语言处理:基于预训练模型的方法的评论 (共 条)

分享到微博请遵守国家法律