數學之美系列十六 -- 談談最大熵模型[zz]

數學之美系列十六 -- 談談最大熵模型

2006年10月8日 上午 07:27:00

發表者:Google 研究員,吳軍

 

[我們在投資時常常講不要把所有的雞蛋放在一個籃子裏,這樣可以降低風險。在信息處理中,這個原理同樣適用。在數學上,這個原理稱爲最大熵原理 (the maximum entropy principle)。這是一個非常有意思的題目,但是把它講清楚要用兩個系列的篇幅。]

 

前段時間,Google 中國研究院的劉駿總監談到在網絡搜索排名中,用到的信息有上百種。更普遍地講,在自然語言處理中,我們常常知道各種各樣的但是又不完全確定的信息,我們需要用一個統一的模型將這些信息綜合起來。如何綜合得好,是一門很大的學問。

 

讓 我們看一個拼音轉漢字的簡單的例子。假如輸入的拼音是"wang-xiao-bo",利用語言模型,根據有限的上下文(比如前兩個詞),我們能給出兩個最 常見的名字"王小波"和"王曉波"。至於要唯一確定是哪個名字就難了,即使利用較長的上下文也做不到。當然,我們知道如果通篇文章是介紹文學的,作家王小 波的可能性就較大;而在討論兩岸關係時,臺灣學者王曉波的可能性會較大。在上面的例子中,我們只需要綜合兩類不同的信息,即主題信息和上下文信息。雖然有 不少湊合的辦法,比如:分成成千上萬種的不同的主題單獨處理,或者對每種信息的作用加權平均等等,但都不能準確而圓滿地解決問題,這樣好比以前我們談到的 行星運動模型中的小圓套大圓 打補丁的方法。在很多應用中,我們需要綜合幾十甚至上百種不同的信息,這種小圓套大圓的方法顯然行不通。

 

數學上最漂亮的辦法是最大熵(maximum entropy)模型,它相當於行星運動的橢圓模型。"最大熵"這個名詞聽起來很深奧,但是它的原理很簡單,我們每天都在用。說白了,就是要保留全部的不確定性,將風險降到最小。讓我們來看一個實際例子。

 

有 一次,我去 AT&T 實驗室作關於最大熵模型的報告,我帶去了一個色子。我問聽衆"每個面朝上的概率分別是多少",所有人都說是等概率,即各點的概率均爲1/6。這種猜測當然 是對的。我問聽衆們爲什麼,得到的回答是一致的:對這個"一無所知"的色子,假定它每一個朝上概率均等是最安全的做法。(你不應該主觀假設它象韋小寶的色 子一樣灌了鉛。)從投資的角度看,就是風險最小的做法。從信息論的角度講,就是保留了最大的不確定性,也就是說讓熵達到最大。接着,我又告訴聽衆,我的這 個色子被我特殊處理過,已知四點朝上的概率是三分之一,在這種情況下,每個面朝上的概率是多少?這次,大部分人認爲除去四點的概率是 1/3,其餘的均是 2/15,也就是說已知的條件(四點概率爲 1/3)必須滿足,而對其餘各點的概率因爲仍然無從知道,因此只好認爲它們均等。注意,在猜測這兩種不同情況下的概率分佈時,大家都沒有添加任何主觀的假 設,諸如四點的反面一定是三點等等。(事實上,有的色子四點反面不是三點而是一點。)這種基於直覺的猜測之所以準確,是因爲它恰好符合了最大熵原理。

 

最 大熵原理指出,當我們需要對一個隨機事件的概率分佈進行預測時,我們的預測應當滿足全部已知的條件,而對未知的情況不要做任何主觀假設。(不做主觀假設這 點很重要。)在這種情況下,概率分佈最均勻,預測的風險最小。因爲這時概率分佈的信息熵最大,所以人們稱這種模型叫"最大熵模型"。我們常說,不要把所有 的雞蛋放在一個籃子裏,其實就是最大熵原理的一個樸素的說法,因爲當我們遇到不確定性時,就要保留各種可能性。

 

回到我們剛纔 談到的拼音轉 漢字的例子,我們已知兩種信息,第一,根據語言模型,wang-xiao-bo 可以被轉換成王曉波和王小波;第二,根據主題,王小波是作家,《黃金時代》的作者等等,而王曉波是臺灣研究兩岸關係的學者。因此,我們就可以建立一個最大 熵模型,同時滿足這兩種信息。現在的問題是,這樣一個模型是否存在。匈牙利著名數學家、信息論最高獎香農獎得主希薩(Csiszar)證明,對任何一組不 自相矛盾的信息,這個最大熵模型不僅存在,而且是唯一的。而且它們都有同一個非常簡單的形式 -- 指數函數。下面公式是根據上下文(前兩個詞)和主題預測下一個詞的最大熵模型,其中 w3 是要預測的詞(王曉波或者王小波)w1 和 w2 是它的前兩個字(比如說它們分別是"出版",和""),也就是其上下文的一個大致估計,subject 表示主題。  

image

 我們看到,在上面的公式中,有幾個參數 lambda 和 Z ,他們需要通過觀測數據訓練出來。

 

最大熵模型在形式上是最漂亮的統計模型,而在實現上是最複雜的模型之一。我們在將下一個系列中介紹如何訓練最大熵模型的諸多參數,以及最大熵模型在自然語言處理和金融方面很多有趣的應用。

 

