深度|螞蟻金服DASFAA論文帶你深入瞭解GBDT模型

小螞蟻說

2018年5月21日,國際頂級數據庫會議DASFAA 2018(International Conference on Database Systems for Advanced Applications)在澳大利亞黃金海岸舉辦。

GBDT(Gradient Boosting Decision Tree) 又叫 MART(Multiple Additive Regression Tree),是一種迭代的決策樹算法,該算法由多棵決策樹組成,所有樹的結論累加起來做最終答案。它在被提出之初就和SVM一起被認為是泛化能力(generalization)較強的算法,近些年更因為被用於搜索排序的機器學習模型而引起大家關注。

GBDT模型自被提出以來,一直在有監督的機器學習任務中扮演重要角色,在各種機器學習算法競賽中數見不鮮,因此對其應用的算法業務中對模型結果解釋的需求也日益增加。本文設計並解釋了一種GBDT模型行之有效的局部解釋性方案。

深度|螞蟻金服DASFAA論文帶你深入瞭解GBDT模型

引言

GBDT(Gradient Boosting Decision Tree)模型自被提出以來,一直在有監督的機器學習任務中扮演重要角色,在各種機器學習算法競賽中數見不鮮。GBDT是一系列決策樹弱分類器的集成,將所有決策樹的分值相加獲得最終預測結果,由於這種集成方法的本質,GBDT在眾多問題中具有較優的表現,因此吸引了研究者們對算法進行不斷優化,出現不同的變式。樹形模型雖然在諸多任務上取得比線性模型更好的效果,但線性模型的一大優勢在於天然能提供特徵重要性的評判,因此在一些需要模型解釋的場景,樹形模型的應用受到了侷限。本文關注為GBDT模型及其各種變式,提供一種統一的局部解釋方案,對每一個預測樣本可以給出各個特徵的貢獻度,從而對模型預測結果進行歸因。

下文是對螞蟻金服在DASFAA的論文Unpack Local Model Interpretation for GBDT的介紹,論文鏈接:

https://link.springer.com/content/pdf/10.1007%2F978-3-319-91458-9_48.pdf

請將鏈接複製至瀏覽器中打開查看。

問題說明:

模型解釋分為兩類,一類是全局的解釋性,衡量特徵在模型中起的整體作用,另一類是局部的解釋性,目的是對一個特定的預測條目,衡量該條樣本預測分高的原因。

兩類解釋具有較大區別,以線性模型的解釋為例,對於進行了歸一化處理後的特徵而言,最終的模型權重絕對值即為全局的特徵重要性,因為權值越大該特徵對最終分值影響越大,而對於一個取得高分的具體預測實例而言,可能在全局最重要的特徵上,其分值較小,在該條樣本的得分計算上並無多大貢獻,因此對於線性模型單條樣本的局部解釋性,會使用權值乘以特徵值來作為該維特徵的貢獻度,從而得到各個特徵間的重要性排序。

對於GBDT模型全局的解釋性,Freidman基於樹模型中分裂點對均方誤差的影響,提出了評估特徵重要性的方法,並被廣泛用在特徵篩選和模型分析當中。然而,對於對其局部解釋性則需要將特徵值納入考慮,希望能夠在有解釋性需求的場景,對GBDT的單條結果提供個性化的解釋。

問題分析

對於GBDT的局部解釋性,需要考慮到幾個方面的問題。

第一,不同於線性模型,模型權值與各維特徵一一對應,GBDT這種樹形模型的權值存在於葉子結點上,一個葉子結點實際上是從根節點開始,由一系列特徵分裂點、特徵分裂值決定的一條路徑,也就是一個葉節點上的分值是多個特徵共同決定的,所以問題的難點就在於需要對單個特徵的貢獻度進行定義。

第二,由於GBDT模型的特點,它的每一棵樹擬合的都是當前的殘差,同一特徵在不同的樹上貢獻度也是不同的,因為隨著殘差的逐漸減小,後面的樹對最後預測分值的貢獻度也是更小的,因此隨機森林RF(Random Forest)模型那種基於樣本標籤分佈變化的局部解釋性方案不適用於GBDT模型。此外,GBDT還具有不同的變式,可能採用不同的損失函數和優化策略,解釋性方案應該具有通用性。

