在当前高速发展的互联网时代,各类数据不断涌现,其中我们比较常用的就是表格数据。作为一般的结构化数据,我们可以根据需要设计SQL查询语句来获取表中的知识,但往往需要很高的设计和学习成本。这时候Text-to-SQL的解析任务就显得尤为重要,根据对话场景的不同,也分为单轮Text-to-SQL解析和多轮Text-to-SQL解析。这篇论文主要研究的是更难和更接近真实应用的多轮Text-to-SQL解析任务。近日,阿里巴巴达摩院和中国科学院深圳先进技术研究院提出了一种面向SQL查询语句的预训练模型STAR,用于多轮Text-to-SQL语义分析。截至目前,STAR已经连续10个月占据SParC和CoSQL两个榜单的第一名。该研究论文已被自然语言处理领域的国际会议EMNLP2022Findings接收。论文地址:https://arxiv.org/abs/2210.11888代码地址:https://github.com/AlibabaResearch/DAMO-ConvAI/tree/main/starSTARisanovelandeffectivemulti-rounddialoguetableKnowledgepre-训练语言模型,主要使用两个预训练目标对多轮对话中的复杂上下文语义跟踪和数据库模式状态跟踪进行建模,目的是增强自然语言查询和数据库模式在对话流中的编码表示。该研究在会话语义分析的权威列表SParC和CoSQL上进行了评估。在下游模型公平对比下,STAR相比之前最好的多圆桌预训练模型SCoRe,在SParC数据集上QM/IM提升了4.6%/3.3%,QM/IM提升了7.4CoSQL数据集上的%/8.5%。特别是CoSQL比SParC数据集有更多的上下文变化,这验证了本研究提出的预训练任务的有效性。背景介绍为了让不熟悉SQL语法的用户也能通过自然语言对话与数据库交互,多轮Text-to-SQL解析任务应运而生。将查询中的自然语言问题转换为可执行的SQL查询。预训练模型近年来在NLP的各项任务中大放异彩,但由于表格与自然语言的内在差异,普通的预训练语言模型(如BERT、RoBERTa)无法在此任务上达到最优性能。性能,因此预训练表格模型(TaLM)[1-5]应运而生。通常,预训练表格模型(TaLM)需要处理两个核心问题,包括如何对上下文查询(引用、意图转移)之间的复杂依赖关系进行建模以及如何有效利用历史生成的SQL结果。针对以上两个核心问题,现有的预训练表格模型存在以下缺陷:图1.上下文相关的多轮Text-to-SQL解析示例。首先,现有的表预训练模型仅探索自然语言查询的上下文信息,而没有考虑历史SQL查询语句中包含的交互状态信息,而这些交互状态信息往往可以更准确、更紧凑地概括用户意图。因此,对历史SQL信息进行建模和跟踪,可以更好地捕捉到本轮查询的意图,从而更准确地生成相应的SQL查询语句。如图1所示,由于表名“Compuses”在第一轮SQL查询中被提及,很有可能在第二轮SQL查询中再次选择该表,因此跟踪表名尤为重要表名“Compuses”的状态很重要。其次,由于用户可能会忽略会话历史中提到的实体或引入一些引用,导致本轮会话信息丢失,多轮Text-to-SQL解析任务需要对上下文信息进行有效建模,以便更好地解析当前的自然语言对话。如图1所示,第二轮对话省略了第一轮对话中提到的“2000年的校园”。然而,现有的预训练表格模型大多不考虑上下文信息,而是分别对每一轮自然语言对话进行建模。尽管SCoRe[1]通过预测相邻两轮对话之间的上下文切换标签来对上下文切换信息进行建模,但它忽略了更复杂的上下文信息,并且无法跟踪远距离对话之间的依赖信息。例如,在图1中,由于第二轮和第三轮对话之间的上下文切换,SCoRe无法捕获第一轮和第四轮对话之间的长距离依赖信息。本研究受多轮对话中对话状态跟踪任务的启发,提出模式状态跟踪预训练目标来跟踪上下文SQL的模式状态;针对多轮对话中问题之间的复杂语义依赖问题,本研究提出了一种对话依赖跟踪方法来捕获多轮对话之间的复杂语义依赖,并提出了一种基于权重的对比学习方法来更好地建模对话之间的正反关系。问题定义本研究首先给出了多轮Text-to-SQL解析任务中涉及的符号和问题定义。表示T轮自然语言查询,以及多轮查询的Text-to-SQL对话交互,其中表示第i轮自然语言问题,每轮自然语言对话包含token。另外还有一个交互式数据库s,里面有N张表,所有的表有m个表名和列名,代表数据库schema中的第i个表名或列名。假设本轮为第t轮,Text-to-SQL解析任务的目的是根据本轮自然语言查询、历史查询、数据库schema,生成本轮自然语言查询对应的SQLs和上一轮预测的SQL查询语句Checkforphrase。方法描述如图2所示。本研究提出基于SQL引导的多圆表预训练框架,充分利用历史SQL的结构化信息丰富对话表示,进而更有效地对复杂上下文进行建模信息。.图2.STAR的模型框架。具体来说,本研究提出了基于模式状态跟踪和对话依赖跟踪的表格预训练目标,分别跟踪多轮交互中SQL查询语句和自然语言问题的意图。(1)在多轮对话情况下,当前对话的SQL查询依赖于上下文SQL信息,因此受多轮对话中对话状态跟踪任务的启发,本研究提出了一种模式状态跟踪(SchemaStateTracking,SST)的表格预训练目标,它以自我监督的方式跟踪上下文相关的SQL查询语句的模式状态(或用户请求)。(2)针对多轮对话中自然语言问题之间的复杂语义依赖,提出了基于话语依赖跟踪(UDT)的表格预训练目标,并采用基于权重的比较学习方法,学习更好的特征表示为自然语言查询。下面详细介绍了两个表格预训练目标。基于模式状态跟踪的表预训练目标本研究提出了一种基于模式状态跟踪的表预训练目标,它以自我监督的方式跟踪上下文敏感的SQL查询语句的模式状态(或用户请求),具有预测模式槽值的目的。具体来说,该研究以模式状态的形式跟踪Text-to-SQL会话的交互状态,其中槽是数据库模式(即所有表的列名),对应的槽值是SQL关键字。以图3中的SQL查询为例,模式槽“[car_data]”的值是SQL关键字“[SELECT]”。首先,研究将第t-1轮预测的SQL查询语句转换为一组模式状态的形式。由于schemastateslots是数据库中所有表的列名,那些没有出现在SQL查询语句对应的schemastate中的值被设置为[NONE]。如图3所示,该研究使用m个模式状态来表示SQL查询语句,其中代表第i个模式状态的槽表示模式状态的值。对于第t轮,模式状态跟踪的目标是在给定所有历史自然语言问题、当前问题和上一轮SQL查询语句的模式状态值的情况下,预测第t轮SQL查询语句的每个模式状态槽。也就是说,在第t轮,模式状态跟踪预训练目标的输入是通过应用注意力层获得的表示,因为每个模式状态包含多个单词。具体来说,给定输出上下文表示(l是的起始下标)。对于每个模式状态,模式状态的注意力感知表示可以计算为:然后预测当前问题的模式状态:最后,跟踪模式状态的预训练损失函数可以定义为:-基于对话依赖跟踪的训练目标本研究提出了话语依赖跟踪的预训练目标,利用基于权重的对比学习方法来捕获每个Text-to-SQL话语中自然语言问题之间的复杂语义依赖。基于权重的对比学习的一个关键挑战是如何以自我监督的方式构建适当的正面和负面标签,并且可以通过从不同会话中选择自然语言问题来直观地构建负面对。然而,构建正向问题对并非易事,因为当前问题可能与那些经历过话题转移的历史问题无关,例如图1中的第二个和第三个话语。因此,本研究将自然语言问题视为与正对相同的会话并为它们分配不同的相似性分数。SQL是一种高度结构化的用户话语指令,因此通过衡量当前SQL与历史SQL的相似度,可以获得自然语言问题的语义依赖伪标签,从而获得不同句子结构的相似度分数,从而指导上下文构建。模具。本研究提出了一种从语义和结构两个角度衡量SQL相似度的方法。如图3所示:图3.计算SQL语句相似度的两种方法。基于语义的SQL相似度计算本研究通过计算两个SQL查询语句对应的模式状态相似度来衡量两个SQL查询语句之间的语义相似度。具体来说,如图3所示,该方法会分别获取两条SQL查询语句的模式状态,和。然后,该研究采用Jaccard相似度来计算它们之间的语义相似度:非重复模式状态的数量,其中表示的值和对应的模式状态不是[NONE]。基于结构的SQL相似度计算为了利用SQL查询语句的树形结构,本研究首先将每个SQL查询解析为一个SQL树,如图3所示。给定SQLquery和sum两个SQL树的总和,本研究采用Weisfeiler-Lehman算法计算结构相似度得分,公式如下:一般来说,本研究定义两个SQL查询语句总和的相似度得分如下:Weight-BasedContrastiveLoss获得SQL相似度后,本研究使用加权对比学习来使语义相似的自然语言问题的表示在对话中更接近,并将语义不同的自然语言问题的表示推得更远。具体来说,首先,该研究利用注意力机制来学习输入表示;然后,研究最小化加权对比损失函数以优化整体网络;最后,为了学习基于上下文的自然语言查询和数据库模式表示,该研究还采用了基于掩码语义建模的预训练目标,损失函数记为。基于以上三个训练目标,本研究定义了一个基于同方差性的联合损失函数:其中,是一个可训练参数。实验效果数据集本研究在两个权威会话语义解析数据集SParC和CoSQL上验证了STAR模型的有效性。其中,SParC是跨域多轮Text-to-SQL解析数据集,包含约4300多轮交互和12000多个自然语言问题-SQL查询语句对;CoSQL是一个跨领域的会话式Text-to-SQLto-SQL解析数据集,包含约3,000个对话交互和超过10,000个自然语言问题-SQL查询语句对。与SParC相比,CoSQL的对话上下文语义更加相关,SQL查询语句的语法更加复杂。基准模型在基准模型方面,该研究比较了以下方法:(1)GAZP[6],它通过结合前向语义解析模型和后向对话生成模型来合成自然语言对话-SQL查询语句对的训练数据,最后,选择具有循环一致性的数据来??拟合前向语义解析模型。(2)EditSQL[7],考虑交互历史信息,通过预测编辑前时刻的SQL查询语句,提高本轮对话的SQL生成质量。(3)IGSQL[8],提出了一种数据库模式交互式图编码模型,利用数据库模式的历史信息来捕捉自然语言输入的历史信息,并在解码阶段引入门控机制。(4)IST-SQL[9]受对话状态跟踪任务的启发,定义了模式状态和SQL状态两种交互状态,并根据每轮最后预测的SQL查询语句更新状态。(5)R2SQL[10]提出了一个动态图框架来模拟对话流中对话和数据库模式之间的复杂交互,并通过动态内存衰减机制丰富对话和数据库模式的上下文表示。(6)PICARD[11]提出了一种约束语言模型自回归解码模型的增量语义分析。在每个解码步骤中,通过约束解码结果的可接受性来找到合法的输出序列。(7)DELTA[12],首先使用对话重写模型解决对话上下文的完整性问题,然后将完整的对话输入到单轮Text-to-SQL语义分析模型中,得到最终的SQL查询语句。(8)HIE-SQL[13],从多模态的角度出发,将自然语言和SQL作为两种模态,探索所有历史对话与之前预测的SQL查询语句之间的上下文依赖信息,提出了一种双模态预训练模型设计了对话和SQL查询之间的模式链接图。整体实验结果如图4所示,从实验结果可以看出,STAR模型对SParC和CoSQL两个数据集的效果远优于其他对比方法。在预训练模型对比方面,STAR模型远优于其他预训练模型(如BERT、RoBERTa、GRAPPA、SCoRe)。在CoSQLdev数据集上,与SCoRE模型相比,QM得分提升了7.4%,IM得分提升了7.5%。.在下游Text-to-SQL模型对比方面,基于STAR作为预训练模型的LGESQL模型远比下游以其他预训练语言模型为基础的方法更有效,比如性能最好的基于GRAPPA的HIE-SQL模型。图4.在SParC和CoSQL数据集上的实验结果Ablation实验结果本文还补充了完整的ablation实验,以说明STAR模型中每个模块的有效性。消融实验结果如图5所示,当去掉SST或UDT预训练目标后,效果会明显下降,而结合所有预训练目标的实验结果在所有数据集上都达到了最好的效果,这表明SST和UDT的有效性。此外,本研究对UDT中的两种SQL相似度计算方法进行了进一步的实验。从图6可以看出,两种SQL相似度计算方法都可以提高STAR模型的效果,组合效果最好。图5.预训练目标的消融实验结果。图6.SQL相似度计算方法的消融实验结果。不同难度样本的模型效果如图7所示。从不同难度样本在SParC和CoSQL数据集上的实验结果可以看出,STAR模型对各种难度样本的预测效果远优于其他比较方法。即使在最困难的超硬样品上,效果也很显着。图7.SParC和CoSQL数据集上不同难度样本的实验结果。不同轮次样本的模型效果如图8所示。从不同轮次样本在SParC和CoSQL数据集上的实验结果可以看出,随着对话轮次的增加,基准模型的QM指标下降急剧地,而STAR模型即使在第三轮和第四轮也表现出更稳定的表现。这表明STAR模型可以更好地跟踪和探索对话历史中的交互状态,帮助模型更好地解析当前对话。图8.不同轮次样本在SParC和CoSQL数据集上的实验结果。实例分析为了评估STAR模型的实际效果,本研究从CoSQL验证集中选取了两个样本,对比了图9中SCoRe模型和STAR模型生成的SQL查询语句。从第一个例子开始,我们可以看到,STAR模型可以很好的利用历史SQL的schema状态信息(例如[car_names.Model]),从而正确生成第三轮对话的SQL查询语句,而SCoRe模型无法Track这个模式状态信息。在第二个例子中,STAR模型有效地跟踪了第一轮和第四轮话语之间的长期对话依赖关系,并通过跟踪和引用第二轮SQL关键字[SELECTCOUNT(*)]中的“数量”信息在循环SQL查询语句中正确生成。然而,SCoRe模型无法跟踪这种长期依赖关系,并且会受到第三轮话语的干扰而生成错误的SQL查询语句。图9.示例分析。ModelScope模型开源社区本文在CoSQL数据集上训练的模型已经集成到ModelScope模型开源社区。读者可以直接在notebook中选择V100GPU环境,使用demo模型通过简单的pipeline进行多轮Text-to-SQL语义分析任务。总结在本文中,研究团队提出了一种新颖有效的多轮表格知识预训练模型(STAR模型)。针对多轮Text-to-SQL语义分析任务,STAR模型提出基于模式状态跟踪和对话依赖跟踪的表预训练目标,分别跟踪多轮交互中SQL查询语句和自然语言问题的意图。STAR模型在两个权威的多轮语义分析榜单中都取得了非常好的成绩,连续10个月占据榜单第一。最后,欢迎对中国科学院深圳先进技术研究院SIAT-NLP课题组感兴趣的同学申请博士后/博士/硕士/实习岗位。请将简历发送至min.yang@siat.ac.cn。
