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

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

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

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

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

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

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



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

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