語言識別模型源於一個數學家讀小說的故事。
1913 年,俄羅斯數學家安德雷 · 安德耶維齊 · 馬爾科夫拿起一本俄羅斯文學的經典作品,亞歷山大 · 普希金的歌劇小說《尤金 · 奧涅金》。不過馬爾科夫只是為了測試自 1909 年發展起來的概率論。數學家更想看到一個個字母後面的數學結構。那時的概率論主要用來分析輪盤賭局和硬幣翻轉等現象,認為之前的結果不會影響到的當前事件的可能性。但是馬爾科夫不贊同,他覺得大多數事情都有因果關係,他想要通過概率分析一些事情,並建立模型。
德雷 · 安德耶維齊 · 馬爾科夫
《尤金 · 奧涅金》成為馬爾科夫的試驗材料。他的假設聽上去匪夷所思——這本經典文學作品中,某個位置會出現什麼字母,某種程度上取決於它之前的字母。
計算機還沒出現的 1913,馬爾科夫抄錄了《尤金 · 奧涅金》書中的前 20000 個字母,不包括標點和空格。然後按 10*10 的排列方式,填在 200 個網格中,開始逐行逐列對元音字母進行計數。統計完發現,43% 的字母是元音,57% 是輔音。馬爾科夫還將這些字母分成成對的元音和輔音組合,結果是:1104 個元音對、3827 個輔音對、15069 個元音 - 輔音和輔音 - 原因對。從統計學看,這證明,在普希金文本中的任何給定字母,如果是元音,則下一字母可能是輔音,反之亦然。
馬爾科夫用這個結果證明《尤金 · 奧涅金》的文本不是字母的隨機分布,而是具有可以建模的基本統計的性質。後來,人們稱馬爾科夫這是給自己的數學技能找到一個實際用途——用鏈模型來模擬俄羅斯文學中輔音和元音的頭韻法。
鏈模型就是馬爾科夫鏈,又稱離散時間馬爾科夫鏈,指在狀態空間中,從一個狀態轉換到另一個狀態的隨機過程,該過程是 「無記憶」性質的,下一狀態的概率分布只能由當前狀態決定。馬爾科夫在隨機過程領域的研究成果還有馬爾科夫決策過程,它提供面對部分隨機、部分可由人類決策的狀態下,如何進行決策,經過演化,被廣泛應用在機器人學、自動化控制等領域。在馬爾科夫鏈衍和馬爾科夫決策過程理論基礎上,20 世紀 60 年代,Leonard E. Baum 和其它一些作者描述了一種隱性馬爾科夫模型,這是大多數現在自動語音識別系統的基礎。
維基百科上有一個事例來解釋隱形馬爾科夫模型。
假設你有一個住的很遠的朋友,他會每天打電話說當天做了什麼。他只會做三件事:公園散步、購物、清理房間,他根據天氣選擇做什麼事。你不知道他住處每天的天氣怎麼樣,但是你知道總趨勢,在他告訴你每天做了什麼事情的基礎上,你要猜測他所在地的天氣狀況。
也就是說,在這個隱形馬爾科夫模型中,「雨」和 「晴」的狀態對你來說是隱藏的,可觀察的數據就是 「公園散步」、「購物」、「清理房間」,那麼用 Python 寫下來就是:
states = (&39;, &39;) observations = (&39;, &39;, &39;) start_probability = {&39;: 0.6, &39;: 0.4} transition_probability = { &39; : {&39;: 0.7, &39;: 0.3}, &39; : {&39;: 0.4, &39;: 0.6}, } emission_probability = { &39; : {&39;: 0.1, &39;: 0.4, &39;: 0.5}, &39; : {&39;: 0.6, &39;: 0.3, &39;: 0.1}, }
在這些代碼中,start_probability 代表第一次打電話的不確定性,此時概率分布不平均。transition_probability 表示基於馬爾科夫鏈模型的天氣變遷。emission_probability 表示了你朋友每天做某件事的概率。
再以語音系統為例,隱形馬爾科夫模型在語音處理上,可以通過隱藏條件猜測下一個音,具體可從語義和發音兩方面看。一是單字的發音有前後關係,如英語中的 &34; 常常發音成 &39;re&34;Did you&34;you&34;did&34;did ju"。語音識別需要考慮到每個音節的前後關係,才能有較高的準確率。二是,句子中的前後字節間的關係,比如英文中動詞後常接固定介詞或對應名詞,中文也類似。
當然,從馬爾科夫數字母,到隱性馬爾科夫模型的提出,再到語言識別、生成模型應用,期間還有很多人提出了各種各樣的理論。其中影響比較大的是資訊理論創造者克勞德 · 艾爾伍德 · 香農。
香農對馬爾科夫數字母背後的思想很是著迷,像馬爾科夫一樣,香農嘗試建立語言的統計模型,通過統計規則生成文本。
香農最初的實驗,通過 26 個字母加 1 個空格,共計 27 個符號,隨機抽取字母生成句子,每個字母概率相同,得到:
XFOML RXKHRJFFJUJ ZLPWCFWKCYJ FFJEYVKCQSGHYD QPAAMKBZAACIBZLHJQD
香農說生成的這句話毫無意義,因為當我們交流時,不會選擇同等概率的字母組合。正如馬爾科夫的實驗表明,輔音比元音更可能出現。但是在更高的粒度上,E 比 S 更普遍,S 比 Q 更普遍。為了解決這個問題,香農修改了原始實驗字母,使其更精確模擬英語中每個字母出現的概率。比如 E 出現的概率比 Q 高 11%,這樣得出一個新的結果,更接近一個正確的句子:
OCRO HLI RGWR NMIELWIS EU LL NBNESEBYA THEI EEI ALHENHTTPA OOBTTVA NAH BRL
在之後的系列實驗中,香農證明了,隨著統計模型變得更加複雜,可以得到更容易理解的結果。
馬爾科夫和香農的實驗,被看做是對語言的統計屬性進行建模提供了一種新的思路,他們的語言建模和生成的統計方法為自然語言處理開創了一個新的時代。