【專欄】數學之美番外篇:平凡而又神奇的貝葉斯方法(6)
統計機器學習方法所統計的東西往往處于相當表層(shallow)的層面,在這個層面機器學習只能看到一些非常表面的現象,有一點科學研究的理念的人都知道:越是往表層去,世界就越是繁復多變。從機器學習的角度來說,特征(feature)就越多,成百上千維度都是可能的。
無處不在的貝葉斯
以下我們再舉一些實際例子來說明貝葉斯方法被運用的普遍性,這里主要集中在機器學習方面,因為我不是學經濟的,否則還可以找到一堆經濟學的例子。
中文分詞
貝葉斯是機器學習的核心方法之一。比如中文分詞領域就用到了貝葉斯。Google研究員吳軍在《數學之美》系列中就有一篇是介紹中文分詞的,這里只介紹一下核心的思想,不做贅述,詳細請參考吳軍的文章(這里)。
分詞問題的描述為:給定一個句子(字串),如:
南京市長江大橋
如何對這個句子進行分詞(詞串)才是最靠譜的。例如:
1.南京市/長江大橋
2.南京/市長/江大橋
這兩個分詞,到底哪個更靠譜呢?
作者:劉未鵬 出版:電子工業出版社
我們用貝葉斯公式來形式化地描述這個問題,令X為字串(句子),Y為詞串(一種特定的分詞假設)。我們就是需要尋找使得P(Y|X)最大的Y,使用一次貝葉斯可得:
P(Y|X) ∝ P(Y)*P(X|Y)
用自然語言來說就是這種分詞方式(詞串)的可能性乘以這個詞串生成我們的句子的可能性。我們進一步容易看到:可以近似地將P(X|Y)看作是恒等于1的,因為任意假想的一種分詞方式之下生成我們的句子總是精準地生成的(只需把分詞之間的分界符號扔掉即可)。于是,我們就變成了去最大化P(Y),也就是尋找一種分詞使得這個詞串(句子)的概率最大化。而如何計算一個詞串:
W1,W2,W3,W4...
的可能性呢?我們知道,根據聯合概率的公式展開:P(W1, W2, W3, W4 ..) = P(W1) * P(W2|W1) * P(W3|W2, W1) * P(W4|W1,W2,W3) * ..于是我們可以通過一系列的條件概率(右式)的乘積來求整個聯合概率。然而不幸的是隨著條件數目的增加(P(Wn|Wn-1,Wn-2,..,W1)的條件有n-1個),數據稀疏問題也會越來越嚴重,即便語料庫再大也無法統計出一個靠譜的P(Wn|Wn-1,Wn-2,..,W1)來。為了緩解這個問題,計算機科學家們一如既往地使用了“天真”假設:我們假設句子中一個詞的出現概率只依賴于它前面的有限的k個詞(k一般不超過3,如果只依賴于前面的一個詞,就是2元語言模型(2-gram),同理有3-gram、4-gram等),這個就是所謂的“有限地平線”假設。雖然這個假設很傻很天真,但結果卻表明它的結果往往是很好很強大的,后面要提到的樸素貝葉斯方法使用的假設跟這個精神上是完全一致的,我們會解釋為什么像這樣一個天真的假設能夠得到強大的結果。目前我們只要知道,有了這個假設,剛才那個乘積就可以改寫成:P(W1) * P(W2|W1) * P(W3|W2) * P(W4|W3) ...(假設每個詞只依賴于它前面的一個詞)。而統計P(W2|W1)就不再受到數據稀疏問題的困擾了。對于我們上面提到的例子“南京市長江大橋”,如果按照自左到右的貪婪方法分詞的話,結果就成了“南京市長/江大橋”。但如果按照貝葉斯分詞的話(假設使用3-gram),由于“南京市長”和“江大橋”在語料庫中一起出現的頻率為0,這個整句的概率便會被判定為0。從而使得“南京市/長江大橋”這一分詞方式勝出。
一點注記:有人可能會疑惑,難道我們人類也是基于這些天真的假設來進行推理的?不是的。事實上,統計機器學習方法所統計的東西往往處于相當表層(shallow)的層面,在這個層面機器學習只能看到一些非常表面的現象,有一點科學研究的理念的人都知道:越是往表層去,世界就越是繁復多變。從機器學習的角度來說,特征(feature)就越多,成百上千維度都是可能的。特征一多,好了,高維詛咒就產生了,數據就稀疏得要命,不夠用了。而我們人類的觀察水平顯然比機器學習的觀察水平要更深入一些,為了避免數據稀疏我們不斷地發明各種裝置(最典型就是顯微鏡),來幫助我們直接深入到更深層的事物層面去觀察更本質的聯系,而不是在淺層對表面現象作統計歸納。舉一個簡單的例子,通過對大規模語料庫的統計,機器學習可能會發現這樣一個規律:所有的“他”都是不會穿bra的,所有的“她”則都是穿的。然而,作為一個男人,卻完全無需進行任何統計學習,因為深層的規律就決定了我們根本不會去穿bra。至于機器學習能不能完成后者(像人類那樣的)這個推理,則是人工智能領域的經典問題。至少在那之前,聲稱統計學習方法能夠終結科學研究(原文)的說法是純粹外行人說的話。
(待續;此文的修訂版已收錄《暗時間》一書,由電子工業出版社2011年8月出版。作者于2009年7月獲得南京大學計算機系碩士學位,現在微軟亞洲研究院創新工程中心從事軟件研發工程師工作。)
網絡編輯:謝小跳