數學之美 系列一 -- 統計語言模型(轉)

 

數學之美 系列一 -- 統計語言模型

<script language=javascript> uT("time114399197227125143"); </script>
從本週開始,我們將定期刊登 Google 科學家吳軍寫的《數學之美》系列文章,介紹數學在信息檢索和自然語言處理中的主導作用和奇妙應用。



前言

也許大家不相信,數學是解決信息檢索和自然語言處理的最好工具。它能非常清晰地描述這些領域的實際問題並且給出漂亮的解決辦法。每當人們應用數學工具解決一個語言問題時,總會感嘆數學之美。我們希望利用 Google 中文黑板報這塊園地,介紹一些數學工具,以及我們是如何利用這些工具來開發 Google 產品的。

系列一: 統計語言模型 (Statistical Language Models)

Google 的使命是整合全球的信息,所以我們一直致力於研究如何讓機器對信息、語言做最好的理解和處理。長期以來,人類一直夢想着能讓機器代替人來翻譯語言、識別語音、認識文字(不論是印刷體或手寫體)和進行海量文獻的自動檢索,這就需要讓機器理解語言。但是人類的語言可以說是信息裏最複雜最動態的一部分。爲了解決這個問題,人們容易想到的辦法就是讓機器模擬人類進行學習 - 學習人類的語法、分析語句等等。尤其是在喬姆斯基(Noam Chomsky 有史以來最偉大的語言學家)提出 “形式語言” 以後,人們更堅定了利用語法規則的辦法進行文字處理的信念。遺憾的是,幾十年過去了,在計算機處理語言領域,基於這個語法規則的方法幾乎毫無突破。

其實早在幾十年前,數學家兼信息論的祖師爺 香農 (Claude Shannon)就提出了用數學的辦法處理自然語言的想法。遺憾的是當時的計算機條件根本無法滿足大量信息處理的需要,所以他這個想法當時並沒有被人們重視。七十年代初,有了大規模集成電路的快速計算機後,香農的夢想才得以實現。

首先成功利用數學方法解決自然語言處理問題的是語音和語言處理大師賈里尼克 (Fred Jelinek)。當時賈里尼克在 IBM 公司做學術休假 (Sabbatical Leave),領導了一批傑出的科學家利用大型計算機來處理人類語言問題。統計語言模型就是在那個時候提出的。

給大家舉個例子:在很多涉及到自然語言處理的領域,如機器翻譯、語音識別、印刷體或手寫體識別、拼寫糾錯、漢字輸入和文獻查詢中,我們都需要知道一個文字序列是否能構成一個大家能理解的句子,顯示給使用者。對這個問題,我們可以用一個簡單的統計模型來解決這個問題。

如果 S 表示一連串特定順序排列的詞 w1, w2,…, wn ,換句話說,S 可以表示某一個由一連串特定順序排練的詞而組成的一個有意義的句子。現在,機器對語言的識別從某種角度來說,就是想知道S在文本中出現的可能性,也就是數學上所說的S 的概率用 P(S) 來表示。利用條件概率的公式,S 這個序列出現的概率等於每一個詞出現的概率相乘,於是P(S) 可展開爲:

P(S) = P(w1)P(w2|w1)P(w3| w1 w2)…P(wn|w1 w2…wn-1)

其中 P (w1) 表示第一個詞w1 出現的概率;P (w2|w1) 是在已知第一個詞的前提下,第二個詞出現的概率;以次類推。不難看出,到了詞wn,它的出現概率取決於它前面所有詞。從計算上來看,各種可能性太多,無法實現。因此我們假定任意一個詞wi的出現概率只同它前面的詞 wi-1 有關(即馬爾可夫假設),於是問題就變得很簡單了。現在,S 出現的概率就變爲:

P(S) = P(w1)P(w2|w1)P(w3|w2)…P(wi|wi-1)…
(當然,也可以假設一個詞又前面N-1個詞決定,模型稍微複雜些。)

接下來的問題就是如何估計 P (wi|wi-1)。現在有了大量機讀文本後,這個問題變得很簡單,只要數一數這對詞(wi-1,wi) 在統計的文本中出現了多少次,以及 wi-1 本身在同樣的文本中前後相鄰出現了多少次,然後用兩個數一除就可以了,P(wi|wi-1) = P(wi-1,wi)/ P (wi-1)。

也許很多人不相信用這麼簡單的數學模型能解決複雜的語音識別、機器翻譯等問題。其實不光是常人,就連很多語言學家都曾質疑過這種方法的有效性,但事實證明,統計語言模型比任何已知的藉助某種規則的解決方法都有效。比如在 Google 的中英文自動翻譯中,用的最重要的就是這個統計語言模型。去年美國標準局(NIST) 對所有的機器翻譯系統進行了評測,Google 的系統是不僅是全世界最好的,而且高出所有基於規則的系統很多。

現在,讀者也許已經能感受到數學的美妙之處了,它把一些複雜的問題變得如此的簡單。當然,真正實現一個好的統計語言模型還有許多細節問題需要解決。賈里尼克和他的同事的貢獻在於提出了統計語言模型,而且很漂亮地解決了所有的細節問題。十幾年後,李開復用統計語言模型把 997 詞語音識別的問題簡化成了一個 20 詞的識別問題,實現了有史以來第一次大詞彙量非特定人連續語音的識別。

我是一名科學研究人員 ,我在工作中經常驚歎於數學語言應用於解決實際問題上時的神奇。我也希望把這種神奇講解給大家聽。當然,歸根結底,不管什莫樣的科學方法、無論多莫奇妙的解決手段都是爲人服務的。我希望 Google 多努力一分,用戶就多一分搜索的喜悅。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章