2020-11-2 吴恩达DL学习-C5 序列模型-W2 自然语言处理与词嵌入(2.3 词嵌入的特性-类比推理/余弦相似度)

1.视频网站:mooc慕课https://mooc.study.163.com/university/deeplearning_ai#/c
2.详细笔记网站(中文):http://www.ai-start.com/dl2017/
3.github课件+作业+答案:https://github.com/stormstone/deeplearning.ai

2.3 词嵌入的特性 Properties of word embeddings

到现在,你应该明白了词嵌入是如何帮助你构建自然语言处理应用的。

词嵌入还有一个迷人的特性就是它还能帮助实现类比推理,尽管类比推理可能不是自然语言处理应用中最重要的,不过它能帮助人们理解词嵌入做了什么,以及词嵌入能够做什么,让我们来一探究竟。
在这里插入图片描述

如上图,这是一系列你希望词嵌入可以捕捉的单词的特征表示。假如我提出一个问题,man如果对应woman,那么king应该对应什么?你们应该都能猜到king应该对应queen。能否有一种算法来自动推导出这种关系,下面就是实现的方法。
在这里插入图片描述

我们用一个四维向量来表示man,我们用 e 5391 e_{5391} e5391来表示,不过在这节课中我们先把它称为 e m a n e_{man} eman,而旁边这个表示woman的嵌入向量,称它为 e w o m a n e_{woman} ewoman,对king和queen也是用一样的表示方法。

在该例中,假设你用的是四维的嵌入向量,而不是比较典型的50到1000维的向量。这些向量有一个有趣的特性,就是假如你有向量 e m a n e_{man} eman e w o m a n e_{woman} ewoman,将它们进行减法运算,即
在这里插入图片描述

类似的,假如你用 e k i n g e_{king} eking减去 e q u e e n e_{queen} equeen,最后也会得到一样的结果,即
在这里插入图片描述

这个结果表示,man和woman主要的差异是gender(性别)上的差异,而king和queen之间的主要差异,根据向量的表示,也是gender(性别)上的差异,这就是为什么 e m a n − e w o m a n e_{man}-e_{woman} emanewoman e k i n g − e q u e e n e_{king}-e_{queen} ekingequeen结果是相同的。

所以得出这种类比推理结论的方法就是,当算法被问及man对woman相当于king对什么时,算法所做的就是计算 e m a n − e w o m a n e_{man}-e_{woman} emanewoman,然后找出一个向量也就是找出一个词,使得 e m a n − e w o m a n e_{man}-e_{woman} emanewoman e k i n g − e q u e e n e_{king}-e_{queen} ekingequeen

也就是说,当这个新词是queen时,式子的左边会近似地等于右边。这种思想首先是被Tomas Mikolov 和 Wen-tau Yih还有Geoffrey Zweig提出的,这是词嵌入领域影响力最为惊人和显著的成果之一,这种思想帮助了研究者们对词嵌入领域建立了更深刻的理解。

让我们来正式地探讨一下应该如何把这种思想写成算法。
在这里插入图片描述

在上图中,词嵌入向量在一个可能有300维的空间里,于是单词man代表的就是空间中的一个点,另一个单词woman代表空间另一个点,单词king也代表一个点,还有单词queen也在另一点上。事实上,我们在前面介绍的内容所展示的就是向量man和woman的差值非常接近于向量king和queen之间的差值,我所画的这个箭头代表的就是向量在gender(性别)这一维的差,不过不要忘了这些点是在300维的空间里。

为了得出这样的类比推理,计算当man对于woman,那么king对于什么,你能做的就是找到单词w来使得 e m a n − e w o m a n e_{man}-e_{woman} emanewoman e k i n g − e w e_{king}-e_{w} ekingew 这个等式成立,你需要的就是找到单词w来最大化 e w e_w ew e k i n g − e m a n + e w o m a n e_{king}-e_{man}+e_{woman} ekingeman+ewoman的相似度,即
在这里插入图片描述

我做的就是把这个 e w e_w ew全部放到等式的一边,等式的另一边就会是 e k i n g − e m a n + e w o m a n e_{king}-e_{man}+e_{woman} ekingeman+ewoman

