吴恩达Coursera深度学习课程 DeepLearning.ai 提炼笔记(5-2)-- NLP和词嵌入


作者大树先生
博客http://blog.csdn.net/koala_tree
知乎https://www.zhihu.com/people/dashuxiansheng
GitHubhttps://github.com/KoalaTree
2018 年 3 月 5 日


Ng最后一课发布了,撒花!以下为吴恩达老师 DeepLearning.ai 课程项目中,第五部分《序列模型》第二周课程“NLP和词嵌入”关键点的笔记。


同时我在知乎上开设了关于机器学习深度学习的专栏收录下面的笔记,以方便大家在移动端的学习。欢迎关注我的知乎:大树先生。一起学习一起进步呀!_


序列模型 — NLP和词嵌入

1. 词汇表征

在前面学习的内容中,我们表征词汇是直接使用英文单词来进行表征的,但是对于计算机来说,是无法直接认识单词的。为了让计算机能够能更好地理解我们的语言,建立更好的语言模型,我们需要将词汇进行表征。下面是几种不同的词汇表征方式:

one-hot 表征:

在前面的一节课程中,已经使用过了one-hot表征的方式对模型字典中的单词进行表征,对应单词的位置用1表示,其余位置用0表示,如下图所示:

还在路上,稍等...

one-hot表征的缺点:这种方法将每个词孤立起来,使得模型对相关词的泛化能力不强。每个词向量之间的距离都一样,乘积均为0,所以无法获取词与词之间的相似性和关联性。

特征表征:词嵌入

用不同的特征来对各个词汇进行表征,相对与不同的特征,不同的单词均有不同的值。如下例所示:

还在路上,稍等...

这种表征方式使得词与词之间的相似性很容易地表征出来,这样对于不同的单词,模型的泛化性能会好很多。下面是使用t-SNE算法将高维的词向量映射到2维空间,进而对词向量进行可视化,很明显我们可以看出对于相似的词总是聚集在一块儿:

还在路上,稍等...

2. 使用 Word Embeddings

Word Embeddings对不同单词进行了实现了特征化的表示,那么如何将这种表示方法应用到自然语言处理的应用中呢?

名字实体识别的例子:

如下面的一个句子中名字实体的定位识别问题,假如我们有一个比较小的数据集,可能不包含durain(榴莲)和cultivator(培育家)这样的词汇,那么我们就很难从包含这两个词汇的句子中识别名字实体。但是如果我们从网上的其他地方获取了一个学习好的word Embedding,它将告诉我们榴莲是一种水果,并且培育家和农民相似,那么我们就有可能从我们少量的训练集中,归纳出没有见过的词汇中的名字实体。

还在路上,稍等...

词嵌入的迁移学习:

有了词嵌入,就可以让我们能够使用迁移学习,通过网上大量的无标签的文本中学习到的知识,应用到我们少量文本训练集的任务中。下面是做词嵌入迁移学习的步骤:

  • 第一步:从大量的文本集合中学习word Embeddings(1-100B words),或者从网上下载预训练好的词嵌入模型;
  • 第二步:将词嵌入模型迁移到我们小训练集的新任务上;
  • 第三步:可选,使用我们新的标记数据对词嵌入模型继续进行微调。

词嵌入和人脸编码:

词嵌入和人脸编码之间有很奇妙的联系。在人脸识别领域,我们会将人脸图片预编码成不同的编码向量,以表示不同的人脸,进而在识别的过程中使用编码来进行比对识别。词嵌入则和人脸编码有一定的相似性。

还在路上,稍等...

但是不同的是,对于人脸识别,我们可以将任意一个没有见过的人脸照片输入到我们构建的网络中,则可输出一个对应的人脸编码。而在词嵌入模型中,所有词汇的编码是在一个固定的词汇表中进行学习单词的编码以及其之间的关系的。

3. 词嵌入的特性

类比推理特性:

词嵌入还有一个重要的特性,它还能够帮助实现类比推理。如下面的例子中,通过不同词向量之间的相减计算,可以发现不同词之间的类比关系,man——woman、king——queen,如下图所示:

还在路上,稍等...

这种思想帮助研究者们对词嵌入建立了更加深刻的理解和认识。

计算词与词之间的相似度,实际上是在多维空间中,寻找词向量之间各个维度的距离相似度。

还在路上,稍等...

以上面的单词为例:
e m a n − e w o m a n ≈ e k i n g − e ? e_{man} - e_{woman} \approx e_{king} - e_{?} emanewomanekinge?
对于上面的式子,我们寻找 e ? e_{?} e?,则相当于寻找下面两个结果的向量之间的最大相似度:
a r g max ⁡ ? s i m ( e ? , e k i n g − e m a n + e w o m a n ) arg \max_{?} sim(e_{?}, e_{king} - e_{man}+e_{woman}) arg?maxsim(e?,ekingeman+ewoman)

相似度函数:

  • 余弦相似度函数(Cosine similarity):也就是向量 u u u v v v的内积
    s i m ( u , v ) = u T v ∣ ∣ u ∣ ∣ 2 ∣ ∣ v ∣ ∣ 2 sim(u,v) = \dfrac{u^{T}v}{||u||_{2}||v||_{2}} sim(u,v)=u2v2uTv

  • 欧氏距离:
    ∣ ∣ u − v ∣ ∣ 2 ||u-v||^{2} uv2

4. 嵌入矩阵

在我们要对一个词汇表学习词嵌入模型时,实质上就是要学习这个词汇表对应的一个嵌入矩阵 E E E。当我们学习好了这样一个嵌入矩阵后,通过嵌入矩阵与对应词的one-hot向量相乘,

  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值