首页>参考读物>计算机科学与技术>人工智能

深入浅出Embedding:原理解析与应用实践
作者 : 吴茂贵,王红星 著
出版日期 : 2021-05-25
ISBN : 978-7-111-68064-2
定价 : 99.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 320
开本 : 16
原书名 :
原出版社:
属性分类: 店面
包含CD : 无CD
绝版 : 未绝版
图书简介

内容简介
这是一本系统、全面、理论与实践相结合的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的技术、原理、方法、性能优化,
以及它在6大重要场景的应用实践
黄铁军  北京智源人工智能研究院院长
韦  青  微软中国首席技术官
张  峥  亚马逊云计算上海AI研究院院长    
周  明  中国计算机学会副理事长
联袂推荐

图书前言

为什么写这本书
近年来,视觉处理和自然语言处理(NLP)技术都取得了不小的进步。更可喜的是,这些新技术的落地和应用也带动了相关领域如传统机器学习、推荐、排序等的快速发展。
这些新技术的背后都离不开Embedding(嵌入)技术,Embedding已成为这些技术的基本元素和核心操作。Embedding起源于Word Embedding,经过多年的发展,已取得长足进步。从横向发展来看,由原来单纯的Word Embedding,发展成现在的Item Embedding、Entity Embedding、Graph Embedding、Position Embedding、Segment Embedding等;从纵向发展来看,由原来静态的Word Embedding发展成动态的预训练模型,如ELMo、BERT、GPT、GPT-2、GPT-3、ALBERT、XLNet等,这些预训练模型可以通过微调服务下游任务。Embedding不再固定不变,从而使这些预训练模型可以学习到新的语义环境下的语义,高效完成下游的各种任务,如分类、问答、摘要生成、阅读理解等,其中有很多任务的完成效率已超过人工完成的平均水平。
这些技术不但强大,而且非常实用。掌握这些技术因而成为当下很多AI技术爱好者的迫切愿望。本书就是为实现广大AI技术爱好者这个愿望而写的!
虽然本书不乏新概念、新内容,但仍采用循序渐进的方法。为了让尽可能多的人掌握这些技术,书中先介绍相关基础知识,如语言模型、迁移学习、注意力机制等,所以无须担心没有基础看不懂本书。然后,本书通过多个典型实例,使用最新版本的PyTorch或TensorFlow实现一些核心代码,并从零开始介绍如何实现这些实例,如利用Transformer进行英译中、使用BERT实现对中文语句的分类、利用GPT-2实现文本生成等。为了帮助大家更好地理解各种原理和逻辑,书中尽量采用可视化的讲解方法,并辅以相关关键公式、代码实例进一步说明。总而言之,无须担心没有高等数学背景无法看懂、看透本书。
本书特色
本书把基本原理与代码实现相结合,并精准定位切入点,将复杂问题简单化。书中使用大量可视化方法说明有关原理和逻辑,并用实例说明使抽象问题具体化。
读者对象
对机器学习、深度学习,尤其是NLP最新进展感兴趣的在校学生、在职人员。
有一定PyTorch、TensorFlow基础,并希望通过解决一些实际问题来进一步提升这方面水平的AI技术爱好者。
对机器学习、推荐排序、深度学习等前沿技术感兴趣的读者。
如何阅读本书
本书分为两部分,共16章。
第一部分为Embedding基础知识(第1~9章),重点介绍了Embedding技术的发展历史及最新应用,并对各种预训练模型涉及的基础知识做了详细说明,如语言模型、迁移学习、注意力机制等。第1章说明万物皆可嵌入;第2章讲解如何获取Embedding;第3、4章分别介绍视觉处理、文本处理方面的基础知识;第5章为本书重点,介绍了多种注意力机制;第6~8章介绍了ELMo、BERT、GPT、XLNet等多种预训练模型;第9章介绍了推荐排序系统。
第二部分为Embedding应用实例(第10~16章),以实例为主介绍了Embedding技术的多种应用,以及使用新技术解决NLP方面的一些问题。第10章介绍如何使用Embedding处理机器学习中的分类特征;第11章介绍如何使用Embedding提升机器学习性能;第12章介绍如何使用Transformer实现将英文翻译成中文;第13章介绍Embedding在推荐系统中的前沿应用;第14章介绍如何使用BERT实现中文语句分类问题;第15章介绍如何使用GPT-2实现文本生成;第16章是对Embedding技术的总结。
勘误和支持
由于笔者水平有限,加之编写时间仓促,书中难免出现错误或不准确的地方,恳请读者批评指正。你可以通过访问http://www.feiguyunai.com下载代码和数据,也可以通过邮箱(wumg3000@163.com)进行反馈。非常感谢你的支持和帮助,也非常欢迎大家加入图书群(QQ:799038260)进行在线交流。
致谢
在本书编写过程中,我得到了很多同事、朋友、老师和同学的支持!感谢刘未昕、张粤磊、张魁等同事的支持(他们负责整个环境的搭建和维护),感谢博世王冬的鼓励和支持!感谢上海交大慧谷的程国旗老师,上海大学的白延琴老师、李常品老师,上海师范大学的田红炯老师、李昭祥老师,赣南师大的许景飞老师等的支持和帮助!
感谢机械工业出版社杨福川老师、李艺老师给予本书的大力支持和帮助。
最后,感谢我的爱人赵成娟在繁忙的教学之余帮助审稿,并提出了不少改进意见和建议。