我们有一些用于测算 e w e_w ew e k i n g − e m a n + e w o m a n e_{king}-e_{man}+e_{woman} ekingeman+ewoman之间的相似度的函数,然后通过方程找到一个使得相似度最大的单词,如果结果理想的话会得到单词queen。

值得注意的是这种方法真的有效,如果你学习一些词嵌入,通过算法来找到使得相似度最大化的单词w,你确实可以得到完全正确的答案。不过这取决于过程中的细节,如果你查看一些研究论文就不难发现,通过这种方法来做类比推理准确率大概只有30%~75%,只要算法猜中了单词,就把该次计算视为正确,从而计算出准确率,在该例子中,算法选出了单词queen。
在这里插入图片描述

在继续下一步之前,我想再说明一下上面左边的这幅图,在之前我们谈到过用t-SNE算法来将单词可视化。

t-SNE算法所做的就是把这些300维(300D)的数据用一种非线性的方式映射到2维(2D)平面上,可以得知t-SNE中这种映射很复杂而且很非线性。在进行t-SNE映射之后,你不能总是期望使等式成立的关系,会像左边那样成一个平行四边形,尽管在这个例子最初的300维的空间内你可以依赖这种平行四边形的关系来找到使等式成立的一对类比,通过t-SNE算法映射出的图像可能是正确的。但在大多数情况下,由于t-SNE的非线性映射,你就没法再指望这种平行四边形了,很多这种平行四边形的类比关系在t-SNE映射中都会失去原貌。

现在,再继续之前,我想再快速地列举一个最常用的相似度函数,这个最常用的相似度函数叫做余弦相似度
在这里插入图片描述

上图这是我们得到的等式,在余弦相似度中,假如在向量 u u u v v v之间定义相似度:
在这里插入图片描述

现在我们先不看上面公式的分母,而分子其实就是 u u u v v v的内积。如果u和v非常相似,那么它们的内积将会很大,把整个式子叫做余弦相似度,其实就是因为该式是和的夹角的余弦值,所以这个角(下图)就是Φ角,这个公式实际就是计算两向量夹角Φ角的余弦。
在这里插入图片描述

你应该还记得在微积分中,Φ角的余弦图像是这样的(下图)。
在这里插入图片描述

所以夹角为0度时,余弦相似度就是1,当夹角是90度角时余弦相似度就是0,当它们是180度时,图像完全跑到了相反的方向,这时相似度等于-1,这就是为什么余弦相似度对于这种类比工作能起到非常好的效果。

如果你想的话,你还能用平方距离或者欧氏距离来表示: ∣ ∣ u − v ∣ ∣ 2 ||u-v||^2 uv2

从学术上来说,比起测量相似度,这个函数更容易测量的是相异度,所以我们需要对其取负,这个函数才能正常工作。不过我还是觉得余弦相似度用得更多一点,这两者的主要区别是它们对 u u u v v v之间的距离标准化的方式不同。

词嵌入的一个显著成果就是,可学习的类比关系的一般性。

举个例子,

  • 它能学会man对于woman相当于boy对于girl,因为man和woman之间和king和queen之间,还有boy和girl之间的向量差在gender(性别)这一维都是一样的。
  • 它还能学习Canada(加拿大)的首都是Ottawa(渥太华),而渥太华对于加拿大相当于Nairobi(内罗毕)对于Kenya(肯尼亚),这些都是国家中首都城市名字。
  • 它还能学习big对于bigger相当于tall对于taller,还能学习Yen(円)对于Janpan(日本),円是日本的货币单位,相当于Ruble(卢比)对于Russia(俄罗斯)。

这些东西都能够学习,只要你在大型的文本语料库上实现一个词嵌入学习算法,只要从足够大的语料库中进行学习,它就能自主地发现这些模式。

在本节课中,你见到了词嵌入是如何被用于类比推理的,可能你不会自己动手构建一个类比推理系统作为一项应用,不过希望在这些可学习的类特征的表示方式能够给你一些直观的感受。你还看知道了余弦相似度可以作为一种衡量两个词嵌入向量间相似度的办法,我们谈了许多有关这些嵌入的特性,以及如何使用它们。

下节课中,我们来讨论如何真正的学习这些词嵌入。

猜你喜欢

转载自blog.csdn.net/weixin_42555985/article/details/109443999