深度学习靠合成数据训练,终于打赢了表格数据里的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关于测试时计算的即兴联想比较发散,信息密度低,可以跳过。