w2v

来源

word2vec 中的数学原理详解

相较于词向量的表示方法,将每个词给定一个ID的编码方法,具有以下坏处:

  1. 特征稀疏,不利于训练
  2. 丢掉了词与词之间的关联信息

概述

w2v中用过两个重要模型:CBOW(Continuous Bag-of-Words Model) 和 Skip-gram(Continuous Skip-gram Model)。并且对这两个模型给出了两套框架,它们分别基于Hierarchical Softmax 和 Negative Sampling 来进行设计。

CBOW是在给出上下文的情况下预测当前词,Skip-gram是在给出当前词的情况下预测上下文。

This inversion might seem like an arbitrary choice, but statistically it has the effect that CBOW smoothes over a lot of the distributional information (by treating an entire context as one observation). For the most part, this turns out to be a useful thing for smaller datasets. However, skip-gram treats each context-target pair as a new observation, and this tends to do better when we have larger datasets.

可以简单的理解为,只有在大数据集上,以当前词来预测上下文才有更高的意义,因为得到的样本分布更真实。也就是用skip-gram更好。

基于 Hierarchical Softmax 的 CBOW & Skip-gram

两个模型目标函数都采用对数似然函数:
\begin{split} \text{CBOW: } \sum_{\omega} \log p(\omega|Context(\omega))\end{split}
\begin{split} \text{Skip-gram: } \sum_{\omega} \log p(Context(\omega)|\omega)\end{split}

CBOW

  1. 输入层为上下文每个词的词向量,长度已经对齐。
  2. 投影层为上下文词向量的求和,注意没有隐藏层!
  3. 输出层是一颗Huffman树[TBC]。

Skip-gram

  1. 输入层输入词向量。
  2. 投影层为恒等投影,其实多余,只是为了和CBOW做比较。
  3. 输出层也是一颗Huffman树[TBC]。

基于 Negative Sampling 的 CBOW & Skip-gram

目的是为了提高训练速度并改善所得词向量质量。