Netflix提出梯度提升决策树网络Hammock!
梯度提升決策樹網絡(ArXiv19)
一元@煉丹筆記目前神經網絡為很多業務帶來了巨大的提升,但是對于神經網絡的解釋性,以及在某些表格數據的效果不如樹模型依舊存在很多可以研究的方向,今天就看看Netflix如何基于GBDT的思想來設計梯度提升決策樹網絡,文章簡單,idea也很有啟發。大家做數據問題或者競賽的時候也可以嘗試嘗試這種方案!
1. 簡介
本文提出了一種建立類似于決策樹集合的神經網絡方法。我們首先闡述如何將學習到的決策樹集合轉換為一個具有一個隱藏層和一個輸入變換的單一神經網絡。然后,我們放松該網絡的一些屬性,如閾值和激活函數來訓練一個近似等價的決策樹集合。
最終的模型Hammock非常簡單:一個全連接的兩層神經網絡,其中輸入是quantized和one-hot編碼的。在大數據集和小數據集上的實驗表明,這種簡單的方法可以獲得類似于梯度Boosting決策樹的效果。
2. 背景
GBDT VS NN:
- GBDT在大規模數據集上的訓練是非常有挑戰性的;一旦來了新的數據,那么訓練將會變得非常慢,增量更新的效果一般不盡如人意;
- NN可以很好地和增量訓練相兼容;
另一種選擇是在神經網絡中使用soft binning或可微分裂,并模擬決策樹。然而,這些方法對于大量的特征和深度樹通常是不可擴展的。最后,我們可以使用模型蒸餾,但它首先需要從一個已經訓練好的模型出發。
在本文中,我們首先說明如何將學習的決策樹轉化為一個具有單個隱藏層和一個輸入變換的神經網絡。然后,我們放松這個網絡的屬性,如閾值和激活函數來訓練一個近似等價的決策樹集合。
最后一個模型叫做Hammock,非常簡單。它是一個完全連接的兩層神經網絡,其中輸入是quantized的,一層是one-hot編碼。在大數據集和小數據集上的實驗表明,這種簡單的方法可以獲得與GBDT模型相當的效果。
3. 決策樹和神經網絡
決策樹的情況:
我們可以使用神經網絡來實現該條規則,一個這樣的實現如圖1中間所顯示的,它由一個輸入轉換、一個隱藏層(其中每個節點表示一個樹葉)和一個外部節點組成,外部節點累加所有隱藏節點的輸出。該轉化使用對應特征的樹節點的所有閾值,第一層的權重也是二元的,如果一對(閾值,葉子)在根和葉之間的路徑中,那么它是激活的。關于第個葉子的節點的bias是非0權重的個數減去一個小數目,例如0.1,激活是一個step函數。
3.1 決策樹等價的網絡
第i個隱藏節點和外部節點之間的權重是第i個葉子的值,外層可以有一個節點用于二進制分類,也可以有多個節點用于多類分類。對于樹集合,例如GBDT或隨機林,我們可以根據所有樹中的所有閾值來定義輸入變換,并使用集合中盡可能多的隱藏節點作為葉的總數。因此,整個集合可以用一個網絡來表示。
3.2 Hammock
外層可以有一個節點用于二進制分類,也可以有多個節點用于多分類。對于樹集合,例如GBDT或隨機林,我們可以根據所有樹中的所有閾值來定義輸入變換,并使用集合中盡可能多的隱藏節點作為葉的總數。因此,整個集合可以用一個網絡來表示。
上述網絡可以實現GBDT,但它仍然需要一個經過訓練的模型。
我們可以對其進行修改,以便在內部學習等價的葉子節點。我們首先放寬所有標準的網絡的權重和Bias。然后,我們可以為每個特征使用一組預先確定的閾值,并在轉換中考慮所有這些閾值。為此,我們可以查看每個特征分布并創建一組閾值,例如分位數等。這是加快GBDT培訓過程的常見做法。
我們可以通過使用這些閾值來量化特征值并將輸入表示為量化箱的一個熱編碼來進一步簡化這種轉換。這個叫做Hammock的網絡如上面等圖片最右邊所示。
從概念上講,Hammock是一個簡單的網絡,后面接兩個全連接層,其中輸入是量化的,一層是熱編碼。這可以在TensorFlow中使用feature_column.bucketized_column實現。我們還可以對權重進行正則化,以獲得類似于決策樹的稀疏權重。最后需要注意等是,由于量化后有一個熱編碼,Hammock將其所有輸入和閾值都視為categorical的。
4. 實驗
- Hammock能夠產生與XGBoost差不多的結果。
- 與NN-L1相比,Hammock在7種情況中有5種表現更好,顯示了quantization層的優勢。
- 在撲克數據集上,Hammock的表現明顯優于XGBoost。可能是XGBoost中的決策樹不夠深,無法捕獲數據的復雜性,而Hammock可能會在每個隱藏單元中創建更大的特征組合。
5. 參考文獻
- Gradient Boosted Decision Tree Neural Network
總結
以上是生活随笔為你收集整理的Netflix提出梯度提升决策树网络Hammock!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PurdueUCLA提出梯度Boosti
- 下一篇: CTR模型越来越深,如何让它变轻?