底层模型是否准备好用于您的生产表格数据-
底层模型是否准备好用于您的生产表格数据?
原文:
towardsdatascience.com/foundation-models-in-tabular-data/
近年来,我们见证了应用于非结构化和时间序列数据的底层模型爆炸式增长。这包括 OpenAI 的 GPT 系列和 BERT 用于文本任务,CLIP 和 SAM 用于目标检测、分类和分割,以及 PatchTST、Lag-Llama 和Moirai-MoE用于时间序列预测。尽管如此,由于几个挑战,底层模型在表格数据方面仍然大部分未被探索。首先,表格数据集在本质上具有异质性。它们在特征类型(布尔型、分类型、整型、浮点型)和数值特征的不同尺度上存在差异。表格数据还遭受着缺失信息、冗余特征、异常值和不平衡类别的困扰。构建表格数据底层模型的另一个挑战是高质量、开放数据源的稀缺。通常,公共数据集很小且噪声很大。以表格基准测试网站 openml.org 为例。在这里,76%的数据集包含少于 10,000 行[2]。
尽管存在这些挑战,但已经开发出几种表格数据的底层模型。在这篇文章中,我回顾了其中大部分,突出了它们的架构和局限性。我想回答的一些问题是:表格数据的底层模型目前处于什么状态?它们能否应用于生产,还是仅适用于原型设计?底层模型是否优于梯度提升等经典机器学习算法?在一个表格数据代表公司大部分数据的世界上,了解正在实施哪些底层模型及其当前能力对数据科学社区来说非常有兴趣。
TabPFN
让我们先介绍最著名的用于中小型表格数据的底层模型:TabPFN。该算法由 Prior Labs 开发。第一个版本于 2022 年发布[1],但其架构的更新于 2025 年 1 月发布[2]。
TabPFN 是一个先验数据拟合网络,这意味着它使用贝叶斯推理进行预测。贝叶斯推理中有两个重要概念:先验和后验。先验是在观察任何数据之前反映我们对参数信念或假设的概率分布。例如,掷骰子得到 6 的概率是 1/6。后验是在观察数据后更新的信念或概率分布。它将你的初始假设(先验)与新的证据相结合。例如,你可能会遇到掷骰子得到 6 的概率实际上不是 1/6,因为骰子是偏颇的。
在 TabPFN 中,先验是由 1 亿个精心设计的合成数据集定义的,这些数据集旨在捕捉模型可能遇到的广泛潜在场景。这些数据集包含特征和目标之间广泛的关联关系(更多详细信息请参阅 [2])。
后验是预测分布函数

这是通过在合成数据集上训练 TabPFN 模型的架构来计算的。
模型架构
TabPFN 架构如下所示:

TabPFN 模型的架构。图片来自原始论文 [2]。
图表的左侧显示了一个典型的表格数据集。它由一些带有输入特征 (x[1],x[2]) 和它们相应的目标值 (y) 的训练行组成。还包括一个单独的测试行,该行具有输入特征,但缺少目标值。网络的目标是预测该测试行的目标值。
TabPFN 架构由一系列 12 个相同的层组成。每一层包含两个注意力机制。第一个是 1D 特征注意力,它学习数据集特征之间的关系。它本质上允许模型“关注”给定预测中最相关的特征。第二个注意力机制是 1D 样本注意力。此模块查看所有其他样本中的相同特征。样本注意力是实现上下文学习(ICL)的关键机制,其中模型从提供的训练数据中学习,而不需要任何反向传播。这两个注意力机制使架构对样本和特征的顺序不变。
12 层的输出是一个向量,该向量被送入多层感知器(MLP)。MLP 是一个小型神经网络,将向量转换为最终预测。对于分类任务,最终预测不是一个类标签。相反,MLP 输出一个概率向量,其中每个值表示模型对输入属于特定类的置信度。例如,对于三分类问题,输出可能是 [0.1, 0.85, 0.05]。这意味着模型对输入属于第二类的置信度为 85%。
对于回归任务,MLP 的输出层被修改为产生一个连续值,而不是离散类别的概率分布。
使用方法
使用 TabPFN 非常简单!您可以通过 pip 或从源代码安装它。Prior Labs 提供了出色的文档,其中包含链接到不同的 GitHub 仓库,您可以在那里找到 Colab 笔记本来立即探索此算法。Python API 与 Scikit Learn 的 API 类似,使用 fit/predict 函数。
TabPFN 中的 fit 函数并不意味着模型会像经典机器学习方法那样进行训练。相反,fit 函数使用训练数据集作为上下文。这是因为 TabPFN 利用 ICL。在这种方法中,模型使用其现有知识和训练样本来理解模式并生成更好的预测。ICL 简单地使用训练数据来指导模型的行为。
TabPFN 拥有一个庞大的生态系统,在这里你还可以找到一些通过 SHAP 解释你模型的实用工具。它还提供了异常检测和生成表格数据的工具。你甚至可以将 TabPFN 与传统的模型如随机森林结合,通过混合方法来增强预测。所有这些功能都可以在 TabPFN GitHub 仓库 中找到。
备注和限制
在对包含数值和分类特征的私有大型数据集进行 TabPFN 测试后,以下是一些经验教训:
-
确保您首先进行数据预处理。分类列必须所有元素都是字符串;否则,代码会引发错误。
-
TabPFN 是中小型数据集的绝佳工具,但不适用于大型表格。如果您处理大型数据集(即超过 10,000 行、超过 500 个特征或超过 10 个类别),您将遇到预训练限制,预测性能将受到影响。
-
请注意,您可能会遇到难以调试的 CUDA 错误。
如果您想了解 TabPFN 与经典提升方法相比在不同数据集上的表现,我强烈推荐 Bahadir Akdemir 的这篇优秀文章:
TabPFN:预训练 Transformer 在表格数据上优于传统模型(Medium 博客文章)
CARTE
表格数据的第二个基础模型利用图结构创建了一个有趣的模型架构:我指的是 表格条目上下文感知表示,或 CARTE 模型 [3]。
与图像不同,图像中的对象具有特定的特征,无论其在图像中的外观如何,表格数据中的数字除非通过各自的列名添加上下文,否则没有意义。一种同时考虑数字及其相应列名的方法是使用相应表格的图表示。SODA 团队使用这个想法开发了 CARTE。
CARTE 通过将每一行转换为图小集来将表格转换为图结构。数据集中的行被表示为一个小的、星形图,其中每一行的值成为一个节点,连接到中心节点。列名作为图的边。