方法介紹

深度|螞蟻金服DASFAA論文帶你深入瞭解GBDT模型

圖1:GBDT模型的PMML文件

模型解釋的關鍵在於對特徵貢獻度的定義,需要把分數的計算分配到每個途徑的特徵上。並且,對於不同的GBDT實現來說,雖然其優化的原理和過程有所不同,但最終的模型輸出是相同的,即葉節點上的分值。為了不失解釋的一般性,我們的方案就基於這些分值和單條樣本的各維特徵值來計算。

GBDT的模型可以使用PMML (Predictive Model Markup Language)的格式來記錄,圖1即為一個GBDT模型的訓練結果的一部分,記錄了其中一棵樹的表示。Node元素標記的是一個樹節點,每個樹節點還包含了一條斷定規則,決定一個樣本是落向它還是它的兄弟節點,每一個節點的id屬性是其唯一標識,只有葉節點擁有score屬性,也就是一個樣本落到該葉節點時獲得的分值,可以將圖1中表示的樹畫成圖2的形式。

深度|螞蟻金服DASFAA論文帶你深入瞭解GBDT模型

圖2:GBDT模型樹形表示

觀察圖2中的節點6、節點11和節點12,由父節點6向兩個子節點前進的過程中,會對特徵feat5進行判斷,若其小於等於1.5則落向節點11獲得0.085的預測分,否則落向節點12獲得0.069的預測分。也就是在這一步的前進當中,由於特徵feat5的不同,一個樣本可能會獲得的分值差異為Sn11 − Sn12 = 0.085 – 0.069 = 0.016,Snk表示在節點k上的得分。所以,可以通過求兩個葉節點的平均值獲得對節點6的分值估計,再通過自底向上回溯的方式,可以將分數回溯到所有中間節點最後到達根節點。分裂特徵f落到葉節點c後的局部的特徵貢獻(LI:local increment)則可由子節點分值(Sc)與父節點分值(Sp)的差表示:

深度|螞蟻金服DASFAA論文帶你深入瞭解GBDT模型

這樣就實現了局部特徵貢獻度的定義,將分數分攤到各個特徵上,圖2示例的處理結果標識在圖3當中。藍色的分值表示中間節點獲得的分值估計,邊上的橙色

部分表示了經過該條邊時的貢獻特徵和貢獻分值。

深度|螞蟻金服DASFAA論文帶你深入瞭解GBDT模型

圖3:分值回溯結果

值得注意的是,從父節點落入左右兩個子節點的樣本數並不相同,所以在求平均值的時候,為了得到父節點更準確的估計,應該使用樣本數進行加權,即:

深度|螞蟻金服DASFAA論文帶你深入瞭解GBDT模型

其中Sp表示父節點的分值,Sc1、Sc2分別表示兩個子節點的分值,Nc1、Nc2則對應訓練集中子節點c1,c2所包含的樣本數。上面的預處理需要在訓練階段,記錄下每個節點上的樣本數量,再結合模型文件,對所有的樹進行預處

理,貢獻分值的大小和每棵樹上的分值息息相關。

有了預處理好的局部特徵貢獻度,要得到一個樣本預測時的特徵重要性解釋,只需要獲得它在所有樹上經過的所有路徑上的特徵貢獻,並按照特徵維度進行累積。例如對於圖3中表示的一條路徑n0->n2->n5->n9->n14,則可計算出特徵feat4的特徵貢獻為:

深度|螞蟻金服DASFAA論文帶你深入瞭解GBDT模型

計算可以形式化地表示為:

深度|螞蟻金服DASFAA論文帶你深入瞭解GBDT模型

其中,第一步表示的是計算特徵f在樣本i、單棵樹m上的貢獻度,第二步表示在所有樹上進行貢獻度的累加,獲得最終貢獻度總計。

通過這樣兩階段的操作,我們可以獲得GBDT模型對每個樣本預測的局部解釋。第一步的預處理過程會提供預測時所需的局部特徵貢獻,並不會在第二步的預測過程中引入過多的計算而影響預測性能,因此樣本解釋可以實時獲得。

