5.14更新
LIME
- 動機:在全局中獨立變量對結果的影響可能非常復雜,難以直觀得到關系
- 如果專注於一個局部,可以把他們的關系近似為線性模型
- 提出 Local Interpretable Model-Agnostic Explanations,在一組可解釋的表示上確定一個可解釋的模型,使這個模型在局部與分類器一致
- 可解釋的數據表示 Interpretable Data Representations
- 無論模型得到的輸入是什么,需要提取一組人類可理解的數據表示。如:文本分類中表示word是否存在的one-hot二元向量;圖像分類中表示圖像中的一塊連續區域是否存在的二元向量。用 表示待解釋樣本的原始表示, 表示可理解的表示。
- 精確度-可解釋性的取舍 Fidility-Interpretability Trade-off
- 對於一個可解釋的模型 , 表示一組潛在的可解釋模型,包括線性模型、決策樹等。 的定義域是 ,也就是 表示一組可解釋元素的存在與否。由於不是所有 都足夠簡單,定義 為模型的復雜性(與可解釋性相對)。如:決策樹的 則為樹的深度;線性模型的 為非零權重數。
- 對於一個模型
,在分類任務中,
表示
屬於特定類別的概率,進一步用
作為樣本z接近x的接近程度,作為x的鄰域。
表示在
定義的鄰域中,
與
的距離(不相似度)。則,在精確度-可解釋性的取舍中,LIME的目標是:
SHAP
Shapley值是一個來自合作博弈論(cooperative game theory)的方法,由Shapley在1953年創造的Shapley值是一種根據玩家對總支出的貢獻來為玩家分配支出的方法,玩家在聯盟中合作並從這種合作中獲得一定的收益。用Shapley值去解釋機器學習的預測的話,其中“總支出”就是數據集單個實例的模型預測值,“玩家”是實例的特征值,“收益”是該實例的實際預測減去所有實例的平均預測。
SHAP作者發現現有的6個可解釋方法實際可以解釋為同一種模型。
對於簡單的模型來說,最好的解釋就是模型本身,同時滿足可解釋性和完備性。對於復雜的模型(如集成方法或深度網絡),原始模型它不容易理解。我們必須使用一種更簡單的解釋模型explanation model,定義為原始模型的任何可解釋的近似。用f表示原始模型,g表示解釋模型。
SHAP將Shapley值解釋表示為一種加性特征歸因方法(additive feature attribution method),將模型的預測值解釋為二元變量的線性函數:
其中 , 是簡化輸入的特征數,
LIME就是直接在局部應用上式提供可解釋性,把簡化的輸入 作為可解釋的輸入,用 把表示可解釋輸入的二元向量映射到原始輸入空間。在局部上,使 時
DeepLIFT對神經網絡每個神經元的激活程度與參考值比較,分配貢獻分數,從而反推輸入對結果的貢獻。
對每個輸入 ,歸因為一個值 ,表示這個輸入的效果被設為參考值reference value。映射 把二元的特征轉換為原始輸入,其中1表示輸入不變,0表示輸入取參考值。參考值可以是人工指定的對這個特征無背景信息的值,
其中 是模型輸出, , , 表示輸入的參考值。
使 ,DeepLIFT就滿足了加性特征歸因方法的定義。
傳統的Shapley值估計:現有三個方法利用博弈論來計算模型解釋,包括Shapley regression values、Shapley sampling values、和Quantitative Input Influence。這里不展開講了。
加性特征歸因方法是滿足以下三個條件的唯一解決方案:
- 局部精度 Local Accuracy:對特定輸入
近似原始模型
時,局部精度要求解釋模型至少和
對簡化的輸入
輸出匹配:
- 缺失性 Missingness:如果簡化的輸入表示特征是否存在,缺失性要求輸入中缺失的特征對結果沒有影響:
- 一致性 Consistency:一致性要求如果模型發生變化,簡化輸入的貢獻應當增加或不變,與其他輸入無關:
定理1來自於合作博弈論的組合結果, 表示Shapley值。Young (1985)證明了Shapley值是唯一滿足局部精度、一致性和一個冗余屬性的值。還需要滿足缺失性才能證明Shapley值滿足加性特征歸因方法。
本文提出一種統一的方法來改進現有方法,防止破壞局部精度和一致性。
- 本文提出SHAP值作為特征重要性的統一指標。原始模型的條件期望函數的Shapley值滿足定理1,其中
,
是
中非零值的下標集合。如圖
- SHAP值解釋了怎樣從沒有任何特征信息時的基礎值 獲得當前輸出 。
- 當模型是非線性或輸入特征不獨立時,添加特征的順序就很重要,SHAP值為所有可能的順序取平均。
- SHAP值使用條件期望來定義簡化輸入。定義中隱含了一個簡化輸入映射 ,其中 不包含 中缺失的值。由於大多數模型不能處理缺失輸入,我們把 近似為 。SHAP值的定義設計為近似前面講的6種方法。
- SHAP值的計算非常困難,本文提出兩種模型無關的近似方法:
- Shapley sampling values (現有)、Kernel SHAP (新)
- 還描述了四種針對不同模型的近似方法:
- Linear SHAP、Low-Order SHAP(現有)、Max SHAP、Deep SHAP(新)
- 其中,特征獨立性和模型線性度是可選假設。
表示不在
中的特征集合
模型無關方法
在近似條件期望時假設特征相互獨立,則SHAP值可以直接用Shapley sampling values或Quantitative Input Influence方法得到。本文還提出了計算量更少的近似方法。
Kernel SHAP (Linear LIME + Shapley values)
線性的LIME是加性特征歸因方法,由於LIME的參數選擇是啟發式的,不能保證結果是滿足之前三個條件的唯一解Shapley values。
當 或 時, ,為了使 ,在優化過程中要消除兩個變量避免無限權重。
假設 是線性的, 是平方誤差,LIME的優化目標仍然可以用線性回歸求解,因此Shapley值可以通過加權線性回歸計算。
Kernel SHAP通過提高模型無關的采樣效率加快了SHAP值計算,如果對模型類型增加限制,可以提出更快的近似方法。
Linear SHAP
對於線性模型,如果假設特征獨立,SHAP值可以直接從模型的權重參數直接近似得到。
Low-Order SHAP
Kernel SHAP的線性回歸計算復雜度為 ,如果能對條件期望取近似,對於較小的 比較高效。
Max SHAP
通過對Shapley值進行變換,我們可以計算每個輸入增加其他輸入最大值的概率。在有序的輸入上可以把時間復雜度從 提高到 。
沒看懂
Deep SHAP (DeepLIFT + Shapley values)
為了引入外部信息,如果把DeepLIFT的參考值解釋為 ,則DeepLIFT會假設輸入特征獨立且深度模型為線性,從而近似SHAP值。
DeepLIFT用的線性合成規則等效於把神經網絡中的非線性部分線性化。反向傳播的規則直觀定義了每個元素如何線性化,但是是通過啟發式方法選擇的。由於DeepLIFT是滿足局部精度和缺失性的加性特征歸因方法,可知Shapley值是唯一滿足一致性的歸因值。采用DeepLIFT作為SHAP值的近似成分,即可得到Deep SHAP。
Deep SHAP把網絡中各個小組件的SHAP值組合為整個網絡的SHAP值。
實驗
原始內容
常用方法:
特征重要性:模型預測多大程度依賴一個特征
部份相關圖(partial dependence plots):一個特征如何影響模型輸出
固定其他特征改變單個特征的值,查看對結果的影響
Lime:哪些變量導致了預測
LIME: Local Interpretable Model-Agnostic Explanations
target和獨立變量之間的關系在全局中可能非常復雜,難以直觀得到他們之間的關系,如圖,綠星是一個待解釋的實例:
如果放大到非常局部(local)的層級,我們可以把這種關系近似為線性模型。
LIME的工作流程:
- 采樣原始數據中接近待解釋實例的樣本
- 計算樣本和待解釋實例的距離
- 用原始模型預測這些樣本
- 用這些樣本訓練一個簡單的線性模型
- 這個線性模型用第二步得到的相似性作為權重,確保最接近原始實例的樣本的誤差更重要
例:判斷是否會信用卡違約
橙色表示特征貢獻傾向違約,藍色表示特征貢獻傾向不違約。global模型預測結果為0.072,local模型預測結果為0.066。本例中global和local模型較類似。
對預測“不違約”的貢獻最大的特征是上一個月的還款狀態(PAY_0=1),表示上一個月的還款及時完成,PAY_2、PAY_3類似。說明如果上個月的還款按時完成,用戶更可能在下一個月不違約。
LIMIT_BAL的貢獻也傾向“不違約”。更高的LIMIT_BAL表示使用的額度很少,下個月的賬單也可能很少,更不可能違約。
通過分析預測錯誤的樣本可以更好的發現是什么特征導致了預測錯誤。
本例被錯誤分類為不違約,可能因為之前的賬單都按時完成了,影響了預測結構。
根據以上的例子,LIME的總體思路看起來合理,但容易收到一些潛在缺陷影響。
- 局部線性行為。LIME假設對於實例周圍的一小部分有效,但對於更復雜的數據集,隨着局部范圍增大,假設可能不成立。因此,局部可解釋模型可能無法解釋全局線性模型的行為。
- 特征數量。特征數量應道同時滿足模型的復雜性和解釋的簡單性。python庫提供以下選項:forward_selection, lasso_path, none, auto。
- LIME不支持沒有概率分數的模型。
- LIME不能匯總特征的解釋,要一個個實例去分析。
- 相似度分數。LIME在每個特征有不同值范圍的高維空間中計算相似度較復雜。
- 鄰居的定義。LIME需要定義局部的范圍來找到鄰居,沒有確定鄰域的最佳方法。
- 模型解釋的一致性。由於采樣偏差,相似性計算和鄰域定義,LIME的解釋缺乏一致性。
LIME提供了非常簡單易懂的解釋,是分析每個功能的快速方法。 LIME也可以用於文本和圖像數據,與其他可解釋的技術(例如SHAP)相比,LIME的執行時間更少。
Shap:哪些變量導致了預測
最常用的模型解釋工具SHAP: SHapley Additive exPlanations
引入合作博弈論cooperative game theory和局部解釋local explanations的概念來獲得夏普利值shapley value。在合作博弈論的啟發下SHAP構建一個加性的解釋模型,所有的特征都視為“貢獻者”。對於每個預測樣本,模型都產生一個預測值,SHAP value就是該樣本中每個特征所分配到的數值。
假設第
個樣本為
,第
個樣本的第
個特征為
,模型對該樣本的預測值為
,整個模型的基線(通常是所有樣本的目標變量的均值)為
,那么SHAP value服從以下等式:
其中 為 SHAP值。 就是第 個樣本中第1個特征對最終預測值 的貢獻值。每個特征的SHAP值表示以該特征為條件時預期模型預測的變化。 對於每個功能,SHAP值說明了貢獻,以說明實例的平均模型預測與實際預測之間的差異。 當 ,說明該特征提升了預測值,反之,說明該特征使得貢獻降低。
傳統的feature importance只告訴哪個特征重要,但我們並不清楚該特征是怎樣影響預測結果的。SHAP value最大的優勢是SHAP能對於反映出每一個樣本中的特征的影響力,而且還表現出影響的正負性。
在給定age,gender和limit balance作為獨立特征的情況下,預測該實例信用卡違約的可能性。計算age特征的SHAP value的步驟為:
- 對每個實例,gender和limit balance保持不變,age從分布中隨機采樣來替換;
- 模型預測該實例違約的概率;
- 所有實例的平均預測值和這個實例之間的差異僅在於隨機采樣的age無關的特征;
- 對於gender和limit balance重復以上步驟;
- age的SHAP value是所有可能組合的邊緣分布的加權平均。
這個圖展示了與平均預測結果相比每個特征在哪個方向起作用。右側y軸表示相應的特征值,每個點表示數據中的一個實例。
- PAY_0表示上個月的還款狀態,PAY_0值越高(紅色),信用卡違約的可能性就比平均趨勢高;
- LIMIT_BAL表示額度限制,值越低(藍色)越可能導致違約。
單個實例:
上圖展示了每個特征都各自有其貢獻,將模型的預測結果從基礎值(base value)推動到最終的取值(model output);將預測推高的特征用紅色表示,將預測推低的特征用藍色表示。
該實例被預測為不違約的主要貢獻者是PAY_0=0,表示上個月按時還款會增加該實例被預測為不違約的幾率。
缺點:
- 耗時:隨着特征的增加,特征可能組合的數量呈指數增長,增加了SHAP的計算時間;
- 可能的特征組合的選擇順序:通常目標與獨立特征非線性相關,且獨立特征之間也有一定相關性,這種情況下組合特征的選擇順序很重要,並影響SHAP value;
- SHAP不返回模型,無法模擬研究某個特征值增加如何影響輸出;
- 獨立特征之間的相關性導致從特征的邊緣分布采樣時,可能生成現實生活中不可能的實例。