NLP系列——word2vec原理

前言

1.1 词向量的意义

1.2 语言模型

  1.2.1 CBOW
  1.2.2 skip-gram

1.3 词向量模型

   1.3.1 Hierarchical Softmax
   1.3.2 Negative Sample

1.4 基于Hierarchical Softmax的模型

   1.4.1 CBOW模型
   1.4.2 skip-gram模型

1.5 基于Negative Sample 的模型

   1.5.1 CBOW模型
   1.5.2 skip-gram模型

1.6 总结

1.7 参考文献


前言
  在传统的NLP中,我们将单词视为离散符号,然后可以用one-hot向量表示。向量的维度是整个词汇表中单词的数量。单词作为离散符号的问题在于,对于one-hot向量来说,没有自然的相似性概念。因此,另一种方法是学习在向量本身中编码相似性。核心思想是一个词的含义是由经常出现在其旁边的单词给出的。词向量是字符串的实值向量表示。我们为每个单词建立一个密集的向量,选择它以便类似于类似上下文中出现的单词的向量。对于大多数NLP任务而言,词向量被认为是一个很好的起点。它们允许深度学习在较小的数据集上也是有效的,因为它们通常是深度学习体系的第一批输入,也是NLP中最流行的迁移学习方式。在词向量中最流行的应该是Word2vec,它是由谷歌开发的模型,另外一个是由斯坦福大学开发的GloVe。
  为防止图片加载不出来,文末有PDF版本下载地址

1.1词向量的意义
  自然语言处理(NLP)相关任务中, 要将自然语言交给机器学习中的算法来处理,通常需要首先将语言数学化,因为机器不是人,机器只认数学符号。向量是人把自然界的东西抽象出来交给机器处理的东西,基本上可以说向量是人对机器输入的主要方式了。
  词向量就是用来将语言中的词进行数学化的一种方式,顾名思义,词向量就是把一个词转化成一个向量。
  一种最简单的词向量方式是 one-hot representation,就是用一个很长的向量来表示一个词,向量的长度为词典的大小,向量中只有一个 1,其它位置全为 0。1 的位置对应该词在词典中的位置。这种 One-hot Representation 如果采用稀疏方式存储,会是非常的简洁:也就是给每个词都分配一个数字 ID。但这种词表示有两个缺点:(1)容易受维数灾难的困扰,尤其是将其用于Deep Learning 的一些算法时;(2)不能很好地刻画词与词之间的相似性。
  另一种就是 Distributed Representation,其基本想法是直接用一个普通的向量表示一个词,这种向量一般长成这个样子: [0.792, −0.177, −0.107, 0.109, −0.542, … ],也就是普通的向量表示形式。维度以 50和100维常见。由于是用向量表示,而且用较好的训练算法得到的词向量的向量一般是有空间上的意义的,也就是说, 将所有这些向量放在一起形成一个词向量空间,而每一向量则为该空间中的一个点,在这个空间上的词向量之间的距离度量也可以表示对应的两个词之间的“距离”,这样的特性使得词向量很有意义。考虑英语和西班牙语两种语言,通过训练分别得到它们对应的词向量空间 E 和 S。从英语中取出五个词 one, two,three, four, five,设其在 E 中对应的词向量分别为 v1, v2, v3, v4, v5,为方便作图,利用主成分分析(PCA)降维,得到相应的二维向量 u1, u2, u3,u4, u5,在二维平面上将这五个点描出来,如下图左图所示。类似地,在西班牙语中取出(与 one, two, three, four, five 对应的) uno, dos, tres, cuatro,cinco,设其在 S 中对应的词向量分别为 s1, s2, s3, s4, s5,用 PCA 降维后的二维向量分别为 t1, t2, t3, t4, t5,将它们在二维平面上描出来(可能还需作适当的旋转),如下图右图所示:
NLP系列——word2vec原理_第1张图片
  观察左、右两幅图,容易发现:五个词在两个向量空间中的相对位置差不多,这说明两种不同语言对应向量空间的结构之间具有相似性,从而进一步说明了在词向量空间中利用距离刻画词之间相似性的合理性。

1.2语言模型
NLP系列——word2vec原理_第2张图片NLP系列——word2vec原理_第3张图片
1.2.1 CBOW
NLP系列——word2vec原理_第4张图片
NLP系列——word2vec原理_第5张图片
1.2.2 skip-gram
NLP系列——word2vec原理_第6张图片
NLP系列——word2vec原理_第7张图片
1.3 词向量模型
NLP系列——word2vec原理_第8张图片
NLP系列——word2vec原理_第9张图片
NLP系列——word2vec原理_第10张图片
NLP系列——word2vec原理_第11张图片
NLP系列——word2vec原理_第12张图片
1.3.1 Hierarchical Softmax
NLP系列——word2vec原理_第13张图片
NLP系列——word2vec原理_第14张图片
NLP系列——word2vec原理_第15张图片
NLP系列——word2vec原理_第16张图片
NLP系列——word2vec原理_第17张图片
NLP系列——word2vec原理_第18张图片
1.3.2 Negative Sample
   使用霍夫曼树来代替传统的神经网络,可以提高模型训练的效率。但是如果我们的训练样本里的中心词w是一个很生僻的词,那么就得在霍夫曼树中辛苦的向下走很久了。能不能不用搞这么复杂的一颗霍夫曼树,将模型变的更加简单呢?
   Negative Sampling就是这么一种求解word2vec模型的方法,它摒弃了霍夫曼树,采用了Negative Sampling的方法来求解,下面我们就来看看Negative Sampling的求解思路。
NLP系列——word2vec原理_第19张图片
NLP系列——word2vec原理_第20张图片
1.4 基于Hierarchical Softmax的模型
1.4.1 CBOW模型
NLP系列——word2vec原理_第21张图片
NLP系列——word2vec原理_第22张图片
NLP系列——word2vec原理_第23张图片
NLP系列——word2vec原理_第24张图片
NLP系列——word2vec原理_第25张图片
NLP系列——word2vec原理_第26张图片
NLP系列——word2vec原理_第27张图片
NLP系列——word2vec原理_第28张图片
NLP系列——word2vec原理_第29张图片
NLP系列——word2vec原理_第30张图片
NLP系列——word2vec原理_第31张图片
1.4.2 skip-gram模型
NLP系列——word2vec原理_第32张图片
NLP系列——word2vec原理_第33张图片
NLP系列——word2vec原理_第34张图片
NLP系列——word2vec原理_第35张图片
NLP系列——word2vec原理_第36张图片
NLP系列——word2vec原理_第37张图片
1.5 基于Negative Sample 的模型
1.5.1 CBOW模型
NLP系列——word2vec原理_第38张图片
NLP系列——word2vec原理_第39张图片
NLP系列——word2vec原理_第40张图片
NLP系列——word2vec原理_第41张图片
NLP系列——word2vec原理_第42张图片
1.5.2 skip-gram模型
NLP系列——word2vec原理_第43张图片
NLP系列——word2vec原理_第44张图片
NLP系列——word2vec原理_第45张图片
1.6 总结
NLP系列——word2vec原理_第46张图片
1.7 参考文献
https://blog.csdn.net/itplus/article/details/37969979
https://www.cnblogs.com/pinard/p/7160330.html
PDF版下载地址

你可能感兴趣的:(NLP)