[我們?cè)谕顿Y時(shí)常常講不要把所有的雞蛋放在一個(gè)籃子里,這樣可以降低風(fēng)險(xiǎn)。在信息處理中,這個(gè)原理同樣適用。在數(shù)學(xué)上,這個(gè)原理稱為 最大熵原理 (the maximum entropy principle)。這是一個(gè)非常有意思的題目,但是把它講清楚要用兩個(gè)系列的篇幅。]

前段時(shí)間,Google 中國(guó)研究院的劉駿總監(jiān)談到在網(wǎng)絡(luò)搜索排名中,用到的信息有上百種。更普遍地講,在自然語(yǔ)言處理中,我們常常知道各種各樣的但是又不完全確定的信息,我們需要用一個(gè)統(tǒng)一的模型將這些信息綜合起來。如何綜合得好,是一門很大的學(xué)問。

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

數(shù)學(xué)上最漂亮的辦法是最大熵(maximum entropy)模型,它相當(dāng)于行星運(yùn)動(dòng)的橢圓模型。“最大熵”這個(gè)名詞聽起來很深?yuàn)W,但是它的原理很簡(jiǎn)單,我們每天都在用。說白了,就是要保留全部的不確定性,將風(fēng)險(xiǎn)降到最小。讓我們來看一個(gè)實(shí)際例子。

有一次,我去 AT&T 實(shí)驗(yàn)室作關(guān)于最大熵模型的報(bào)告,我?guī)チ艘粋€(gè)色子。我問聽眾“每個(gè)面朝上的概率分別是多少”,所有人都說是等概率,即各點(diǎn)的概率均為1/6。這種猜測(cè)當(dāng)然是對(duì)的。我問聽眾們?yōu)槭裁矗玫降幕卮鹗且恢碌模簩?duì)這個(gè)“一無(wú)所知”的色子,假定它每一個(gè)朝上概率均等是最安全的做法。(你不應(yīng)該主觀假設(shè)它象韋小寶的色子一樣灌了鉛。)從投資的角度看,就是風(fēng)險(xiǎn)最小的做法。從信息論的角度講,就是保留了最大的不確定性,也就是說讓熵達(dá)到最大。接著,我又告訴聽眾,我的這個(gè)色子被我特殊處理過,已知四點(diǎn)朝上的概率是三分之一,在這種情況下,每個(gè)面朝上的概率是多少?這次,大部分人認(rèn)為除去四點(diǎn)的概率是 1/3,其余的均是 2/15,也就是說已知的條件(四點(diǎn)概率為 1/3)必須滿足,而對(duì)其余各點(diǎn)的概率因?yàn)槿匀粺o(wú)從知道,因此只好認(rèn)為它們均等。注意,在猜測(cè)這兩種不同情況下的概率分布時(shí),大家都沒有添加任何主觀的假設(shè),諸如四點(diǎn)的反面一定是三點(diǎn)等等。(事實(shí)上,有的色子四點(diǎn)反面不是三點(diǎn)而是一點(diǎn)。)這種基于直覺的猜測(cè)之所以準(zhǔn)確,是因?yàn)樗『梅狭俗畲箪卦怼?

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

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



我們看到,在上面的公式中,有幾個(gè)參數(shù) lambda 和 Z ,他們需要通過觀測(cè)數(shù)據(jù)訓(xùn)練出來。

最大熵模型在形式上是最漂亮的統(tǒng)計(jì)模型,而在實(shí)現(xiàn)上是最復(fù)雜的模型之一。我們?cè)趯⑾乱粋€(gè)系列中介紹如何訓(xùn)練最大熵模型的諸多參數(shù),以及最大熵模型在自然語(yǔ)言處理和金融方面很多有趣的應(yīng)用。