《智能系统与技术丛书 深入浅出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=)tensor([[-0.5117,-0.5395,0.7305],

【-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所示。

···试读结束···

阅读剩余
THE END