表格数据集的图表示。中心节点最初被设置为其他节点的平均值。中心节点作为一个元素,用于捕捉图的整体信息。图片来源于原始论文 [3]。
对于分类行值和列名,CARTE 使用由语言模型生成的 d 维嵌入。这样,就不需要原始表格上的分类编码等先前数据预处理。
模型架构
每个创建的图小集包含节点 (X) 和边 (E) 特征。这些特征被传递到一个图注意力网络,该网络适配了经典的 Transformer 编码器架构。图注意力网络的一个关键组件是其自注意力层,它从节点和边特征中计算注意力。这使得模型能够理解每个数据条目的上下文。

CARTE 模型的架构。图片取自原始论文 [3]。
模型架构还包括一个作用于中心节点的聚合与读出层。输出被用于对比损失的加工。
CARTE 在一个名为 YAGO3 [4] 的大型知识库上进行了预训练。这个知识库由 Wikidata 等来源构建,包含超过 18.1 百万条 6.3 百万条条目的三元组。
使用方法
CARTE 的 GitHub 仓库正在积极开发中。它包含一个 Colab 笔记本,其中包含如何使用此模型进行回归和分类任务的示例。根据这个笔记本,安装相当简单,只需通过 pip install。与 TabPFN 一样,CARTE 使用 Scikit-learn 接口 (fit-predict) 对未见数据做出预测。
局限性
根据 CARTE 论文 [3],此算法具有一些主要优势,例如对缺失值的鲁棒性。此外,在使用 CARTE 时,不需要进行实体匹配。因为它使用一个语言模型来嵌入字符串和列名,所以该算法可以处理可能看起来不同的实体,例如,“Londres”而不是“London”。
虽然 CARTE 在小型表格(少于 2,000 个样本)上表现良好,但基于树的模型在大型数据集上可能更有效。此外,对于大型数据集,CARTE 可能比传统的机器学习模型计算量更大。
关于该基础模型开发者进行的实验的更多细节,这里有一篇由 Gaël Varoquaux 撰写的优秀博客:
CARTE: toward table foundation models
TabuLa-8b
我们将要审查的第三个基础模型是通过微调 Llama 3-8B 语言模型构建的。根据 TabuLa-8b 的作者,语言模型可以通过将行序列化为文本,将文本转换为标记,然后使用语言模型中的相同损失函数和优化方法来训练以执行表格预测任务 [5]。

