通俗易懂的Word Embeddings
通俗易懂的Word Embeddings
??Word Embeddings是機器學習領域最酷的事情之一,因為它可以從海量的文本數據中挖掘出單詞之間紛繁復雜的聯系。例如你可以在不給定任何先驗知識的情況下,利用Word Embeddings學習到所有和顏色相關的詞匯。為了方便理解,我們先給出一個簡單的例子:
I painted the bench _______??不難發現上述例句中缺少一個單詞,顯然這里需要填入一個有關色彩的詞匯,例如:
I painted the bench red
I painted the bench green
??甚至我們可以說這里所填入的內容很可能與顏色有關,但不幸的是,這里也可以填入和色彩無關的單詞,比如:
I painted the bench today
??但不管怎么樣,語境與語義其實是息息相關的。所以上述的例子中,我們在空白地方填入不同的單詞,并且會假設這些單詞是相關的。
??除了以上情況之外,還有另外一種方式可以利用語境來幫助我們理解兩個單詞之間的相關性。若兩個單詞通常出現在同樣的語境中
,我們便認為這兩個單詞是有關聯的。我們給出3個不同的句子來幫助我們理解上述內容:
??第一個句子中United和States通常都會一起出現,所以我們會將這兩個單詞合并使用。在第二個以及第三個句子中,我們會發現joke和laugh是有關聯的單詞,因為他們往往會出現在相似的語境中。在這里我們想要指出的是laughed和laugh有可能是不同的單詞,laughed是過去式而laugh是動詞原形。同樣的,jokes表示復數形式而joke是單數形式。這些都是同一單詞的不同形態。Word Embeddings可以通過語料學習到單詞的時態以及單復數的變換。在上例中,我們可以發現laughed和joke出現在了同一語境中,并且joke和laugh也出現在同一語境中,所以Word Embeddings會認為laughed和laugh都和joke有關,故而認為他們是有關聯的。
??Word Embeddings其實就是將單詞轉變為向量,比如你給定hamburger,模型會將其轉換為64維的向量,向量中的數值可以對該單詞進行描述。比如我們給了hamburger和cheeseburger,Word Embeddings會用非常相近的向量來表述這兩個單詞。但當我們輸入Ferrari,我們希望表述Ferrari的詞向量離hamburger以及cheeseburger很遠。
??Word Embeddings中很經典的一個例子就是man-woman+queen=king。所以我們不僅希望相似的單詞具有相一致的向量表述,還希望不同單詞的向量表述之間的差異也包含有用的信息。
如何實現呢
??第一種實現方法就是Word2vec,其工作過程如下:
??我們從語料中任選一個單詞,并將該單詞抽出,例如將yellow這個單詞取出來。然后將該單詞喂入word2vec神經網絡,并預測其它單詞與喂入單詞在同一句話中的概率。所以本例中的Word2vec模型是根據給定單詞預測上下文單詞。
??神經網絡對不同的單詞有不同的輸入神經元。所以我們可以將輸入的神經元置1而將其它神經元置0,這個過程類似于獨熱編碼。然后將輸入層與隱層相連,隱層具有較少的神經元,例如64個神經元。然后我們將隱層與輸出層相連,輸出層包含所有上下文有關的單詞。通過這種方式,不同的單詞若具有相似的上下文,那他們的隱層表示就會很相近。
??除了word2vec以外,我們也可以使用Co-occurrence Matrix表示單詞之間的聯系:
??矩陣中的數值表示兩個單詞出現在同一句話中的次數。通過Co-occurrence Matrix生成Word Embeddings的最簡單的方法之一是利用矩陣分解的方法:
??這里的矩陣分解可以采用SVD分解等方法。我們可以將圖右邊的又瘦又高的矩陣加以利用,該矩陣的每一行都表示一個單詞的Word Embedding。當然我們也可以將瘦高矩陣的某一行與矮胖矩陣對應的那一列相加后取平均值來表示一個單詞的Word Embedding。
??除了上述方法之外,還有一種被稱為GloVe的方法能夠生成Word Embeddings。
參考鏈接
[1] Word Embeddings
[2] Try the web app
[3] Word2vec paper
[4] GloVe paper
[5] GloVe webpage
[6] http://www.aclweb.org/anthology/Q15-1016
[7] https://en.wikipedia.org/wiki/Word_embedding
總結
以上是生活随笔為你收集整理的通俗易懂的Word Embeddings的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 人人都能看懂的循环神经网络RNN
- 下一篇: 可视化神经机器翻译模型(基于注意力机制的