第二章 文獻回顧以及方法探討
2.2 語言模型演進
圖 2.2 語言模型演進示意圖
圖 2.2 為 1990 年代至今的語言模型演進示意圖,相關模型將於以下說明。在 這些眾多的語言模型中,最基本的統計式語言模型為 N 連語言模型,該模型透 過機率模型的建立來描述語言生成的規律性,最早可以追溯至克勞德‧香儂
(Claude Elwood Shannon)在資訊理論中所提出的馬可夫假設。在給定一串英文字 母序列後,預測下一個最可能出現的字母,探討每一個字母的出現只會與其前 N-1 個字母相關,因而發展出著名的 N 連語言模型(N-gram Language Model)。N
連語言模型被廣為應用於自然語言處理、機器翻譯、語音識別、資訊檢索、語言 模型等各個領域之中,但是 N 連語言模型經常會遇到資料稀疏(Data Sparseness)
12
[18], [19]以及缺乏長距離詞彙規則資訊(Insufficient Long-Distance Regularity)[20]
的問題。為了改善語言模型資料稀疏造成模型參數估測的問題,許多學者陸續提 出不同的模型平滑化方法(Smoothing)來解決此問題,例如 Good-Turing 估算法[21]
與 Kneser-Ney 退回式平滑化法[22]等。
在 1992 年 Brown 提出了類別 N 連語言模型(Class-based N-gram Model)[23],
表示在詞序列中的每一個詞都有隸屬於自己的詞類別(Word Class),而在同一詞 類別的詞具有相似的語意或語法資訊。透過詞類別的資訊可以解決 N 連語言模 型參數量龐大的問題。
為了解決 N 連語言模型缺乏長距離詞彙規則資訊的問題,在 1993 年略詞模 型(Skipping Language Model)[24]被提出,略詞模型將詞對的相鄰限制條件放寬,
允許前 N-1 個詞中的某個詞替換或者省略其中的幾個詞後的 N’ 連詞的機率值近 似原來的 N 連語言模型機率值。略詞模型不僅能處理資料稀疏的問題同時也包 含了過濾功能詞的效用。略詞模型亦有許多不同變形,而在 2011 年 Goodman 針 對多種略詞模型討論並比較其效用。
在 1993 年,Lau 與 Rosenfeld 提出觸發對語言模型(Trigger-based Language Model)[25],將觸發對資訊運用於最大熵值法於語言模型之中。而 1994 年,
Rosenfeld 提出將最大熵值法(Maximum Entropy)運用於語言模型中。最大熵值法 其目的是希望語言模型對於給予每一個未見過的 N 連詞的機率越相近越好。
在類別 N 連模型中,每一個詞只有對應到一個固定的詞類別,而實際上每一
13
個詞並非只包含一種語意或是文法資訊。因此 Saul 以及 Pereira 於 1997 年提出 聚合是馬可夫模型(Aggregate Markov Model)[26],使得一個詞可以隸屬於多個類 別以放寬詞與詞類別的對應關係。
在 1997 年,Chelba 提出結構化模型[27] [28],將歷史詞序列進行文法剖析 (Parsing),利用解析出的詞性標註(Part-of-Speech Tagging) 、每個段落的主導詞 (Headword)以及詞序列建立機率模型藉以估測下一個預測詞的機率。
另外,Bellegarda 於 1997 年提出潛藏語意分析(Latent Semantic Analysis, LSA)[29]運用於語音辨識研究。潛藏語意分析透過奇異值分解(Singular Value Decomposition, SVD)方法,將詞與文件投影至低維空間並藉此描述詞與文件間的 關係。
然而潛藏語意分析缺乏機率式涵義以及在奇異值分解後可能會有負值產生 導 致 無 法 定 義 問 題 , 因 此 於 1999 年 Hofmann 提 出 機 率 式 潛 藏 語 意 分 析 (Probabilistic Latent Semantic Analysis, PLSA)[30]運用於語音辨識中,而 Novak 在 2011 年時也提出非負矩陣分解[31]來解決此問題。
在 2000 年時,Chen 等人提出使用鑑別式訓練[32]於語言模型中,直接以提 升語音辨識的辨識率作為訓練目標,期望獲得一組特徵權重讓辨識錯誤率為最低 的語言模型。而 2002 年 Kuo 提出以梯度下降法(Gradient Descent)[33]求取鑑別式 語言模型參數解過程。
Bengio 於 2000 年時提出了類神經機率語言模型[34],改善先前平滑技術多以
14
較低階的 N 連語言模型機率值決定高階的 N 連語言模型機率值的方式。
在 2007 年時,Chiu 提出詞主題模型(Word Topic Model, WTM)[35],此模型 針對在訓練語料中每一個詞所出現的資訊來建立其對應的詞虛擬文件 (Word
Pseudo-document),分別訓練出每一個詞的機率生成模型,組成文件或詞序列的 機率生成模型以預測下一候選詞的出現。
Afify 於 2007 年時 提 出高斯 混 合語言 模 型 (Gaussian Mixture Language Model, GMLM) [36],基於高斯混合模型已成功用於語音辨識的聲學模型中,而 希望將此研究結果帶進語言模型中。
2010 年 Mikolov 提 出 遞 迴 式 類 神 經 網 路 語 言 模 型 (Recurrent Neural Network Language Model, RNNLM)[37],此模型是將前一個時間點的隱藏層資訊 加入輸入層中,藉此架構保留長距離的資訊以獲得更好的預測,並加入類別層以 減少計算上的複雜度。
由於遞迴式類神經網路會因為梯度計算隨時間成指數增長或衰減而有梯度 消失(vanishing gradient)[38]的問題導致模型難以訓練。為了彌補此問題, Sepp Hochreiter以及 Jürgen Schmidhuber 於 1997 年所提出的長短期記憶人工神經網絡 (Long Short-Term Memory, LSTM)[39],透過神經網路結構修改,能避免傳遞時造 成的梯度消失問題。
近年來深度學習(Deep Learning)興起,2012 年 Google X Lab 利用 1000 台電 腦打造人工智慧系統,也就是所謂的 Google Brain。Google Brain 模擬人類頭腦
15
的思維模式,在龐大的數據資料下找出隱含在其中的抽象規則資訊,使用一萬六 千台電腦以及一千萬張隨機從 Youtube 影片中的截圖給 Google Brain 觀看學習,
經過三天的學習後,成功地將這些圖片分成人臉、身體以及貓三類。在沒有額外 加入其他圖像知識或是任何標籤的情況下,便能識別出貓,此實驗結果展現了驚 人的機器學習能力。深度學習在圖像視覺以及語音識別上皆有顯著的效果,隨著 深度學習的發展而有分散式表示法(Distributed Representation)的產生,不僅能以 較低維度的向量表示還可以找出兩兩詞之間的語意關係。分散式表示法最早由
Hiton 於 1986 年提出[40],在 2003 年時Bengio 將其引用至語言模型中[34] 。隨 後詞向量的訓練以及應用也陸續被提出,例如 Ronan Collobert 和 Jason Weston[41]
在 2008 年提出以 pair-wise 的方式訓練詞向量,並藉由訓練得到的詞向量應用於 其他自然語言的任務例如詞性標注(Part-Of-Speech Tagging)、分類問題、命名實 體識別(Named-Entity Recognition)等。
2008 年 Andriy Mnih 以 及 Geoffrey Hinton[42], [43] 提 出 Hierarchical Log-Bilinear(HLBL)模型,此模型的隱藏層可以直接和詞向量內積算出其相似度,
而且隱藏層至輸出層改以詞向量做為輸出變量,最後在輸出層以二元樹的方式當 作輸出,為一種機率式的線性模型,不僅降低了複雜度並且加快其運算的速度。
由於類神經網路大部分的運算時間都花在非線性隱藏層上,所以 Tomas Mikolov[44]在 2013 年提出連續型模型(Continue Bag-of-Words Model)與跳躍式模 型(Continue Skip-gram),除去了隱藏層以減低計算時的複雜度,並發現可以透過
16
計算兩個詞向量間的差異度找出其中的語義關係。隔年,Mikolov[46], [47]延續 此模型並加入段落向量(Paragraph Vector)資訊於模型中。每當預測一個單詞時,
便加入此單詞所在段落的段落向量當作輸入,所新增的段落向量可視為補足只用 單詞訓練時僅有短距離的鄰近資訊,亦可將段落向量視為段落所對應的主題資 訊。
17 過一些平滑化(Smoothing)的技術,如 Good-Turning 估算法[21]與 Kneser-Ney 退 回式平滑化法[22],以解決資料稀疏問題。