起源

至今,自然語言處理中最重要的基石:Word Embedding,其起初的想法與後續的發展皆圍繞在一位語言學家 John Rupert Firth 在 1957 年曾經說過的一句名言:

You shall know a word by the company it keeps. (Firth, J. R. 1957)

藉由上下文判斷該詞的意義,看似再稀鬆平常不過了,但我卻認為其道理十分隱晦,以致無法完全體悟。一件事物的本質與意義是由旁物推敲而定,該事物的意義便顯得不是那麼紮實可靠。不過,每每用網路上的劍橋辭典查詢英文單字時,總是出現更多英文單字來解釋之,或許,這樣的現象最能解釋 John Rupert Firth 的這句名言吧!

我們深知任何語言不過是一連串符號象徵,其背後意義在人腦中如何運算無從得知。企圖用電腦運算來處理語言、理解語言,便必須使用數值來表示這些語言符號,而如何表示,即是 Word Embedding 最重要的精髓了。這也是我認為為何深度學習能在電腦視覺與聲音辨識中,相較於自然語言處理,更能快速取得成功的其中一項因素,因為電腦視覺與聲音辨識的資料本身即是數值,而自然語言的資料是符號,需要額外轉換為數值。

當時,人們想到一種簡單的方式來進行轉換:One Hot Representation。假設擁有一部字典,裡頭只有五個字:「蘋果」、「漂亮」、「台灣」、「日本」、「香蕉」。每個字詞代表為一種維度。

蘋果 = [1 , 0, 0, 0, 0]

漂亮 = [0, 1, 0, 0, 0]

台灣 = [0, 0, 1, 0, 0]

日本 = [0, 0, 0, 1, 0]

香蕉 = [0, 0, 0, 0, 1]

我們會發現,每個字詞都是正交 (Orthogonal),換句話說,在這五維空間中,這五個字詞彼此之間的距離是相同的,停下來想一想,這樣合理嗎?

a. 台灣出產香蕉,總是外銷日本。

b. 日本種植蘋果,總是外銷台灣。

在這兩句話當中,不難發現,台灣與日本、香蕉與蘋果,分別是兩組意義相似的概念。在空間中,直覺上彼此距離應該要彼此相近、與其他字詞的距離應該要相遠才是,而用 One Hot Representation 表示的字詞,彼此距離卻是相同的;再來,字典中不會只有五個字,當裡頭含有五萬字詞時,就代表每個字詞必須用五萬個維度來表示,且其中 49999 個維度是零、1個維度是一,計算相當不方便呢!因此,使用 One Hot Representation 的兩個缺點,分別是「語義鴻溝」與「維度災難」。

到這裡,稍作片刻、駐足思考,"You shall know a word by the company it keeps." 一個字詞的意義來自於它身旁的上下文,背後延伸的概念是「擁有相似上下文的字詞,詞義應相似;擁有相異上下文的字詞,詞義應相異」,套用一些空間概念來看:「擁有相似上下文的字詞,轉換成數值之後,在空間中的距離應相近;反之,距離應相遠」。這就是 Distribution Hypothesis 的全貌,是 Word Embedding 將符號轉換成數值後,最想達到的目的。

1986 年,深度學習之父 Hinton,發表一篇論文《Distribution Representations》,提到將每個神經元(維度)表示為一個概念時,叫做 Local Representation,One Hot Representation 是 Local Representation 的一種;另外,提出 Distribution Representation 的概念,每個神經元(維度)可以表示多組概念,每個概念可被多個神經元(維度)所表示。

Distribution Representation 一次解決了「語義鴻溝」與「維度災難」兩個問題。其一,這些神經元能透過模型訓練,使其符合 Distribution Hypothesis (擁有相似上下文的字詞,空間中彼此距離相近);其二,維度(神經元個數)不必因字典大小而無限擴展,相較於 One Hot Representaion 來說,是較低維的向量(少於字典中的字詞數)。

自此之後,自然語言處理領域中, 「Word Embedding」、「詞嵌入」、「詞向量」,幾乎都由 Distribution Representation 表示,只是獲得此向量的方式不一,百家齊放。我認為,Word Embedding 技術,是深度學習在自然語言處理領域中不可或缺的基石,因為它是銜接人類符號與電腦運算的重要橋樑。

用途

在了解 Word Embedding 如何獲得之前,我們先來看看 Word Embedding 可以如何使用吧!

首先,如同上述所說,Word Embedding 的目標即是使擁有相似上下文的字詞,空間中彼此距離相近,因此,我們可以直接拿 Word Embedding 來衡量近義詞、相關詞、反義詞、相反詞等等,衡量的依據可以是傳統歐式距離、可以是 cos 夾角、可以是經典的 king-man+woman=queen。

再來,也可以拿 Word Embedding 做特徵工程,雖然不清楚每個維度代表的含義,但是總有一些不為人知的可用訊息隱藏在裡面。

最後,也是目前深度學習的趨勢,將 Word Embedding 作為神經網路的初始值。我們都知道,初始值是影響模型能不能收斂於局部最佳解的重要因素,若 Word Embedding 做得不錯,就有機會大幅提升模型效能。

百家齊放

Word Embedding 是訓練語言模型(Language Model)後的副產物,即神經網路的權重。語言模型,看似艱深,其實不然,一言敝之:給定一串文字,其是自然語言的機率。換句話說,語言模型的目標,是去學習一串文字的機率分佈。

到這裡,稍作片刻、駐足思考,Word Embedding 的初衷是 Distribution Hypothesis ,與語言模型有何關聯呢?事實上,擁有相似上下文的字詞,意涵擁有相似分佈的字詞,語言模型志在學習這些分佈。因此,透過訓練語言模型,當模型能夠精確地輸出機率分佈之時,讓模型做出判斷的那些模型權重,便是我們所要的 Word Embedding。