首先我们要知道Word2Vec包含了两种词训练模型:CBOW模型和Skip-gram模型。
用word2vec来生成word embedding
那么word2vec到底是要做一件什么事情呢?

下面以CBOW为例进行讲解:
用word2vec来生成word embedding
其实word2vec可以分为两部分:

  1. 模型训练
  2. 通过模型获得word embedding

训练过程如下:

  1. 输入层:上下文单词的onehot向量。 {假设单词向量空间dim为V,上下文单词个数为C}。
  2. 所有onehot分别乘以共享的输入权重矩阵W.{V*N矩阵,N为自己设定的数,初始化权重矩阵W}。
  3. 所得的向量 {因为是onehot所以为向量} 相加求平均作为隐层向量,size为1*N。
  4. 乘以输出权重矩阵W’ {NV} 得到向量 {1V} **函数处理。
  5. 得到V-dim概率分布 {PS:因为是onehot嘛,其中的每一维斗代表着一个单词},概率最大的index所指示的单词为预测出的中间词(target word)。
  6. 与true label的onehot做比较,然后反向传播调整参数。
  7. 上述过程迭代多次。

word2vec先基于训练数据训练一个神经网络(如上图所示,在训练的过程中通过梯度下降算法不断调整权重W和WW{}')。

当这个网络训练好以后,我们并不会利用这个训练好的网络处理新任务,我们真正需要的是这个模型通过训练数据所学到的参数(权重W)。训练完毕后,输入层的每个单词(one-hot向量)与矩阵W相乘得到的向量的就是我们想要的词向量(word embedding)

需要说明的一点:因为单词是one-hot编码,所以,所有单词的word embedding所组成的矩阵就是W本身,这个矩阵叫做look up table。具体原因自己好好想一下。

由于上面介绍的比较简单,想了解具体细节的看一下下面的几篇博客:

第一篇以Skip-Gram模型为例详细的讲解了word2vec的整体流程。

一文详解 Word2vec 之 Skip-Gram 模型(结构篇)

第二篇以CBOW为例,讲的比较通俗易懂,很透彻。

小白都能理解的通俗易懂word2vec详解

第三篇通过图示的方式介绍了CBOW模型流程,更加便于理解。

自然语言处理之word2vec原理词向量生成

相关文章:

  • 2021-11-09
  • 2021-04-16
  • 2021-08-06
  • 2021-07-09
  • 2021-06-29
  • 2022-12-23
  • 2021-08-06
猜你喜欢
  • 2021-06-19
  • 2021-08-06
  • 2021-09-15
  • 2021-11-09
  • 2021-11-14
  • 2021-06-14
相关资源
相似解决方案