word2vec中的Negative sampling 和 Subsampling

神经概率语言模型

通过一个Fake task去得到词向量

word2vec中的Negative sampling 和 Subsampling_第1张图片

这个fake task 更像是用作一个word 的前 n1 n − 1 个词的词向量去做特征,来预测这个word出现的概率。
而中间的U就是所有词向量的矩阵。

但是,问题在于,训练之前的词向量如何得到?
这个是可以用one-hot来初始化的(

为什么要用one-hot?
因为这个可以作为隐藏层的look-up vector
(这个解释可以用在skip-gram, 但是不适合CBOW)

《A neural probabilistic language model》

Negative sampling

为什么要用Negative sampling:

这篇讲的很好
https://zhuanlan.zhihu.com/p/29488930

总的来说,原因就是 更新参数and得到结果时节省效率。

Model从所有的corpus里面去选择正确的词语Model从几个负样本+一个正样本里去选择一个正确的词语 的区别。

Subsampling

降采样是要对一些the, this这种经常出现,而没有实义的词降低他们出现在训练样本中的频率。
因为这些词几乎可能出现在所有词的周围,他们的词向量不具有很明显的含义,但是又经常出现,如果在这些词上耗费太多,其实会造成模型的开销很大,而且结果可能有偏差。

Ref:
http://mccormickml.com/2016/04/19/word2vec-tutorial-the-skip-gram-model/
http://mccormickml.com/2017/01/11/word2vec-tutorial-part-2-negative-sampling/
http://zangbo.me/2017/06/06/Word2Vec_Negative-Sample/

你可能感兴趣的:(人工智能算法,word,embedding)