我正在参与「启航计划」

前言

本文为我之前在CSDN平台上的一篇博客记录。原链接为:blog.csdn.net/u011426236/…

导语

  • 会议:Arxiv
  • 地址:arxiv.org/abs/2112.08…

摘要

对话形式的Text-to-SQL旨在将多次序自然言语查询转换为相应的SQL标明。多轮Text-to-SQL中最棘手的问题之一是对多次序查询的语义建模和搜集当时SQL查询所需的恰当信息。本文标明,经过添加每个次序的语义改动和对整个上下文的总结来显式建模,能够进步多轮Text-to-SQL使命上的功能。特别地,咱们在次序和对话粒度上提出了对话建模使命。这两个使命仅仅辅佐练习使命,以协助进行多次序对言语义剖析。咱们进行了实证研讨,并在大规模敞开范畴的Text-to-SQL数据集上取得了最新的成果。成果标明,该机制明显进步了多次序语义剖析的功能。

关键

conversational text-to-sql, human-computer interaction, computational paralinguistics

1 简介

语义解析是将自然言语查询映射为相应的机器可执行逻辑形式的使命。Text-to-SQL作为语义解析最盛行的分支之一,减轻了实际用户学习查询背面技能的负担,在自然言语处理范畴引起了很多的重视。现有的作业首要会集在将单个句子转换为SQL查询。但是,在实际场景中,用户倾向于经过对话与体系交互来获取信息,在这种情况下,应该考虑对话上下文。为了处理用户的这一需求,越来越多的重视从单次序Text-to-SQL转向多次序Text-to-SQL使命。

Text-to-SQL学习整理(二十三)RAT-SQL-TC模型

多轮Text-to-SQL是规范Text-to-SQL使命的扩展,它将自然言语查询从单次序设置到多次序设置的约束解放出来。最近的研讨标明,多轮使命比单轮使命的难度要高得多,特别是在建模多次序自然言语查询方面。图1显现了多轮对言语义解析的示例。在这段对话中出现了三句话。第二个查询是依据第一个查询查询的,第二个查询的SQL是对第一个查询的修正,添加了一个额定的约束。第三个查询依据第二个查询更改所选的列,成果是修正SQL中所选的列。

从示例中能够看出,为了更好地了解上下文查询并生成相应的SQL,经过添加每个单独的次序对语义更改善行建模,以及将这些更改映射到SQL操作中是至关重要的。一方面,经过添加每个单一次序对语义改动建模,有助于更好地了解对话期间的语义流,然后有助于更好地将它们总结成单个SQL。另一方面,为了生成正确的猜测SQL,必须将这些语义改动与数据库schema相关起来。

依据这些调查成果,在本文中,咱们提出RAT-SQL-TC,它运用两个辅佐使命来协助更好地建模多次序会话上下文,并依据RAT-SQL生成正确的SQL标明。第一个使命是Turn Switch Prediction (TSP),它猜测在对话进行过程中添加一个新的Turn时SQL将如何改动。第二个使命是Contextual Schema Prediction(CSP),它协助将上下文更改映射到数据库schema操作。CSP需求言语编码器模型来猜测对话的当时次序时每一个数据库列的用法改动。CSP还增强了编码器模型,以便更好地了解数据库形式。这两个使命作为多使命学习的辅佐使命,与SQL生成使命一同练习。咱们提出的两个使命分别从自然言语了解和数据库形式感知的视点进行作业,以增强对对话上下文的了解,并进一步促进Text-to-SQL的生成。

咱们在一个盛行的大规模跨域多轮Text-to-SQL基准(即SParC)上评价了咱们提出的办法。经过添加咱们的机制,QM和IM与baseline比较都得到了明显进步。在本文书写时,咱们完成了新的SOTA体现。

咱们提出的机制在以下几个方面具有优势。

  1. TSP和CSP从自然言语了解和数据库形式感知的视点对会话上下文进行更好的建模。
  2. 咱们提出的办法作为多使命学习的辅佐使命,它避免了复杂的归纳对话数据搜集和与预练习办法比较的很多核算本钱。
  3. 在大规模的跨域基准测验中,咱们对baseline办法进行了明显的改善,取得了最新的成果。

2 相关作业

2.1 语义解析和Text-to-SQL使命

