专栏名称: 生信菜鸟团
生信菜鸟团荣誉归来,让所有想分析生物信息学数据的小伙伴找到归属,你值得拥有!
目录
相关文章推荐
生物制品圈  ·  翻译协作 | mRNA疫苗的研发趋势 ·  4 天前  
生信菜鸟团  ·  空间组学 | NatMethods | ... ·  1 周前  
51好读  ›  专栏  ›  生信菜鸟团

机器学习模型都值得用Nature新算法尝试一下,作者似乎想要干掉传统机器学习

生信菜鸟团  · 公众号  · 生物  · 2025-01-23 10:00

正文

Basic Information

  • 英文标题: Accurate predictions on small data with a tabular foundation model
  • 中文标题:准确的小数据预测与表格基础模型
  • 发表日期:08 January 2025
  • 文章类型:Article
  • 所属期刊:Nature
  • 文章作者:Noah Hollmann | Frank Hutter
  • 文章链接:https://www.nature.com/articles/s41586-024-08328-6

Abstract

Para_01
  1. 表格数据,即按行列组织的电子表格,在从生物医学到粒子物理、经济学和气候科学等各个科学领域中无处不在。
  2. 基于其他列来填充标签列中缺失值的基本预测任务对于各种应用至关重要,这些应用包括生物医学风险模型、药物发现和材料科学。
  3. 尽管深度学习已经革新了从原始数据中的学习,并带来了众多高调的成功案例,但在过去的20年里,梯度提升决策树在表格数据领域占据主导地位。
  4. 在这里,我们介绍了表格先验拟合网络(TabPFN),这是一种表格基础模型,它在多达10,000个样本的数据集上显著优于所有先前的方法,并且训练时间大大减少。
  5. 在2.8秒内,TabPFN在一个分类设置中超越了一个经过4小时调优的强大基线组合。
  6. 作为一种生成式变换器基础模型,该模型还允许微调、数据生成、密度估计和学习可重用嵌入。
  7. TabPFN是一种通过在数百万个合成数据集上学习而来的学习算法,展示了这种方法在算法开发中的强大能力。
  8. 通过提高不同领域的建模能力,TabPFN有潜力加速科学发现并在各个领域中增强重要决策。

Main

Para_01
  1. 在人工智能的历史上,手动创建的算法组件已经被性能更好的端到端学习组件所取代。
  2. 在计算机视觉中,如SIFT(尺度不变特征变换)和HOG(方向梯度直方图)等手工设计的特征已被学习到的卷积所取代。
  3. 在自然语言处理中,基于语法的方法已被学习到的转换器所取代。
  4. 在游戏中使用的定制开局和终局库的设计已被端到端学习策略所取代。
  5. 在这里,我们将这种端到端学习扩展到无处不在的表格数据领域。
Para_02
  1. 表格数据的多样性使它们与未处理的文本和图像等模态区分开来。
  2. 例如,在语言模型中,一个词的意义在不同文档中是一致的,而在表格数据集中,相同的值可能意味着完全不同的东西。
  3. 例如,药物发现数据集可能会记录化学性质,而材料科学中的另一个数据集则可能记录热和电性质。
  4. 这种专业化导致了大量较小的、独立的数据集和相关模型的激增。
  5. 举例来说,在流行的表格基准测试网站 openml.org 上,截至撰写时,76% 的数据集包含不到 10,000 行。
Para_03
  1. 深度学习方法在处理表格数据时传统上一直面临困难,因为数据集之间以及原始数据本身的异质性:表格包含各种尺度和类型的列,也称为特征(布尔型、分类型、有序型、整型、浮点型),还有不平衡或缺失的数据、不重要的特征、异常值等。这使得非深度学习方法,如基于树的模型,成为迄今为止最强有力的竞争者。
  2. 这使得非深度学习方法,如基于树的模型,成为迄今为止最强有力的竞争者。
Para_04
  1. 然而,这些传统的机器学习模型有几个缺点。
  2. 未经重大修改,它们在分布外的预测表现较差,并且难以将知识从一个数据集转移到另一个数据集。
  3. 最后,由于它们不传播梯度,因此很难与神经网络结合使用。
Para_05
  1. 作为解决方案,我们引入了 TabPFN,这是一种针对小型到中型表格数据的基础模型。
  2. 这种新的监督式表格学习方法可以应用于任何小型到中等规模的数据集,并且在样本数量最多为 10,000 个和特征数量最多为 500 个的数据集中表现出色。
  3. 在单次前向传递中,TabPFN 在我们的基准测试中显著优于最先进的基线,包括梯度提升决策树,即使这些方法被允许进行 4 小时的调优,这也带来了 5,140 倍(分类)和 3,000 倍(回归)的速度提升。
  4. 最后,我们展示了 TabPFN 的各种基础模型特性,包括微调、生成能力和密度估计。

Principled in-context learning

Para_01
  1. TabPFN 利用上下文学习(ICL),这是导致大型语言模型表现出惊人性能的相同机制,生成了一种完全学习的强大表格预测算法。
  2. 尽管 ICL 最初是在大型语言模型中观察到的,但最近的研究表明,通过 ICL,转换器可以学习诸如逻辑回归等简单算法。
  3. 先验数据拟合网络(PFNs)表明,即使是复杂的算法,如高斯过程和贝叶斯神经网络,也可以通过 ICL 进行近似。
  4. ICL 使我们能够学习更广泛的可能算法空间,包括那些不存在封闭形式解的情况。
Para_02
  1. 我们在TabPFN23的初步版本基础上进行了改进,该版本展示了情境学习在原则上适用于表格数据,但存在许多限制,使其在大多数情况下无法应用。
  2. 通过一系列改进,新的TabPFN可以处理比原来大50倍的数据集;支持回归任务、分类数据和缺失值;并且对不重要的特征和异常值具有鲁棒性。
Para_03
  1. TabPFN 的核心思想是生成大量的合成表格数据集,然后训练基于 transformer 的神经网络来学习解决这些合成预测任务。
  2. 虽然传统方法需要手工设计解决方案来应对诸如缺失值等数据挑战,但我们的方法通过解决包含这些挑战的合成任务自主地学习有效的策略。
  3. 这种方法利用了 ICL 作为基于示例的声明式编程框架,用于算法的设计。
  4. 我们通过生成展示所需行为的各种合成数据集来设计期望的算法行为,然后训练一个模型来编码满足该行为的算法。
  5. 这将算法设计过程从编写明确的指令转变为定义输入-输出示例,为在各个领域创建算法开辟了新的可能性。
  6. 在这里,我们将这种方法应用于高影响力的表格学习领域,生成了一种强大的表格预测算法。
Para_04
  1. 我们的ICL方法与标准的监督深度学习有着根本性的区别。通常,模型是根据数据集进行训练,在单个样本或批次上根据手工设计的权重更新算法(如Adam24)更新模型参数。在推理时,学习到的模型被应用于测试样本。
  2. 相比之下,我们的方法是在多个数据集上进行训练,并且在推理时应用于整个数据集,而不是单个样本。
  3. 在应用于实际数据集之前,模型会在数百万个代表不同预测任务的合成数据集上进行一次预训练。
  4. 在推理时,模型接收一个包含标注训练样本和未标注测试样本的未见过的数据集,并在一个单一的神经网络前向传递中对这个数据集进行训练和预测。
