word embedding以及one-hot編碼的區別及應用

在 NLP領域,word embedding 已經成爲了衆所周知的技術。
在現實生活中 word embedding 已經擁有非常廣泛的應用:語音助手、機器翻譯、情感分析… 因爲 word embedding 的特殊性,它幾乎覆蓋了所有 NLP 的應用。
本文將會從傳統的 one-hot 編碼開始,闡述其優劣,並延伸至 word embedding 技術和其優點

​一、爲什麼要讓單詞變成向量 - 讓計算機知道愛(NLP中讀懂數據)

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

二、One-Hot Encoding - 不負責任的老師(詞彙表->稀疏向量)

​以前人們採用的方法是 one-hot encoding。
我們以英文爲例,首先你要維護一個很長很長很長的詞彙表,詞彙表可以是前人總結出來的常用詞,也可以是你文本數據裏的所有單詞的集合,詞彙表大概長成這樣:
在這裏插入圖片描述
可以把詞彙表理解成一個(V, 1)維的向量,其中V爲詞彙個數,在上面這個詞彙表裏,第一個詞是 a,第 v 個詞是 zulu,假設 love 是其中的第 520 個詞,那麼 love 這個單詞就可以表示成如下向量:
在這裏插入圖片描述即在這個(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 維的空間,那麼單詞可能會被表示成如下形式:

在這裏插入圖片描述

第一個維度表示性別,King 接近 -1(男性),Queen 接近 +1(女性),而 Apple 和 Orange 與性別沒什麼關係,所以接近 0;
第二個維度表示尊貴程度,第三個維度表示年齡,可以以此類推。顯而易見,經過 word embedding 後,「King」和「Queen」更接近了,「Apple」和「Orange」更接近了,同時「King」或「Queen」離「Apple」或「Orange」更遠了。現在計算機已經懂了,

後來學者們又發現,其實通過向量的基礎運算,我們也可以對 word embedding 的結果更懂一些,
比如說,在上面的例子中,代表 King 的向量減去代表 Queen 的向量,其結果和代表 Man 的向量減去代表 Woman 的向量近似相等:
再比如假如以 B 站的網頁信息和彈幕等作爲語料庫訓練模型,二次元的女神也可以被作爲詞向量進行計算: 這是一個很驚奇的發現:原來單詞的基礎運算也有一些奇妙的意義。現在我們不僅懂了,還很扎心了。最後還需要澄清一點,
在本文舉的例子裏,word embedding 的結果,每個維度都有很容易解釋的意義,比如性別等,
實際上算法計算出的詞向量其 維度代表的意義往往難以解釋,也不具備現實意義。這也是深度學習一直很魔幻的地方:算法研究者自己計算出的結果自己都很難解讀。

四、總結

最後我們來做一個總結,自然語言的向量化表示方法主要有兩類:one-hot encoding 和 word embedding。它們的優缺點如下:
在這裏插入圖片描述https://www.zhihu.com/org/ling-kou-leetcode

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章