首頁 人工智能

第三節 詞向量

字體:16+-

大家對計算機解決各類問題的方式已經有所了解,無論是圖片、聲音,還是視頻,也無論采用何種算法,都需要先把處理對象轉換成使用數值表示的形式,計算機才能進行計算。例如,在第八章處理與圖片相關的任務時,使用圖片像素的RGB值或者灰度值,就可以把圖片轉換成計算機能夠處理的數值形式。當嚐試進行文本的處理和理解任務時,會麵臨同樣的問題,所以把需要處理的文本轉換成數值表示的形式,是工作能夠繼續的首要前提。

這一節的主要內容是講解如何讓機器理解文本的基本單元——詞。那麽如何用數值的形式表示這些構成文本的基本單元呢?

有兩種表示詞的基本方法,一種是獨熱表示(one-hot representation),另一種是分布式表示(distributed representation)。

獨熱表示比較簡單,它是常用的一種詞表示方法。它的直觀的理解方式是這樣的,首先建立一個詞表,這個詞表的作用可以理解為一個大詞典,在文本中可能出現的所有詞都被收納到了這個詞表中並按某種順序排列,每個詞都以它在詞表中出現的次序作為它唯一的編號。假設詞表中一共有3個詞,當需要表示某一個詞時,查詢到它在詞表中出現的位置,比如它恰好是詞表中的第2個詞,則把這個詞表示成一個三維的向量,向量的第2個分量是1,其他的2個分量都是0,也就是(0,1,0)。

更具體一些,例如,建立了如表9-1所示的詞表。那麽“我”的獨熱表示為(1,0,0,…),“是”表示為(0,1,0,…),“中學生”表示為(0,0,0,0,1,0,…)。

表9-1

這種表示方式簡單明了,再結合其他算法,可以較好地解決自然語言處理中的很多問題。但是它有兩個非常明顯的缺陷。一是在文本中出現的詞數量會非常多,詞表的容量會非常大,通常數量是以萬為單位的,所以每個詞的表示向量也都是數萬維的向量,這在各類算法中會造成計算複雜度的急劇上升,並且會帶來“維數災難”。還有一個更重要的缺陷,這種表示方式並未考慮到詞與詞之間的聯係。例如,“美麗”和“漂亮”是兩個含義相似的詞,但是它們的表示方式並不能體現出這種相似性,這相當於詞的大部分信息被舍棄了,使用這樣的表示進行後續的語言處理任務效果可想而知。