一、什么是词向量

词向量是将字、词语转换成向量矩阵的计算模型。目前为止最常用的词表示方法是 One-hot,这种方法把每个词表示为一个很长的向量。这个向量的维度是词表大小,其中绝大多数元素为 0,只有一个维度的值为 1,这个维度就代表了当前的词。还有 Google 团队的  Word2Vec,值得一提的是,Word2Vec 词向量可以较好地表达不同词之间的相似和类比关系。除此之外,还有一些词向量的表示方式,如 Doc2Vec、WordRank 和 FastText 等。

二、Word2Vec

Google 团队的  Word2Vec,其主要包含两个模型:跳字模型(Skip-Gram)和连续词袋模型(Continuous Bag of Words,简称 CBOW),以及两种高效训练的方法:负采样(Negative Sampling)和层序 Softmax(Hierarchical Softmax)。

word2vec作为神经概率语言模型的输入,其本身其实是神经概率模型的副产品,是为了通过神经网络学习某个语言模型而产生的中间结果。具体来说,“某个语言模型”指的是“CBOW”和“Skip-gram”。具体学习过程会用到两个降低复杂度的近似方法——Hierarchical Softmax或Negative Sampling。两个模型乘以两种方法,一共有四种实现。

2.1 模型结构(CBOW和Skip-Gram)

两个算法:

  • Skip-grams (SG):预测上下文

  • Continuous Bag of Words (CBOW):预测目标单词

CS224n中的只讲到了Naive Softmax

Skipgram

NLP基础笔记5——词向量

从左到右是one-hot向量,乘以center word的W于是找到词向量,乘以另一个context word的矩阵W'得到对每个词语的“相似度”,对相似度取softmax得到概率,与答案对比计算损失。下图的官方版,一样的意思:

NLP基础笔记5——词向量

这两个矩阵都含有V个词向量,也就是说同一个词有两个词向量,哪个作为最终的、提供给其他应用使用的embeddings呢?有两种策略,要么加起来,要么拼接起来。在CS224n的编程练习中,采取的是拼接起来的策略。W中的向量叫input vector,W'中的向量叫output vector。

2.2 训练方法(层次化softmax和负采样)

具体学习过程会用到两个降低复杂度的近似方法——Hierarchical Softmax或Negative Sampling。两个模型乘以两种方法,一共有四种实现。

相关文章:

  • 2021-06-07
  • 2021-05-26
  • 2021-05-20
  • 2021-03-31
  • 2021-08-15
  • 2022-01-16
  • 2021-12-09
  • 2021-05-25
猜你喜欢
  • 2021-07-08
  • 2021-05-07
  • 2021-06-28
  • 2021-08-06
  • 2021-09-07
  • 2022-01-20
  • 2021-09-15
相关资源
相似解决方案