06 梯度提升:分類器只當黑箱看
每題的解答都收合在題目下方:先自己作答,再點開「看解答」核對。
先認識這些詞
這一課新出現的詞如下(前面課程已解釋過的詞不重複,完整列表見 術語表)。
- 超參數:模型的設定數字,例如規則的最大深度、學習速度。要在看結果之前就事先決定。
- GADBench:一篇比較各種「圖異常偵測」方法的基準研究。研究引用它來說明「樹模型常勝過圖神經網路」的發現一致。
- 預測:用訓練好的模型對新資料給出分數。
- 修訂紀錄:協定的修改記錄,寫明何時改、為什麼改。
- 提案圖:把題目當成點,時間上重疊的題目之間連一條線,形成一張圖。圖上的點叫節點,線叫邊。
目標
讀完這課,你能說出梯度提升的輸入、輸出,以及它在研究中扮演的角色。你不需要懂它的數學。
白話
梯度提升是一種分類器。你給它很多題的特徵和答案(是不是灌票),它學會「看特徵猜答案」。
它的工作方式可以比喻成:一群很簡單的判斷規則,一個一個依序加進來,每個新規則專門修正前面規則犯的錯。最後把所有規則的意見加總。
研究中的流程是:特徵 → 梯度提升 → 每題一個分數 → 依分數排序 → 算 AUC。研究中,你只需要知道:
- 輸入:每題的特徵(投票型態、時間、字典誤差等)。
- 輸出:每題一個分數,代表「像灌票的程度」。
- 訓練:用來源域的已知答案(注入的灌票 vs 正常)學習。
超參數
研究中梯度提升的設定是:最大深度 6、學習率 0.1、最多 500 輪。
這些數字是事先定好的,不因結果調整(論文的預先登記規定)。它們記在 outputs/phase02b/decisions.json。
為什麼用它
研究先試了學習式的圖神經網路(GNN,第一輪)。在預先登記的規則下,它沒有勝過同樣特徵的梯度提升:
| 來源域 | GNN(第一輪) | 梯度提升(同樣特徵) |
|---|---|---|
| Decentraland | 0.919 | 0.968 |
| Polis | 0.952 | 0.984 |
| YelpNYC | 0.955 | 0.989 |
(來源:round2_protocol.md 第 7 行。)
這與 GADBench 的觀察一致:對表格型的特徵,樹模型常比神經網路好。GADBench 是另一個研究,這裡只說明結果相符,不是本研究的證據。
第二輪的 R2 就是梯度提升加上三組特徵(時間圖、對齊、字典),見 B 課與 05 課。
看這裡
src/rq1.py的_gbm:建立梯度提升模型的函式。src/r2.py:把特徵組起來,交給模型。src/novvc.py的train:訓練跨域模型的入口。
問自己
1. 模型訓練時,有沒有看到檢驗題的答案?
看解答
不應該。訓練只用來源域的資料(或參照題與注入資料),檢驗題的答案不進入訓練。這要在程式中逐一確認(A、B 課)。
2. 模型在檢驗題上的預測,是用哪些特徵算出來的?
看解答
跨域版本只用目標域也有的特徵(投票型態、時間圖、對齊後的數字、字典重建誤差)。帳號歷史只在來源域內使用,跨域時不用。
3. 如果超參數調整到檢驗題上最好,會有什麼問題?(這是下一課「洩漏」的一種。)
看解答
這是洩漏:檢驗題的表現決定了模型的設定,成績會被高估。防法是超參數事先登記,並且在看到結果之前就定好。
練習
用一句話回答:如果你不懂梯度提升的數學,你能判斷研究的結果可不可信嗎?
看解答
可以部分判斷,但要靠流程檢查,不靠數學:訓練資料有沒有混入檢驗題、超參數是不是事先定的、結果有沒有用獨立方法驗證。這三點不需要懂梯度提升的數學。
檢核
1. 梯度提升的輸入和輸出是什麼?
看解答
輸入:每題的特徵。輸出:每題一個分數,數字越大代表越像灌票。
2. 研究的超參數是事後調的嗎?怎麼知道?
看解答
沒有事後調。超參數記在第 2 階段的 outputs/phase02b/decisions.json,第 5 階段協定也寫明「不調參」。可以在協定與修訂紀錄中查證。
3. 為什麼研究選擇梯度提升而不是 GNN?
看解答
同樣的特徵下,梯度提升比 GNN 好。論文的解釋是:提案圖上鄰居提供的額外資訊很少,樹模型能直接利用特徵之間的交互作用;這與 GADBench 的發現一致。
導航
引用文獻
- Friedman, J. H. (2001). Greedy function approximation: A gradient boosting machine. The Annals of Statistics, 29(5), 1189–1232. [未收入 bib]
- Pedregosa, F., et al. (2011). Scikit-learn: Machine learning in Python. Journal of Machine Learning Research, 12, 2825–2830. [未收入 bib] — 研究使用的
HistGradientBoosting實作。 - Tang, J., Hua, F., Gao, Z., et al. (2023). GADBench: Revisiting and benchmarking supervised graph anomaly detection. NeurIPS Datasets and Benchmarks. [bib: tang2023gadbench] — 論文以它說明「樹模型常勝過 GNN」的發現一致。