實驗結果


我們使用阿里內部基於參數服務器的GBDT分佈式版本SMART(Scalable Multiple Additive Regression Tree)進行模型的訓練,並記錄樣本在節點上的分佈情況。在預測階段,使用JPMML作為預測器,並修改其代碼以支持模型解釋的輸出。訓練樣本是支付寶轉賬交易的部分抽樣,其中正樣本定義為被用戶舉報並定性為欺詐的案件。


首先,我們檢查了本文局部模型解釋方案與全局模型解釋方案的一致性。局部模型解釋方案是對單條樣本進行的,我們對大量樣本輸出的解釋觀察時,對於每一維特徵存在一個貢獻度的分佈,我們取這個分佈的中位數作為其一般衡量,它應該與全局模型解釋對各個特徵重要性大小的判斷保持一致,分析結果如圖4所示,橙色、灰色分別表示各個特徵的局部、全局解釋,具有我們預估的一致性,說明本文GBDT的局部解釋方案較為可靠。

深度|螞蟻金服DASFAA論文帶你深入瞭解GBDT模型

圖4:特徵貢獻度中位數(局部解釋)和特徵重要性(全局解釋)

然後,延續上面特徵貢獻度中位數作為特徵重要性評估,我們將其排序結果同隨機森林RF的局部解釋方案進行對比。IV(Information Value)作為一種特徵預測力的評測指標,經常被用在特徵選擇中,我們測試了兩種局部解釋方案的重要性排序在前50位的特徵,對比它們對IV的前50特徵的分段覆蓋率(為了公平,我們引入了IV特徵重要性,而不是使用GBDT全局特徵重要性),二者對比結果如圖5所示。

深度|螞蟻金服DASFAA論文帶你深入瞭解GBDT模型

圖5:GBDT和RF的局部模型解釋對比

其中藍色GBDT表示直接使用子節點平均值作為父節點分值的初始方案,橙色GBDTV2表示使用樣本個數加權平均的修正方案的結果。可以看出,GBDT的局部模型解釋結果優於RF,且修正後的方案表現最佳。

最後,我們還通過人工進行具體解釋案例檢查,分析支付寶交易測試集,發現本文模型解釋輸出的高風險特徵與人工判斷一致,並且還能抓出一些全局重要性不高,但在特定樣本中屬於高風險的特徵,驗證了結果的可靠性和實用性。

總結

將機器學習模型用作黑盒在很多應用場景中已經遠遠不夠,我們不僅需要模型輸出的最終結果,並且還要求對給出的結果進行解釋。

此外,模型解釋還可以用於模型檢查,通過給數據分析師一個直觀解釋,判斷與人工歸因的一致性來驗證模型的效果,從而使他們相信機器學習模型。另一方面,模型解釋也可以用於模型的提高,通過對漏抓、誤抓樣本的解釋,可以對特徵進行補充、修改,進而實現模型的更新迭代和效果的進一步提升。

我們提出了被廣泛應用的GBDT模型的一種通用的局部模型解釋方法,先通過對訓練的模型進行一步離線預處理,再在預測時候對特徵貢獻度進行累加和排序,實現對每個樣本結果的解釋。我們通過實驗檢驗了這一方法,從多個維度說明其有效性,並將它應用到實際業務中,成為一個優秀的“模型翻譯官”。

— END —

< 粉絲福利時間 >

恭喜以下用戶您獲得『螞蟻金服科技』粉絲福利:雲棲2050門票一張

xyzlab、空、Limo、覔亖甴、Joe-姜忠坷、純、成崽兒、聖愛、魔方、Monte、山在北國、dk、Mystery、莫那·魯道、德 立、0.0、成東青、欲 亂 人 心 、笑吧、軍軍軍軍

回覆“2050門票”然後領取您專屬的兌換碼

購票官網:https://www.yunqi2050.org/#/index

非常感謝大家對螞蟻金服技術的支持和關注!

如有問題,我們將隨時為您答疑解惑

後續小螞蟻會努力給您帶來更多福利哦~


分享到:


相關文章: