Excel专家:不只简单地查看表格数据,而是懂得从表头和单元格两个维度去理解和检索数据,就像熟练使用数据透视表一样,能快速定位和提取所需的关键信息。
- 发表时间:2024.10.07
- 论文名称:TableRAG: Million-Token Table Understanding with Language Models
- 论文地址:https://arxiv.org/abs/2410.04739
- Github 地址:https://github.com/YuhangWuAI/tablerag
传统利用LLM进行表格理解的方法通常将整个表格作为输入,但这种方法存在以下局限性:
- 上下文长度限制:大型表格(如100列×200行)的单元格数量可能超过40,000个,超出LLM的处理能力。
- 推理能力削弱:过长的上下文可能导致“Lost-in-the-Middle”现象,影响推理能力。
- 计算成本和延迟:表格尺寸增加时,计算成本和延迟显著上升。
此外,一些改进方法(如截断表格或仅读取Schema)会丢失关键信息,而将行和列编码为固定大小的嵌入可能会丢失语义信息。
为解决上述问题,Google提出了TableRAG,通过查询扩展与模式(Schema)和单元格检索相结合,精准定位关键数据,从而实现高效的数据编码和精确检索。TableRAG的核心在于:
上图展示了TableRAG与传统表格理解任务的区别。
(a) - (d):分别表示4种方法在提示词中包含的数据(阴影部分),其中 (d)是TableRAG方法:
- (a) 完整读取表格:LM读取整个表格,在大型表格中往往不现实。
- (b) 只读取Schema:LM只读取列名和数据类型组成的模式,这种方法会导致表格内容丢失。
- (c) 行-列检索:将行和列编码后,基于与问题相似度进行检索。只有行和列的交集被展示给LM。对于大型表格来说,编码所有行和列仍然不现实。
- (d) Schema-单元格检索(TableRAG):根据与LM生成的问题相关性,对列名和单元格进行编码和检索。只有检索到的Schema和单元格被提供给LM,从而在编码和推理上都提高了效率。
- (e) 在ArcadeQA数据集上的检索结果显示: TableRAG在列和单元格检索方面均优于其他方法,进而增强了后续的表格推理过程。
TableRAG的工作流程如下:
- 表格查询扩展:高效处理表格的关键在于精确地识别出查询所需的列名和单元格值。与传统的表格理解任务不同的在于,TableRAG单独为Schema和单元格分别生成独立查询。
- Schema检索:生成查询后,Schema检索通过预先训练的编码器fenc获取相关的列名,fenc会对查询进行编码,并与编码的列名进行匹配以确定其相关性。检索到的Schema数据包括列名、数据类型和示例值。将列转换为整数、浮点数或日期时间数据类型;如果这几种类型都不适合的话,保留为分类列。
- 对于被识别为数值或日期时间数据类型的列,将最小值和最大值作为示例值。
- 对于分类列,展示频率最高的三个类别作为示例值。
- 汇总每个查询的前K个检索结果,并根据它们与最接近查询的相似度进行排序。检索到的Schema提供了表格格式和内容的结构化概览,用于更精确的数据提取。
- 单元格检索:检索与问题相关的单元格值,支持精确数据提取。单元格检索的作用在于:
- 单元格识别:使LLM能够精确地检测表格中特定关键词的存在。例如,区分“tv”和“television”,确保搜索和操作基于精确的数据条目。
- 单元格-列关联:使LLM能够将特定单元格与其相关的列名关联起来。对于处理特定属性的问题至关重要,如将“钱包”直接与“描述”列关联,实现行索引。
- 编码预算下的单元格检索:将检索到的Schema和单元格值提供给LLM,生成答案。
- 回答准确性。TableRAG在ArcadeQA和BirdQA数据集上超越了其他方法,包括读取全表、读取Schema和行列检索等方法。GPT 3.5 Turbo在所有方法中表现最佳。
- 检索性能
- 列检索:TableRAG在精确度上优于其他方法,表明其在快速识别相关列方面非常有效。
- 单元格检索:TableRAG在召回率、精确度和F1分数上均优于其他方法。
- 伸缩性测试。TableRAG在不同表格尺寸(从50×50到1000×1000)下表现出色,即使在大规模表格中也能保持较高的准确率。
- 与现有技术的比较。TableRAG在WikiTableQA数据集上超越了现有方法(如TaBERT、Text-to-SQL等),证明了其在不同规模和复杂性表格上的有效性。
- 消融研究
- 检索方法的影响。基于嵌入的检索方法性能最佳,超越了BM25和混合方法。
- 检索结果数量K的影响。增加K值会增加上下文长度,但并不一致提升性能。TableRAG通过减少K值,降低了推理成本。
- 编码预算的影响。TableRAG在不同编码预算下保持一致性能,表明其通过单元格频率构建语料库的方法有效。
- 查询扩展的影响。查询扩展显著提升了TableRAG在不同数据集和语言模型中的性能。
- 模式检索和单元格检索。模式检索和单元格检索均显著提升了推理性能,分别提升了9.4%和11.5%。
- 高效性:通过检索关键数据,大幅缩短提示长度,减少信息丢失。
- 可扩展性:即使面对百万级单元格的表格,也能保持可控的计算成本。
- 准确性:在ArcadeQA和BirdQA数据集上,TableRAG的检索设计表现卓越,准确率最高。
TableRAG通过结合模式检索和单元格检索,解决了传统方法在处理大规模表格时的局限性。它在检索效率、准确性和可扩展性方面表现出色,适用于百万级单元格的表格理解任务。TableRAG为大规模表格处理提供了一种高效、准确且可扩展的解决方案。