李宏毅机器学习——无监督学习(二)

引言

本文主要讨论单词嵌入(Word Embedding)。是用在文本上的降维方法。

单词嵌入

喂给机器大量的文章后,它可以自动的把每个不同的词汇都用一个向量来表示。
我们希望机器在用向量来表示词汇后,向量每个维度都代表某种含义。
或者说这些词汇有相似的关系或某种语义,能在这个向量中呈现出来。

在这里插入图片描述

这些来描述词汇的向量我们就称为单词嵌入

一次词汇如果只用一个向量来描述它,最简单的方法就是1-of-N Encoding

就是说,假设英文总共有10万个单词,我们就创建一个10万维度的向量。每次单词我们都用这个10万维的向量表示,但是这个向量只有其中一维是1(代表那个单词出现),其他都是0。

在这里插入图片描述

以5维词汇来举例就是上面的样子。这种表示方法有很多缺点,重要的一个是词汇之间的关系无法表示出来。

怎么办呢,我们对词汇也可以做聚类。

在这里插入图片描述

把动物放到一类;动作放到一类;植物放到一类。但是这样做太粗糙了。
这时我们可以做单词嵌入,在单词嵌入中,每个词汇不是硬归类于某个类别中,而是每个词汇都用一个 Continuous Vector(连续向量?)来描述,其中每个维度都可能代表某种含义。

在这里插入图片描述

我们看这个例子,红线下面的是植物,也可能有其他属性,比如代表不会动的东西;

所以单词嵌入的方式更加精细。
那如何找单词嵌入呢,如何用一个向量来描述这些词汇呢?
基本的概念是每个单词的意思可以从它的上下文看出来。

假设机器读到了“马xx5月20日宣誓就职”和“蔡xx5月20日宣誓就职”(和谐了),机器就可以知道马xx和蔡xx有某种相似的关系。

那如何来根据词汇的上下文来得到词的向量呢?

有两种方式:

  • 基于计数的(Count based)
    • 如果两个单词 w i w_i w j w_j 多次同时出现,那 V ( w i ) V(w_i) (单词 w i w_i 的向量)和 V ( w j ) V(w_j) 的相似度应该要高
  • 基于预测的(Prediction based)
    • 预测接下来要出现哪个词汇

基于预测

在这里插入图片描述
假设你收集到了很多句子,接下来要机器做的事情是给定前面几个词汇,来判断接下来要出现哪个词汇。
在这里插入图片描述

希望找到一个NN,输入“潮水”和“退了”,期望机器输出“就”。可以使用最小化交叉熵的方式,让输出和“就”越接近越好。继续输入“退了”和“就”,期望输出“知道”。

这个东西适用场景似乎不多,可以在成语接龙。其实还可以用在语言模型(Language Modeling)上,
语言模型要做的事是预测一个句子出现的概率。

在这里插入图片描述

比如说想要机器预测出现“wreck a nice beach”这个句子个概率,实际上无法直接预测一个句子出现的概率,估测一个句子出现的概率时,通常会拆成很多小的片段。然后把这些片段分开去计算它的概率。
比如要计算上面那个句子出现的概率,先要计算由“wreck”开头的概率,然后后面接“a”的概率,同时“a”后面接“nice”的概率…。

在这里插入图片描述
也可以用上面的NN来做,这里把“START”也当成一个词汇,把它丢到NN中,看它预测“wreck”的概率是多少,把“wreck”丢里面看它输出“a”的概率是多少…,最后把这些概率都乘起来,就得到了这个句子出现的概率。

语言模型很重要,一般用在机器翻译和语音识别里面。

基于预测的方式是如何运作的呢。

在这里插入图片描述
每个词汇都可以用1-of-N encoding的方式来表示,只有一个维度是1,其他都是0的向量。

在这里插入图片描述

希望把这个向量丢到某个NN中,输出就是接下来出现每个词汇的概率。

在这里插入图片描述
如上,期望 w i w_i w i 1 w_{i-1} 之后出现的话,那么希望 w i w_i 词汇所对应的维度在上面的NN中输出的概率越大越好。

有了这些东西以后,接下来,我们把一个特征向量丢到NN里面去,把这个向量乘上一个矩阵做线性转换(降维)得到一个向量,再经过激活函数变成第一个隐藏层的输入。

我们要对每一个词汇取一个向量,把输入的特征向量(每个词汇的1-of-N encoding向量)乘上线性转换后的向量当( [ z 1 , z 2 , ] [z_1,z_2,\cdots] )成表示这个词汇的向量。

在这里插入图片描述
这样相似的词汇就会有相近的向量。

但是这样只看一个词汇来预测下一个词汇,可能是不太够的。

我们希望机器去看比较长的前面的词汇来预测下一个词汇。

在这里插入图片描述
这里假设看了前两个词汇,向量 x i 2 , x i 1 x_{i-2},x_{i-1} 的长度都是 V |V| ,权重矩阵 W 1 , W 2 W_1,W_2 都是 Z X V |Z|X|V| 的矩阵,很巨大。
因此,我们这里把 W 1 , W 2 W_1,W_2 共享同样的参数 W W ,最后如果只考虑前两个词汇的话,计算向量 z = W ( x i 1 + x i 2 ) z=W(x_{i-1}+x_{i-2}) 就简单很多。

在这里插入图片描述

就是说 w i 2 w_{i-2} 词汇向量的第一维连到 z 1 z_1 的权重和 w i 1 w_{i-1} 第一维连到 z 1 z_1 的权重是一样的。

同样颜色的连线权重是同样的。这样每个词汇的权重都是固定的。

在这里插入图片描述

看前面词汇预测后面词汇还有一些变种,比如可以预测两个词汇中间的词汇,可以预测某个词汇左右两边的词汇。

参考

1.李宏毅机器学习

发布了148 篇原创文章 · 获赞 57 · 访问量 13万+

猜你喜欢

转载自blog.csdn.net/yjw123456/article/details/104261258