表格推理论文中文阅读资料4 篇译文 · 方法与实验附录 · 证据评析

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)的中文步骤如下:

  1. 初始化四类缓存、结果集合和空程序轨迹,将陈述中链接到的数字、字符串加入缓存,将原表加入 V。
  2. 队列存储“程序轨迹+四类缓存”的中间状态。根据触发词确定可用函数集合。
  3. 在最大搜索步数以内,遍历队列状态与候选函数;当函数所需类型的参数在缓存中齐备时,取出参数、执行函数、追加程序轨迹。
  4. 若返回布尔值,且相关输入已被完全消耗,则将程序及其结果加入候选集合;否则把布尔值及更新后的状态放回队列,继续组合。
  5. 若返回数字、字符串或视图,则把结果放入相应缓存继续搜索;不满足终止和消耗条件的路径被舍弃。
  6. 返回表格、陈述与候选程序集合。

译注:原伪代码中字符串缓存有 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号