语义剖析已经被研讨了很长一段时间。曾经的语义剖析器通常是依据专家规划的规矩或统计技能。近年来,神经网络语义解析器开端崭露头角。神经语义解析器通常将语义解析视为一项seq2seq使命,选用编码器-解码器结构进行求解。

Text-to-SQL在一切语义解析使命中占据了很大的份额。曾经的Text-to-SQL使命首要会集于相对简单的域内Text-to-SQL使命,最先进的模型在此场景中显现了良好的功能。最近,一个跨域的多表Text-to-SQL数据集Spider被提出。与域内的text-toSQL比较,跨域的多表text-to-SQL模型对自然言语和数据库形式了解的泛化才能要求更高。为了更好地处理这一问题,除了纯序列到序列的办法外,还提出了一种新的结构-优化范式,并得到了广泛应用。这个范例首要生成一个SQL结构,然后用数据库schema token填充这个结构。属于该范例的模型包含SQLNet、TypeSQL、SQLova、Coarse2Fine、XSQL、HydraNet等。此外,还提出了一些增强Text-to-SQL解析器的战略,包含中间标明增强、经过GNN模型进行推理和数据增强。

2.2 多轮对话Text-to-SQL

与单轮Text-to-SQL比较,多轮对话Text-to-SQL需求语义解析器来了解对话的上下文,然后做出正确的SQL猜测。最近,两个大型的Text-to-SQL会话的跨域基准数据集(即SParC和CoSQL)发布,人们依据这两个基准进行了多项研讨。EditSQL以上一次序的猜测SQL和当时回合的自然言语句子作为输入,依据当时回合编辑前一回合的SQL,生成新的猜测SQL。当用户提出一个与对话上下文联系不太密切的新问题时,这种办法往往会失败。IGSQL经过在数据库形式和查询轮之间构建图来对会话期间的上下文一致性建模来处理这个问题。IST-SQL借鉴了对话状况盯梢的思维,将列视为槽,值便是它们的一些运用办法。存储这些槽值对来标明对话状况。R2SQL引入了一个动态形式链接图网络和几个动态内存衰减机制来盯梢对话状况,并运用一个重排序来过滤掉一些简单检测到的过错猜测SQL。Yu等人提出了一种用于多轮对话Text-to-SQL的言语模型预练习办法SCORE,并在两个数据集上完成了最好的成果。但该办法需求很多的合成对言语义解析数据,且练习本钱较高。

3 问题界说

多轮对话的Text-to-SQL使命概括如下:在已知数据库schemaS=[s1,s2,⋯ ,sm]S = \left[s_{1}, s_{2}, \cdots, s_{m}\right]的前提下,将多轮的自然言语问句u=[u1,u2,⋯ ,uT]u=\left[u_{1}, u_{2}, \cdots, u_{T}\right]转换为对应的SQL句子y=[y1,y2,⋯ ,yT]y=\left[y_{1}, y_{2}, \cdots, y_{T}\right]。神经语义解析器的方针是最大化猜测正确SQLyty_t的概率,即给出第tt次序之前的一切用户问句,期望模型能够

Text-to-SQL学习整理(二十三)RAT-SQL-TC模型
与单轮语义解析不同,解析yty_t时,一切第tt个次序之前的问句都应该被考虑。

4 办法

在本文中,咱们提出了用于会话文本sql的RAT-SQL-TC,它为广泛应用的RAT-SQL添加了两个辅佐使命。鄙人面的部分中,咱们将介绍咱们提出的模型的结构和两个使命。

4.1 RAT-SQL-TC模型概述

RAT-SQL是近年来最先进的神经语义解析器之一。RAT-SQL是一个统一的结构,它编码数据库形式和Question中的联系结构。咱们将RAT-SQL作为构建模型的基础。具体地说,咱们运用一个依据联系感知转换器的编码器模型将自然言语查询编码为向量,并运用一个解码器模型将编码后的向量解码为笼统语法树(AST),后者能够进一步转换为SQL。

Text-to-SQL学习整理(二十三)RAT-SQL-TC模型