文本序列化。TabuLa-8b 被训练生成跟随 <|endinput|> 标记的标记。图片来自 [5]。
TabuLa-8b 的架构特点是一个高效的注意力掩码方案,称为行因果表格掩码(RCTM)方案。这种掩码允许模型在批次中关注同一表格的所有先前行,但不能关注来自其他表格的行。这种结构鼓励模型从表格中的少量示例中学习,这对于少样本学习至关重要。有关方法和结果的详细信息,请参阅 Josh Gardner 等人撰写的原始论文 [5]。
使用限制
GitHub 仓库 rtfm 包含 TabuLa-8b 的代码。在这里,你将在 Notebooks 文件夹中找到一个如何进行推理的示例。请注意,与 TabPFN 或 CARTE 不同,TabuLa-8b 没有 Scikit-learn 接口。如果你想进行零样本预测或进一步微调现有模型,你需要运行作者开发的 Python 脚本。
根据原始论文,TabuLa-8b 在零样本预测任务中表现良好。然而,在大型表格上使用此模型,无论是样本数量多还是特征数量多,或者列名长,都可能有限制,因为这种信息可能会迅速超过 LLM 的上下文窗口(Llama 3-8B 模型的上下文窗口为 8,000 个标记)。
TabDPT
在本博客中,我们将要介绍的最后一个基础模型是表格判别预训练转换器,简称 TabDPT。与 TabPFN 类似,TabDPT 结合 ICL 和自监督学习,为表格数据创建了一个强大的基础模型。TabDPT 在真实世界数据上训练(作者使用了来自 OpenML 的 123 个公共表格数据集)。根据作者的说法,该模型可以在没有额外训练或超参数调整的情况下泛化到新任务。
模型架构
TabDPT 使用类似于 TabPFN 的基于行的 transformer 编码器,其中每一行作为一个标记。为了处理训练数据中特征数目的不同(F),作者通过填充(F < F[max])或降维(F > F[max])将特征维度F[max]标准化。
这个基础模型利用自监督学习,本质上是通过自身学习,不需要为每个任务提供标记的目标。在训练期间,它随机选择表格中的一列作为目标,然后根据其他列学习预测其值。这个过程有助于模型理解不同特征之间的关系。现在,当在大数据集上训练时,模型不会一次性使用整个表格。相反,它找到并使用最相似的行(称为“上下文”)来预测单个行(“查询”)。这种方法使训练过程更快更有效。
TabDPT 的架构如下所示:

TabDPT 架构。图片来自原始论文[6]。
该图说明了这个基础模型的训练过程。首先,作者从不同的数据集中采样B个表格来构建一组特征(X)和一组目标(y)。X和y都被划分为上下文(X[ctx], y[ctx])和查询(X[qy], y[qy])。查询X[qy]是输入,它通过嵌入函数(用矩形或三角形表示)传递。该模型还为X[ctx]和y[ctx]创建嵌入。这些上下文嵌入被相加并连接到X[qy]的嵌入。然后,它们通过一个 transformer 编码器传递以获得查询的分类y[cls]或回归y[reg]。预测与真实目标之间的损失用于更新模型权重。
使用方法和限制
有一个 GitHub 仓库提供了生成新表格数据集预测的代码。像 TabPFN 或 CARTE 一样,TabDPT 使用与 Scikit-learn 类似的 API 来对未见数据做出预测,其中fit函数使用训练数据来利用 ICL。该模型的代码目前正在积极开发中。
尽管论文没有专门的限制部分,但作者提到了一些约束以及如何处理这些约束:
-
该模型有一个预定义的最大特征数和类别数。作者建议如果表格超过限制,使用主成分分析(PCA)来减少特征数。
-
对于类别数多于模型限制的分类任务,可以通过用不同的基数表示类别数将问题分解成多个子任务。
-
在推理过程中,检索过程可能会增加一些延迟,尽管作者指出这可以通过现代库最小化。
带走的要点
在这篇博客中,我总结了表格数据的基础模型。大多数都是在 2024 年发布的,但它们都在积极开发中。尽管它们相当新,但其中一些模型已经有了良好的文档和易于使用的特性。例如,您可以通过 pip 安装 TabPFN、CARTE 或 TabDPT。此外,这些模型与 Scikit-learn 具有相同的 API 调用,这使得它们很容易集成到现有的机器学习应用中。
根据这里展示的基础模型作者的描述,这些算法优于经典的提升方法,如 XGBoost 或 CatBoost。然而,基础模型仍然不能用于大型表格数据集,这限制了它们的使用,尤其是在生产环境中。这意味着,针对每个数据集训练机器学习模型的经典方法仍然是创建表格数据预测模型的方式。
在表格数据的基础模型方面取得了巨大进展。让我们看看这个激动人心的研究领域未来会有怎样的发展!
感谢您的阅读!
我是 Carmen Martínez Barbosa,一位热爱分享对社区有用的新算法的数据科学家。您可以在 Medium *或 TDS 上阅读我的内容。
参考文献
[1] N. Hollman 等人,TabPFN: 一秒内解决小型表格分类问题的 Transformer (2023),表格表示学习研讨会。
[2] N. Hollman 等人,使用表格基础模型在小数据上实现准确预测 (2025),自然。
[3] M.J. Kim, L Grinsztajn, 和 G. Varoquaux. CARTE: 表格学习的预训练和迁移 (2024),第 41 届国际机器学习会议论文集,维也纳,奥地利。
[4] F. Mahdisoltani, J. Biega, 和 F.M. Suchanek. Yago3: 来自多语言维基百科的知识库 (2013), 在 CIDR 上发表。
[5] J. Gardner, J.C. Perdomo, L. Schmidt. 通过语言模型进行表格数据的规模化迁移学习 (2025), NeurlPS。
[6] M. Junwei 等人. TabDPT: 在真实数据上扩展表格基础模型 (2024), arXiv 预印本,arXiv:2410.18164.

浙公网安备 33010602011771号