吴茂贵
2021年3月31日于上海

上架指导

人工智能/智能系统

封底文字

Embedding(嵌入)是当下人工智能领域的热点,并发挥着越来越重要的作用。本书从Embedding基础概念和方法讲起,逐渐深入其原理,并以应用实例作为辅助,是快速了解并掌握Embedding的参考指南。
黄铁军
中国人工智能学会会士/北京智源人工智能研究院院长
机器学习的范式一直在迅速发展,讲解机器学习原理与应用的图书可谓汗牛充栋,但是很少看到把Embedding技术讲解透彻的书。本书深入浅出地讲解了Embedding的来龙去脉,采用大量案例和可视化的写作方法,降低了Embedding理论和技术的学习门槛;同时将基本原理和代码实现相结合,能够帮助读者快速将理论与实践融会贯通。
韦 青
微软中国首席技术官
如果模型是大楼,那么Embedding就是砖瓦。Embedding是人工智能领域的基本元素和核心操作,我个人认为也是脑和类脑衔接的桥梁。本书对Embedding基础知识的讲解比较全面,也有很多实战的例子,涵盖了目前比较常用的视觉和自然语言处理中的Embedding范式及其在模型中的应用,比较适合初学者。推荐。
张 峥
上海纽约大学计算机系终身教授,亚马逊云计算上海AI研究院院长
Embedding及其相关模型发展很快,已成为深度学习领域的研究热点和重点。本书不仅有针对性地讲解了Embedding的基础知识和原理,而且给出了大量应用案例,如用Embedding提升机器学习性能和NLP模型性能等,原理与实践紧密结合。
周 明
创新工场首席科学家/中国计算机学会副理事长/ACL主席(2019)

作者简介

吴茂贵,王红星 著:作者简介
吴茂贵
资深大数据和人工智能技术专家,在BI、数据挖掘与分析、数据仓库、机器学习等领域工作超过20年。在基于Spark、TensorFlow、PyTorch、Keras等的机器学习和深度学习方面有大量的工程实践实践,对Embedding有深入研究。
著有《深度实践Spark机器学习》《Python深度学习:基于TensorFlow》《Python深度学习:基于Pytorch》等多部著作,广受读者好评。
王红星
?高级数据科学家,任职于博世(中国)投资有限公司苏州分公司,负责BOSCH数据湖,数据分析与人工智能相关的产品与服务的设计和开发。在大数据、机器学习、人工智能方面有丰富的实践经验。

图书目录