u=[u1,u2,⋯ ,uT]u=\left[u_{1}, u_{2}, \cdots, u_{T}\right]是T次序的一切的问题序列,其间ui=[ui1,ui2,⋯ ,ui∣ui∣]u_{i}=\left[u_{i}^{1}, u_{i}^{2}, \cdots, u_{i}^{\left|u_{i}\right|}\right]。记数据库schemaS=[s1,s2,⋯ ,sm]S = \left[s_{1}, s_{2}, \cdots, s_{m}\right]。咱们能够经过衔接每个次序和每个列名来获得编码器模型的输入。具体来说,咱们用一个特别符号<s><s>衔接查询的轮,以指示每个轮的边界,每个列名与另一个特别符号</s></s>衔接。然后将Question和数据库schema的组合输入编码器,如图2所示。该输入序列由类似于RAT-SQL的依据Transformer的编码器模型进行处理,生成一组与输入序列长度相同的编码器向量。咱们遵从RAT-SQL的AST解码范式,运用一个解码器依据这些向量生成猜测SQL,loss界说为:

Text-to-SQL学习整理(二十三)RAT-SQL-TC模型
其间y=[y1,⋯ ,y∣Y∣]y=\left[y_{1}, \cdots, y_{|Y|}\right]为ground truth的AST序列标签。

除了对SQL AST进行解码外,咱们还添加了两个辅佐使命,以协助模型更好地建模对话过程中的上下文信息以及与数据库形式的联系。第一个是TSP (Turn Switch Prediction)使命,它要求编码器模型经过添加每一次序的Question来判断语义的改动。第二个是CSP(Contextual Schema Prediction)使命,它强制模型将那些语义改动映射到数据库形式。依据编码向量核算这两个辅佐使命的loss,并与SQL解码的loss一起优化。

4.2 Turn Switch Prediction

Turn Switch Prediction (TSP)使命旨在增强编码器模型,了解每对相邻查询之间的会话流。这个使命需求编码器模型猜测是否经过添加新的句子来对SQL进行某种类型的修正。一共界说NT=17N_T = 17种类型的操作,例如,改动挑选的聚合操作(SELECT sales –> SELECT count(sales))和在条件子句中添加新的条件(None–> WHERE sales > 100)。对于每种类型的操作,咱们对是否进行了这样的更改善行了二分类。

tit_i标明第i轮的特别符号<s><s>的编码向量。咱们一起运用tit_iti−1t_{i-1}来猜测是否进行了某种类型的修正。而TSP loss是每个相邻次序之间一切修正类型loss的总和。

Text-to-SQL学习整理(二十三)RAT-SQL-TC模型
sis_itit_iti−1t_{i-1}的混合特征。WTSPjW_{TSP}^j是用来猜测第j种类型的修正是否做了的参数矩阵。yij∈(0,1)\hat{y}_{i}^{j} \in(0,1)是第i轮时是否进行第j个操作时的ground truth标签,pijp^j_i是进行该操作的猜测概率。核算时设t0t_0为零向量。选用NTN_T个二分类,而不是单一的多分类,因为经过添加一个新次序,能够一起进行多种类型的修正。

4.3 Contextual Schema Prediction

上下文形式猜测(Contextual Schema Prediction, CSP)使命旨在协助编码器模型将每个修正操作映射到数据库中的具体列上。因此,咱们运用schema token的标明来进行猜测。

咱们还运用特别符号</s></s>的编码向量作为数据库形式中的列的标明,并运用列标明来猜测对其进行哪种更改。界说了共NC=11N_C = 11类型的修正,包含adding to select, deleting from where, changing of distinct 等。因为与TSP使命相同的原因,在SQL的不同子句中,一个列能够有多个修正,所以咱们也运用NCN_C个二分类作为本次使命的方针。记[c1,c2,⋯ ,cm]\left[c_{1}, c_{2}, \cdots, c_{m}\right]为M个column在Encoder后的输出向量,CSP能够这样核算loss:

Text-to-SQL学习整理(二十三)RAT-SQL-TC模型
其间,WCSPjW_{CSP}^j是用来猜测第j种类型的schema修正是否做了的参数矩阵。yij\bar{y}_{i}^{j}标明其ground truth标签,标明第j中类型的修正是否应用到了第i个schema column上。

留意,与TSP核算相邻次序之间的语义改动不同,CSP只考虑后一轮的影响,而疏忽前面次序的影响。经过这种办法,CSP能够强制编码器模型更好地重视最终一轮的语义,从而增强Text-to-SQL解析器以生成正确的SQL。

4.4 练习方针函数

Ttext-to-SQL解析器以多使命练习的办法进行练习,一起优化提出的三种丢失。

Text-to-SQL学习整理(二十三)RAT-SQL-TC模型

