深度學習靠合成數據訓練,終於打贏了表格數據裡的XGBoost
能找到的真實表格數據集只有約5萬個,不足以餵飽深度網絡;PriorLabs轉而用因果結構模型批量合成訓練數據,讓TabPFN第一次在表格預測上穩定超過XGBoost和CatBoost。
原視頻在 YouTube 上放不出來,用音頻聽:
核心論點 · 點時間戳可跳到原聲
TabNet紅極一時,卻是不泛化的失敗樣本
2019年Google推出的TabNet曾被引用上千次,是當時深度學習攻克表格數據的頭牌方案,但Frank Hutter說它根本不泛化到新數據集。更深層的原因是:一張圖片不管來自哪裡,像素級的空間統計規律都是相通的,所以一個ImageNet模型能覆蓋幾乎所有圖片;但一張醫療表格和一張保險表格,在具體某一行的數值上毫無關聯,唯一能跨表遷移的是特徵之間相互作用的「模式」,這必須靠上下文學習才能捕捉,而不是靠一個共享的深度網絡。
— Frank Hutter真實表格數據太少,只能合成訓練數據
互聯網上能拿來訓練統計模型的真實表格數據集其實只有大約5萬個——維基百科上一張籃球運動員數據表算不上可學習的數據集。這和圖像、文本、視頻完全不同,後者人人願意上傳。PriorLabs因此從結構因果模型這類機制性先驗出發,完全用合成數據訓練TabPFN,順帶解決了大模型常見的數據洩漏、記憶測試集、偏見繼承等問題,因為整條數據生成流水線都是自己寫的、完全可控。
— Frank Hutter新模型在ChatGPT前一週悄悄發布
TabPFN論文比ChatGPT發布還早一週,Frank Hutter把它定義為AutoML十五年元學習研究的自然延伸:不再是學習能泛化到新數據集的參數,而是直接學出一整套「算法」本身,在一次前向傳播裡執行完畢。同一個網絡,喂進不同數據集就會算出不同的分類器,甚至可以導出成ONNX格式跑在傳感器上——這是第一個端到端從數據中學出來、而不是人手寫出來的表格算法。
— Frank Hutter跳過後驗參數,直接學預測分布本身
傳統貝葉斯推斷要先算出參數或函數的後驗分布,這一步靠MCMC或變分推斷,又慢又難精確。TabPFN把這一步直接跳過:從先驗裡採樣出上百萬個不同的函數(比如不同的結構因果模型),再從每個函數里採樣訓練點和測試點,直接學習「看到訓練點,預測測試點的y值」這一件事。見過上億個這樣的合成數據集之後,網絡就學會了在一次前向傳播裡逼近任意新數據集的貝葉斯後驗預測分布,而不需要真的建模出後驗本身。
— Frank Hutter架構一路進化,複雜度代價水漲船高
TabPFN v1把每一行數據編碼成單個向量,再做類似標準Transformer的注意力,複雜度只對行數是二次方,但類別特徵被當成普通數字處理得很粗糙。v2改成給矩陣裡每個格子單獨編碼,分別對行、對列做注意力並交替,類別特徵處理明顯變好,但複雜度變成行數平方乘列數加上行數乘列數平方,超過一萬行就撐不住,做到十萬行還得靠堆更強的GPU硬扛。v3轉向Gael Varoquaux團隊的TabICL架構,把複雜度壓回對行數二次方,才把可處理規模做到百萬行,下一個目標是一千萬行。
— Frank Hutter模型越大不等於越強:Google的教訓
Google三週前發布TabFM,沿用TabPFN的架構和先驗思路,把規模放大約30倍,在TabArena上跑贏了PriorLabs。但代價驚人:模型極大導致前向推理慢了15倍;在最小規模的數據集上TabFM明顯更強,中等規模(十萬行以內)已經打平,而超過十萬行的數據集TabFM甚至直接爆顯存跑不了。相比之下,TabPFN自己的測試時計算模式只比標準前向慢10倍,ELO分數卻更高——單純堆算力換來的領先,換不來效率和可用範圍。
— Frank HutterTabPFN能從觀察數據裡學出「介入」預測
Frank Hutter用一個例子說明相關不等於因果:如果只看「患者吃了什麼藥」去預測「有沒有這個病」,模型會學出「吃藥就等於有病」,但真實因果方向是反的——因為得病才吃藥,不是吃藥才得病。若真的停藥,病不會消失。TabPFN的做法是在元訓練階段就模擬「介入」:採樣出因果圖後,不僅觀察正常數據,還主動對某個變量做干預並記錄效果,訓練網絡同時學會「觀察下的預測」和「介入後的預測」,於是測試時只給它觀察數據,也能在一定可辨識性範圍內估計介入效應。
— Frank Hutter一分鐘拿下十年前的Kaggle冠軍成績
PriorLabs研究員Nick Erickson——AutoGluon的原作者——把TabPFN 3.5拿去跑2015年Kaggle上那場有3500名參賽者、獎金1萬美元的Otto Challenge。當年冠軍方案是36個模型手工特徵工程堆出來的多層集成;Nick自己後來用AutoGluon,靠96顆CPU跑24小時拿到前1%。這次用TabPFN 3.5,只寫了一行代碼,在一塊RTX Pro 6000上跑一分鐘,直接拿到了歷史最高分——比十年集體智慧的結果還高。
— Frank Hutter原話 · 已逐字校驗
Deep learning did not work for tabular data, and now it works dramatically better than catboost and xgboost.
深度學習以前對錶格數據不管用,現在它比CatBoost和XGBoost表現好得多。
Frank Hutter0:00
Like 2019, TabNet by Google was really hyped. Thousands of citations. Yeah, the new thing for tabular data. And it just doesn't work. It doesn't generalize to new data sets.
就說2019年吧,Google的TabNet當時紅極一時,被引用了上千次,是表格數據領域的新寵。可它根本不管用,沒法泛化到新的數據集上。
Frank Hutter3:04
we're getting there like two orders of magnitude a year
我們正在接近,差不多是每年提升兩個數量級。
Frank Hutter39:38
The model is, yeah, very large and sort of quite slow as a corollary. That's sort of like 15 times slower than like it's just a forward pass, which is super cool.
這個模型確實非常大,相應地也就很慢。它的前向推理大概比我們慢15倍,不過這一點很酷。
Frank Hutter1:14:17
if they get this medicine, then they have this disease. And you might be tempted to say, ha ha, let's stop giving them that medicine, and they won't have that disease anymore. But that would be foolish, right? Because the causal relationship is the other way around.
如果他們吃了這種藥,那他們就得了這個病。你可能會忍不住想,哈哈,那不給他們吃這藥不就沒病了嗎?但那就太蠢了,對吧?因為因果關係是反過來的。
Frank Hutter1:19:23
And now he used TabPFN 3.5 and got the number one ranked solution in one line of code and one minute of compute on one RTX Pro 6000 GPU.
他用TabPFN 3.5拿到了排名第一的方案,只用了一行代碼,在一塊RTX Pro 6000上跑了一分鐘。
Frank Hutter1:52:04
數字與實體
| TabPFN1論文發布時間 | 早於ChatGPT發布一週(2022年11月) | 26:01 |
| Google TabFM前向推理速度(訪談錄製時) | 比當時的TabPFN慢15倍 | 1:14:17 |
| TabPFN 3.5相比TabFM前向推理速度(節目末尾的版本更新) | 同等質量下快20倍 | 1:51:01 |
術語
- in-context learning上下文學習
- 不重新訓練模型,把訓練數據直接放進輸入裡,讓模型在推理時現學現用
- posterior predictive distribution後驗預測分布
- 綜合所有可能模型後,對新數據點給出的概率化預測
- do-calculus介入演算
- Judea Pearl提出的工具,用來區分「主動干預」和「被動觀察」兩種因果關係
- structural causal model結構因果模型
- 描述變量之間因果生成機制的數學模型,節目中簡稱SCM/SEM
- ELO scoreELO分數
- 源自國際象棋等級分算法,用來給兩兩對戰的模型打分排名
收聽指南
做表格數據建模的數據科學家、關注AutoML與基礎模型邊界的工程師、想判斷AI能否吃掉傳統機器學習地盤的從業者。
1:07到1:10關於測試時計算的即興聯想比較發散,信息密度低,可以跳過。