《智能系统与技术丛书 深入浅出Embedding 原理解析与应用实践》吴茂贵,王红星作|(epub+azw3+mobi+pdf)电子书下载
图书名称:《智能系统与技术丛书 深入浅出Embedding 原理解析与应用实践》
- 【作 者】吴茂贵,王红星作
- 【丛书名】智能系统与技术丛书
- 【页 数】 308
- 【出版社】 北京:机械工业出版社 , 2021.06
- 【ISBN号】978-7-111-68064-2
- 【分 类】人工神经网络-研究
- 【参考文献】 吴茂贵,王红星作. 智能系统与技术丛书 深入浅出Embedding 原理解析与应用实践. 北京:机械工业出版社, 2021.06.
图书封面:
图书目录:
《智能系统与技术丛书 深入浅出Embedding 原理解析与应用实践》内容提要:
这是一本系统、全面、理论与实践相结合的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
Embedding基础知识
■第1章万物皆可嵌入
■第2章获取Embedding的方法■第3章计算机视觉处理■第4章文本及序列处理
·第5章注意力机制
■第6章从Word Embedding到ELMo■第7章从ELMo到BERT和GPT
■第8章BERT的优化方法
■第9章推荐系统
:■后■■■■司量■■■■■■■■■■面■面■■■国■量■
■
■■
四磨
Chocr1第1章
万物皆可嵌入
近些年在机器学习、深度学习等领域,嵌入(Embedding)技术可谓发展迅猛、遍地开花。那么,嵌入是什么?嵌入为何能引起大家的极大关注?嵌入有哪些新进展?接下来会对这些问题进行说明。
简单来说,嵌人是用向量表示一个物体,这个物体可以是一个单词、一条语句、一个序列、一件商品、一个动作、一本书、一部电影等,可以说嵌入涉及机器学习、深度学习的绝大部分对象。这些对象是机器学习和深度学习中最基本、最常用、最重要的对象,正因如此,如何有效表示、学习这些对象就显得非常重要。尤其word2vec这样的Word
Embedding的广泛应用,更是带来了更大范围的延伸和拓展,嵌入技术由最初的自然语言处理领域向传统机器学习、搜索排序、推荐、知识图谱等领域延伸,具体表现为由Wod
Embedding向Item Embedding、Graph Embedding、Categorical variables Embedding等方向延伸。
Embedding本身也在不断更新,由最初表现单一的静态向表现更丰富的动态延伸和拓展。具体表现为由静态的Word Embedding向ELMo、Transformer、GPT、BERT、XLNet、
ALBERT等动态的预训练模型延伸。
上面介绍了近几年出现的一些英文热词,那么,这些词语具体表示什么含义?功能是什么?如何使用?这就是本书接下来要介绍的主要内容。本章主要涉及如下内容:
口处理序列问题的一般步骤▣Word Embedding▣Item Embedding
口用Embedding处理分类特征▣Graph Embedding
第1章万物皆可嵌入◆3
Contextual Word Embedding
口使用Word Embedding实现中文自动摘要
1.1处理序列问题的一般步骤
序列问题是非常常见的,如自然语言处理、网页浏览、时间序列等都与序列密不可分。因此,如何处理序列问题、如何挖掘序列中隐含的规则和逻辑非常重要
以自然语言处理为例。假设你拿到一篇较长文章或新闻报道之类的语言材料,要求用
自然语言处理(NLP)方法提炼出该材料的摘要信息,你该如何处理?需要考虑哪些内容?
涉及哪些步骤?先从哪一步开始?
拿到一份语言材料后,不管是中文还是英文,首先需要做一些必要的清理工作,如清理特殊符号、格式转换、过滤停用词等,然后进行分词、索引化,再利用相关模型或算法把单词、词等标识符向量化,最后输出给下游任务,具体处理步骤如图1-1所示。
特征工程
分词工具
清理
Jieba
格式化
哈工大分词器
过滤停用词
序列或
NLTK
语料
预处理
分词
下游任务
推荐
静态向量
搜索排序
One-Hot
自然语言理解
word2vec
序列标注
Embedding层
分类
GloVe
词嵌入
预测
索引化
或微调
句子关系判断
动态向量
或特征
自然语言生成
ELMo
提取
问答
Transformer
机器翻译
GPT
自动摘要
BERT
XLNet
ALBERT
图1-1序列问题的一般处理步骤
在图1-1中,词嵌入或预训练模型是关键,它们的质量好坏直接影响下游任务的效果。词嵌入与训练模型阶段涉及的算法、模型较多,近几年也取得了长足发展,如wod2vec、
Transformer、BERT、ALBERT等方法,刷新了自然语言处理、语言识别、推荐任务、搜索排序等任务在性能方面的纪录。下面将从最基本的word2vec一Word Embedding开始介绍。
4第一部分Embedding基础知识
1.2 Word Embedding
因机器无法直接接收单词、词语、字符等标识符(toke),所以把标识符数值化一直是人们研究的内容。开始时人们用整数表示各标识符,这种方法简单但不够灵活,后来人们开始用独热编码(One-Hot Encoding)来表示。这种编码方法虽然方便,但非常稀疏,属于硬编码,且无法重载更多信息。此后,人们想到用数值向量或标识符嵌人(Token
Embedding)来表示,即通常说的词嵌入(Word Embedding),又称为分布式表示。
不过Word Embedding方法真正流行起来,还要归功于Google的word2vec。接下来我们简单了解下word2vec的原理及实现方法
1.2.1word2vec之前
从文本、标识符、独热编码到向量表示的整个过程,可以用图1-2表示。
文本
越努力就越幸运
分词
越
努力
就
越
幸运
索引化
0
1
2
0
3
1
0
0
1
0
独热
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0.1
0.2
0.0
0.1
0.7
向量表示
0.5
0.3
0.6
0.5
0.5
02
1.0
0.4
0.2
0.0
图1-2从文本、标识符、独热编码到向量表示
从图1-2可以看出,独热编码是稀疏、高维的硬编码,如果一个语料有一万个不同的词,那么每个词就需要用一万维的独热编码表示。如果用向量或词嵌入表示,那么这些向量就是低维、密集的,且这些向量值都是通过学习得来的,而不是硬性给定的。至于词嵌入的学习方法,大致可以分为两种
1.利用平台的Embedding层学习词嵌入
在完成任务的同时学习词嵌人,例如,把Embedding作为第一层,先随机初始化这些词向量,然后利用平台(如PyTorch、TensorFlow等平台)不断学习(包括正向学习和反向学习),最后得到需要的词向量。代码清单l-l为通过PyTorch的nn.Embedding层生成词嵌
第1章万物皆可嵌入5
入的简单示例。
代码清单1-1使用Embedding的简单示例
from torch import nnimport torchimport jieba
import numpy as np
raw text=""越努力就越幸运""n#利用jieba进行分词
words list(jieba.cut(raw text))print (words)
#对标识符去重,生成由索引:标识符构成的字典
word to ix =i:word for i,word in enumerate(set (words))}#定义嵌入维度,并用正态分布,初始化词嵌入
#nn.Embedding模块的输入是一个标注的下标列表,输出是对应的词嵌入embeds nn.Embedding (4,3)print (embeds.weight[])#获取字典的关键字
keys=word to ix.keys()keys list=list(keys)
#把所有关键字构成的列表转换为张量
tensor value=torch.LongTensor(keys list)#把张量输入Embedding层,通过运算得到各标识符的词嵌入embeds(tensor_value)
运行结果:
【'越,·努力',·就,'越,·幸运]
tensor([-0.5117,-0.5395,0.7305],grad fn=
【-0.7689,0.0985,-0.73981,[-0.3772,0.7987,2.1869],
【-0.4592,
1.0422,-1.4532]],grad fn=
2.使用预训练的词嵌入
利用在较大语料上预训练好的词嵌入或预训练模型,把这些词嵌入加载到当前任务或模型中。预训练模型很多,如word2vec、ELMo、BERT、XLNet、ALBERT等,这里我们先介绍word2vec,后续将介绍其他预训练模型,具体可参考1.6节。
1.2.2CBOW模型
在介绍word2vec原理之前,我们先看一个简单示例。示例展示了对一句话的两种预测方式:
假设:今天下午2点钟搜索引擎组开组会。
方法1(根据上下文预测目标值)】
对于每一个单词或词(统称为标识符),使用该标识符周围的标识符来预测当前标识符
6第一部分Embedding基础知识
生成的概率。假设目标值为“2点钟”,我们可以使用“2点钟”的上文“今天、下午”和“2点钟”的下文“搜索、引擎、组”来生成或预测目标值。方法2(由目标值预测上下文)
对于每一个标识符,使用该标识符本身来预测生成其他词汇的概率。如使用“2点钟”来预测其上下文“今天、下午、搜索、引擎、组”中的每个词。
两种预测方法的共同限制条件是,对于相同的输入,输出每个标识符的概率之和为1。它们分别对应word2vec的两种模型,即CBOW模型(Continuous Bag-Of-Words Model)和Skip-Gram模型。根据上下文生成目标值(即方法1)时,使用CBOW模型;根据目标值生成上下文(即方法2)时,采用Skip-Gram模型。
CBOW模型包含三层:输入层、映射层和输出层。具体架构如图1-3所示。CBOW模
型中的w()为目标词,在已知它的上下文w(t-2)、w(t-1)、w(t+1)、w(t+2)的前提下预测词w(t)出现的概率,即p(w/context(w)。目标函数为:
C=∑logp(context(w)
(1.1)
输入层
映射层
输出层
w(1-2
求和
w(1+2
图1-3CBOW模型
CBOW模型其实就是根据某个词前后的若干词来预测该词,也可以看成是多分类。最
朴素的想法就是直接使用Softmax来分别计算每个词对应的归一化的概率。但对于动辄十几万词汇量的场景,使用Softmax计算量太大,此时可以使用一种称为二分类组合形式的
Hierarchical Softmax(输出层为一棵二叉树)来优化。
1.2.3Skip-Gram模型
Skip-Gram模型同样包含三层:输入层、映射层和输出层。具体架构如图1-4所示。
···试读结束···
作者:唐小刚
链接:https://www.58edu.cc/article/1521804386622255105.html
文章版权归作者所有,58edu信息发布平台,仅提供信息存储空间服务,接受投稿是出于传递更多信息、供广大网友交流学习之目的。如有侵权。联系站长删除。