TabFact 大规模表格事实验证数据集
原题:TabFact: A Large-scale Dataset for Table-based Fact Verification。作者:Wenhu Chen、Hongmin Wang、Jianshu Chen、Yunkai Zhang、Hong Wang、Shiyang Li、Xiyou Zhou、William Yang Wang。ICLR 2020;本译文对应 arXiv:1909.02164v5。
来源:论文页面;原始 PDF;代码与数据。这是中文学习译本,译者为 AI,未经作者审定。正文按原章节翻译,方法和实验附录随附;参考文献原文另存于 references/LPA_references.txt。图中实体名、程序标识符及作为实验输入的英文不作替换。页码均为原 PDF 页码。原文疑点以“译注”标识,分析判断见独立评析报告。
摘要
根据给定证据判断一项文本假设是否成立,即事实验证,是自然语言理解与语义表示研究的重要问题。不过,已有研究主要处理自然语言句子、文档、新闻等非结构化证据,对于表格、图和数据库等结构化证据上的验证研究仍然不足。
本文研究以半结构化数据为证据的事实验证。我们构建了大规模数据集 TabFact,以约 1.6 万张维基百科表格为证据,包含约 11.8 万条人工标注的自然语言陈述,标签为“蕴含”或“反驳”。这个任务同时需要灵活的语言推理和严格的符号推理。为应对这两类挑战,我们设计了 Table-BERT 和潜在程序算法(Latent Program Algorithm,LPA)。Table-BERT 用预训练语言模型将线性化表格和陈述编码为连续向量进行验证;LPA 将陈述解析成程序,在表格上执行,并根据返回的二元值判断真假。两者准确率相近,但都明显低于人类。我们通过综合分析展示了未来研究空间,并公开数据与代码。
1 引言
判断给定证据是否蕴含或反驳一项文本假设,是自然语言理解的基础问题(Katz & Fodor, 1963;Van Benthem et al., 2008),可以服务于错误信息与虚假新闻检测等应用。Hassan et al.(2017)提出了端到端事实核查系统。相关问题已在识别文本蕴含 RTE、自然语言推断 NLI、主张验证及多模态语言推理 NLVR/NLVR2 中得到研究。RTE 和 NLI 使用前提句作证据,主张验证使用维基百科等文档集合,NLVR 使用图像。早期方法包括逻辑规则、知识库及神经网络;BERT 等大规模预训练模型后来在多项文本蕴含任务上接近人类表现。
然而,以非结构化文本为证据的方法难以直接推广到高度结构化的证据。表格、图和数据库广泛存在于数据库系统、对话系统、商业管理和社交网络中,因此,这类事实验证同样重要。本研究使用兼具普遍性与结构性的半结构化维基百科表格。与列类型约束严格的数据库不同,这些表格的单元格可以包含字符串、日期、整数、浮点数、短语甚至句子。
我们建立 TabFact,让人工同时编写受表格支持和被表格反驳的陈述。任务交织了两类推理。第一类是语言推理,即语义理解、释义以及一定的常识推断,例如理解“落选提名”和“未能再次当选”的关系。与以释义为主的表格问答相比,这里需要更多语言层面的推断。第二类是符号推理,即在表结构上执行筛选、计数等操作。例如“民主党现任议员有三位”需要条件筛选和计数。陈述还可能包含多个事实,必须逐项核验。例如“总共有五位候选人,其中两位民主党、三位共和党”相当于三个问答对子及其合取。两类推理的交织增加了难度。
我们提出两种方法。Table-BERT 将表格线性化为前提,将陈述视为假设,用预训练语言模型进行分类;它擅长语言释义和推断,但符号操作较弱。LPA 先以词汇匹配链接实体,再用触发词筛选预定义 API,如 argmax、argmin、count,通过带记忆的广度优先搜索生成候选程序,并用判别器选出最一致的程序。它通过执行数据库式查询完成符号推理,也能呈现决策路径。实验表明,两种方法都有一定效果,但与人类存在明显差距。我们希望 TabFact 能推动同时处理语言与符号推理的模型,并公开全部数据、代码及中间结果。
图 1(p.2)展示 1972 年美国众议院选举表格及正反陈述:受支持的陈述包括某些议员再次当选、某人无竞争对手,以及某党派人数;反驳示例通过替换人物、结果或数量制造错误。红色部分为错误内容。
2 表格事实验证数据集
我们沿用表格问答研究,从 WikiTables 提取包含标题的网页表格,过滤过于复杂、过大的表格,例如包含合并行列或 LaTeX 符号的表格,得到约 1.8 万张少于 50 行、10 列的较干净表格。
众包使用 Amazon Mechanical Turk。工作者来自美国、英国、新西兰、加拿大、澳大利亚等英语母语国家,任务通过率超过 95%,完成过至少 500 项 HIT。我们遵循人类受试研究相关规范支付报酬,并提供表格标题帮助理解背景。质量控制流程为“两通道正例采集—负例改写—验证”。
2.1 正例双通道采集与负例改写
低报酬简单通道。 每项包含五条陈述的 HIT 支付 0.45 美元,平均需 4.2 分钟。鼓励工作者编写只对应一行、只包含单一事实且不涉及复合逻辑的陈述,并尽量直接使用单元格内容,避免大幅改写。
高报酬复杂通道。 每项五条陈述的 HIT 支付 0.75 美元,平均需 6.8 分钟。要求陈述涉及多行以及最大值、最小值、计数、差值、均值、汇总等高阶语义,并改写表格内容,引入更复杂的语义理解。这种双通道设计用于分析模型在不同难度下的能力。
标注过程可能产生长度、用词偏好等浅层线索,使词袋等简单模型获得虚高表现(Zellers et al., 2018)。为减少这些现象,我们不让工作者从头编写负例,而让他们将已收集的正例改为与表格明确矛盾的陈述。可以修改词、短语和句子结构,但应尽量保留风格与长度;禁止只添加 not、never 等词反转真假,以免出现明显标签线索。
2.2 质量控制
标注期间,我们从每项 HIT 随机检查一条陈述,以决定是否拒绝整项任务。合格陈述不得有拼写或语法错误,不得使用 might、few 等模糊表达,且必须由表格明确支持或反驳,不能依赖额外知识,也不能处于真假之间。由于中立类与反驳类容易混淆且标注一致性低,本数据集不保留 NEUTRAL 标签。
采集结束后,重新分发所有样本进行过滤,每条验证支付 0.05 美元,要求无歧义、无拼写错误、支持或矛盾关系明确。后过滤阶段因质量问题移除了约 18% 的正例和 27% 的负例。
2.3 数据统计
我们随机抽取 1,000 个“表格—陈述”对子,每项由五名工作者重新判定。采用 Fleiss κ 衡量一致性,κ = (观察一致率 − 随机一致率)/(1 − 随机一致率),得到 0.75,表明标注一致性较强。
表 1 数据统计(p.4):
宽表格可左右滑动查看
| 通道 | 陈述数 | 表格数 | 正例平均长度 | 负例平均长度 |
|---|---|---|---|---|
| 简单 | 50,244 | 9,189 | 13.2 | 13.1 |
| 复杂 | 68,031 | 7,392 | 14.2 | 14.2 |
| 合计 | 118,275 | 16,573 | 13.8 | 13.8 |
宽表格可左右滑动查看
| 划分 | 陈述数 | 表格数 | 平均行数 | 平均列数 |
|---|---|---|---|---|
| 训练 | 92,283 | 13,182 | 14.1 | 5.5 |
| 验证 | 12,792 | 1,696 | 14.0 | 5.4 |
| 测试 | 12,779 | 1,695 | 14.2 | 5.4 |
复杂通道样本略多;正负例平均长度几乎相同。作者将高阶操作分成八类,抽取 200 条句子绘制分布,复杂通道含有更多高阶逻辑,尤其是计数和最高级。数据约按 8∶1∶1 划分;每张表对应 2—20 条陈述,每个单元格平均 2.1 个词。训练集正例略多,验证和测试集标签较均衡。验证数据中过滤了约 400 条来自带超链接、数学符号等异常表格的陈述。图 2(p.4)比较两个通道的聚合、否定、最高级、计数、比较、序数、唯一性和全称操作分布。
译注:通道总计 118,275 与三个划分之和 117,854 并不相同,不能混称为同一个精确样本量;项目页也分别出现这两个数。
3 模型
将实例记作 (T,S,L):T 是表格,S = (s₁,…,sₙ) 是待验证陈述,L∈{0,1}。表格单元格 Tᵢⱼ 可以是词、数字、短语或句子。T 蕴含 S 时 L=1,否则在本二分类数据设定下 L=0。训练时给出三元组,测试时只给 (T,S),评价指标为预测标签与真实标签相等的比例。
建模前先进行实体链接:词形还原后,在陈述与表格单元格、标题之间寻找最长子串匹配,得到被链接实体。为突出基于表格的验证,不把标题直接输入基础模型,而将陈述中链接到标题的短语替换成占位符。实体链接细节见附录。
3.1 潜在程序算法 LPA
我们将验证视为程序合成问题。TabFact 没有提供正确中间程序,因此这是弱监督学习。系统分为潜在程序搜索和判别器排序两个阶段。
潜在程序搜索。 将陈述解析为表达其语义的程序。预定义约 50 个 API,如 min、max、count、average、filter、and,用 Python-Pandas 实现解释器。每个 API 有明确的输入输出类型:数字、字符串、布尔值、视图(子表)。执行产生的中间变量分别存放在数字缓存 N、字符串缓存 R、布尔缓存 B、视图缓存 V 中。后续操作可以读取缓存,实现语义组合。参考 NSM(Liang et al., 2017),用触发词缩小函数搜索空间,例如 more 触发 Greater。
算法 1(p.5)的中文步骤如下:
- 初始化四类缓存、结果集合和空程序轨迹,将陈述中链接到的数字、字符串加入缓存,将原表加入 V。
- 队列存储“程序轨迹+四类缓存”的中间状态。根据触发词确定可用函数集合。
- 在最大搜索步数以内,遍历队列状态与候选函数;当函数所需类型的参数在缓存中齐备时,取出参数、执行函数、追加程序轨迹。
- 若返回布尔值,且相关输入已被完全消耗,则将程序及其结果加入候选集合;否则把布尔值及更新后的状态放回队列,继续组合。
- 若返回数字、字符串或视图,则把结果放入相应缓存继续搜索;不满足终止和消耗条件的路径被舍弃。
- 返回表格、陈述与候选程序集合。
译注:原伪代码中字符串缓存有 R/S 混用,且部分注释与条件的文字对应不够清晰;这里按其缓存搜索含义翻译,不把它改写成经过验证的可执行实现。
判别器排序。 对一条陈述得到候选集合 P={(P₁,A₁),…,(Pₙ,Aₙ)},其中 Aᵢ 是执行 Pᵢ 的结果。没有正确程序标注,因此将 Aᵢ=L 的程序当作正例,Aᵢ≠L 的程序当作负例,训练相关性判别器并最小化交叉熵。这种弱标签无法排除偶然得到正确结果的伪程序。
判别器包含两个 Transformer 编码器,分别编码陈述与程序;将表示拼接后线性投影并经 sigmoid,得到 pθ(S,P)。测试时,或者按置信度加权聚合所有候选的输出,或者只使用最高分程序的执行结果。
图 3(p.6)展示“民主党人数多于共和党人数”的程序:分别筛选两个党派、计数,再比较 3>2,得到 True。中间视图和数字在缓存中传递。
3.2 Table-BERT
把表格线性化为一个序列,将陈述作为另一个序列,按类似 NLI 的方式做二分类。由于完整表格可能超出序列模型长度限制,只保留包含陈述所链接实体的列。
比较两种线性化方式。拼接方式用 [SEP] 连接单元格,在单元格边界重置位置编码,并以额外类型嵌入表示列名;这种方式保留机器形式。模板方式使用简单自然语言模板,例如“第一行的比赛是 51;日期是二月……第二行……”,通过标点和系词把单元格串联成较自然的句子。图 4(p.6)展示横向扫描下的这两种方式。
将子表 T̃ 与陈述 S 拼接,在前面加入 [CLS],由 BERT 产生 768 维序列表示 H=fBERT([T̃,S]),再用 MLP 和 sigmoid 得到蕴含概率。BERT 与分类器联合微调,使用二元交叉熵;推理时概率大于 0.5 判为蕴含。
4 实验
除验证集和完整测试集外,按标注通道将测试集划成简单与复杂部分。另取 2,000 条小测试集用于人类评测,每项交给五名工作者,以多数票近似人类判断。
表 2 结果(百分比,p.7):
宽表格可左右滑动查看
| 模型 | 验证 | 测试 | 简单测试 | 复杂测试 | 小测试 |
|---|---|---|---|---|---|
| 不输入表格的 BERT | 50.9 | 50.5 | 51.0 | 50.1 | 50.4 |
| Table-BERT 横向 F+T 拼接 | 50.7 | 50.4 | 50.8 | 50.0 | 50.3 |
| Table-BERT 纵向 F+T 模板 | 56.7 | 56.2 | 59.8 | 55.0 | 56.2 |
| Table-BERT 纵向 T+F 模板 | 56.7 | 57.0 | 60.6 | 54.3 | 55.5 |
| Table-BERT 横向 F+T 模板 | 66.0 | 65.1 | 79.0 | 58.1 | 67.9 |
| Table-BERT 横向 T+F 模板 | 66.1 | 65.1 | 79.1 | 58.2 | 68.1 |
| NSM 仅二元奖励 RL | 54.1 | 54.1 | 55.4 | 53.1 | 55.8 |
| NSM 使用 LPA 引导的 ML+RL | 63.2 | 63.5 | 77.4 | 56.1 | 66.9 |
| LPA 无判别器投票 | 57.7 | 58.2 | 68.5 | 53.2 | 61.5 |
| LPA 加权投票 | 62.5 | 63.1 | 74.6 | 57.3 | 66.8 |
| LPA 判别器排序 | 65.2 | 65.0 | 78.4 | 58.5 | 68.6 |
| LPA 判别器排序 加标题 | 65.1 | 65.3 | 78.7 | 58.5 | 68.9 |
| 人类 | — | — | — | — | 92.1 |
F+T 表示先陈述后表格;T+F 表示先表格后陈述。
NSM。 改造 Liang et al.(2017)的模型,用 LSTM 编码器和带复制机制的 LSTM 解码器生成程序。没有中间程序标注时,二元奖励信息不足,直接强化学习困难。因此再用 LPA 搜索出的高分程序作为教师进行最大似然预训练,然后强化学习微调,效果改善。
Table-BERT 实现。 使用公开的预训练 BERT:12 层、隐藏维度 768、12 个注意力头、约 1.1 亿参数,预训练涉及 104 种语言。用标准子词分词器,表格与陈述间以 [SEP] 分隔,[CLS] 接 MLP。单张 TITAN X 上微调,batch size 为 6,约 3 小时、10K 步达到最佳表现。比较拼接或模板、横向或纵向扫描等变体。
LPA 实现。 在三台各 64 核的机器上分布式搜索。候选缓冲区超过 50 条轨迹或路径超过 7 步时停止,平均每条陈述约 2.5 秒。判别器的两个编码器各为 3 层、128 维、4 个注意力头。无判别器投票给所有程序等权;加权投票使用判别器置信度;排序使用最高分候选;“加标题”表示排序时将标题作为词序列输入。
初步评估。 不输入表格的 BERT 接近多数类猜测,表明负例改写至少抑制了该分类器可利用的浅层线索。因为中间模块没有真实标签,我们随机抽取 100 条开发集样本人工检查:实体链接按整句是否全部正确计算;搜索按候选集合是否包含真正表达陈述的程序计算召回率。
结果解释。 直接拼接几乎没有学到有效信息,模板连接能更好发挥自然语言预训练模型的能力。横向扫描优于纵向扫描,更符合人类表达习惯。LPA 排序优于投票,可能更能压制伪程序。LPA 不依赖外部语料预训练,也能取得与 Table-BERT 相近的结果,显示符号操作的价值。
人工检查发现,只有 58% 的陈述实体链接完整正确;即使链接正确,搜索包含真实程序的召回率也只有 51%。因此,LPA 候选集合覆盖正确理由的概率约低于 30%,排序后选中真正程序的概率更低,但最终标签准确率仍有约 65%。这说明伪程序问题严重:模型可能基于错误理由给出正确标签。
Table-BERT 还可能答对困难案例却答错简单案例,一致性较差。LPA 行为相对一致,能显式展示潜在理由,但需要手工设计 API,且高度依赖实体链接。如何结合两者仍是开放问题。
我们另收集了约 1,400 条与陈述配对的人工程序标注,涵盖最高级、计数、比较和唯一性等常用操作,公开用于启动语义解析器或向 NLI 模型提供推理依据。
5 相关工作
自然语言推断与推理。 从 RTE 到 NLI,研究目标都是判断假设能否由前提推出;深度学习发展出分解模型、Enhanced-LSTM、BERT 等。NLVR 与 NLVR2 又将图像引入验证。TabFact 的半结构化表格可看作一组以表结构呈现的前提,因此任务是 NLI 向半结构化领域的推广。
表格问答。 相关任务包括 MCQ、WikiTableQuestions、Spider、Sequential QA 与 WikiSQL。通常问句会明显提示答案类型,TabFact 则没有这样的特定线索。其特殊性有两点:首先,复合陈述只要任一部分错误就为假,必须识别子句或多个问答对及其组合关系,逻辑形式与推理链可能更长;其次,有的事实还依赖语言推断或常识,难以仅靠既定语义形式处理。图 5(p.9)分别用复合党派人数陈述与网球成绩语义说明这些差异。
程序合成与语义解析。 程序或逻辑形式已应用于问答、视觉导航、代码与 SQL 生成。传统语义解析依赖规则和词典,将句子映射到 λ 演算、DCS 等表示;较新的工作探索神经定理证明器、神经图灵机、神经程序员和神经符号机器。TabFact 可用于评价这些模型,但带来三个挑战:二元标签使伪程序尤为严重、奖励不足以唯一约束语义;需要分解陈述并组合较长推理链;还需处理语言推断与释义。
事实核查。 LIAR、PolitiFact、FEVER 等主要使用社交媒体或维基百科文本。AggChecker 以关系数据库为证据,与本研究最接近;我们提供了规模更大的数据集,用于跟踪该方向进展。
6 结论
本文研究了重要而尚未充分探索的半结构化事实验证问题,构建了大规模数据集,并提出分别基于预训练自然语言推断和程序合成的 Table-BERT 与 LPA。未来希望发展能同时进行语言和符号推理的更复杂模型架构。
附录 A 方法所用函数与触发词
图 6—8(pp.14–15)给出 API、输入输出类型、示例和触发词。这里保留函数标识符,翻译其作用。
| 函数 | 输入 | 输出与含义 |
|---|---|---|
| Count | 视图 | 行数 |
| Within / Without | 视图、列名、字符串或数字 | 指定列中是否存在或不存在该值 |
| None | 字符串 | 是否表示无信息,如 None、No、短横线等 |
| Before / After | 两行 | 判断前后顺序;原表输出类型写作 Row,文字描述为真假判断 |
| First / Second / Third / Fourth | 视图、行 | 是否位于相应序位 |
| Average / Sum / Max / Min | 视图、列名 | 对该列求均值、和、最大值、最小值 |
| Argmin / Argmax | 视图、列名 | 返回该列最小值或最大值所在行 |
| Hop | 行、列名 | 返回指定单元格的数字或字符串 |
| Diff / Add | 两个数字 | 差或和 |
| Greater / Less | 两个数字 | 是否大于或小于 |
| Equal / Unequal | 两个数字或字符串 | 是否相等或不等 |
| Filter_eq / greater / less / greater_or_equal / less_or_equal | 视图、列名、数字 | 按比较条件返回子表 |
| All_eq / greater / less / greater_or_equal / less_or_equal | 视图、列名、数字 | 该列全部值是否满足条件 |
| And / Or | 两个布尔值 | 逻辑与、或 |
触发词映射如下:average 触发 average;difference、gap、than、separate 触发 diff;sum、summation、combine、total、add、all、there are 等触发求和或加法;not、no、never、fail、different、outside 等触发否定、不等、不包含等操作;first、top、latest、most 关联首位,last、bottom 等关联末位;比较级词性 RBR/JJR 以及 more、above、after 或 less、below、under 关联大小比较与筛选;all、every、each 关联全称操作;at most 等关联非严格比较;最高级与比较级词性关联 min/max、argmin/argmax;within、one of、among 关联包含;follow、before、precede 等关联顺序;most 关联 most_freq;序数词关联相应序位函数。触发词仅用来剪枝,并不提供完整语义解析。
附录 B 高阶操作
聚合包括求均值、总量等;否定包括“没有获得最高分”“从未超过 5 分”等;最高级包括最高、最低;比较包括 A 比 B 得分更高;序数包括第一、第二年长者;唯一性包括不同国家数、是否有两个不同球员来自同国;全称包括所有列车上午发车、无人超过 25 岁;无高阶操作则包括直接描述某人某场得分、国籍等。正文图 2 的统计分类还单列计数,具体分类应对照原图与附录口径。
附录 C 错误分析
符号方法的瓶颈。 实体链接或函数覆盖不足会导致失败。例如,“某人在 1986 年赢下两盘比赛”不直接提及表格中的“7-5, 6-4”;链接器可能找不到该单元格,即使找到了,也缺少从比分字符串推出“两盘均获胜”的预定义函数。图 9(p.16)展示此例。
Table-BERT 的瓶颈。 即使整张表能输入,模板线性化也会让相关信息被大量无关词隔开。例如判断某球员是否所有比赛都在红土举行,需要跨越长距离关联多处 clay。图 10(p.16)展示这一长依赖。
统计。 作者抽取验证集 200 条只涉及单一语义的样本,按语言推断、单行简单事实、聚合、最高级、计数、比较、否定分类。图 11(p.17)显示:BERT 在语言推断上明显更好,LPA 在这类问题上仅略高于随机;BERT 的横向扫描适于单行事实;LPA 在高阶逻辑,尤其计数与最高级上较强。
附录 D 推理深度
图 12(p.17)统计 LPA 推理步数,主要集中在 4—7 步,作者据此说明任务需要较深的组合推理。该图是程序搜索相关统计,不等于逐条人工确认的最短真实推理深度。
附录 E 是否保留维基百科背景
WikiTableQuestions 标注时提供维基百科标题,WikiSQL 则不提供。作者设计有标题与无标题的标注对比:一张记录网球选手成绩的表,本身可能不包含选手身份信息;没有背景时,句子流畅性和连贯性下降。作者从两种条件各收集 50 条陈述,随机配对交给八位专家盲评,专家普遍认为有标题的陈述更可读。因此标注时保留标题,但明确禁止引入标题以外的无关背景知识,标题仅作为使陈述自然的实体占位。图 13(p.18)给出选手成绩示例。
附录 F 实体链接
通过最长字符串匹配寻找候选实体;多个候选并存时,选取编辑距离最小者。图 14(p.18)示例展示:较短的 John 可以匹配多个人名,而完整姓名匹配更有助于定位正确单元格。
附录 G 候选程序
图 15(p.19)列出“民主党人数多于共和党人数”的多个候选:正确的大于关系、参数反转的小于关系,以及与原句语义不符却可能偶然返回相同标签的逻辑组合。程序和陈述分别经 Transformer 编码,取 [CLS] 表示拼接后送入 MLP,计算匹配概率并排序。
附录 H 标注流程中与实验有关的说明
AMT 界面区分简单陈述与需要跨行理解的复杂陈述,并给出最高级、比较、关系、汇总、释义、合取、否定、包含等示例。复杂陈述最少九个词,应多样,避免模糊或主观描述;可复制表中实体以减少拼写错误。负例改写要求与表格明确矛盾、语句自然、不能仅加 not、不能中立或不可验证、不能凭空引入表外数值。原句严重语法错误、拼写错误或本已不符事实时,填 N/A。八位专家参与任务质量检查。界面截图及示例表格保留在原 PDF pp.20–25。
湘ICP备2026051447号