【NLP學習其三】在學習什么是嵌入之前,你應該了解什么是詞語表征


在了解什么是嵌入(embeddings)之前,我們需要先搞清楚一個詞語在NLP中是如何被表示的

注:本次不涉及任何具體算法,只是單純對概念的理解

詞匯表征

One-Hot

詞匯的表示方法有很多,最有名的肯定是獨熱編碼(One-Hot )了。因為不是重點,所以下面只簡單介紹一下

廢話不多說,上圖!

image-20210702103445478

假設我們有10000個詞,Man位於第5391個,Woman位於9853,如果想要唯一表示這些詞怎么辦?

我們可以根據詞的總量創建一個n行一列的矩陣,在某個詞出現的地方標注為1,其余都用0填充,這樣就可以唯一表示某個詞了(如上圖中的Man),這就是One-Hot編碼的基本原理

為什么它常常被提到?可能因為比較好理解吧

但One-Hot其實有很多問題的,例如:

  • 數據量大了就炸了
  • 詞與詞之間沒有關聯性

關於第二個缺點這里單獨說明一下

設想你已經有一個訓練好的語言模型,可以預測句子下一個詞是什么,如:

我想喝可口()#模型會判斷出完整句子為“我想喝可口可樂”

但是換一下

我想喝百事()#這時候你的模型可能不知道“百事”與“可口”之間的聯系,自然它不會輸出“我想喝百事可樂”的結果

這種情況我們稱為泛化性差。

那么想要提高泛化性,我們勢必要獲得詞語之間的關系

一種自然的思路就是增加維度

高維詞語表征

這里為什么不說一種具體的方法呢?因為我還是想從舉例入手,避免一步太大扯着蛋

廢話不多說,還是上圖

image-20210702105217612

我們還是沿用之前的例子,只是這里我們加入了Apple和CS兩個新詞

這次試試用特征化的表示方法來表示這些詞,因此,我們的學習對象從詞的唯一表示變成了詞的特征

例如,我們想知道這些詞語與性別(gender)這個特征之間的關系

因為Man和Woman本質上就是性別的指代,這兩個詞應該最接近性別(gender)特征,所以我們假設男人的性別值是-1,女人的是1。

King和男人是非常相關的則可設為-0.95,Queen則與女人非常相關,可設為0.97,Apple和CS則與性別沒什么關系,這顯然是符合我們認知的。

注意:這里的數字只是為了說明相關性,不是由某種計算得出的(暫時不是),你也可以把King設成-0.91

圖中其余特征表示原理類似

又如游戲(Game)與CS這個詞相關性大,因此CS的數值為0.98,而其余的就很低,表明他們與游戲這個特征沒什么關系

那么好了,現在我們把特征擴展到500個

image-20210702111317614

也就是說,我們有了500個維度去衡量一個詞語

此時右邊出現了一些由數值構成的奇怪陣列(你在看glove之類的模型時經常會看見這種東西)

現在,我們還是用一個矩陣表示一個詞,這個矩陣的大小為500行1列,該矩陣由某個詞的特征構成從而具有唯一性,這個矩陣被還可稱為嵌入向量

由此,Man就可以表示為e_5391,同理可以表示其他詞匯

因此,高維表征會比One-Hot有更好的泛化能力。

這種用300維的特征去表示一個詞語的方法就稱為詞嵌入(word embeddings),至於為什么叫嵌入,我猜可能與高維圖像的表示有關,類似於一種嵌套。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM