Gbdt 不能多目標建模?試試 Mtgbm!
前面文章為什么GBDT可以超越深度學習,我們提到,GBDT在特定的表格數據場景上有獨特的優勢。而在過往的研究中,多目標一直是NN的主場。
我們能否把GBDT和多目標結合起來發光發熱?
答案是,可以!MTGBM給你解決GBDT多目標建模的最后一公里。
多目標學習背景
多目標學習在推薦系統領域近年一直大放異彩,大家耳熟能詳的ESSM和MMoE等神經網絡模型都是多目標的典型代表方法,他們的基本思想都是考慮了不同任務之間的區別和聯系,提高各個任務的學習質量和效果。
除了NN之外,GBDT(Gradient boosted decision trees)模型在推薦系統、廣告系統及金融風控領域被廣泛使用,但一些業界知名的GBDT實現(微軟的LightGBM,XGBoost以及CatBoost)中沒有多目標學習的功能。而在現實場景中引入多任務學習往往能帶來穩定的效果提升及提供更加優秀的魯棒性。
舉幾個簡單的例子:在預測商品點擊率時,不僅僅使用模型學習歷史點擊率,還可以學習點贊收藏分享等數據,更好的學習到用戶的愛好信息,完成預測任務。
在預測欺詐分類時,如果不僅僅預測是否為欺詐,同時預測細分欺詐手法的多個二分類任務,不僅僅會增加模型表達能力,同時還可以在是否欺詐上更加精確,提高模型對目標的理解力。
MTGBM介紹
點擊閱讀原文直達GitHub.
論文地址:https://arxiv.org/pdf/2201.06239.pdf
開源實現:https://github.com/antmachineintelligence/mtgbmcode
這里我要說一下作者了,經常玩比賽的可能知道Bird這個ID,他是MTGBM的一作,并且在螞蟻金服的風控業務實踐和競賽場景中,落地MTGBM都取得了顯著的收益。
這篇文章創造性地提出了一種多任務學習的GBDT算法,并高效地實現了該算法,目前通過該算法能實現的功能有:多標簽-性能提升、歷史模型知識蒸餾,多任務-遷移學習等,在大量公開數據集上測試后,主目標均比XGB,LightGBM,Catboost有較大提升。
該算法基于LigntGBM實現,你可以像以前使用LightGBM一樣使用它,幾乎沒有學習成本。
原理及細節
目前業內使用單目標學習較多,如LightGBM和XGBoost,缺點是模型容易過擬合,魯棒性不足;而目前可用的多目標的GBDT,但是都是僅僅適用于互斥的多分類,并不能應用于多個獨立的任務。而且多個分類之間獨立學習,并沒有提取公共的部分,導致模型提升有限。另外有使用神經網絡深度學習完成多目標學習,但由于特征比較多且值域非常大神經網絡在這些場景表現很差。
一般來說,多目標學習需要共享中間層的參數,從而達到多目標學習的過程。而在樹模型中由于沒有中間參數可以共享,我們決定使用共享樹結構的方式進行多目標學習。新的樹結構被稱為同構異值樹,為不同的目標提供相同的分裂結構和不同的輸出值。
傳統的單目標GBDT計算每個樹的過程
- 計算之前所有樹預測結果與當前目標的殘差與梯度
- 通過每個樣本的梯度,在每個樹節點進行分裂的時候,使用某個合適的特征某個位置將樣本劃為兩部分,令損失增益L(梯度)最小。
- 對每個葉子節點,使用落在他們上的數據梯度的均值進行更新。
- 在到達指定深度或樣本不可再分后結束分裂。
- 得到一顆樹。
多目標MGBM算法訓練過程
- 計算之前所有樹預測結果與多個目標的殘差與梯度
- 通過每個樣本的多個目標梯度進行融合,使得每個樣本擁有一個融合梯度,在每個樹節點進行分裂的時候,使用某個合適的特征某個位置將樣本劃為兩部分,令損失增益L(融合梯度)最小。
- 對每個葉子節點,產生等同于學習目標數目的輸出,使用落在他們相應的目標的數據梯度的均值進行更新。
- 在到達指定深度或樣本不可再分后結束分裂。
- 得到一顆樹。
- 最后預測不同目標時,只需要使用相同樹的不同目標值即可。
實驗結果
MTGBM在兩個實際表數據場景的數據集上做了對比實驗,分別是China Foreign Currency Volume 和 Kaggle上的IEEE-CIS Fraud Detection
更多細節的實驗結果,多任務的組合以及多fold的實驗
可以看出MTGBM在實際表數據場景的數據集上,比NN和多個GBDT實現,LGB/XGB/CTB都取得了更好和穩定的提升。