天天看點

word2vec (一) 簡介與訓練過程概要

word2vec最初是Tomas Mikolov發表的一篇文章[1],同時開源了相應的代碼,作用是将所有詞語投影到K維的向量空間,每個詞語都可以用一個K維向量表示。

假如語料庫裡一共有N個詞,one-hot表示即是為每個詞配置設定一個唯一的索引,并且将每個詞表示為N維的向量,在該詞索引對應的次元值為1,其餘次元均為0。如一共有三個詞:今天、天氣、真好,那麼三個詞的詞向量分别可以是[1,0,0],[0,1,0],[0,0,1]。這種簡單的表示方法已經可以解決相當一部分NLP的問題,不過仍然存在不足,即詞向量與詞向量之間都是互相獨立的,我們無法通過這種詞向量得知兩個詞在語義上是否相似,并且如果N非常大,這種高維稀疏的表示也有可能引發次元災難。為了解決上述問題,就有了詞向量的第二種表示方法。

word2vec就是通過這種方法将詞表示為向量,即通過訓練将詞表示為限定次元K的實數向量,這種非稀疏表示的向量很容易求它們之間的距離(歐式、餘弦等),進而判斷詞與詞語義上的相似性。如K=3時,我們得到的實數向量可以是[0.5,0.22,0.7]這樣。

不過Distributed表示法并不是word2vec誕生才有的,這種方法早在1986年Hinton就提出了[2]。word2vec之是以 會産生這麼大的影響,是因為它采用了簡化的模型,使得訓練速度大為提升,讓word embedding這項技術(也就是詞的distributed表示)變得較為實用。

見原文!

word2vec用的是神經網絡模型,分為兩種,cbow與skip-gram,每個模型的訓練方法又分别有兩種,hierarchical sofmax與negative sampling。

[1] Tomas Mikolov, Kai Chen, Greg Corrado, and Jeffrey Dean. Efficient Estimation of Word Representations in Vector Space. In Proceedings of Workshop at ICLR, 2013.

[2] A. Mnih and G. Hinton. Three new graphical models for statistical language modelling. Proceedings of the 24th international conference on Machine learning,pages 641–648, 2007

本文轉自張昺華-sky部落格園部落格,原文連結:http://www.cnblogs.com/bonelee/p/7144607.html,如需轉載請自行聯系原作者

繼續閱讀