持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第31天,点击查看活动详情
导语
STAR是目前CoSQL排行榜上的SOTA模型,该模型从改进预训练角度出发,弥补了之前SCORE()预训练模型的一些不足之处,在性能上有了极大提升。
- 会议:EMNLP 2022
- 链接:arxiv.org/abs/2210.11…
1 简介
由于数据库中存储的表格数据和一般PLM预训练时使用的纯文本内容存在分布上的差异,导致通用的PLM(如BERT、RoBERTa)在Text-to-SQL任务上的表现总是次优的,为了解决这个问题,过去的很多工作尝试设计定制化的表格语言模型tailored tabular language models (TaLMs),如Score、TaBERT、Grappa、STRUG等。
尽管这些工作取得了比通用PLM更好的效果,然而也面临着两个主要问题:
- 现有的TaLMs,仅考虑问题之间的联系而很少考虑上下文中SQL语句状态之间的联系;
- 现有的工作很少能够处理复杂的上下文切换,如下图所示,在轮次2和轮次3之间产生了语义的切换。
尽管如Score这个模型考虑了turn Switch,然而它对更远的长距离影响并未考虑(如Turn 1 和 Turn 4)。
为此,本文提出了两种新的预训练目标函数,
- schema state tracking (SST):以模式状态的形式跟踪SQL查询,它预测当前SQL查询的每个模式槽的值(一个SQL关键字);
- utterance dependency tracking (UDT):捕捉顺序NL问题的复杂语义依赖性,提出了两个新的相似度函数(SQL语义相似度和SQL结构相似度),综合构建了合适的正反两种NL问题对。
2 问题定义
即多轮Text-to-SQL任务的定义:在输入当前轮次的问句和历史上下文问句的前提下,生成对应于该轮次的SQL语句。而STAR在预训练时需要加入上一轮次的SQL预测到输入中,这些输入经过Transformer层后的
3 预训练目标
3.1 Schema State Tracking
如图2右边所示,本文受TOD任务中State Tracking任务的启发,这里进行schema state tracking的操作,格式即:,SST任务的输入为:
其中,是是前t轮次所有的用户问句,(s, v)则是schema - 状态的pair。由于(schema,状态)pair包含多个单词,所以需要使用attentive pooling的方式进行聚合,即
最终的SST loss定义为:
3.2 Utterance Dependency Tracking
本文提出了一个话语依赖跟踪(UDT)目标,以捕获每个文本到sql对话中顺序NL问题的复杂语义依赖。UDT背后的一个关键挑战是如何通过自我监督的方式构建适当的积极和消极标签。这里作者首先定义了两个SQL的相似度函数。
SQL Semantic Similarity
SQL语义相似度由Jaccard相似度所定义:
SQL Structure Similarity
SQL结构相似度则是通过将SQL语句转换为树结构后使用WL_subtree_kernel来进行度量:
最终的相似度则是由二者组合而成:
最后,作者使用Weighted Contrastive Loss定义最终的UDT任务的loss:
3.3 Masked Language Modeling
MLM任务与BERT类似,以15%的概率对utterances token和schema token进行遮盖。
3.4 联合训练
由于loss来自于三方面,所以如何组合loss也是一个问题,这里作者使用基于同方差不确定性的联合损失函数,其定义为:
其中σ 1, σ 2, σ 3表示模型的观测噪声参数,捕捉输出中有多少噪声。
4 预训练的数据集构建
定义完预训练目标函数后,作者介绍了如何构建预训练数据集。总体来说,还是通过模板来创建的,总共合成了480K条数据。
5 实验
实验结果如下:
6 相关工作
略
7 总结
本文提出了STAR,一种预训练的TaLM,它可以联合学习用户话语和表模式表示,用于上下文相关的文本到sql对话。STAR包含两个新的训练前目标(模式状态跟踪和话语依赖跟踪),分别探索每个文本到SQL对话中NL话语和SQL查询的复杂上下文交互。本文构建了一个不同的大型上下文依赖文本到SQL对话语料库,对STAR进行预训练。实验表明,STAR在SPARC和COSQL上取得了最新的性能。