數(shù)學(xué)之美 系列一 -- 統(tǒng)計語言模型
http://googlechinablog.com/2006/04/blog-post.html
2006年4月3日 上午 08:15:00
從本周開始,我們將定期刊登 Google 科學(xué)家吳軍寫的《數(shù)學(xué)之美》系列文章,介紹數(shù)學(xué)在信息檢索和自然語言處理中的主導(dǎo)作用和奇妙應(yīng)用。發(fā)表者: 吳軍, Google 研究員
前言
也 許大家不相信,數(shù)學(xué)是解決信息檢索和自然語言處理的最好工具。它能非常清晰地描述這些領(lǐng)域的實(shí)際問題并且給出漂亮的解決辦法。每當(dāng)人們應(yīng)用數(shù)學(xué)工具解決一 個語言問題時,總會感嘆數(shù)學(xué)之美。我們希望利用 Google 中文黑板報這塊園地,介紹一些數(shù)學(xué)工具,以及我們是如何利用這些工具來開發(fā) Google 產(chǎn)品的。
系列一: 統(tǒng)計語言模型 (Statistical Language Models)
Google 的使命是整合全球的信息,所以我們一直致力于研究如何讓機(jī)器對信息、語言做最好的理解和處理。長期以來,人類一直夢想著能讓機(jī)器代替人來翻譯語言、識別語 音、認(rèn)識文字(不論是印刷體或手寫體)和進(jìn)行海量文獻(xiàn)的自動檢索,這就需要讓機(jī)器理解語言。但是人類的語言可以說是信息里最復(fù)雜最動態(tài)的一部分。為了解決 這個問題,人們?nèi)菀紫氲降霓k法就是讓機(jī)器模擬人類進(jìn)行學(xué)習(xí) - 學(xué)習(xí)人類的語法、分析語句等等。尤其是在喬姆斯基(Noam Chomsky 有史以來最偉大的語言學(xué)家)提出 “形式語言” 以后,人們更堅定了利用語法規(guī)則的辦法進(jìn)行文字處理的信念。遺憾的是,幾十年過去了,在計算機(jī)處理語言領(lǐng)域,基于這個語法規(guī)則的方法幾乎毫無突破。
其實(shí)早在幾十年前,數(shù)學(xué)家兼信息論的祖師爺 香農(nóng) (Claude Shannon)就提出了用數(shù)學(xué)的辦法處理自然語言的想法。遺憾的是當(dāng)時的計算機(jī)條件根本無法滿足大量信息處理的需要,所以他這個想法當(dāng)時并沒有被人們重視。七十年代初,有了大規(guī)模集成電路的快速計算機(jī)后,香農(nóng)的夢想才得以實(shí)現(xiàn)。
首先成功利用數(shù)學(xué)方法解決自然語言處理問題的是語音和語言處理大師賈里尼克 (Fred Jelinek)。當(dāng)時賈里尼克在 IBM 公司做學(xué)術(shù)休假 (Sabbatical Leave),領(lǐng)導(dǎo)了一批杰出的科學(xué)家利用大型計算機(jī)來處理人類語言問題。統(tǒng)計語言模型就是在那個時候提出的。
給大家舉個例子:在很多涉及到自然語言處理的領(lǐng)域,如機(jī)器翻譯、語音識別、印刷體或手寫體識別、拼寫糾錯、漢字輸入和文獻(xiàn)查詢中,我們都需要知道一個文字序列是否能構(gòu)成一個大家能理解的句子,顯示給使用者。對這個問題,我們可以用一個簡單的統(tǒng)計模型來解決這個問題。
如 果 S 表示一連串特定順序排列的詞 w1, w2,…, wn ,換句話說,S 可以表示某一個由一連串特定順序排練的詞而組成的一個有意義的句子?,F(xiàn)在,機(jī)器對語言的識別從某種角度來說,就是想知道S在文本中出現(xiàn)的可能性,也就是數(shù) 學(xué)上所說的S 的概率用 P(S) 來表示。利用條件概率的公式,S 這個序列出現(xiàn)的概率等于每一個詞出現(xiàn)的概率相乘,于是P(S) 可展開為:
P(S) = P(w1)P(w2|w1)P(w3| w1 w2)…P(wn|w1 w2…wn-1)
其 中 P (w1) 表示第一個詞w1 出現(xiàn)的概率;P (w2|w1) 是在已知第一個詞的前提下,第二個詞出現(xiàn)的概率;以次類推。不難看出,到了詞wn,它的出現(xiàn)概率取決于它前面所有詞。從計算上來看,各種可能性太多,無法 實(shí)現(xiàn)。因此我們假定任意一個詞wi的出現(xiàn)概率只同它前面的詞 wi-1 有關(guān)(即馬爾可夫假設(shè)),于是問題就變得很簡單了。現(xiàn)在,S 出現(xiàn)的概率就變?yōu)椋?br />
P(S) = P(w1)P(w2|w1)P(w3|w2)…P(wi|wi-1)…
(當(dāng)然,也可以假設(shè)一個詞又前面N-1個詞決定,模型稍微復(fù)雜些。)
接 下來的問題就是如何估計 P (wi|wi-1)?,F(xiàn)在有了大量機(jī)讀文本后,這個問題變得很簡單,只要數(shù)一數(shù)這對詞(wi-1,wi) 在統(tǒng)計的文本中出現(xiàn)了多少次,以及 wi-1 本身在同樣的文本中前后相鄰出現(xiàn)了多少次,然后用兩個數(shù)一除就可以了,P(wi|wi-1) = P(wi-1,wi)/ P (wi-1)。
也許很多人不相信用這么簡單的數(shù)學(xué)模型能解決復(fù)雜的語音識別、機(jī)器翻譯等問題。其實(shí)不光是常人,就連很多語言學(xué)家都曾質(zhì)疑過這種方法的有效性,但事實(shí)證明,統(tǒng)計語言模型比任何已知的借助某種規(guī)則的解決方法都有效。比如在 Google 的中英文自動翻譯中,用的最重要的就是這個統(tǒng)計語言模型。去年美國標(biāo)準(zhǔn)局(NIST) 對所有的機(jī)器翻譯系統(tǒng)進(jìn)行了評測,Google 的系統(tǒng)是不僅是全世界最好的,而且高出所有基于規(guī)則的系統(tǒng)很多。
現(xiàn) 在,讀者也許已經(jīng)能感受到數(shù)學(xué)的美妙之處了,它把一些復(fù)雜的問題變得如此的簡單。當(dāng)然,真正實(shí)現(xiàn)一個好的統(tǒng)計語言模型還有許多細(xì)節(jié)問題需要解決。賈里尼克 和他的同事的貢獻(xiàn)在于提出了統(tǒng)計語言模型,而且很漂亮地解決了所有的細(xì)節(jié)問題。十幾年后,李開復(fù)用統(tǒng)計語言模型把 997 詞語音識別的問題簡化成了一個 20 詞的識別問題,實(shí)現(xiàn)了有史以來第一次大詞匯量非特定人連續(xù)語音的識別。
我是一名科學(xué)研究人員 ,我在工作中經(jīng)常驚嘆于數(shù)學(xué)語言應(yīng)用于解決實(shí)際問題上時的神奇。我也希望把這種神奇講解給大家聽。當(dāng)然,歸根結(jié)底,不管什莫樣的科學(xué)方法、無論多莫奇妙的解決手段都是為人服務(wù)的。我希望 Google 多努力一分,用戶就多一分搜索的喜悅。
posted on 2009-05-27 00:03 iConnect 閱讀(112) 評論(0) 編輯 收藏 所屬分類: 數(shù)學(xué)&算法&數(shù)據(jù)結(jié)構(gòu)