從猜詞小遊戲認識Word2Vec

Alex 發自 凹非寺

量子位 | 公眾號 QbitAI

來和你的計算機玩個猜詞遊戲嗎?

這個叫Pimantle的猜詞遊戲,規則很簡單:

隨便輸入一個單詞,如果它越接近謎底,就會離下圖的中心點越近。

從猜詞小遊戲認識Word2Vec

在完全沒有範圍限制和人工提示的情況下,通過計算機反饋的輔助,網友給出的最接近預設詞的是“delicatessen”(熟食),與謎底相似度已經達到了79.20。

從猜詞小遊戲認識Word2Vec

不過,友友們是否好奇——這麼多次猜測背後,計算機是怎麼判斷單詞之間的“相似度”的啊?

其實,這是基於NLP領域的一個常用工具——Word2Vec。

顧名思義,它可以將單詞轉換成向量形式,來輔助計算機判斷詞義。

從猜詞小遊戲認識Word2Vec

Word2Vec是Tomas Mikolov等人於2013年提出的一個詞嵌入生成方法。

它在潛在語義分析等方面優於之前的算法,在判斷文本相似度、系統推薦、觀點分析等方面都具有廣泛的應用。

一名研究機器學習的工程師Vatsal在Towards Data Science發佈了一篇介紹Word2Vec的文章,並收穫了相當不錯的關注度。

從猜詞小遊戲認識Word2Vec

這篇帖子在Towards Data Science上收穫了1300+贊,Hackernews上2天之內收穫了107熱度。

從猜詞小遊戲認識Word2Vec

網友表示:這是一篇很不錯的入門介紹,包含了足夠的細節和參考資料。

從猜詞小遊戲認識Word2Vec

下面我們就跟隨這位小哥一起來認識詞嵌入和Word2Vec吧!

Word2Vec的基本原理

在介紹Word2Vec前,先來説説什麼是詞嵌入。

單詞嵌入是將單個自然語言單詞在預設的向量空間表示為矢量的技術總稱,通過映射得到向量的編碼過程被稱為嵌入,而這些向量可作為後續任務中神經網絡模型的輸入。

例如,某個文本中包含“have”,“a”,“good”,“day”等詞,這些詞映射到向量空間中,表示為不同的向量。

從猜詞小遊戲認識Word2Vec

機器可以通過向量內積空間夾角的餘弦值來判斷對應單詞的語義相似度。

當給定了足夠大的數據集,Word2Vec可以根據單詞在文本中的出現情況,對單詞的意思進行判斷,評價結果會與語料庫中其他單詞產生聯繫。

此外,Word2Vec還可以做類比。例如,“國王”和“女王”算是相似度很高的詞語。v(“國王”)-v(“男性”)+v(“女性”)≈v(“女王”)

從猜詞小遊戲認識Word2Vec

有了這些運算,機器也可以像人一樣“理解”詞彙的意思了。

Word2Vec的兩種訓練模式

Word2Vec包含兩種訓練模式,分別是Continous Bag of Words(連續詞袋模型)和skip-gram。

其中,CBOW是通過給定的上下文,預測當前詞。

如下圖所示,w\left( t \right)表示當前單詞,w\left( t-? \right)表示前文的單詞,w\left( t +?\right)表示後文的單詞。

從猜詞小遊戲認識Word2Vec

skip-gram則是將當前單詞作為輸入,去預測上下文的詞。

從猜詞小遊戲認識Word2Vec

研究者們發現,在詞彙向量範圍增大的情況下,預測質量會有所提高,但計算複雜度也會增高。

對Skip-gram訓練過程的可視化描述。

從猜詞小遊戲認識Word2Vec

可見,當給定了文本語料庫,目標詞是在某個滾動窗口中選擇的。目標詞和窗口中的其他單詞分別組合,形成神經網絡的訓練數據。

通過對模型進行訓練,可以基本得到某個詞作為給定目標上下文單詞的概率。

上文介紹了Word2Vec的基本原理,那麼這個詞嵌入法還有什麼應用或延伸嗎?

Word2Vec的延伸:XXX2Vec

你是否做過MBTI人格測試,或者五大人格特質測試?

這些測試會給參與者一系列問題,然後給不同的幾個指標打分,例如:內向-外向。

從猜詞小遊戲認識Word2Vec

假設滿分為100分,某人外向性指標的最終得分為38/100。可以用這種方式繪圖:

從猜詞小遊戲認識Word2Vec

下面把範圍收縮到-1到1:

如果再加上另一個指標,如負責性,那麼需要再添加一個座標軸。

當我們把前文所示的五個主要的人格特徵都進行統計分析,會得到:

我們可以對不同的人進行測試,並收集測試結果,如:

Word2Vec可以比較不同單詞的意思,同理,我們可以運用向量餘弦相似度比較不同個體的個

性:

顯然,Jay和另一個“測試者1”的性格更相似。

上文展示了將性格向量化,即Personality2Vec。

其實近年來,已經衍生出了2vec的不同變種,例如有的利用段落信息,有的利用整個文本的信息,有的則是在更高維度的item上進行2vec操作。

其中,Paragraph2vec基於CBOW,把段落的ID作為屬性也納入計算當中。

深度學習的表徵能力很好,但是工程師們需要耗費大量的時間來選擇特徵。

未來應該會有更多的*2Vec誕生,在一個概念比較抽象、複雜時,通過向量化進入另外一個N維空間也許會帶給人們一些啓發。

看到這裏,你是否想試試文章開頭提到的猜詞遊戲?萬一中了呢?:)

遊戲鏈接:

https://semantle.pimanrul.es/

參考鏈接:

[1]. https://towardsdatascience.com/Word2Vec-explained-49c52b4ccb71

[2]. https://jalammar.github.io/illustrated-Word2Vec/

— 完 —

量子位 QbitAI · 頭條號簽約

版權聲明:本文源自 網絡, 於,由 楠木軒 整理發佈,共 2062 字。

轉載請註明: 從猜詞小遊戲認識Word2Vec - 楠木軒