核心概念#

馬爾可夫鏈描述的是一種線性的狀態序列,每個狀態只取決於前面有限個狀態。但現實中很多事物的關係是交叉的、錯綜複雜的,無法用一條鏈來串聯。貝葉斯網絡(Bayesian Network)就是馬爾可夫鏈的推廣,可以描述更複雜的因果關係。

1. 貝葉斯網絡#

  • 貝葉斯網絡是一個有向圖,每個圓圈代表一個狀態,連線代表因果關係
  • 每個狀態只跟與其直接相連的狀態有關,與沒有直接關係的狀態無關(馬爾可夫假設)
  • 網絡的每個弧都有一個可信度(belief),用概率描述,弧上可以有附加的權重
  • 可以說:馬爾可夫鏈是貝葉斯網絡的特例,而貝葉斯網絡是馬爾可夫鏈的推廣

心血管疾病的例子#

  • 心血管疾病與膽固醇、血脂、吸煙、運動量、飽和脂肪攝取量、家族病史等因素相關
  • 簡化為三個狀態(心血管疾病、高血脂、家族病史),每個狀態取「有」「無」兩種值
  • 利用貝葉斯公式計算聯合概率分布:$P(\text{家族病史, 高血脂, 心血管疾病}) = P(\text{心血管疾病} | \text{家族病史, 高血脂}) \times P(\text{高血脂} | \text{家族病史}) \times P(\text{家族病史})$
  • 計算結果:雖然有家族病史的人只佔人口的 20%,但他們佔了有心血管疾病人數的 45%

貝葉斯網絡的拓撲結構比馬爾可夫鏈靈活,不受鏈狀結構的約束,因此可以更準確地描述事件之間的相關性。

2. 貝葉斯網絡在詞分類中的應用#

  • 利用貝葉斯網絡可以找出近義詞和相關的詞,直接應用於 Google 搜索和廣告
  • 主題模型(Topic Model):用貝葉斯網絡建立文章(D)、主題/概念(T)和關鍵詞(W)之間的聯繫
  • Google 的 Phil Cluster(2002 年):將上百萬關鍵詞聚合成若干概念的聚類
    • 最初只考慮關鍵詞和文本的關係,概念聚類過於廣泛(如計算機和股票被聚在一起)
    • 2004 年重構為 Rephil:採用幾百倍數據,考慮上下文中的相似性,支持不同顆粒的概念
    • Rephil 聚合了約 1200 萬個詞到上百萬個概念中,每個概念一般有十幾到上百個詞
    • 從廣告到搜索都用到了它的成果

3. 延伸閱讀:貝葉斯網絡的訓練#

  • 使用貝葉斯網絡需要先確定其結構(拓撲結構的訓練)和參數(條件概率的訓練)
  • 優化結構要保證產生的序列從頭走到尾的可能性最大(後驗概率最大)
  • 結構訓練的計算複雜度是 NP 完全問題,常用方法包括:
    • 貪心算法(Greedy Algorithm):沿箭頭方向每一步找局部最優,但可能陷入局部最優解
    • 蒙特卡羅方法(Monte Carlo):用隨機數在網絡中試一試,看是否陷入局部最優
    • 資訊論方法:只保留互資訊較大的節點直接連接,然後再對簡化後的網絡進行完備搜索
  • 結構和參數的訓練通常是交替進行的:先優化參數,再優化結構,反覆進行直到收斂
  • 確定參數後使用 EM 過程(Expectation-Maximization Process)來優化,其中涉及最大熵模型的訓練方法

IBM 華生實驗室的茨威格博士(Geoffrey Zweig)和西雅圖華盛頓大學的比爾默教授(Jeff Bilmer)完成了一個通用的貝葉斯網絡工具包,供研究者免費使用。

本章小結#

從數學的層面來講,貝葉斯網絡是一個加權的有向圖,是馬爾可夫鏈的擴展。從認識論的層面看,貝葉斯網絡克服了馬爾可夫鏈那種機械的線性約束,可以把任何有關聯的事件統一到它的框架下面。貝葉斯網絡在生物統計、圖像處理、決策支持系統和博弈論中都有廣泛應用。其描述簡單易懂,但導出的模型卻非常複雜。