关于词语逻辑对齐在语义解析到 SQL 查询中的潜力
摘要
用逻辑形式标注的大规模语义解析数据集推动了监督方法的重大进步。 但更丰富的监督能带来更大的帮助吗? 为了探索细粒度词语级监督的实用性,我们引入了 Squall, 这是一个数据集,它为 WikiTableQuestions 英语问题提供了手动创建的 sql 等价物,以及 sql 与问题片段之间的对齐。 我们的标注为编码器-解码器模型带来了新的训练可能性, 包括以前由于缺乏对齐而无法使用机器翻译方法。 我们提出并测试了两种方法: (1)监督注意;(2) 采用 将输入查询中的引用与表列进行消歧的辅助目标。 在 折交叉验证中, 这些策略通过 执行准确率超过了强大的基线。 Oracle 实验表明 标注的对齐 可以支持高达 的进一步准确率提升。
1 绪论
大规模数据集的可用性,将自然语言话语与逻辑形式配对 (dahl1994expanding; wang+15i; zhong2017seq2sql; yu2018spider, inter alia), 已 使监督语义解析方法取得了显著进展 (jia2016recombination; xiao+16; dong2016language; dong-lapata-2018-coarse, inter alia)。 然而, 仅提供逻辑形式并不能表明 单个词语或短语与逻辑形式符元之间 重要的细粒度关系。 这是不幸的,因为研究人员实际上假设 这种 对齐 信息的缺乏 阻碍了语义解析的进展 (张+19,第 19 页) 80).
我们通过引入 Squall 来解决 这一 问题, 111Squall =“SQL+QU事件对ALigned Lexically”。 这是第一个具有手动词汇到逻辑对齐的大规模语义解析数据集; 我们研究了这种对齐 可能实现的潜在精度提升。 Squall 的起点是 WikiTableQuestions (WTQ; pasupat2015compositional), 包含数据表、关于表的英文问题以及基于表的答案。 我们手动丰富 的 WTQ 培训数据的子集,该子集可转换为 sql, 方法是提供专家标注,其中不仅包括 目标逻辑形式(以 sql 形式),还包括 输入问题符元(例如,“多少”)与其对应的 sql 片段 (例如,COUNT())之间的标记对齐。 图 1 显示了两个 Squall 实例。
这些 新的 数据使 训练 结合手动对齐的编码器-解码器神经模型成为可能。 考虑图 1 中底部的示例: 解码器 可以从了解 ORDER BY LIMIT 1 来自“最高”(排名第一是最好)中获益; 并且编码器应该将“谁”与“运动员”列匹配, 即使这两个 字符串 没有重叠的符元。 我们使用两种 训练 策略来实现 这些想法:
-
1.
监督注意力,它指导 模型在编码和解码期间生成与人类判断相似的注意力权重。 监督注意力已 提高了机器翻译中的对齐和翻译 质量 (liu+16; mi+16), 但仅在语义解析中应用于启发式生成的对齐 (rabinovich17), 因为缺乏手动标注。
-
2.
列预测, 推断数据表中哪个列与问题片段相关。
使用 BERT 特征,我们的模型在 WTQ 测试集上达到了 执行精度, 超过了以前弱监督的最先进水平 (其中弱监督意味着只访问答案,而不访问问题的逻辑形式)。 与对齐效用问题更相关的是, 在 折交叉验证中,我们 额外的 细粒度监督将执行精度提高了 超过仅使用逻辑形式进行监督的模型; 消融研究表明 问题标记和列之间的映射帮助最大。 此外, 我们构建了 oracle 模型,这些模型在测试时可以访问完整的对齐方式 来展示我们数据的未实现 潜力, 看到改进 高达 的绝对逻辑形式精度。
通过标注成本和学习曲线分析, 我们得出结论,词汇对齐对于训练解析器来说是 成本效益高的: 词汇对齐的标注时间不到逻辑形式的一半, 而且我们可以将执行精度提高 百分点 通过仅将训练集中的 逻辑形式对齐。
我们的贡献有三方面: 1) 我们发布了一个高质量的语义解析数据集,其中包含手动标注的逻辑形式; 2) 我们标记了英语问题和相应逻辑形式之间的对齐方式 以提供额外的监督; 3) 我们提出了两种训练策略 利用我们的对齐方式来改进 强大的基础模型。 我们的数据集和代码可在 https://www.github.com/tzshi/squall 上公开获取。
2 任务:基于表格的语义解析
我们的任务是通过语义解析到逻辑形式 (LF)来回答关于结构化表格的问题。 形式上,输入 包含一个关于表格 的问题 , 语义解析器的目标是再现 目标 LF 对于 (因此具有较高的 LF 精度) 或者,在更宽松的设置中,生成 任何查询 LF , 当针对 执行时,会产生 正确的输出 (因此具有较高的 执行精度)。
在 弱监督 设置中,训练示例 仅包含输入-答案对 。 最近的数据集 (zhong2017seq2sql; yu2018spider, inter alia) 提供 足够的逻辑形式,即 训练 对, 从 到 的映射中学习 在 监督 设置中。 不出所料,监督模型 比弱监督模型更准确。 但是,训练监督模型仍然具有挑战性: 和 都是结构化的, 因此模型通常在多个步骤中生成 , 但训练数据无法揭示 的哪些部分 生成 的哪些部分 以及它们如何组合。
正如添加监督训练比弱监督提高了精度一样, 我们探索是否即使 更细粒度 的监督也能进一步帮助。 由于没有 大规模数据集 提供细粒度监督 存在(据我们所知), 我们介绍了 Squall。
3 Squall:我们的新数据集
Squall 基于WikiTableQuestions (WTQ;pasupat2015compositional)。 WTQ 是一个大规模问答数据集,其中包含 半结构化维基百科表上多样化且具有挑战性的众包问答对。 大多数问题不仅仅是简单的表格单元格查找,而且具有高度的组合性,这一事实促使我们研究问题和逻辑形式之间的词汇映射。 我们手动生成 WTQ 查询的 sql 等效项,并将问题标记与相应的 sql 查询片段对齐。222 sql 是一种广泛采用的形式主义。 其他形式包括 LambdaDCS (pasupat2015compositional),已在 WTQ 上使用。 sql 和 LambdaDCS 可以表达大致相同百分比的查询:(我们的发现)与 (对 的分析) -问题样本由pasupat-liang2016提供)。 我们将 sql 与其他形式之间的自动转换留给未来的工作,反之亦然。 我们将其他文本到 sql 数据集的词汇对齐和跨数据集模型泛化 (alane2020explor) 留给未来的工作。
3.1 数据标注
我们分三个阶段对WTQ的训练折叠进行了注释:数据库构建、sql查询注释和对齐。 两位熟悉sql的专家注释者各自注释了一半数据集,然后检查彼此的注释并通过讨论解决所有冲突。 请参阅 LABEL:sec:app-anno 了解注释指南。
数据库建设
表编码半结构化信息。 每个表格列通常包含相同类型的数据:例如,文本、数字、日期等,这在关系型数据库中很常见。 在预处理 WTQ 表格时,我们考虑了基本数据类型(例如,原始文本、数字)和复合类型(例如,列表、二元组),并将列名加上其推断出的数据类型后缀(例如,_number 在 Figure 1 中)。 为了标注一致性,所有表格都被赋予相同的名称 w,并且列在数据库模式中被赋予了顺序名称 c1、c2…,但我们保留了原始表格标题用于特征提取。 我们还为每个表格添加了一个特殊的列 id,用于表示其行的线性顺序。 详情请参见 LABEL:sec:app-database。
将查询转换为 sql
对于 WTQ 训练集中每个问题,我们手动创建了其相应的 sql 查询,在有多种可能性时选择最短的,例如,我们写了“SELECT MAX(c1) FROM w”而不是“SELECT c1 FROM w ORDER BY c1 DESC LIMIT 1”。 唯一的例外是,我们选择了不太依赖于表结构的版本,即使它们的复杂度更高。 例如,如果表格按日期 (c1) 对游戏 (c2) 进行预排序,并且问题是“A 之后下一场游戏是什么”,我们写了“SELECT c2 FROM w WHERE c1 > (SELECT c1 FROM w WHERE c2 = A) ORDER BY c1 LIMIT 1”,而不是“SELECT c2 FROM w WHERE id = (SELECT id FROM w WHERE c2 = A) + 1”。 在跨越 个表格的 个问题中,Squall 为 个问题提供了 sql 查询,即 。 剩下的 包含答案不确定的问题(例如,“给我一个……的例子”)、需要额外预处理的问题(例如,在基于文本的详细信息列中查找日期)以及 sql 查询表达能力不足的情况(例如,“哪个球队连续赢球最多?”)。
对齐标注
how long | MAX() | |
---|---|---|
Frequently aligned to | col | the last |
MAX(col)-MIN(col) | the most | |
col-col | the largest | |
COUNT(*) | the highest | |
COUNT(col) | the first |
给定一个词元的问答/LF 对,标注者从两侧选择并对齐相应的片段。 选定的符元不需要连续,但它们必须是无法进一步分解的单元。 对于Figure 1中的示例,有三个对齐对,其中非连续的“ORDER BY LIMIT 1”被视为一个原子单元,并与输入中的“最高”对齐。 此外,两边并不需要对齐所有符元。 例如,sql 关键字 SELECT、FROM 和问题符元“what”、“is”等大多没有对齐。 Table 1 显示,相同的问句短语与一系列的 sql 表达式对齐,反之亦然。 总体而言, 的 问题符元 被 对齐。 比较级和最高级问题符元是最常对齐的,而许多虚词没有对齐;有关对齐和未对齐符元词性的分布,请参见 LABEL:sec:app-pos-tag。 除了基本结构“SELECT FROM w WHERE ”中的四个关键字外, 的 sql 关键字被对齐。 其余未对齐的 sql 符元包括 d=(对齐率 为 )、AND () 和列名 ()。 前两种情况出现 是因为自然语言中经常隐含着相等性检查和过滤条件的合取。
标注者间一致性和标注成本
两位标注者的 初始sql标注一致性 在试点试验中 3 33 在试点研究中,标注者 独立地对相同表格上的问题进行标注。 我们报告了 一个标注者 接受另一个标注者标签的案例的百分比。 为, 经过讨论后,他们在个数据实例上达成一致; 同样,对齐一致性从上升到。 就标注速度而言, 平均sql查询需要秒 来生成 ,并需要额外的秒来用对齐进行丰富: 用对齐丰富来标注个实例的成本与 仅用逻辑形式来标注个实例的成本相当。
3.2 后处理
sql 查询中的字面值,例如 Figure 1 中的“25,000”和 LABEL:fig:case 中的“star one”,通常直接从输入问题中复制。 因此,我们调整了 WikiSQL 的 zhong2017seq2sql 任务设置, 其中所有字面值都对应于输入问题中的跨度。 我们使用我们的对齐生成黄金选择跨度, 过滤掉 字面值无法通过模糊匹配从黄金跨度中重建的实例。 后处理后,Squall 包含 表格-问题-答案三元组 以及逻辑形式和词汇对齐标注。
4 (最先进) 4 44 在附录 §LABEL:sec:app-sota 中,我们展示了在 Squall 上, 我们的基础模型与 Spider 数据集 yu2018spider 上基准测试的最先进系统 alane2020explor 相当。 基础模型:带有注意和复制机制的 Seq2seq
最近最先进的文本到 sql 模型扩展了序列到序列 (seq2seq) 框架, 使用注意力和复制机制 (zhong2017seq2sql; dong2016language; dong-lapata-2018-coarse; alane2020explor, inter alia)。 我们采用这种强大的神经范式作为我们的基础模型。 seq2seq 模型一次生成一个输出符元, 通过 概率分布 以输入序列表示和部分生成的输出序列为条件: 其中 和 是输入和输出序列的特征表示, <i 表示前缀。 的最后一个符元必须是特殊的 <STOP> 符元, 用于终止输出生成。 每个符元的概率分布通过长短期记忆网络 (LSTM,hochreiter-schmidhuber97) 和多层感知器 (MLP) 建模:
(1) | ||||
(2) |
训练目标是黄金 的负对数似然, 为每个时间步定义为
问题和表格编码
输入 包含长度为 的问题 和一个具有 列的表格 。 输入问题通过一个双向 LSTM (bi-LSTM) 编码器表示,该编码器总结了序列中两个方向的信息。 bi-LSTM 的输入是词嵌入、字符级 bi-LSTM 向量、词性嵌入和命名实体类型嵌入的串联。 我们将与 相关的特征向量表示为 。 对于列名,表示 串联了两个以相反方向运行的 LSTM 的最终隐藏状态,这些 LSTM 以串联的词嵌入、字符编码和列数据类型嵌入作为输入。 我们还使用预训练的 BERT 特征提取器 (devlin+19) 进行实验,其中我们将 BERT 模型与问题和列作为以特殊 [SEP] 标记分隔的单个序列一起馈送,并将问题词的最终层表示和每一列的最后一个标记的表示作为它们的表示。
编码中的注意力
为了增强问题和表格模式之间的特征交互,对于每个问题词表示 ,我们使用注意力机制来确定其相关的列并计算线性加权上下文向量 ,如下所示:
(3) | ||||
(4) |
然后,我们通过将问题表示 和上下文表示 串联作为输入来运行另一个 bi-LSTM,以推导出每个问题词 的列敏感表示 。 我们应用类似的过程来获取每个列的列表示 。
解码中的注意力
在解码过程中,为了允许 LSTM 从输入中捕获长距离依赖关系,我们在 Eq. (1) 的循环特征定义中添加了基于注意力的特征:
(5) | ||||
(6) |
sql 标记预测与复制机制
由于每个输出标记可以是 sql 关键字、列名或文字值,因此我们将 Eq. (2) 中定义的概率分解为两个组成部分:一个决定 的类型 :
另一个根据类型 预测标记。 对于标记类型 KEY,我们使用另一个 MLP 预测关键字标记:
对于 COL 和 STR 标记,模型通过复制机制直接从输入列名 或问题 中选择。 我们定义了一个具有 softmax 归一化双线性分数的概率分布:
同样,我们定义了来自 的字面字符串复制, 使用另一个双线性评分矩阵 。
5 在模型训练中使用对齐
§4 中的模型设计包括编码器和解码器内部和跨编码器和解码器的许多潜在交互。 我们现在将描述 我们的人工对齐如何能够对以前潜在的交互进行直接监督。 我们的对齐可以被用作 必要的 注意力权重 (§5.1) 的监督。 在一个 预言实验 中,我们 用人工对齐替换诱导注意力, 逻辑形式准确性的跳跃表明 对齐是有价值的,如果模型能够复制它们 (§5.2)。 此外,对齐启用 一个列预测辅助任务 (§5.3)。
我们完整模型的损失函数 是 seq2seq 模型、监督注意力和列预测的损失项的线性组合:
其中我们定义了 和 在下面。
5.1 监督注意力
我们注释的词汇对齐类似于我们的基础模型的注意力机制。 在编码阶段,问题标记和相关列对齐 (例如,“谁” 列“运动员”) 这应该会引起 问题到列和列到问题注意力的更高权重 (等式 (3) 和等式 (4)); 类似地,对于解码, 注释反映了 哪些问题词与当前输出标记最相关。 受机器翻译中监督注意力的改进启发 (liu+16; mi+16), 我们 训练 基础模型的注意力机制 以 最小化欧氏距离 6 66 参见 LABEL:sec:app-abl-loss 以了解使用其他距离进行的实验。 人工注释的对齐向量 和模型生成的注意力向量 之间的距离:
当标注与单个元素对齐时,向量 是一个独热向量, 或 表示子集中所有元素的均匀分布, 在标注与多个元素对齐的情况下。
5.2 使用手动对齐进行 Oracle 实验
Attention type | (Dev) | |
---|---|---|
Induced attention | ||
Oracle attention | ||
Encoder only | ||
Decoder only | ||
Encoder + decoder |
为了展示对齐标注在具有监督注意力的模型中的潜力, 我们首先假设一个模型,它可以完美地再现我们在基础模型中的标注。 在训练和推理期间, 我们用 真实的对齐 向量代替编码器和/或解码器的注意力权重。 Table 2 显示了由此产生的逻辑形式准确率。 访问 Oracle 对齐可以提供高达 的绝对更高的准确率,超过基础模型。 这种巨大的差距表明,使用我们的词汇对齐训练模型具有巨大的潜力。
5.3 列预测
wang-etal-2019-learning 展示了在弱监督环境中推断符元-列对应关系的重要性; Squall 为 一个直接预测每个问题符元 对应的列 的辅助任务提供了完整的监督。 我们将这个辅助预测建模为:
对于与列匹配的符元的对应损失 , 我们使用交叉熵。
精确匹配特征:一种无监督的替代方案
基于启发式的, 尽管覆盖率较低,但手动 对齐的替代方案是使用 问题中对列名的提及。 因此,我们在基线模型中使用自动生成的精确匹配特征,以供我们在实验中进行比较。 对于问题编码器,我们包含两个来自二进制精确匹配特征的嵌入: 指示符,即该符元是否出现在 (1) 任何列标题中,以及 (2) 任何表格单元格中。 同样,对于列编码器,我们还包含一个精确匹配特征,即列名称是否出现在问题中。
6 实验
Model | (Test) |
---|---|
Prior work (all necessarily are weakly supervised) | |
Single model | – |
Single model (w/ bert) | |
Ensemble | – |
This paper (strongly supervised for the first time) | |
Single model (align) | |
Single model (align w/ bert) | |
Ensemble (align) | |
Ensemble (align w/ bert) |
设置
我们随机洗牌 Squall 中的表格,并将其分为五个部分。 对于每个设置,我们报告平均逻辑形式准确率 (输出 LF 与目标 LF 完全匹配) 和 执行准确率 (输出 LF 可能不匹配目标 LF,但其执行结果与黄金标准答案一致) 以及五个模型的标准差, 每个模型都使用四个部分作为其训练集,另一个部分作为其开发集。 我们将来自 §4 的基础模型表示为 seq2seq,并将我们使用 §5 中提出的两种训练策略训练的模型表示为 align。 我们比较的主要基线模型,seq2seq+, 是通过自动派生的精确匹配特征 (§5.3) 增强了的基础模型。 请参见附录 LABEL:sec:app-impl 以了解模型实现的详细信息。
WTQ 测试结果
Table 3 展示了 WTQ 测试集 的 align 与先前模型的比较。 不出所料, Squall 的监督使 我们的模型能够超越弱监督模型。 使用 BERT 特征提取器训练的单个模型在先前最先进水平上提高了 。 然而,我们主要的科学兴趣并非这些数字本身, 而是额外的词汇监督带来的益处。
Model | Dev | Test | |
---|---|---|---|
seq2seq+ | |||
align | |||
seq2seq+ w/ bert | |||
align w/ bert |
对齐标注的效果
为了检验词汇对齐作为一种更精细的监督类型的效用, 我们将在 Table 4 中将 align 与 seq2seq+ 进行比较。 两者都能够访问逻辑形式监督, 但 align 在训练过程中还使用了词汇对齐。 align 使用 BERT 将 seq2seq 提高了 ,不使用 BERT 则提高了 , 表明 词汇对齐标注比 自动推导的精确匹配列引用特征更有效。 7 77 测试集准确率低于开发集, 因为 WTQ 测试集包含 sql 无法回答的问题。
不同策略的效果
Table 5 对比了模型变体。 我们将每个单独的训练策略添加到基线 seq2seq+ 模型中, 并从 align 模型中去除组成部分。 与 seq2seq+ 相比,每个组成部分都有助于提高准确率。 这些效果从使用列预测的 到使用监督编码器注意力的 不等。 监督编码器注意力是最有效的策略: 包括它会带来最大的收益,而去除它则会导致最大的下降。 精确匹配列引用特征对于基线模型至关重要: seq2seq 如果没有这些特征, 将 更低。 尽管如此,监督编码器注意力和列预测在精确匹配特征之上仍然有效。 然而,align 的准确率仍然远低于oracle模型;我们希望 Squall 能够激发未来的工作 去 更好地利用其丰富的监督。
Component | Dev | |
---|---|---|
seq2seq | ||
seq2seq+ | ||
+ Supervised decoder attn. | ||
+ Supervised encoder attn. | ||
+ Column prediction | ||
align | ||
- Supervised decoder attn. | ||
- Supervised encoder attn. | ||
- Column prediction | ||
- Exact-match features | ||
Oracle attention | – | |