Para_05
  1. 图1和图2概述了我们的方法:

  1. 数据生成:我们定义了一个生成过程(称为我们的先验),用于合成具有不同特征与目标变量关系的多样化表格数据集,旨在捕捉模型可能遇到的各种潜在情景。我们从该生成过程中采样数百万个数据集。对于每个数据集,一部分样本的目标值被掩盖,以模拟监督预测问题。有关先验设计的更多细节,请参阅“基于因果模型的合成数据”部分。

    1. 预训练:我们训练一个变换器模型,即我们的 PFN,来预测所有合成数据集中被掩盖的目标值,输入特征和未掩盖的样本作为上下文提供给模型。此步骤仅在模型开发期间执行一次,学习一个通用的学习算法,以便预测任何数据集。

    1. 真实世界预测:经过训练的模型现在可以应用于任意未见过的真实世界数据集。训练样本作为上下文提供给模型,模型通过 ICL(in-context learning,即上下文学习)预测这些未见数据集的标签。

    Fig. 1: Overview of the proposed method.

    • a,TabPFN 预训练和使用的高级概述。
    • b,TabPFN 的架构。
    • 我们训练一个模型来解决超过 1 亿个合成任务。
    • 我们的架构是标准 Transformer 编码器的一种适应性调整,适用于表格中遇到的二维数据。

    An architecture designed for tables

    Para_01
    1. 目前,transformer架构是灵活的深度学习和基础模型的首选架构。
    2. Transformer模型处理序列,并使用所谓的注意力机制在序列项之间结合信息,从而使它们能够有效地捕捉长程依赖性并学习数据中的复杂关系。
    3. 尽管基于transformer的模型可以应用于表格数据,但TabPFN解决了其中两个关键限制。
    4. 首先,由于transformer是为序列设计的,它们将输入数据视为单个序列,而不是利用表格结构。
    5. 其次,机器学习模型通常用于拟合-预测模型中,在这种模型中,模型仅在训练集上拟合一次,然后重复用于多个测试数据集。
    6. 然而,基于transformer的ICL算法在一个步骤中接收训练和测试数据,因此同时执行训练和预测。
    7. 因此,当重新使用已拟合的模型时,它必须重新计算训练集上的计算。
    Para_02
    1. 为了更好地利用表格结构,我们提出了一种架构,为表格中的每个单元格分配一个独立的表示,这一灵感来源于参考文献22和28。
    2. 我们的架构如图1b所示,使用了双向注意力机制,每个单元格首先关注其所在行的其他特征(即其样本),然后关注其所在列的相同特征(即所有其他样本)。
    3. 这种设计使得架构对样本和特征的顺序具有不变性,并且在训练过程中能够更高效地训练,并能扩展到比训练期间遇到的更大的表格,无论是在样本数量还是特征数量方面。
    Para_03
    1. 为了在拟合-预测设置中避免对每个测试样本重复计算训练集上的运算,我们的模型可以将训练样本和测试样本的推理分开进行。
    2. 这使我们能够在训练集上执行一次ICL,保存生成的状态,并将其重新用于多次测试集推理。
    3. 在具有10,000个训练样本和10个特征的数据集上,我们优化的训练状态缓存使得在CPU上的推理速度提高了约300倍(从32秒减少到0.1秒),在GPU上的推理速度提高了6倍。
    4. 当特征数量增加10倍(达到100个)时,CPU上的加速比提高到800倍,GPU上的加速比提高到30倍。
    5. 这些测量仅关注核心推理过程,不包括‘推理细节’部分详细说明的预处理和集成步骤。
    6. GPU上的加速比较低是由于其大规模并行架构未得到充分利用。
    Para_04
    1. 我们通过半精度计算层归一化、使用闪存注意力、激活检查点和状态的顺序计算,进一步优化了架构的内存和计算需求。
    2. 我们的优化将内存需求减少了四倍,使得每个单元所需的内存不到1000字节。
    3. 这使得在单个H100 GPU上可以处理多达5000万个单元(例如,500万行×10个特征)的数据集进行预测。
    Para_05
    1. 对于回归任务,我们使用分段常数输出分布,这使得我们的模型能够预测目标值的概率分布,而不是单个值,包括例如双峰分布。

    Synthetic data based on causal models

    Para_01
    1. TabPFN 的性能依赖于生成合适的合成训练数据集,这些数据集能够捕捉真实世界表格数据的特征和挑战。
    2. 为了生成这样的数据集,我们开发了一种基于结构因果模型(SCMs)的方法。
    3. SCMs 提供了一个正式的框架,用于表示数据背后的因果关系和生成过程。
    4. 通过依赖合成数据而不是大量的公共表格数据集合,我们避免了基础模型常见的问题,如隐私和版权侵权问题。
    5. 这些问题还包括用测试数据污染我们的训练数据或数据可用性有限。
    Para_02
    1. 如图2所示,我们的生成流程首先采样高级超参数,例如数据集大小、特征数量和难度级别,以控制每个合成数据集的整体属性。
    2. 在这些超参数的指导下,我们构建了一个有向无环图,指定了数据集背后的因果结构。

    Fig. 2: Overview of the TabPFN prior.

    • 对于每个数据集,我们首先采样高层次的超参数。
    • 基于这些超参数,我们构建一个结构因果模型,该模型编码生成数据集的计算函数。
    • 每个节点包含一个向量,计算图中的每条边根据连接类型实现一个函数。
    • 在第一步中,使用随机噪声变量生成初始化数据,并将其输入到图的根节点中,然后通过计算图传播以生成每个样本。
    • 在第二步中,我们在图中随机采样特征和目标节点的位置,分别标记为F和T。
    • 在第三步中,我们提取在采样的特征和目标节点位置处的中间数据表示。
    • 在第四步中,我们对提取的数据进行后处理。
    • 我们检索最终的数据集。
    • 我们绘制特征对之间的交互图,节点颜色表示样本的类别。
    Para_03
    1. 为了在数据集中生成每个样本,我们通过因果图的根节点传播随机生成的噪声,称为初始化数据。
    2. 这些初始化数据是通过从随机正态分布或均匀分布中采样生成的,样本之间具有不同程度的非独立性,请参阅‘初始化数据采样’部分。
    3. 当这些数据遍历计算图的边时,我们应用多种计算映射:带有线性或非线性激活函数的小型神经网络(例如,sigmoid、ReLU(修正线性单元)、取模、正弦函数),用于生成分类特征的离散化机制,以及编码局部规则依赖关系的决策树结构。
    4. 在每条边上,我们添加高斯噪声,从而引入生成数据的不确定性。
    5. 我们将每个节点的中间数据表示保存下来,以便稍后检索。详情请参阅‘计算边映射’部分。
    Para_04
    1. 遍历因果图后,我们在采样的特征节点和目标节点处提取中间表示,生成包含特征值和相关目标值的样本。
    Para_05
    1. 通过将各种数据挑战和复杂性纳入合成数据集中,我们创建了一个训练场地,使TabPFN能够开发出处理真实世界数据集中类似问题的策略。
    2. 例如,考虑表格数据中常见的缺失值问题。
    3. 通过在我们的合成数据生成过程中,让TabPFN接触到具有不同模式和不同比例缺失值的合成数据集,模型学会了处理缺失值的有效方法,这些方法可以推广到真实世界的数据集。
    4. 我们应用后处理技术进一步增强真实感,并挑战所学预测算法的鲁棒性。
    5. 这包括使用Kumaraswamy分布进行扭曲,引入复杂的非线性失真和量化,模拟离散化特征。
    6. 详情请参见‘后处理’部分。
    Para_06
    1. 通过这一生成过程,我们为每次模型训练创建了一个庞大的语料库,包含大约一亿个合成数据集,每个数据集都有独特的因果结构、特征类型和功能特性。

    Qualitative analysis

    Para_01
    1. 我们首先分析TabPFN在玩具问题上的行为,以建立直觉并理清各种数据集特征的影响。
    2. 由于回归问题更容易可视化,我们在定性分析中重点关注这些。
    3. 在图3a中,我们将TabPFN与一组多样化的标准预测器进行了比较,所有方法均使用默认设置。

    Fig. 3: The behaviour of TabPFN and a set of baselines on simple functions.

    • 在所有图中,我们使用橙色表示真实值,蓝色表示模型预测。
    • a, 每一列表示一个不同的玩具函数,每个函数都有一个单一特征(沿x轴)和一个目标(沿y轴)。
    • TabPFN可以模拟许多不同的函数,包括有噪声的函数。
    • b, TabPFN可以直接对输出分布进行建模,这通过观察1000个光子的位置后预测双缝实验中的光强度模式得到了例证。
    Para_02
    1. 线性(岭)回归只能自然地建模线性函数,从而产生简单且可解释的预测,但在许多玩具函数上会导致灾难性的失败。
    2. 多层感知器(MLPs)在具有高度不平滑模式的数据集上表现更差。
    3. 对于阶跃函数来说,这一点尤其明显。
    4. 相比之下,TabPFN 可以直接对平滑或不平滑的函数类型进行建模。
    5. 这包括对阶跃函数的良好近似,尽管 TabPFN 是一种神经网络。
    6. CatBoost 作为基于树的方法的代表,只适合分段常数函数。
    7. 虽然这会导致近似误差和不符合直觉的预测,但它避免了灾难性的失败。
    Para_03
    1. TabPFN 相对于所有基线的主要优势在于其内在的能力,可以在不增加额外成本的情况下对不确定性进行建模。
    2. 而传统的回归方法输出的是单个实数值的预测,TabPFN 返回的是目标分布,捕捉了预测中的不确定性。
    3. TabPFN 的这些不确定性建模能力不仅限于简单的分布,还可以处理复杂的多模态分布。
    4. 图 3b 通过模拟双缝实验中光到达探测屏的密度来展示这一点,该实验展示了不同缝隙距离和宽度下的情况。
    5. 在这个经典实验中,光子通过两个缝隙传播,由于光的波动干涉行为,形成了多模态的强度模式。
    6. TabPFN 只需一次前向传递即可预测这些复杂模式,仅需 1.2 秒。
    7. 相比之下,传统方法如 CatBoost 需要在不同分位数上训练多个分位数模型,并从这些预测中重建分布。
    8. 即使在针对此任务进行了专门调整后,CatBoost 的预测结果仍然明显不如 TabPFN,参见图 3b。
    9. 使用默认设置时,CatBoost 需要 169.3 秒并且产生更差的结果。
    10. 定性上,我们观察到 TabPFN 在预测非常低的密度时更加准确,并且与 CatBoost 相比,产生的伪影更少。

    Quantitative analysis

    Para_01
    1. 我们对 TabPFN 进行了定量评估,使用了两个数据集集合:AutoML Benchmark36 和 OpenML-CTR2337。
    2. 这些基准包含了多样化的实际表格数据集,经过精心挑选以确保复杂性、相关性和领域多样性。
    3. 从这些基准中,我们使用了最多有 10,000 个样本、500 个特征和 10 个类别的 29 个分类数据集和 28 个回归数据集。
    4. 我们进一步评估了来自其他基准套件的数据,以及来自 Tabular Playground 系列的五个 Kaggle 竞赛。
    Para_02
    1. 我们将TabPFN与最先进的基线进行了比较,包括基于树的方法(随机森林,XGBoost(XGB),CatBoost,LightGBM)、线性模型、支持向量机(SVM)和多层感知器(MLP)。
    Para_03
    1. 评估指标包括ROC AUC(接收者操作特征曲线下的面积;一对一与多类)和分类准确率,以及R2(决定系数)和负RMSE(均方根误差)用于回归。
    2. 每个数据集的分数进行了标准化,1.0代表相对于所有基线的最佳表现,0.0代表最差表现。
    Para_04
    1. 对于每个数据集和方法,我们使用不同的随机种子和训练-测试分割(90% 训练,10% 测试)进行了 10 次重复实验。
    2. 我们使用五折交叉验证的随机搜索来调整超参数,时间预算从 30 秒到 4 小时不等。
    3. 所有方法都在八个 CPU 核心上进行评估,TabPFN 另外使用了一块消费级 GPU(RTX 2080 Ti;其他方法没有从中受益,详见扩展数据图 2d)。
    4. TabPFN 使用八块 NVIDIA RTX 2080 GPU 进行了为期两周的预训练,从而可以在单次前向传播中对所有新数据集进行零样本学习。
    5. 这些适度的计算需求使得类似的研究可以被学术实验室所接受。
    6. 详情请参阅‘详细的评估协议’部分。

    Comparison with state-of-the-art baselines

    与最先进的基线进行比较

    Para_01
    1. 图4a展示了TabPFN在默认配置和调优配置下与XGBoost、CatBoost及随机森林相比的强大开箱即用性能。
    2. 对于分类任务,在默认设置中,TabPFN在归一化ROC AUC上比最强的默认基线CatBoost高出0.187(0.939对比0.752),在调优设置中高出0.13(0.952对比0.822)。
    3. 对于回归任务,在默认设置中,TabPFN在归一化RMSE上比CatBoost低0.051(0.923对比0.872),在调优设置中低0.093(0.968对比0.875)。
    4. 在图4b中,我们展示了每个数据集的比较结果。
    5. 尽管在某些数据集中CatBoost的表现优于TabPFN,但在大多数数据集中TabPFN表现更好。

    Fig. 4: Comparison of TabPFN on our test benchmarks, containing datasets with up to 10,000 samples and 500 features.

    • 在使用所有基线进行聚合之前,性能根据每个数据集进行了标准化;区间表示95%的置信区间。
    • Wilcoxon P指的是双侧Wilcoxon符号秩检验的P值。
    • a, 默认版本以及调优后的TabPFN和我们基线的平均性能。
    • 所有方法分别针对ROC AUC或RMSE进行了调优,因此降低了次要指标的代表性。
    • LGBM,LightGBM;MLP,多层感知器;SVM,支持向量机;RF,随机森林;CB,CatBoost;XGB,XGBoost;Lin,分类任务中的逻辑回归和回归任务中的岭回归。
    • 右侧的图表显示了对最强基线的放大分析。
    • b, TabPFN与其最强基线CatBoost的每数据集对比。
    • 每个点代表一个数据集上的平均得分。
    • c, 超参数调优对所考虑方法的影响。
    • x轴显示了拟合和预测算法所需的平均时间。
    Para_02
    1. 图4c显示了TabPFN和基线在超参数搜索花费更多时间时性能如何提升。
    2. TabPFN的默认设置平均用2.8秒进行分类,4.8秒进行回归,其表现优于所有基线,即使对这些基线进行了4小时的调优——分别有5,140倍和3,000倍的速度提升。
    3. 我们在扩展数据表1和表2中展示了更多指标的比较。
    Para_03
    1. 如扩展数据图2所示,类似于我们的主要基准测试,TabPFN在参考文献14和15的基准测试中显著优于所有基线方法。
    2. 参考文献14的基准测试尤其值得注意,因为在该基准测试中,基于树的方法以前被认为表现优异。
    3. 此外,我们在扩展数据表6中展示了默认设置下的TabPFN在最新的已完成表格游乐场系列中,对于少于10,000个训练样本的所有五个Kaggle竞赛都优于默认设置下的CatBoost。

    Evaluating diverse data attributes

    评估多样化的数据属性

    Para_01
    1. 在图5a和图5b中,我们展示了TabPFN对传统上难以处理的数据集特征的鲁棒性。
    2. 这些数据集特征通常对于基于神经网络的方法来说是很难处理的。"} 注意:原文本中有两句话,尽管第二句没有明确标点符号,但从语义上可以分为两句。因此,翻译结果中包含了两个句子。如果需要严格按照标点符号划分,则只有一句话:json{"Sentence_01": "在图5a和图5b中,我们展示了TabPFN对传统上难以处理的数据集特征的鲁棒性,这些数据集特征通常对于基于神经网络的方法来说是很难处理的。

    Fig. 5: Robustness across datasets and performance comparison with tuned ensembles.

    • a, 修改数据集的比较。我们可以看到,与基线相比,TabPFN 对修改并不更加脆弱。我们还看到,TabPFN 仅使用一半的训练样本就能重现 CatBoost(默认)的准确性。在这里,我们对每个数据集进行标准化(在一个实验的所有修改中共享一个标准化),以避免负异常值。
    • b, 我们根据数据特征划分测试数据集,并分析每个子组的性能。
    • c, 分类性能。左侧,TabPFN(PHE)相对于 AutoGluon 的胜率(排除了一次平局);右侧,随着时间推移调整每种方法的 ROC AUC 分数,第一个标记代表非集成方法的默认配置。
    • d, 回归性能如 c 所示,但使用 RMSE 指标。区间表示 95% 置信区间,Wilcoxon P 值是指双侧 Wilcoxon 符号秩检验的 P 值。
    Para_02
    1. 图5a提供了TabPFN在各种数据集类型上的性能分析。首先,我们添加了无信息特征(来自原始数据集的随机打乱特征)和异常值(以2%的概率将每个单元格乘以0到异常值因子之间的随机数)。结果表明,TabPFN对无信息特征和异常值非常稳健,这对于神经网络来说通常很难,如MLP基线所示。
    2. 其次,尽管删除样本或特征都会影响所有方法的性能,但在样本数量减半的情况下,TabPFN的表现仍然与其他使用全部样本的最佳方法一样好。
    Para_03
    1. 在图5b中,我们将测试数据集分成子组,并对每个子组进行分析。
    2. 我们根据分类特征的存在、缺失值、样本数量和数据集中的特征数量创建子组。
    3. 样本和特征数量的子组划分方式是使三分之一的数据集落入每个组。
    4. 我们可以看到,这些特征都不强烈影响TabPFN相对于其他方法的性能。
    5. 然而,我们注意到这些结果不应被视为证据表明TabPFN在超出此处考虑的10,000个样本和500个特征的情况下也能很好地扩展。
    6. 我们在扩展数据图1中展示了另外四个消融实验。

    Comparison with tuned ensemble methods

    与调优后的集成方法的比较

    Para_01
    1. 我们将TabPFN的性能与AutoGluon 1.0进行了比较,AutoGluon 1.0结合了各种机器学习模型,包括我们的基准模型,将其组合成一个堆叠集成模型,并调整它们的超参数,然后使用事后集成(PHE)生成最终预测。因此,它代表了一类不同于单个基准方法的方法。
    Para_02
    1. 为了评估调优的集成方法是否也能改进TabPFN,我们引入了TabPFN(PHE)。TabPFN(PHE)自动结合了仅带有PHE的TabPFN模型,并使用来自我们搜索空间的随机组合来调整它们的超参数。
    2. 我们在‘TabPFN(PHE)’一节中详细介绍了这种方法。
    Para_03
    1. 图5c-d比较了TabPFN、TabPFN (PHE)、AutoGluon和CatBoost的性能。对于TabPFN (PHE)和AutoGluon,我们从最小预算300秒开始进行调优,因为否则AutoGluon无法可靠地返回结果。
    2. 仅用2.8秒,TabPFN(默认)在分类任务中的表现就超过了AutoGluon,即使AutoGluon允许最多4小时的时间,这也相当于5.140倍的速度提升。
    3. TabPFN (PHE)进一步提高了性能,平均归一化ROC AUC得分达到0.971,相比之下,TabPFN(默认)为0.939,AutoGluon为0.914。
    4. 对于回归任务,调整超参数更为重要。在这种情况下,TabPFN (PHE)在经过最小调优预算300秒后,性能超过了允许4小时时间的AutoGluon,速度提升了48倍。

    Foundation model with interpretability

    Para_01
    1. 除了其强大的预测性能外,TabPFN 还展示了关键的基础模型能力,如数据生成、密度估计、学习可重用嵌入和微调。
    2. 我们通过在德国信贷数据集上进行概念验证实验来展示这些能力,该数据集包含信用风险信息,以及基于表格表示分类手写数字的 mfeat-factors 数据集。
    Para_02
    1. TabPFN 可以估计数值特征的概率密度函数,如图 6a 所示,并可以估计分类特征的概率质量函数。
    2. 计算样本密度能够进行异常检测,识别诸如欺诈、设备故障、医疗紧急情况或低质量数据等问题。

    Fig. 6: Showcase of the application of TabPFN as tabular foundation model.

    • 在德国信贷数据集上,我们进行了数据密度估计(a)和生成新的合成样本(b)。
    • 我们展示了在手写数字数据集(mfeat-factors)上学习到的嵌入是有用的表示,不同类别的样本形成了不同的聚类。
    • 我们展示了针对特定任务对TabPFN进行微调的效果。在一个包含各种正弦曲线的数据集上进行微调后,模型在另一个正弦曲线数据集上的预测更加准确。
    Para_03
    1. TabPFN还允许合成新的表格数据样本,这些样本模仿了真实世界数据集的特征,如图6b所示。
    2. 这使得诸如数据增强或隐私保护的数据共享等应用成为可能。
    Para_04
    1. TabPFN 的架构产生了有意义的特征表示,可以重复用于诸如数据填补和聚类等下游任务。
    2. 我们从 mfeat-factors 数据集中提取并可视化了学习到的嵌入,如图 6c 所示,与原始数据相比,在前两个主成分上显示出更好的类别分离效果。
    Para_05
    1. 此外,我们展示了 TabPFN 通过在相关数据集上进行微调来提高性能的能力。
    2. 与基于树的方法不同,TabPFN 的神经架构使其能够在特定的数据集类别上进行微调。
    3. 我们使用具有不同偏移量的正弦曲线数据集进行了概念验证实验,这些数据集用于微调和测试数据之间。
    4. 图 6d 显示了一个微调结果的示例。
    5. 我们在 50 次运行中的分析(扩展数据图 4)表明,即使在微调和测试任务之间的标签显著不同时,TabPFN 也能成功转移知识,并且随着分布变得更加相似,性能也会提高。
    6. 例如,这可以使从医学研究中的一系列数据集进行微调,以获得改进的通用模型,用于医学诊断任务。
    Para_06
    1. 最后,我们开发了一种方法来轻松解释TabPFN的预测。在高风险领域部署模型时,可解释性对于建立信任和问责至关重要。
    2. 我们支持通过SHAP47(Shapley加性解释)计算特征重要性,这是一种用于解释预测的游戏理论方法。
    3. SHAP值表示每个特征对模型输出的贡献。
    4. 扩展数据图3比较了逻辑回归、CatBoost和TabPFN的特征重要性和影响。
    5. TabPFN在学习简单、可解释的特征关系的同时实现了高准确性。
    6. 相比之下,逻辑回归虽然可解释但准确性较低,而CatBoost虽然准确但因为复杂的非平滑决策边界,在定性上较难解释。

    Conclusion

    Para_01
    1. TabPFN 在表格数据建模方面代表了一项重大变革,利用ICL自主发现了一种高效的算法,在多达10,000个样本和500个特征的数据集上,其表现优于传统的人类设计方法。
    2. 这种转向基于合成数据训练的基础模型为各个领域的表格数据分析开辟了新的可能性。
    Para_02
    1. 未来的研究方向包括扩展到更大的数据集,处理数据漂移,研究跨相关表格任务的微调能力,并理解我们方法的理论基础。
    2. 未来的工作还可以探索创建专门的先验来处理诸如时间序列和多模态数据等数据类型,或专门的模态如心电图、神经影像数据和遗传数据。
    3. 随着表格数据建模领域的不断发展,我们相信像TabPFN这样的基础模型将在支持研究人员方面发挥关键作用。
    4. 为了促进TabPFN的广泛应用,在‘用户指南’部分,我们讨论了如何有效使用它。

    Methods

    User guide

    用户指南

    When to use TabPFN

    何时使用TabPFN

    Para_01
    1. TabPFN 在处理最多包含 10,000 个样本和 500 个特征的小型到中型数据集方面表现出色(图 4 和扩展数据表 1)。
    2. 对于更大规模的数据集和高度非平滑的回归数据集,CatBoost9、XGB7 或 AutoGluon40 等方法可能会表现得更好。
    Para_02
    1. 尽管TabPFN为传统的表格数据模型(如CatBoost)提供了强大的替代方案,但与这些模型一样,它仅是数据科学家工具包中的一个组件。要在实际问题上实现最佳性能,通常需要领域专业知识和数据科学家的创造力。
    2. 对于其他建模方法,数据科学家应继续应用他们在特征工程、数据清理和问题框架方面的技能和见解,以充分利用TabPFN。
    3. 我们希望TabPFN的训练速度能够加速数据科学工作流程中的迭代过程。

    Limitations of TabPFN

    TabPFN的局限性

    Para_01
    1. TabPFN 的局限性如下:(1) TabPFN 的推理速度可能比高度优化的方法(如 CatBoost)慢;(2) TabPFN 的内存使用量随数据集大小线性增加,对于非常大的数据集来说可能会过高;(3) 我们的评估集中在样本数最多为 10,000 且特征数最多为 500 的数据集上;对更大数据集的可扩展性需要进一步研究。

    Computational and time requirements

    计算和时间要求

    Para_01
    1. TabPFN 计算效率高,可以在大多数数据集上运行于消费级硬件。然而,建议在新数据集上进行训练时使用(消费级)GPU,因为这可以将速度提高一到三个数量级。
    2. 尽管 TabPFN 的训练速度非常快,但它并未针对实时推理任务进行优化。
    3. 对于一个包含 10,000 行和 10 列的数据集,我们的模型需要 0.2 秒(不使用 GPU 需要 0.6 秒)来对一个样本进行预测,而 CatBoost(默认设置)可以在 0.0002 秒内完成同样的任务。
    4. 在文献 55 中,已经探索了专门针对推理任务进一步优化 TabPFN 的方法,结果表明其推理性能比 XGBoost 快四倍,但目前也降低了预测质量。
    5. 有关 TabPFN 的内存使用和运行时间复杂度的详细信息,请参阅‘神经架构细节’部分。

    Data preparation

    数据准备

    Para_01
    1. TabPFN 可以处理只需极少预处理的原始数据。如果我们只是将数据以表格格式(NumPy 矩阵)提供,TabPFN 会自动处理缺失值,对分类变量进行编码并标准化特征。
    2. 尽管 TabPFN 在开箱即用的情况下表现良好,但我们可以使用特定于数据集的预处理进一步提高性能。
    3. 这也可以通过我们的 PHE 技术自动完成,或者手动修改默认设置来实现。
    4. 在手动预处理数据时,我们应该记住,TabPFN 的神经网络期望所有预处理步骤后特征和目标大致呈正态分布。
    5. 例如,如果我们知道某个特征遵循对数分布,在将其输入到 TabPFN 之前对其进行指数化可能会有所帮助。
    6. 由于 TabPFN 对所有输入进行 z 标准化,因此缩放不会影响预测结果。
    7. 然而,对于所有算法而言,利用领域知识组合或删除特征可以提高性能。

    Hyperparameter tuning

    超参数调优

    Para_01
    1. TabPFN 提供了开箱即用的强大性能,无需进行广泛的超参数调优(详见‘与最先进的基线方法的比较’部分)。
    2. 如果我们有额外的计算资源,我们可以使用超参数优化(HPO)或‘TabPFN(PHE)’部分中描述的 PHE 技术进一步优化 TabPFN 的性能。
    3. 我们的实现直接提供了随机搜索和 PHE 的 HPO。

    Details on the neural architecture

    关于神经网络架构的详细信息

    Para_01
    1. 我们的架构是原始Transformer编码器和原始PFN架构的一个变体,但它将表格中的每个单元格视为一个独立的时间位置,类似于参考文献28中的做法。因此,它能够推广到比训练期间所见更多的训练样本和特征。
    Para_02
    1. 图1b详细展示了我们的新架构。进入我们架构的所有特征首先被映射为浮点数值,也就是说,分类特征被转换为整数。
    2. 这些值使用每个特征在整个训练集中的均值和标准差进行z标准化。
    3. 这些值现在通过简单的线性编码器进行编码。
    4. 每一层首先对特征进行注意力机制处理,然后对样本进行注意力机制处理,这两种操作分别独立地作用于每个列或行。
    5. 这两个子层之后是一个多层感知器(MLP)子层。
    6. 每个子层后面跟着一个残差加法和半精度层归一化。
    Para_03
    1. 我们发现,与每个表示编码一个值相比,编码特征组可能更有效。
    2. 对于我们的超参数搜索空间,我们选择了六种分类架构和五种回归架构。
    3. 在六个分类模型中的三个和五个回归模型中的四个(包括TabPFN默认设置)中,变换器位置编码了一个示例的两个特征;
    4. 而在其他模型中,它表示一个值。
    Para_04
    1. 虽然特征间注意力是一种经典的全连接注意力,但我们的样本间注意力不允许测试样本相互关注,而只允许关注训练数据。
    2. 因此,我们确保测试样本不会相互影响或影响训练集的表示。
    3. 为了使我们的模型更容易区分具有相同统计特性的特征,例如,两个只是顺序不同的特征,我们使用随机特征嵌入,在第一层之前将这些嵌入添加到所有嵌入中。
    4. 我们通过一个学习到的线性层将大小为嵌入四分之一的随机向量投影生成每个特征的一个嵌入,并将其添加到代表该特征实例的所有嵌入中。
    Para_05
    1. 由于训练样本的表示不受测试集的影响,我们将训练样本的键和值缓存起来,以便分割训练和推理过程。
    2. 我们使用了一种特殊的多查询注意力变体,用于从测试样本到训练样本之间的样本间注意力,以节省内存。
    3. 在我们的变体中,我们在训练集样本之间的注意力计算中使用所有键和值,但对于来自测试样本的注意力,我们重复使用第一个键和值。
    4. 这使得我们只需要为训练集中的每个单元缓存一个键或值向量对,并将其输入到新测试样本的样本间注意力计算中。
    Para_06
    1. 此架构的计算需求随着样本数量(n)和特征数量(m)的增加而呈平方级增长,即 O(n² + m²),并且内存需求随数据集大小线性增长,即 O(n ⋅ m)。
    Para_07
    1. 最后,我们发现预处理输入可以提高性能,因此我们可以对所有样本维度的输入进行z标准化,并为每个单元添加一个额外的输入,以指示该输入是否缺失;在这种情况下,输入本身被设置为0。
    2. 所有输入最终都线性编码到TabPFN的嵌入维度中。

    Details on the causal generative process

    关于因果生成过程的详细信息

    Para_01
    1. 一个SCM ({\mathcal{G"}}:= (Z,{\epsilon })) 包含一组结构赋值(称为机制):({z"}{i"}={f"}{i"}({z"}{{\rm{PA"}}{\mathcal{G"}}(i)},{{\epsilon }}{i"})),其中 ({\rm{PA"}},{\mathcal{G"}}(i)) 是在底层有向无环图(DAG)({\mathcal{G"}})(因果图)中节点 i 的父节点集合(直接原因),fi 是一个(可能是非线性的)确定性函数,而 (\epsilon_i) 是噪声变量。
    2. 在 ({\mathcal{G"}}) 中的因果关系通过从原因指向结果的边来表示。
    3. 由于我们的先验是一个采样过程,我们可以在例如图的大小或复杂性等方面做出很多选择。
    4. 通过在先验中定义这些超参数的概率分布,在推理时由TabPFN近似的后验预测分布隐式地表示了一个贝叶斯集成,联合对加权超参数空间进行积分。
    5. 特定的超参数范围和采样策略被选择以覆盖我们在现实世界表格数据中预期会遇到的各种不同场景。

    Graph structure sampling

    图结构采样

    Para_01
    1. 每个数据集底层的结构因果模型基于一个有向无环图(DAG (\mathcal{G"}))。我们使用带有重定向采样的增长网络方法来采样这些图,这是一种生成随机无标度网络的优先连接过程。
    2. 我们或者采样单个连通分量,或者合并多个不相连的子图。
    3. 如果不相连的子图没有连接到目标节点,则会导致特征与目标变量边缘独立,这反映了现实世界中存在无信息预测变量的情况。
    Para_02
    1. 为了控制采样有向无环图(DAG)的复杂性,我们使用了两个超参数:节点数N和重定向概率P。
    2. N是从对数均匀分布中采样的,(\log N \sim {\mathcal{U"}}(a,b)),其中a和b是控制图大小范围的超参数。
    3. 重定向概率P是从伽马分布中采样的,P ~ Γ(α, β),其中α和β分别是形状参数和速率参数。
    4. 较大的N值会产生具有更多节点的图,而较小的P值则会导致平均边更多的密集图。

    Computational edge mappings

    计算边缘映射

    Para_01
    1. 在我们的实现中,每个SCM节点和样本表示为({{\mathbb{R"}}}^{d"})中的向量。
    2. 当通过SCM传播数据时,每个边上的确定性函数fi使用四种类型的计算模块将输入向量映射到输出向量。

    1. **小型神经网络 (Small neural networks)**:在此,我们使用 Xavier 初始化方法初始化权重矩阵 (W\in {{\mathbb{R}}}^{d\times d}),并对输入向量 (x\in {{\mathbb{R}}}^{d}) 应用线性变换 (Wx + b),其中 (b\in {{\mathbb{R}}}^{d}) 为偏置向量。在线性投影之后,我们对结果应用逐元素的非线性激活函数 (\sigma :{{\mathbb{R}}}^{d}\to {{\mathbb{R}}}^{d}),这些函数从一个集合中随机抽取,包括恒等、对数、Sigmoid、绝对值、正弦、双曲正切、秩操作、平方、幂函数、平滑 ReLU、阶跃函数和取模运算。

    1. **分类特征离散化 (Categorical feature discretization)**:为了在每个节点上从数值向量生成分类特征,我们将向量映射到一个随机抽取的向量集合 ({p_1, \ldots, p_K}) 中最近邻的索引,对于具有 K 个类别的特征,该离散索引将作为分类特征出现在特征集中。我们从带有偏移量 2 的四舍五入伽马分布中抽样类别数 (K),以确保类别数最少为 2。为了在计算图中进一步使用这些离散类别分配,需要将它们嵌入为连续值。我们为每个类别抽取第二组嵌入向量 ({{p}{1}^{{\prime} },\ldots ,{p}{K}^{{\prime} }}),并将类别转换为这些嵌入。

    1. **决策树 (Decision trees)**:为了整合结构化的基于规则的依赖关系,我们在 SCMs(结构因果模型)中实现决策树。在某些边缘,我们选择一部分特征,并在其值上应用决策边界以确定输出。决策树的参数(特征拆分、阈值)在每条边上随机抽取。

    1. **噪声注入 (Noise injection)**:在每条边上,我们从正态分布 ({\mathcal{N}}(0,{\sigma }^{2}I)) 中添加随机正态噪声。

    Initialization data sampling

    初始化数据采样

    Para_01
    1. 对于每个待生成的样本,我们随机生成初始化数据 ϵ,该数据被插入到DAG根节点并通过计算图传播。
    2. 噪声变量 ϵ 根据以下三种采样机制之一生成:

    1. **正态分布 (Normal)**:({\epsilon } \sim {\mathcal{N}}(0,{\sigma }{{\epsilon }}^{2})),其中 ({\sigma }{{\epsilon }}^{2}) 是一个超参数。

    1. **均匀分布 (Uniform)**:({\epsilon } \sim {\mathcal{U}}(-a,a)),其中 (a) 是一个超参数。

    1. **混合分布 (Mixed)**:对于每个根节点,我们随机选择正态分布或均匀分布,从中抽取初始化噪声 (\epsilon)。
    Para_03
    1. 其中 ∑jαij = 1。权重 αij 从多项分布中采样,αi ~ 多项分布(β),其中 β 是一个控制非独立程度的温度超参数:较大的 β 产生更均匀的权重,而较小的 β 则将权重集中在每个样本的较少原型上。

    Post-processing

    后处理

    Para_01
    1. 每个数据集都经过随机的后处理,包括以下一种或多种后处理方式:(1)对于某些数据集,我们使用Kumaraswamy特征扭曲,引入非线性失真到特征中,就像在参考文献61中所做的那样。
    2. (2)我们将一些连续特征量化为具有随机采样基数K的桶,模仿数据集中常见的分箱或离散化特征。
    3. 我们将特征值x映射到它所属的桶的索引,该索引由从该特征取值集合中采样的K+1个分箱边缘决定。
    4. (3)为了引入动态填补和处理不完整数据集的情景,这是数据科学中的一个常见挑战,我们根据完全随机缺失策略随机指定一部分数据ρmiss为缺失。
    5. 每个值以ρmiss的概率被标记为缺失,与数据值无关。

    Target generation

    目标生成

    Para_01
    1. 为了生成回归任务的目标标签,我们选择了一个随机选择的连续特征,且不进行后处理。
    2. 对于分类标签,我们选择一个包含最多10个类别的随机分类特征。
    3. 因此,我们的方法在本质上限制了最多只能预测10个类别。
    4. 这个数字可以通过在具有更多类别的数据集上进行预训练,或者使用如一对一分类器、一对多分类器或基于错误纠正输出编码(ECOC)等方法来增加。

    Training details

    训练详情

    Para_02
    1. 我们最终的模型训练了大约2,000,000个步骤,批次大小为64个数据集。
    2. 这意味着用于TabPFN的模型在每个模型上都经过了大约130,000,000个合成生成的数据集的训练。
    3. 一次训练运行在一个节点上使用八个Nvidia RTX 2080 Ti GPU大约需要两周时间。
    4. 我们对每个数据集的训练样本数量进行均匀采样,最多可达2,048,并使用固定大小为128的验证集。
    5. 我们使用一个beta分布(k = 0.95,b = 8.0)来采样特征的数量,并将其线性缩放到1到160的范围内。
    6. 为了避免内存使用的峰值,通过减少大数量特征下的样本数量,将每个表格的总大小限制在75,000个单元以下。
    Para_03
    1. 我们基于随机搜索选择先验的超参数,在训练中每台设备只使用一个GPU,并在我们的开发集上进行评估,详见‘定量分析’部分。
    2. 我们使用了带有线性预热和余弦退火的Adam优化器,并测试了一组学习率在[0.0001, 0.0005]之间的值,最终选择了训练损失最低的那个学习率。

    Inference details

    推理详情

    Para_01
    1. 为了从TabPFN中获得最佳性能,优化其推理管道是至关重要的。我们通常总是将TabPFN应用于一个小的集成中,在这个集成中,我们对每个集成成员的数据进行不同的预处理或后处理。
    2. 让我们一步一步地思考。
    Para_02
    1. 由于我们的模型并不完全具备排列不变性,对于每个集成成员,我们对特征顺序进行打乱,以近似实现顺序不变性。
    2. 对于分类任务,我们还额外随机打乱标签。
    3. 我们还对模型输出的softmax分布应用了一个温度参数,以进行校准。
    Para_03
    1. 除此之外,我们为每个默认集成成员使用以下子集:

    1. **分位数 + 标识 (Quantile + Id)**:我们将输入量化为 0 到 1 之间等间距的值,同时保留每个原始特征的副本。这实际上使传递给 TabPFN 的特征数量增加一倍。

    1. **类别洗牌 (Category shuffling)**:低基数的分类特征的标签被随机打乱。

    1. **奇异值分解 (SVD)**:将特征的 SVD 压缩结果附加到原始特征中。

    1. **异常值移除 (Outlier removal)**:所有超过均值 12 个标准差的异常值将被移除。

    1. **幂变换 (Power transform)**:每个特征(或回归任务中的标签)都使用 Yeo-Johnson 变换进行变换,以稳定方差并使数据更接近正态分布。

    1. **独热编码 (One-hot encoding)**:分类特征使用独热编码,将每个类别表示为一个二进制向量。
    Para_04
    1. 对于PHE和TabPFN的超参数调整,我们使用了一组更大的预处理技术,这些技术还包括对数、指数和KDI变换。这些变换有助于解决特征之间的非线性关系、偏态分布和不同尺度。
    2. 让我们一步一步地思考。
    Para_05
    1. 为了校准预测的不确定性,我们在进行 softmax 计算之前,通过除以 logits 来应用一个 softmax 温度(默认 T = 0.9):
    Para_06
    1. 其中 zi 是 logits,T 是温度,P(yi∣x) 是校准后的概率。我们提供了生成二阶多项式特征的选项,通过乘以最多 50 个随机选择的特征对:
    Para_07
    1. 其中({\mathcal{S"}})是随机选择的特征对集合。这可以捕捉特征之间的非线性相互作用。此选项默认禁用。
    2. 为了确保在样本排列不变性下正确处理重复样本,我们在架构中添加了一个唯一的样本标识符特征。
    3. 这是一个从标准正态分布中抽取的随机数,确保每个样本在注意力机制中被区别对待。
    4. 我们还提供了在每个估计器中进行子采样的选项,以增加集成多样性,该选项执行无放回的随机采样。
    5. 此选项默认禁用。

    Regression details

    回归详情

    Para_01
    1. 为了使我们的模型能够在广泛的尺度和目标分布上进行分类,我们采用了以下方法。
    2. 在预训练期间,我们将回归目标重新缩放为均值为零,标准差为1(z-score)。", "Sentence_03": "为了确定特征之间的边界,我们从先验中抽取大量数据集,并选择该分布的1/5,000分位数。
    3. 在推理时,我们通过再次应用z-score归一化将真实世界的数据转换到类似的范围。
    4. 此外,我们允许应用一系列变换,包括作为默认部分的幂变换。
    5. 所有变换,包括z-score,在预测时都会通过对桶之间的边界应用变换的逆操作来反转。
    6. 这相当于对输出分布所代表的随机变量应用变换的逆操作,但对于用于全支持的两侧半正态分布也是如此。
    7. 这是因为所有变换都是严格单调的,而边界代表了累积分布函数上的位置。

    Data grouping based on random forest

    基于随机森林的数据分组

    Para_01
    1. 为了在非常异质的数据集上表现良好,我们还建议使用随机树将训练数据分割成更小、更同质的数据集。
    2. 该技术仅在对 TabPFN 进行 HPO 或 PHE 时使用。
    3. 这对于 TabPFN 尤其有用,因为我们的模型在小数据集上表现最佳。
    Para_02
    1. 对于单个集成成员,即单个树的预处理过程如下:我们使用带有特征和样本自助抽样的标准随机树和基尼不纯度损失。
    2. 对于决策树的每个叶节点,我们将落入该节点的训练样本子集存储起来,并在这些子集上训练一个TabPFN。
    3. 为了预测测试样本x的类别标签,我们通过将x传递给决策树来确定要使用的TabPFN。
    4. 我们将最小叶节点大小设置为较大(500–2,000),以确保生成的数据组足够大,可以训练出一个强大的模型。

    TabPFN (PHE)

    TabPFN(PHE)

    Para_01
    1. 为了进一步提高TabPFN的推理性能,在TabPFN(PHE)中,我们使用PHE对来自我们搜索空间的TabPFN配置组合进行固定组合,详细信息见扩展数据表5。对于TabPFN(PHE),我们首先使用留出验证依次评估组合中的模型,直到达到时间限制。
    2. 在所有模型都被评估一次后,我们将使用新的数据分割重复留出验证,直到达到时间限制。
    3. 然后,我们通过加权算术平均值聚合预测结果来集成所有已评估的TabPFN模型。
    4. 我们使用贪婪集成选择(GES)在留出验证的预测数据上学习权重,进行了25次迭代。
    5. 最后,我们删除每个权重为零的模型,重新拟合所有剩余模型,并返回它们预测的加权平均值。
    Para_02
    1. 按照AutoML的标准做法,我们使用GES,因为其预测性能通常优于最佳个体模型。由于其ICL,我们预计TabPFN对训练数据的过拟合程度将低于传统训练算法的预测;因此,我们选择(重复的)留出验证(如Auto-Sklearn 1),而不是(重复的)交叉验证(如AutoGluon)。
    2. 此外,由于GES通常生成稀疏的权重向量,我们预计在修剪每个零权重模型后,最终的集成将包含比其他集成方法(如bagging)更少的模型。
    3. 因此,PHE也可以提高TabPFN集成相对于其他集成方法的推理效率。

    Foundation model abilities

    基础模型能力

    Density estimation

    密度估计

    Para_02
    1. 我们仅在训练集(({{\mathcal{D"}}}_{:, < j"}))中的一部分特征上进行条件化处理。联合密度因子化的特征顺序会影响估计的密度。
    2. 为了减少这种来源的方差,我们在推理时应用了Janossy Pooling的排列采样近似方法,在该方法中,我们对Nj个特征排列的输出进行了平均处理,其中我们的实验中Nj = 24。
    Para_03
    1. 由于技术原因,我们不能对空特征集进行条件设置,因此我们将第一个特征 x1 的预测条件设置为一个带有随机噪声的特征,也就是说,没有任何信息。
    Para_04
    1. 上述样本密度的因子分解(公式(5))是完全可处理的,因此我们用它来估计数据点的可能性。这使得诸如异常检测和离群点识别等任务成为可能。
    2. 让我们一步一步地思考。

    Synthetic data generation

    合成数据生成

    Para_01
    1. 我们可以利用TabPFN的生成能力(见‘密度估计’部分)通过遵循公式(5)中的因子分解并逐步采样每个特征,来合成模仿给定现实世界数据集特征的新表格数据样本。生成的合成样本(x,y)可以用于各种目的,如数据增强、隐私保护的数据共享和情景模拟。
    2. 让我们一步一步地思考。

    Embeddings

    嵌入

    Para_01
    1. TabPFN 可以用于提取有意义的特征表示或嵌入。给定一个数据集 ({\mathcal{D"}}={{({{\bf{x"}}}{i"},{y"}{i"})}}{i=1}^{N"}),目标是学习一个映射 ({f"}{\theta }:{{\mathbb{R"}}}^{d"}\to {{\mathbb{R"}}}^{k"}),将原始的 d 维特征向量 xi 转换为 k 维的嵌入空间。
    2. 生成的嵌入 ({f"}{\theta }({{\bf{x"}}}{i"})\in {{\mathbb{R"}}}^{k"}) 捕捉了特征之间的学习关系,可以用于下游任务。
    3. 为了使用 TabPFN 解决这个问题,我们只需使用其最后一层的目标列表示作为嵌入。

    Detailed evaluation protocol

    详细的评估协议

    Para_01
    1. 为了严格评估 TabPFN 的性能和鲁棒性,我们在标准的表格数据集基准上进行了全面的定量评估,并按照标准化协议与最先进的基线进行比较。

    Default configuration of TabPFN

    TabPFN 的默认配置

    Para_01
    1. 与传统算法不同,上下文学习算法没有直接控制其训练过程的超参数。
    2. 相反,TabPFN推理的超参数只控制数据预处理和预测后处理(例如特征缩放或softmax温度)。
    3. 我们针对分类和回归任务的默认配置(TabPFN(默认))旨在以最少的拟合时间实现准确的预测。
    4. 在这里,我们多次应用相同的模型,并使用不同的预处理器和后处理器,然后对预测结果取平均值,从而形成一个四路(对于回归任务是八路)集成。
    5. 我们的数据处理设置是通过在开发数据集上优化的超参数搜索获得的。
    6. 具体选择的设置列在扩展数据表5中。
    7. 我们强调,与其他基础模型(如GPT)一样,我们只训练了一次TabPFN模型,并在所有新数据集上使用相同模型进行ICL前向传递。

    Baselines

    基线

    Para_01
    1. 我们将树基方法(如随机森林、XGBoost、CatBoost和LightGBM,这些是专家在表格数据上进行预测的最先进技术)进行了比较。我们还与更简单的方法(如岭回归、逻辑回归和支持向量机)进行了比较。
    2. 尽管标准神经网络(与TabPFN不同,不使用ICL)在小样本(<10,000个样本)的表格数据上表现不佳,但为了作为参考,我们仍然考虑了一个简单的神经网络,即多层感知器(MLP)。

    Tabular dataset benchmarks

    表格数据集基准

    Para_01
    1. 我们在两个广泛使用且公开可用的基准套件上进行了分析:标准的AutoML基准36和最近的回归基准OpenML-CTR23。这两个基准包含了一系列多样化的现实世界表格数据集,经过精心策划以代表各种领域和数据特征。
    2. 基准套件的作者根据复杂度足够高、与现实世界的相关性、不存在自由格式文本特征以及问题领域的多样性等标准选择了这些数据集。
    3. 这些数据集被精心挑选出来,以确保它们能够充分代表不同的问题领域并具有足够的复杂性和实际应用价值。
    Para_02
    1. 对于TabPFN在分类任务中的定量分析,我们使用了一组测试数据集,包括来自AutoML基准测试的所有29个数据集,这些数据集最多包含10,000个样本、500个特征和10个类别。
    2. 对于回归任务,AutoML基准测试仅包含符合这些约束的16个数据集。
    3. 为了增加统计功效,我们从最近的OpenML-CTR23基准测试中添加了所有符合我们约束的数据集,最终形成了总共28个独特的回归数据集的测试集。
    4. 扩展数据表3和表4分别提供了我们的分类和回归数据集测试集的详细信息。
    Para_03
    1. 我们进一步评估了来自参考文献14和15的额外基准套件。
    2. 在参考文献14中,根据异构列、中等维度和足够的难度等标准,选择了22个表格分类数据集。
    3. 在参考文献15中,收集了176个分类数据集,这是最大的表格数据基准之一。
    4. 然而,这些数据集的整理过程可能不如AutoML Benchmark和OpenML-CTR23那样严格或质量控制。
    5. 我们还评估了最新的已完成的Tabular Playground系列中的五个Kaggle竞赛,每个竞赛的训练样本少于10,000个。

    Development datasets

    开发数据集

    Para_01
    1. 为了决定TabPFN的超参数以及我们的超参数搜索空间,我们考虑了另一组数据集,即我们的开发数据集。
    2. 我们仔细选择了这些数据集,使其与上述测试数据集不重叠。
    3. 开发数据集的列表可以在补充表5和表6中找到。
    4. 我们考虑了标准化分数(ROC/RMSE)的平均值和排名分位数,并在这些开发数据集上选择了最佳模型配置。

    Data availability

    Para_01
    1. 所有评估的数据集都可以在 openml.org 或 kaggle.com 上公开获取。我们已经在代码库中提供了脚本,可以自动完成数据集的下载和评估过程。
    2. 这些脚本包含数据集标识符,以及精确的数据分割和处理步骤。

    Code availability

    Para_01
    1. 我们的代码可以在 https://priorlabs.ai/tabpfn-nature/ 获取(https://doi.org/10.5281/zenodo.13981285)。我们还提供了一个 API,允许用户以最少的编程经验或无需特定计算硬件(如 GPU)的情况下运行 TabPFN。
    2. 该代码设计为模块化,并且可以轻松安装在标准的 Python 环境中。
    3. 生成合成预训练数据的代码尚未与我们的模型一同发布。
    4. 我们的目标是使研究人员和从业者能够轻松地将 TabPFN 集成到他们的工作流程中,并将其应用于具体的表格数据任务。
    5. 我们鼓励用户提供反馈、报告问题并为 TabPFN 的进一步发展做出贡献。
    6. 此次开源发布旨在促进合作,并加速 TabPFN 在各种研究和应用领域中的采用和进步。