word2vec實例詳解 word2vec有什么用?
word2vec有什么用?Word2vec本質(zhì)上是一個矩陣分解模型。簡言之,矩陣描述了每個單詞和上下文中的一組單詞之間的相關(guān)性。對矩陣進行分解,只取隱藏空間中每個單詞的向量。所以word2vec適用于
word2vec有什么用?
Word2vec本質(zhì)上是一個矩陣分解模型。簡言之,矩陣描述了每個單詞和上下文中的一組單詞之間的相關(guān)性。對矩陣進行分解,只取隱藏空間中每個單詞的向量。
所以word2vec適用于一個數(shù)據(jù)序列,該序列的本地數(shù)據(jù)之間有很強的相關(guān)性。典型的是文本的順序,相鄰的詞是密切相關(guān)的,甚至一個詞的上下文都可以大致預(yù)測中間的詞是什么。所學(xué)習(xí)的詞向量表示詞的語義,可用于分類、聚類和相似度計算。另外,word2vec的分層分類器或抽樣方法實際上對流行項做了大量的懲罰,因此不會像一般的矩陣分解那樣,語義相似的最后一個詞就是流行詞,這是word2vec的一個很好的特點。
對于短文本分類,我們直接在文檔中加入所有的詞向量作為文本特征來訓(xùn)練分類器,效果也很好。該方法也應(yīng)用于word2vec的訓(xùn)練過程中。另外,如果改用RBF核支持向量機等非線性分類器,分類精度會更高,也符合預(yù)期。
其他序列的數(shù)據(jù)也可以這樣做。我記得去年關(guān)于KDD的文章deepwalk,使用社交網(wǎng)絡(luò)上的隨機游走來生成節(jié)點序列,然后使用word2vec來訓(xùn)練每個節(jié)點對應(yīng)的向量。但我用這種方法在QQ社交網(wǎng)絡(luò)上做了一些實驗,發(fā)現(xiàn)效果很不理想,這可能與QQ社交網(wǎng)絡(luò)的復(fù)雜性有關(guān)。
我非常滿意的一個應(yīng)用程序是將word2vec應(yīng)用到用戶的應(yīng)用程序下載序列。根據(jù)用戶的app下載序列,將app視為一個詞,也可以形成這樣的序列數(shù)據(jù),然后訓(xùn)練每個app對應(yīng)的向量。利用這個向量來計算應(yīng)用之間的相似度,效果非常好。它可以聚合真正與內(nèi)容相關(guān)的應(yīng)用程序,同事可以避免受流行應(yīng)用程序的影響。類似的場景應(yīng)該有很多,而且應(yīng)用也很廣泛,比如推薦系統(tǒng)和廣告系統(tǒng)。
為什么word2vec出來以后,大家還在用distributional hypothesis找近義詞?
Word2vec翻譯是我們通常所說的詞嵌入技術(shù),主要用于自然語言處理。那么這個基本存在的意義是什么呢?簡單地說,人工智能無法區(qū)分自然語言甚至原始語言所描述的意義。它需要向人工智能輸入一段文本,并且必須將其轉(zhuǎn)換成一個可直接用于機器學(xué)習(xí)算法的實向量,即word2vec中的V(vector)。該技術(shù)將原始單詞轉(zhuǎn)化為人工智能,通過分析單詞的上下兩個單詞,甚至單詞所在段落的上下文,識別向量可以更好地理解嵌入的兩個單詞的意思。簡單的一點是,人工智能所未知的單詞可以轉(zhuǎn)化成他們能理解的單詞。這個函數(shù)更接近同義詞。然而,分布式假設(shè)技術(shù)是一種傳統(tǒng)的同義詞發(fā)現(xiàn)技術(shù)。應(yīng)該注意的是,同義詞和同義詞雖然有相似的含義,但它們并不完全相同。這種差異對于人類來說也許是細(xì)微的,但是對于人工智能的快速、準(zhǔn)確發(fā)展來說卻是不可忽視的。因此,分布式假設(shè)在一些問題的處理上還將繼續(xù)存在,甚至有待進一步的研究和探索。我是一個非專業(yè)的學(xué)習(xí)者,以上只是一個很淺薄的個人觀點。
如何用word2vec計算兩個句子之間的相似度?
就是用word2vec來尋找句子之間的相似性。
今天我想介紹一個簡單有效的方法,就是用word2vec來尋找句子之間的相似度。
首先,選擇同義詞庫,例如500000個單詞。然后,使用word2vec計算所有單詞的向量。然后,為每個句子構(gòu)造一個200000維向量。向量的每個維度是對應(yīng)單詞和句子中每個單詞之間的最大相似度。這樣,句子的向量就被構(gòu)造出來了。因為句子不太長,所以200000維向量的大多數(shù)位置的值是0,因為解是稀疏的并且沒有計算挑戰(zhàn)。