如何用 word embedding 計算你和女神的距離?


如何用 word embedding 計算你和女神的距離?

在 NLP(Natural Language Processing,自然語言處理)領域,word embedding 已經成為了眾所周知的技術。如果你想要從事數據/算法相關工作,它幾乎成為了繞不開的坎。在面試環節,如果你的崗位與 NLP 相關,那 word embedding 就是必考內容,請認真做筆記;面試其他機器學習領域掌握 word embedding 也是強有力的加分項。

在現實生活中 word embedding 已經擁有非常廣泛的應用:語音助手、機器翻譯、情感分析... 因為 word embedding 的特殊性,它幾乎覆蓋了所有 NLP 的應用。

對於其他開發者,嘗試 word embedding 也有無窮的樂趣,想知道你和女神的距離嗎?求一下兩個詞的餘弦相似度即可。

其實相比於較為複雜的深度學習模型,word embedding 相對簡單得多,但是鮮有中文文章能將其講解透徹。本文將會從傳統的 one-hot 編碼開始,闡述其優劣,並延伸至 word embedding 技術和其優點,到這裡,所有的讀者都可以容易的理解。對於想深入瞭解算法本身的讀者,下篇會繼續闡述一些算法的底層細節,包括算法的 forward prop 和 backward prop,以及其意義。


一、為什麼要讓單詞變成向量 - 讓計算機知道愛

人類可以很輕易地理解一個單詞、詞組或者字母,比如「LOVE」,但機器是理解不了的。想要讓機器理解單詞,就必須要把它變成一串數字(向量)。下面介紹的 One-Hot Encoding(One-Hot 編碼)和 Word Embedding (詞嵌入)和就是把單詞變成向量的兩類方法。


二、One-Hot Encoding - 不負責任的老師

以前人們採用的方法是 one-hot encoding。

我們以英文為例,首先你要維護一個很長很長很長的詞彙表,詞彙表可以是前人總結出來的常用詞,也可以是你文本數據裡的所有單詞的集合,詞彙表大概長成這樣:

如何用 word embedding 計算你和女神的距離?

可以把詞彙表理解成一個 (V, 1) 維的向量,其中 V 為詞彙個數,在上面這個詞彙表裡,第一個詞是 a,第 v 個詞是 zulu,假設 love 是其中的第 520 個詞,那麼 love 這個單詞就可以表示成如下向量:

如何用 word embedding 計算你和女神的距離?

即在這個 (V, 1) 維的向量中,第 520 元素為 1(表示出現了單詞 love),其餘元素為 0。同理,詞彙表中的任何一個單詞都可以以這種形式表達,這個方法叫做 one-hot encoding。


三、word embedding - 讓計算機學會愛

one-hot encoding 可以讓計算機知道有這麼個單詞,但這個單詞表示什麼意思?和其他單詞有什麼關聯?計算機是理解不了的。比如「love」和「romantic」,人類可以很輕易的理解這兩個單詞,但是 one-hot encoding 的結果只能告訴計算機:「love」和「romantic」僅僅是非常高維的空間裡兩個毫無關係的向量(內積為 0)。

one-hot encoding 不是一個好老師,它只讓計算機死記硬背單詞,卻不能讓計算機理解單詞背後的文化和內涵。

此時就需要 word embedding 這個優秀的老師登場了。

word embedding 將 one-hot encoding 的向量映射到一個新的空間,在這個空間裡,「love」和「romantic」、「apple」和「orange」等不再是毫無關係的高維向量,表示近似含義的單詞可能會更加接近彼此,向量間的相似度也更有意義。

比如說,經過了 word embedding 後,每個單詞都會映射到一個 300 維的空間,那麼單詞可能會被表示成如下形式:

如何用 word embedding 計算你和女神的距離?

第一個維度表示性別,King 接近 -1(男性),Queen 接近 +1(女性),而 Apple 和 Orange 與性別沒什麼關係,所以接近 0;第二個維度表示尊貴程度,第三個維度表示年齡,可以以此類推。

顯而易見,經過 word embedding 後,「King」和「Queen」更接近了,「Apple」和「Orange」更接近了,同時「King」或「Queen」離「Apple」或「Orange」更遠了。

現在計算機已經懂了,後來學者們又發現,其實通過向量的基礎運算,我們也可以對 word embedding 的結果更懂一些,比如說,在上面的例子中,代表 King 的向量減去代表 Queen 的向量,其結果和代表 Man 的向量減去代表 Woman 的向量近似相等:

如何用 word embedding 計算你和女神的距離?

再比如假如以 B 站的網頁信息和彈幕等作為語料庫訓練模型,二次元的女神也可以被作為詞向量進行計算:

如何用 word embedding 計算你和女神的距離?

這是一個很驚奇的發現:原來單詞的基礎運算也有一些奇妙的意義。現在我們不僅懂了,還很扎心了。

最後還需要澄清一點,在本文舉的例子裡,word embedding 的結果,每個維度都有很容易解釋的意義,比如性別等,實際上算法計算出的詞向量其

維度代表的意義往往難以解釋,也不具備現實意義。這也是深度學習一直很魔幻的地方:算法研究者自己計算出的結果自己都很難解讀。


四、總結

​最後我們來做一個總結,自然語言的向量化表示方法主要有兩類:one-hot encoding 和 word embedding。它們的優缺點如下:

如何用 word embedding 計算你和女神的距離?

本文對 word embedding 的意義和結果做了闡述,關於 word embedding 的具體實現我們下篇文章見。


Sequence Model - deeplearning.ai



分享到:


相關文章: