Shapley 加法解釋 是什麼?

SHAP (SHapley Additive exPlanations):Shapley 加法解釋 的完整解釋

基於賽局理論 Shapley 值,量化每個特徵對模型單一預測結果貢獻度的可解釋 AI 方法。

SHAP(SHapley Additive exPlanations)由 Lundberg 與 Lee 於 2017 年提出,核心思想源自諾貝爾獎得主 Lloyd Shapley 在 1953 年提出的合作賽局理論(Cooperative Game Theory)中的 Shapley 值(Shapley Value)。

Shapley 值的直觉解釋 在賽局理論中,Shapley 值解決了一個問題:多個玩家合作產生收益時,如何公平地分配各自的貢獻? Shapley 的答案是:每個玩家的貢獻值 = 在所有可能的玩家組合(聯盟)中,該玩家加入與未加入時的平均邊際貢獻。

SHAP 將此概念移植到機器學習:每個特徵是一個「玩家」,模型的預測值是「收益」,SHAP 值衡量的是「這個特徵的存在,使模型的預測從基準值(所有樣本的平均預測)改變了多少」。

SHAP 的數學性質

Lundberg 等人證明 SHAP 是唯一同時滿足以下三個公理的加法性特徵歸因方法:

  1. 局部準確性(Local Accuracy):所有特徵的 SHAP 值之和 + 基準值 = 該樣本的實際模型輸出。
  2. 缺失性(Missingness):不影響預測的特徵,其 SHAP 值為 0。
  3. 一致性(Consistency):如果一個模型被修改後某特徵的邊際貢獻增加,該特徵的 SHAP 值不應減少。

計算方式的演進

精確的 Shapley 值計算需要遍歷所有特徵子集,複雜度為指數級,在特徵數多時不可行。SHAP 框架提出了多種針對不同模型的高效計算方法:

  • TreeSHAP:專為基於樹的模型(XGBoost、LightGBM、隨機森林)設計的精確計算方法,時間複雜度為多項式級,速度極快,是目前使用最廣泛的 SHAP 計算器。
  • LinearSHAP:針對線性模型的解析解,考慮特徵間的相關性。
  • KernelSHAP:模型無關的近似方法,基於 LIME 的加權線性回歸框架,適用於任何黑箱模型,但速度較慢。
  • DeepSHAP:針對深度神經網路,結合 DeepLIFT 方法近似計算。

SHAP 的解釋層次

  1. 局部解釋(Local Explanation):針對單一預測,顯示每個特徵如何將預測值從基準值推高或拉低,常以瀑布圖(waterfall plot)或力圖(force plot)呈現。
  2. 全局解釋(Global Explanation):
    • SHAP 重要性圖(feature importance):所有樣本 SHAP 值絕對值的平均,類似傳統特徵重要性但更精確。
    • SHAP 蜂群圖(beeswarm plot):同時顯示每個特徵的重要性與方向性(正向/負向影響)。
    • SHAP 依賴圖(dependence plot):顯示某特徵的值與其 SHAP 值的關係,類似偏依賴圖(PDP)但更精確。

應用場景

  • 金融信貸決策:解釋為什麼這位申請者被拒絕(法規合規需求)。
  • 醫療 AI:解釋模型為什麼認為某患者有較高風險。
  • 特徵選擇:用 SHAP 值識別對模型真正有貢獻的特徵,剔除雜訊特徵。
  • 模型偵錯:發現模型依賴了不應依賴的特徵(如日期洩漏、偽相關)。
  • 業務洞察:從模型的 SHAP 值中提煉有業務意義的規律。

SHAP vs. 其他解釋方法

  • SHAP vs. LIME:兩者都是局部線性近似,但 SHAP 有嚴格的數學公理(三條準則),LIME 的解釋依賴採樣策略,可能不穩定。
  • SHAP vs. 特徵重要性(Feature Importance):傳統特徵重要性(如 MDI)無法解釋單一預測,且在特徵相關時可能被稀釋;SHAP 可同時做局部與全局解釋,且考慮了特徵間的相互作用。

常見問題