我們上次談到 用最大熵模型可以將各種信息綜合在一起。我們留下一個問題沒有回答,就是如何構造最大熵模型。我們已經所有的最大熵模型都是指數函數的形式,現在只需要確定指數函數的參數就可以了,這個過程稱爲模型的訓練。

 

最原始的最大熵模型的訓練方法是一種稱爲通用迭代算法 GIS(generalized iterative scaling) 的迭代 算法。GIS 的原理並不複雜,大致可以概括爲以下幾個步驟:

1. 假定第零次迭代的初始模型爲等概率的均勻分佈。

2. 用第 N 次迭代的模型來估算每種信息特徵在訓練數據中的分佈,如果超過了實際的,就把相應的模型參數變小;否則,將它們便大。

3. 重複步驟 2 直到收斂。

 

GIS 最早是由 Darroch 和 Ratcliff 在七十年代提出的。但是,這兩人沒有能對這種算法的物理含義進行很好地解釋。後來是由數學家希薩(Csiszar)解釋清楚的,因此,人們在談到這個算法 時,總是同時引用 Darroch 和Ratcliff 以及希薩的兩篇論文。GIS 算法每次迭代的時間都很長,需要迭代很多次才能收斂,而且不太穩定,即使在 64 位計算機上都會出現溢出。因此,在實際應用中很少有人真正使用 GIS。大家只是通過它來了解最大熵模型的算法。

 

八十年代,很 有天才的孿生兄弟的達拉皮垂(Della Pietra)在 IBM 對 GIS 算法進行了兩方面的改進,提出了改進迭代算法 IIS(improved iterative scaling)。這使得最大熵模型的訓練時間縮短了一到兩個數量級。這樣最大熵模型纔有可能變得實用。即使如此,在當時也只有 IBM 有條件是用最大熵模型。

 

由於最大熵模 型在數學上十分完美,對科學家們有很大的誘惑力,因此不少研究者試圖把自己的問題用一個類似最大熵的 近似模型去套。誰知這一近似,最大熵模型就變得不完美了,結果可想而知,比打補丁的湊合的方法也好不了多少。於是,不少熱心人又放棄了這種方法。第一個在 實際信息處理應用中驗證了最大熵模型的優勢的,是賓夕法尼亞大學馬庫斯的另一個高徒原 IBM 現微軟的研究員拉納帕提(Adwait Ratnaparkhi)。拉納帕提的聰明之處在於他沒有對最大熵模型進行近似,而是找到了幾個最適合用最大熵模型、而計算量相對不太大的自然語言處理問 題,比如詞性標註和句法分析。拉納帕提成功地將上下文信息、詞性(名詞、動詞和形容詞等)、句子成分(主謂賓)通過最大熵模型結合起來,做出了當時世界上 最好的詞性標識系統和句法分析器。拉納帕提的論文發表後讓人們耳目一新。拉納帕提的詞性標註系統,至今仍然是使用單一方法最好的系統。科學家們從拉納帕提 的成就中,又看到了用最大熵模型解決複雜的文字信息處理的希望。

 

但是,最大熵 模型的計算量仍然是個攔路虎。我在學校時花了很長時間考慮如 何簡化最大熵模型的計算量。終於有一天,我對我的導師說,我發現一種數學變換,可以將大部分最大熵模型的訓練時間在 IIS 的基礎上減少兩個數量級。我在黑板上推導了一個多小時,他沒有找出我的推導中的任何破綻,接着他又回去想了兩天,然後告訴我我的算法是對的。從此,我們就 建造了一些很大的最大熵模型。這些模型比修修補補的湊合的方法好不少。即使在我找到了快速訓練算法以後,爲了訓練一個包含上下文信息,主題信息和語法信息 的文法模型(language model),我並行使用了 20 臺當時最快的 SUN 工作站,仍然計算了三個月。由此可見最大熵模型的複雜的一面。最大熵模型快速算法的實現很複雜,到今天爲止,世界上能有效實現這些算法的人也不到一百人。 有興趣實現一個最大熵模型的讀者可以閱讀我的論文

 

最大熵模型,可以說是集簡與繁於一體,形式簡單,實現複雜。值得一提的是,在Google的很多產品中,比如機器翻譯,都直接或間接地用到了最大熵模型。

 

講 到這裏,讀者也許會問,當年最早改進最大熵模型算法的達拉皮垂兄弟這些年難道沒有做任何事嗎?他們在九十年代初賈里尼克離開 IBM 後,也退出了學術界,而到在金融界大顯身手。他們兩人和很多 IBM 語音識別的同事一同到了一家當時還不大,但現在是世界上最成功對衝基金(hedge fund)公司----文藝復興技術公司 (Renaissance Technologies)。我們知道,決定股票漲落的因素可能有幾十甚至上百種,而最大熵方法恰恰能找到一個同時滿足成千上萬種不同條件的模型。達拉皮 垂兄弟等科學家在那裏,用於最大熵模型和其他一些先進的數學工具對股票預測,獲得了巨大的成功。從該基金 1988 年創立至今,它的淨回報率高達平均每年 34%。也就是說,如果 1988 年你在該基金投入一塊錢,今天你能得到 200 塊錢。這個業績,遠遠超過股神巴菲特的旗艦公司伯克夏哈撒韋(Berkshire Hathaway)。同期,伯克夏哈撒韋的總回報是 16 倍。

發佈了26 篇原創文章 · 獲贊 152 · 訪問量 134萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章