前言
第一部分 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
11.2 使用Embedding提升神经网络性能205
11.2.1 基于独热编码的模型205
11.2.2 基于Embedding的模型207
11.3 构建XGBoost模型211
11.4 使用Embedding数据的XGBoost模型212
11.5 可视化Embedding数据213
11.6 小结215
第12章 用Transformer实现英译中216
12.1 TensorFlow 2+实例概述216
12.2 预处理数据217
12.2.1 下载数据217
12.2.2 分割数据219
12.2.3 创建英文语料字典220
12.2.4 创建中文语料字典222
12.2.5 定义编码函数222
12.2.6 过滤数据223
12.2.7 创建训练集和验证集223
12.3 构建Transformer模型225
12.3.1 Transformer模型架构图225
12.3.2 架构说明226
12.3.3 构建scaled_dot_product_attention模块226
12.3.4 构建MultiHeadAttention模块227
12.3.5 构建point_wise_feed_forward_network模块228
12.3.6 构建EncoderLayer模块228
12.3.7 构建Encoder模块229
12.3.8 构建DecoderLayer模块230
12.3.9 构建Decoder模块231
12.3.10 构建Transformer模型232
12.3.11 定义掩码函数233
12.4 定义损失函数236
12.5 定义优化器237
12.6 训练模型239
12.6.1 实例化Transformer239
12.6.2 设置checkpoint239
12.6.3 生成多种掩码240
12.6.4 定义训练模型函数240
12.6.5 训练模型241
12.7 评估预测模型242
12.7.1 定义评估函数242
12.7.2 测试翻译几个简单语句243
12.8 可视化注意力权重243
12.9 小结245
第13章 Embedding技术在推荐系统中的应用246
13.1 Embedding在Airbnb推荐系统中的应用246
13.2 Transformer在阿里推荐系统中的应用249
13.3 BERT在美团推荐系统中的应用250
13.4 小结253
第14章 用BERT实现中文语句分类254
14.1 背景说明254
14.1.1 查看中文BERT字典里的一些信息255
14.1.2 使用tokenizer分割中文语句256
14.2 可视化BERT注意力权重256
14.2.1 BERT对MASK字的预测256
14.2.2 导入可视化需要的库257
14.2.3 可视化258
14.3 用BERT预训练模型微调下游任务259
14.3.1 准备原始文本数据259
14.3.2 将原始文本转换成BERT的输入格式260
14.3.3 定义读取数据的函数261
14.3.4 读取数据并进行数据转换263
14.3.5 增加一个批量维度264
14.3.6 查看一个批次数据样例265
14.3.7 微调BERT完成下游任务265
14.3.8 查看微调后模型的结构266
14.4 训练模型267
14.4.1 定义预测函数267
14.4.2 训练模型268
14.5 测试模型269
14.5.1 用新数据测试模型269
14.5.2 比较微调前后的数据异同270
14.5.3 可视化注意力权重271
14.6 小结272
第15章 用GPT-2生成文本273
15.1 GPT-2概述273
15.2 用GPT-2生成新闻275
15.2.1 定义随机选择函数275
15.2.2 使用预训练模型生成新闻275
15.3 微调GPT-2生成戏剧文本277
15.3.1 读取文件277
15.3.2 对文件进行分词277
15.3.3 把数据集转换为可迭代对象278
15.3.4 训练模型278
15.3.5 使用模型生成文本279
15.4 小结280
第16章 Embedding技术总结281
16.1 Embedding技术回顾281
16.1.1 Embedding表示281
16.1.2 多种学习Embedding表示的算法282
16.1.3 几种Embedding衍生技术283
16.1.4 Embedding技术的不足285
16.2 Embedding技术展望285
16.2.1 从Embedding的表示方面进行优化285
16.2.2 从Embedding的结构上进行优化286
16.3 小结286
附录A 基于GPU的TensorFlow 2+、PyTorch 1+升级安装287
附录B 语言模型307

教学资源推荐
作者: [奥]迪特尔·施马尔斯蒂格(Dieter Schmalstieg) [美]托比亚斯·霍勒尔(Tobias Höllerer) 著
作者: [澳] 萨尔曼·汗(Salman Khan) 侯赛因·拉哈马尼(Hossein Rahmani) 赛义德·阿法克·阿里·沙(Syed Afaq Ali Shah) 穆罕默德·本纳努恩(Mohammed Bennamoun) 著
作者: Joseph C. Giarratano, Gary D. Riley
参考读物推荐
作者: [美] 塞巴斯蒂安?拉施卡(Sebastian Raschka)著
作者: [美]挪亚·吉夫特(Noah Gift) 著
作者: 应忍冬 刘佩林 编著
作者: 王健宗 李泽远 何安珣 著