nlp自然語言處理入門 word2vec詞向量怎么來的?
word2vec詞向量怎么來的?2013年,谷歌推出了一款開源的word矢量計算工具word2vec,引起了業(yè)界和學術(shù)界的關(guān)注。首先,word2vec可以在數(shù)百萬個詞典和數(shù)億個數(shù)據(jù)集上進行有效的訓練;
word2vec詞向量怎么來的?
2013年,谷歌推出了一款開源的word矢量計算工具word2vec,引起了業(yè)界和學術(shù)界的關(guān)注。首先,word2vec可以在數(shù)百萬個詞典和數(shù)億個數(shù)據(jù)集上進行有效的訓練;其次,wordembedding工具的訓練結(jié)果可以度量量詞之間的相似度。隨著深度學習在自然語言處理中的普及,許多人錯誤地認為word2vec是一種深度學習算法。實際上,word2vec算法的背后是一個淺層的神經(jīng)網(wǎng)絡。需要強調(diào)的另一點是,word2vec是一個用于計算worddirector的開源工具。當我們談到word2vec算法或模型時,實際上是指用于計算wordvector的cbow模型和skip-gram模型。很多人認為word2vec是指一種算法或模型,這也是一種謬誤。接下來,本文將從統(tǒng)計語言模型入手,詳細介紹word2vec工具背后算法模型的起源和發(fā)展。本質(zhì)上,word2vec是一個矩陣分解模型。簡言之,矩陣描述了每個單詞和上下文中的一組單詞之間的相關(guān)性。對矩陣進行分解,只取隱藏空間中每個單詞的向量。
所以word2vec適用于一個數(shù)據(jù)序列,該序列的本地數(shù)據(jù)之間有很強的相關(guān)性。典型的是文本的順序,相鄰的詞是密切相關(guān)的,甚至一個詞的上下文都可以大致預測中間的詞是什么。所學習的詞向量表示詞的語義,可用于分類、聚類和相似度計算。另外,word2vec的分層分類器或抽樣方法實際上對流行項做了大量的懲罰,因此不會像一般的矩陣分解那樣,語義相似的最后一個詞就是流行詞,這是word2vec的一個很好的特點。
對于短文本分類,我們直接在文檔中加入所有的詞向量作為文本特征來訓練分類器,效果也很好。該方法也應用于word2vec的訓練過程中。另外,如果改用RBF核支持向量機等非線性分類器,分類精度會更高,也符合預期。
其他序列的數(shù)據(jù)也可以這樣做。我記得去年關(guān)于KDD的文章deepwalk,使用社交網(wǎng)絡上的隨機游走來生成節(jié)點序列,然后使用word2vec來訓練每個節(jié)點對應的向量。但我用這種方法在QQ社交網(wǎng)絡上做了一些實驗,發(fā)現(xiàn)效果很不理想,這可能與QQ社交網(wǎng)絡的復雜性有關(guān)。
我非常滿意的一個應用程序是將word2vec應用到用戶的應用程序下載序列。根據(jù)用戶的app下載序列,將app視為一個詞,也可以形成這樣的序列數(shù)據(jù),然后訓練每個app對應的向量。利用這個向量來計算應用之間的相似度,效果非常好。它可以聚合真正與內(nèi)容相關(guān)的應用程序,同事可以避免受流行應用程序的影響。類似的場景應該有很多,而且應用也很廣泛,比如推薦系統(tǒng)和廣告系統(tǒng)。
word2vec有什么用?
:將一個熱向量轉(zhuǎn)換為低維單詞向量的層(雖然我們不稱它為層,但我認為它是一個層),因為word2vec的輸入是一個熱向量。
一個hot可以看作是1*n的矩陣(n是總字數(shù))。將這個系數(shù)矩陣(n*m,m是word2vec的字向量維數(shù))相乘,我們可以得到一個1*m的向量,它是對應于這個字的字向量。
因此對于n*m矩陣,每行對應于每個單詞的單詞向量。
下一步是進入神經(jīng)網(wǎng)絡,然后通過訓練不斷更新矩陣。
word2vec怎么生成詞向量python?
影響因素很多。例如,我需要花60個小時來訓練544m商品標題語料庫。
但是,在版本之后,只需要20分鐘(需要安裝Python)就可以在文本分類之前訓練word2vec的單詞向量