深入浅出Embedding原理解析与应用实践
吴茂贵,王红星 著
吴茂贵
资深大数据和人工智能技术专家,在BI、数据挖掘与分析、数据仓库、机器学习等领域工作超过20年。在基于Spark、TensorFlow、PyTorch、Keras等的机器学习和深度学习方面有大量的工程实践实践,对Embedding有深入研究。
著有《深度实践Spark机器学习》《Python深度学习:基于TensorFlow》《Python深度学习:基于Pytorch》等多部著作,广受读者好评。
王红星
高级数据科学家,任职于博世(中国)投资有限公司苏州分公司,负责BOSCH数据湖,数据分析与人工智能相关的产品与服务的设计和开发。在大数据、机器学习、人工智能方面有丰富的实践经验。
内容简介
这是一本系统、全面、理论与实践相结合的Embedding技术指南,由资深的AI技术专家和高级数据科学家撰写,得到了黄铁军、韦青、张峥、周明等中国人工智能领域的领军人物的一致好评和推荐。
在内容方面,本书理论与实操兼顾,一方面系统讲解了Embedding的基础、技术、原理、方法和性能优化,一方面详细列举和分析了Embedding在机器学习性能提升、中英文翻译、推荐系统等6个重要场景的应用实践;在写作方式上,秉承复杂问题简单化的原则,尽量避免复杂的数学公式,尽量采用可视化的表达方式,旨在降低本书的学习门槛,让读者能看得完、学得会。
全书一共16章,分为两个部分:
第1部分(第1~9章)Embedding理论知识
主要讲解Embedding的基础知识、原理以及如何让Embedding落地的相关技术,如TensorFlow和PyTorch中的Embedding层、CNN算法、RNN算法、迁移学习方法等,重点介绍了Transformer和基于它的GPT、BERT预训练模型及BERT的多种改进版本等。
第二部分(第10 ~16章)Embedding应用实例
通过6个实例介绍了Embedding及相关技术的实际应用,包括如何使用Embedding提升传统机器学习性,如何把Embedding技术应用到推荐系统中,如何使用Embedding技术提升NLP模型的性能等。
前言
第一部分 Embedding基础知识
第1章 万物皆可嵌入2
1.1 处理序列问题的一般步骤3
1.2 Word Embedding4
1.2.1 word2vec之前4
1.2.2 CBOW模型5
1.2.3 Skip-Gram模型6
1.2.4 可视化Skip-Gram模型实现过程8
1.2.5 Hierarchical Softmax优化14
1.2.6 Negative Sampling优化15
1.3 Item Embedding16
1.3.1 微软推荐系统使用Item Embedding16
1.3.2 Airbnb推荐系统使用Item Embedding17
1.4 用Embedding处理分类特征17
1.5 Graph Embedding20
1.5.1 DeepWalk方法21
1.5.2 LINE方法21
1.5.3 node2vec方法23
1.5.4 Graph Embedding在阿里的应用23
1.5.5 知识图谱助力推荐系统实例26
1.6 Contextual Word Embedding26
1.6.1 多种预训练模型概述27
1.6.2 多种预训练模型的发展脉络29
1.6.3 各种预训练模型的优缺点29
1.6.4 常用预训练模型30
1.6.5 Transformer的应用32
1.7 使用Word Embedding实现中文自动摘要35
1.7.1 背景说明35
1.7.2 预处理中文语料库35
1.7.3 生成词向量36
1.7.4 把文档的词转换为词向量36
1.7.5 生成各主题的关键词38
1.7.6 查看运行结果39
1.8 小结40
第2章 获取Embedding的方法41
2.1 使用PyTorch的Embedding Layer41
2.1.1 语法格式41
2.1.2 简单实例43
2.1.3 初始化44
2.2 使用TensorFlow 2.0的Embedding Layer45
2.2.1 语法格式45
2.2.2 简单实例45
2.3 从预训练模型获取Embedding47
2.3.1 背景说明47
2.3.2 下载IMDB数据集47
2.3.3 进行分词47
2.3.4 下载并预处理GloVe词嵌入48
2.3.5 构建模型49
2.3.6 训练模型50
2.3.7 可视化训练结果50
2.3.8 不使用预训练词嵌入的情况51
2.4 小结53
第3章 计算机视觉处理54
3.1 卷积神经网络54
3.1.1 卷积网络的一般架构55
3.1.2 增加通道的魅力56
3.1.3 加深网络的动机57
3.1.4 残差连接58
3.2 使用预训练模型59
3.2.1 迁移学习简介59
3.2.2 使用预训练模型的方法60
3.3 获取预训练模型63
3.4 使用PyTorch实现数据迁移实例64
3.4.1 特征提取实例64
3.4.2 微调实例67
3.5 小结69
第4章 文本及序列处理70
4.1 循环网络的基本结构70
4.1.1 标准循环神经网络71
4.1.2 深度循环神经网络72
4.1.3 LSTM网络结构72
4.1.4 GRU网络结构73
4.1.5 双向循环神经网络74
4.2 构建一些特殊模型75
4.2.1 Encoder-Decoder模型75
4.2.2 Seq2Seq模型77
4.3 小结77
第5章 注意力机制78
5.1 注意力机制概述78
5.1.1 两种常见的注意力机制79
5.1.2 注意力机制的本质79
5.2 带注意力机制的Encoder-Decoder模型81
5.2.1 引入注意力机制81
5.2.2 计算注意力分配值83
5.2.3 使用PyTorch实现带注意力机制的Encoder-Decoder模型85
5.3 可视化Transformer88
5.3.1 Transformer的顶层设计89
5.3.2 Encoder与Decoder的输入91
5.3.3 高并发长记忆的实现91
5.3.4 为加深Transformer网络层保驾护航的几种方法98
5.3.5 如何自监督学习98
5.4 使用PyTorch实现Transformer101
5.4.1 Transformer背景介绍101
5.4.2 构建Encoder-Decoder模型101
5.4.3 构建Encoder102
5.4.4 构建Decoder105
5.4.5 构建MultiHeadedAttention107
5.4.6 构建前馈网络层109
5.4.7 预处理输入数据109
5.4.8 构建完整网络112
5.4.9 训练模型113
5.4.10 实现一个简单实例117
5.5 Transformer-XL119
5.5.1 引入循环机制119
5.5.2 使用相对位置编码121
5.5.3 Transformer-XL计算过程122
5.6 使用PyTorch构建Transformer-XL123
5.6.1 构建单个Head Attention123
5.6.2 构建MultiHeadAttention126
5.6.3 构建Decoder129
5.7 Reformer130
5.7.1 使用局部敏感哈希130
5.7.2 使用可逆残差网络131
5.8 小结132
第6章 从Word Embedding到ELMo133
6.1 从word2vec到ELMo133
6.2 可视化ELMo原理134
6.2.1 字符编码层135
6.2.2 双向语言模型137
6.2.3 生成ELMo词嵌入138
6.3 小结139
第7章 从ELMo到BERT和GPT140
7.1 ELMo的优缺点140
7.2 可视化BERT原理141
7.2.1 BERT的整体架构141
7.2.2 BERT的输入143
7.2.3 掩码语言模型144
7.2.4 预测下一个句子145
7.2.5 微调146
7.2.6 使用特征提取方法147
7.3 使用PyTorch实现BERT148
7.3.1 BERTEmbedding类的代码149
7.3.2 TransformerBlock类的代码149
7.3.3 构建BERT的代码150
7.4 可视化GPT原理151
7.4.1 GPT简介151
7.4.2 GPT的整体架构151
7.4.3 GPT的模型结构152
7.4.4 GPT-2的Multi-Head与BERT的Multi-Head之间的区别153
7.4.5 GPT-2的输入153
7.4.6 GPT-2计算遮掩自注意力的详细过程154
7.4.7 输出156
7.4.8 GPT与GPT-2的异同156
7.5 GPT-3简介157
7.6 小结160
第8章 BERT的优化方法161
8.1 可视化XLNet原理162
8.1.1 排列语言模型简介162
8.1.2 使用双流自注意力机制163
8.1.3 融入Transformer-XL的理念164
8.1.4 改进后的效果164
8.2 ALBERT方法164
8.2.1 分解Vocabulary Embedding矩阵165
8.2.2 跨层共享参数167
8.2.3 用SOP代替NSP方法168
8.2.4 其他优化方法169
8.3 ELECTRA方法170
8.3.1 ELECTRA概述170
8.3.2 RTD结构171
8.3.3 损失函数171
8.3.4 ELECTRA与GAN的异同172
8.3.5 评估172
8.4 小结173
第9章 推荐系统174
9.1 推荐系统概述174
9.1.1 推荐系统的一般流程174
9.1.2 常用推荐算法175
9.2 协同过滤176
9.2.1 基于用户的协同过滤176
9.2.2 基于物品的协同过滤177
9.3 深度学习在推荐系统中的应用178
9.3.1 协同过滤中与神经网络结合178
9.3.2 融入多层感知机的推荐系统179
9.3.3 融入卷积网络的推荐系统180
9.3.4 融入Transformer的推荐系统181
9.4 小结183
第二部分 Embedding应用实例
第10章 用Embedding表现分类特征186
10.1 项目背景186
10.1.1 项目概述186
10.1.2 数据集说明187
10.2 TensorFlow 2详细实现188
10.2.1 导入TensorFlow和其他库188
10.2.2 导入数据集并创建dataframe188
10.2.3 将dataframe拆分为训练、验证和测试集189
10.2.4 用tf.data创建输入流水线189
10.2.5 TensorFlow提供的几种处理特征列的方法190
10.2.6 选择特征193
10.2.7 创建网络的输入层194
10.2.8 创建、编译和训练模型194
10.2.9 可视化训练过程195
10.2.10 测试模型196
10.3 小结197
第11章 用Embedding提升机器学习性能198
11.1 项目概述198
11.1.1 数据集简介199
11.1.2 导入数据200
11.1.3 预处理数据201
11.1.4 定义公共函数203
黄铁军 北京智源人工智能研究院院长
韦 青 微软中国首席技术官
张 峥 亚马逊云计算上海AI研究院院长
周 明 中国计算机学会副理事长
联袂推荐