【專欄】數學之美番外篇:平凡而又神奇的貝葉斯方法(7)
根據認知神經科學的認識,很可能我們是先從句子到語義(一個逐層往上(bottom-up)抽象的folding過程),然后從語義根據另一門語言的語法展開為另一門語言(一個逐層往下(top-down)的具體化unfolding過程)。
統計機器翻譯
統計機器翻譯因為其簡單,自動(無需手動添加規則),迅速成為了機器翻譯的事實標準。而統計機器翻譯的核心算法也是使用的貝葉斯方法。
問題是什么?統計機器翻譯的問題可以描述為:給定一個句子e,它的可能的外文翻譯f中哪個是最靠譜的。即我們需要計算:P(f|e)。一旦出現條件概率貝葉斯總是挺身而出:
P(f|e) ∝ P(f) * P(e|f)
這個式子的右端很容易解釋:那些先驗概率較高,并且更可能生成句子e的外文句子f將會勝出。我們只需簡單統計(結合上面提到的N-Gram語言模型)就可以統計任意一個外文句子f的出現概率。然而P(e|f)卻不是那么好求的,給定一個候選的外文局子f,它生成(或對應)句子e的概率是多大呢?我們需要定義什么叫“對應”,這里需要用到一個分詞對齊的平行語料庫,有興趣的可以參考《Foundations of Statistical Natural Language Processing》第13章,這里摘選其中的一個例子:假設e為:John loves Mary。我們需要考察的首選f是:Jean aime Marie(法文)。我們需要求出P(e|f)是多大,為此我們考慮e和f有多少種對齊的可能性,如:
John (Jean) loves (aime) Marie (Mary)
作者:劉未鵬 出版:電子工業出版社
就是其中的一種(最靠譜的)對齊,為什么要對齊,是因為一旦對齊了之后,就可以容易地計算在這個對齊之下的P(e|f)是多大,只需計算:
P(John|Jean) * P(loves|aime) * P(Marie|Mary)
即可。
然后我們遍歷所有的對齊方式,并將每種對齊方式之下的翻譯概率∑求和。便可以獲得整個的P(e|f)是多大。
一點注記:還是那個問題:難道我們人類真的是用這種方式進行翻譯的?highly unlikely。這種計算復雜性非常高的東西連三位數乘法都搞不定的我們才不會笨到去使用呢。根據認知神經科學的認識,很可能我們是先從句子到語義(一個逐層往上(bottom-up)抽象的folding過程),然后從語義根據另一門語言的語法展開為另一門語言(一個逐層往下(top-down)的具體化unfolding過程)。如何可計算地實現這個過程,目前仍然是個難題。(我們看到很多地方都有bottom-up/top-down這樣一個對稱的過程,實際上有人猜測這正是生物神經網絡原則上的運作方式,對視覺神經系統的研究尤其證明了這一點,Hawkins在《On Intelligence》里面提出了一種HTM(Hierarchical Temporal Memory)模型正是使用了這個原則。)
(待續;此文的修訂版已收錄《暗時間》一書,由電子工業出版社2011年8月出版。作者于2009年7月獲得南京大學計算機系碩士學位,現在微軟亞洲研究院創新工程中心從事軟件研發工程師工作。)
網絡編輯:謝小跳