论文笔记:GRAPPA: GRAMMAR-AUGMENTED PRE-TRAINING FOR TABLE SEMANTIC PARSING

39 篇文章 4 订阅
15 篇文章 12 订阅

论文笔记:GRAPPA: GRAMMAR-AUGMENTED PRE-TRAINING FOR TABLE SEMANTIC PARSING

导语

  • 会议:ICLR 2021
  • 地址:https://arxiv.org/abs/2009.13845

摘要

我们提出了一种用于表语义分析的有效的预训练方法GRAPPA,它可以学习文本和表数据的联合表示中的组合归纳偏见。我们通过同步上下文无关语法(SCFG)在高质量的表上构造合成的Question-SQL对。我们在合成数据上对GRAPPA进行预训练,以便将表语义解析中常见的重要结构属性注入预训练语言模型。为了保持模型表示真实世界数据的能力,我们还在几个现有的表和语言数据集上包括了遮罩语言建模(MLM),以规范我们的预训练过程。我们提出的预训练策略在数据上非常有效。当与一些现有的语义解析器结合使用时,GRAPPA可以在四种流行的全监督和弱监督表语义解析任务上实现最新的结果。这些预先训练过的嵌入程序可以在https://huggingface.co/Salesforce/grappa_large_jnt上下载。

1 简介

尽管预训练语言模型在NLP各个领域中都有广泛的应用,但在解决Text-to-SQL任务时,作者认为当前的预训练语言模型并不足以解决新数据库上的泛化问题。原因如下:
1.当前的预训练模型是使用非结构化文本数据进行预训练,而表格语义解析问题则是明显的结构化文本,因而在解决该类问题时需要进行领域迁移;
2.传统的预训练目标并不考虑数据(问题和SQL语句)之间的组成关系。

在这里插入图片描述
为此作者提出了GRAPPA模型,其主要特点如下:

  1. 使用SCFG语法来人工合成数据。如图所示,对于一个文本到SQL的样例,我们可以通过抽象模式组件(表和字段)、值和SQL操作来创建一个问题-SQL模板。通过在随机选择的表上执行这个模板,我们可以创建大量合成的问题-SQL对。
  2. 使用一个新的text-schema linking 目标来预测每个对的SQL中表列的语法角色,以此鼓励模型识别可以在逻辑形式(即SQL)中用到的schema成分。为了避免在合成数据上过拟合,这里也采用了MLM loss。这样联合训练可以既保留原始自然语言表示的能力,又加入组合偏差。

2 方法

2.1 研究动机

语义解析数据是复合的,因为NL语句通常与一些形式化表示(如逻辑形式和SQL查询)有关。之前的一些工作显示,直接使用数据增强在cross-domain的设置下通常并不会带来性能的显著提升。本文的一个特点是没有直接在增强数据上训练语义解析器,而是首次在预训练中使用合成示例,以便向语言模型注入合成归纳偏差,并表明如果仔细处理过拟合问题,它实际上是有效的。实验显示,所提出方法在四个Text-to-SQL数据集上都有显著提升。

2.2 使用SCFG语法合成数据

所使用的SCFG规则如下表所示:
在这里插入图片描述
对于CFG规则,可以简单的理解为一系列启发式规则。整个序列从ROOT开始,然后按预定义的规则进行扩充,直到所有的Token都变为终止符(即Terminal)。所有的Non-terminal都可以被Terminal替代扩充。

上表左侧展示了一些非终止符示例,比如TABLE、COLUMN等,它们在生成模板时用作占位符,在合成数据时则使用具体的值(也就是终止符)来替换。上表右侧展示了两个生成模板,在数据生成时,只需要将模板中对应位置的非终止符使用具体数据库中的终止符替换即可。

当然,这个表并不是凭空产生的,而是需要人工分析数据集总结得到。上表即在Spider的训练集上进行总结概括,其大致步骤如下:

  1. 首先使用非终止符(Non-terminal)替换SQL语句中的表名、列名、值、操作符等;
  2. 然后选取Spider训练集中出现最高的90个SQL模板;
  3. 对于每个程序模板,随机选择4个对应的自然语言问句,手动替换里面的entity/phrase;来创建自然语言模板;
  4. 最后对齐到SQL生成模板上。

在获取这些模板后,可以同步的生成一些人工合成的Question-SQL pair。其生成步骤如下:首先随机采样一个生成模板,然后将模板中的非终止符(Non-terminal)用其对应的终止符替换得到最终结果。

对于最终填充的终止符的数据来源,作者使用了WikiTables数据集和Spider及WikiSQL中的数据库数据,一共有475k个合成的Question-SQL对。

2.3 与Table相关的表述

正如简介中提到的,GRAPPA保留了MLM的预训练任务,因而需要使用一些人类语言文本。这里作者使用了几个高质量的Table-Text相关的数据集,提取其中的自然语句(不使用任何的标注信息如SQL或Answer)作为下一步的预训练目标。所使用的数据集如下:
在这里插入图片描述

2.4 GRAPPA的预训练

与以往在任务训练中使用数据增强的工作不同,GRAPPA应用于语言模型的预训练。GRAPPA 由 R o B E R T a L A R G E RoBERTa_{LARGE} RoBERTaLARGE初始化,其预训练目标如下:

  1. MLM(Masked Language Model)目标:作者希望在自然语言和表头之间有一种自注意力机制。对自然语言句子和表头进行15%概率的随机mask。
  2. SSP(SQL semantic prediction)目标:添加一个辅助任务来训练列表示。给定一个自然语言语句和表头,预测某个列是否出现在SQL查询中,以及触发了什么操作。然后,将所有SQL序列标签转换为每个列的操作分类标签。举例来说,如图1所示,“locations”列的operation classification label 是"SELECT AND GROUP BY HAVING"。在本实验中,总共有254种operation class。

对于索引为 i的列或表,使用它前面的特殊标记 的编码 x i x_i xi作为它的表示,来预测它的相应操作。
x i x_i xi应用两层前馈网络后输入到后续的GELU激活层和归一化层,表示如下:

在这里插入图片描述
y i y_i yi为获得的最终表示。

3&4 实验(结果)

实验一共有两种不同的setting。

3.1 全监督实验

全监督实验中,模型可以知道gold SQL,即可以得到完整的Question-SQL对。
在这里插入图片描述
在这里插入图片描述

3.2 弱监督语义解析

弱监督条件下,模型只能知道预测的SQL语句的执行结果是否与gold SQL执行结果一致。
在这里插入图片描述
在这里插入图片描述

5 分析

  1. 预训练目标:使用MLM+SSP比单独使用任何一种都有用。
  2. 泛化性能:尽管SCFG是基于SPIDER设计,但也能提高其他数据集的性能。
  3. 预训练时间和数据:相对于之前的TABERT和TAPAS,GRAPPA大幅度减少训练时间。
  4. 预训练与数据增强:数据增强得到的合成数据容易造成过拟合。而预训练则不会。

6 相关工作

7 总结和未来展望

  1. 这项工作依赖于手工编写的语法,这常常会产生不自然的问题;
  2. 通过应用更复杂的数据增强技术,可能会得到进一步的改进。
  3. 通过改变训练前例子的数量来研究这两个目标(MLM和SSP)的相对影响将是有趣的。
  4. 预训练可能会受益于从更具有逻辑性的语法中合成数据,也可能受益于通过更具有逻辑性的语义信号进行监督。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值