【NLP學習其三】在學習什麼是嵌入之前,你應該瞭解什麼是詞語表徵

DAYceng發表於2021-07-02

在瞭解什麼是嵌入(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維的特徵去表示一個詞語的方法就稱為嵌入(embeddings),至於為什麼叫嵌入,我猜可能與高維影像的表示有關,類似於一種巢狀。

相關文章