>0,>0\alpha>0,\beta>0是两个操控TSP丢失和CSP丢失权重的超参数。在实践中,咱们设置 = 0.5和 = 8来获得最佳成果。与预练习-微调范式比较,多使命练习在核算本钱方面明显进步了效率。

5 试验

5.1 数据集

在大规模跨域Text-to-SQL多轮对话数据集SparC上进行了试验。SparC是一个上下文相关的数据集,解析后边的SQL需求正确了解前面的步骤。练习集和验证集分别有2159和422个对话,平均次序数为2.97和2.85个。能够提交在线评判,但测验集没有揭露发布。

5.2 完成细节

咱们遵从与[40]中相同的超参数设置。挑选QM(查询精确匹配)和IM(交互精确匹配)作为与咱们的baseline办法遵从相同规范的衡量。咱们运用GAP模型完成RAT-SQL-TC。GAP是BERT的一个域适应版本,它以seq2seq的办法与单轮Text-to-SQL生成使命进行了调优,而且只保留了BERT编码器。

5.3 试验成果

咱们提出的RAT-SQL-TC (GAP)和几个baseline办法的功能如表1所示。

Text-to-SQL学习整理(二十三)RAT-SQL-TC模型
从表1能够看出,咱们提出的RATSQL-TC (GAP)在QM和IM准确性方面明显优于一切baseline办法。需求阐明的是,咱们建议的RAT-SQL-TC (GAP)击败了目前最先进的RAT-SQL + Score办法,在开发会集的QM和IM准确性分别为1.6%,在测验会集分别为3.3%和5.1%。咱们还在公共排行榜上获得了SOTA的成果。此外,与直接baseline办法RAT-SQL (GAP)比较,经过在多使命学习范式中添加TSP和CSP方针,在QM和IM方面的肯定收益分别为4.5%和3.5%。经过将TSP和CSP作为辅佐使命与原来的SQL解码方针相结合,RAT-SQL模型被迫更好地了解当时转向添加的新语义,并将这种语义改动映射到与数据库相关的标明中,以便更好地生成SQL。

5.4 融化试验和剖析

为了更好地了解咱们提出的RAT-SQL-TC是如何作业的,咱们在SparC开发集上运用RATSQL-TC (GAP)进行了融化研讨和剖析。

Text-to-SQL学习整理(二十三)RAT-SQL-TC模型

TSP和CSP都旨在更好地建模对话过程中的信息流,因此咱们评价它们各自如何影响全体功能。咱们删除了它们,并测验了模型的功能,其成果如表2所示。在没有TSP或CSP的情况下,QM和IM的功能都明显下降。需求特别阐明的是,在没有TSP的情况下,IM和QM的肯定下降分别为4.5%和3.9%,这标明了显式建模上下文更改以盯梢会话过程中的信息流的有效性。有趣的是,IM的准确性乃至比纯RAT-SQL还要低,这标明过度重视列运用改动而不建模自然言语方面的语义改动乃至可能会危害功能。经过移除CSP, QM和IM都降低了3.1%,证明了运用数据库形式建模语义的恰当机制对于做出正确的猜测至关重要。TSP和CSP分别从自然言语了解和数据库形式感知方面增强语义解析器以生成正确的sql。虽然单独的每一个都不能带来精度衡量的明显改善,但这两个方针的结合能够很好地完成更好的功能。

Text-to-SQL学习整理(二十三)RAT-SQL-TC模型

因为TC的两个使命旨在更好地建模对话中的上下文信息,咱们评价TC在问题匹配准确性方面能带来多大的改善。表3显现了每个次序的QM精度。RAT-SQL和RAT-SQL- TC在猜测轮数较大体现都变差,这标明随着轮数的添加,要生成正确的猜测就更难了解整个上下文。但是,与纯RAT-SQL比较,添加TC作为辅佐使命能够明显进步在2.3次序查询的QM精度。TC在自然言语和数据库的视点上都能够作为上下文建模战略,然后在运用长上下文信息建模查询时改善语义解析器。

6 总结

在会话过程中对语义流进行建模以进行语义剖析是多轮语义剖析的一项艰巨使命。为了处理这一问题,本文提出了RAT-SQL-TC算法,该算法在语义解析器练习中添加了两个辅佐使命(即TSP和CSP)。TSP和CSP分别从自然言语了解和数据库形式感知的视点对多回合会话进行建模,并将语义转换为SQL。咱们在大规模的open-domain基准测验中展现了TC的高度有效性,并取得了最好的成果。