词嵌入(word embedding)

1. 词汇表征

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

one-hot 表征:

在前面的一节课程中,已经使用过了one-hot表征的方式对模型字典中的单词进行表征,对应单词的位置用1表示,其余位置用0表示,如下图所示:
在这里插入图片描述
one-hot表征的缺点:这种方法将每个词孤立起来,使得模型对相关词的泛化能力不强。每个词向量之间的距离都一样,乘积均为0,所以无法获取词与词之间的相似性和关联性。

特征表征-词嵌入

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

2. 词嵌入的特性类比推理特性:

词嵌入还有一个重要的特性,它还能够帮助实现类比推理。如下面的例子中,通过不同词向量之间的相减计算,可以发现不同词之间的类比关系,man——woman、king——queen,如下图所示:
在这里插入图片描述
这种思想帮助研究者们对词嵌入建立了更加深刻的理解和认识。
计算词与词之间的相似度,实际上是在多维空间中,寻找词向量之间各个维度的距离相似度。
在这里插入图片描述在这里插入图片描述

3. 嵌入矩阵

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

在这里插入图片描述
4. 学习词嵌入
词嵌入的学习算法随着时间的进行逐渐变得越来越简单。
在这里插入图片描述
在不断地训练过程中,算法会发现要想最好地拟合训练集,就要使得一些特性相似的词汇具有相似的特征向量,从而就得到了最后的词嵌入矩阵E。
在这里插入图片描述
训练语言模型,一般只用上文几个单词,但学习词嵌入,一般要上下文同时考虑

词嵌入的学习方法-Word2Vec

Word2Vec算法是一种简单的计算更加高效的方式来实现对词嵌入的学习。
Skip-grams模型:
在Skip-grams模型中,我们需要抽取上下文(Content)和目标词(Target)配对,来构造一个监督学习问题。
上下文不一定是要目标词前面或者后面离得最近的几个单词,而是随机选择一个词作为上下文,同时在上下文的一定距离范围内随机选择另外一个词作为目标词。构造这样一个监督学习问题的目的,并不是想要解决监督学习问题本身,而是想要使用这个问题来学习一个好的词嵌入模型。
在这里插入图片描述如何采样上下文:
在构建上下文目标词对时,如何选择上下文与模型有不同的影响。
对语料库均匀且随机地采样:使得如the、of、a等这样的一些词会出现的相当频繁,导致上下文和目标词对经常出现这类词汇,但我们想要的目标词却很少出现。
采用不同的启发来平衡常见和不常见的词进行采样。这种方法是实际使用的方法。

猜你喜欢

转载自blog.csdn.net/qq_41332469/article/details/90523613