论文笔记:CQR-SQL: Conversational Question Reformulation Enhanced Context-Dependent Text-to-SQL Parsers

目录

  • 论文笔记:CQR-SQL: Conversational Question Reformulation Enhanced Context-Dependent Text-to-SQL Parsers
  • 导语
  • 1 简介
  • 2 方法
    • 2.1 预备知识
      • 任务定义
      • Backbone Network
    • 2.2 使用schema增强的递归式CQR模型
      • Schema Integration for CQR
      • Recursive Generation for CQR
      • Self-training for CQR
    • 2.3 CQR-SQL : Latent CQR Learning for Text-to-SQL Parsing in Context
      • Schema Grounding Consistency Task.
      • SQL Parsing Consistency Task
  • 3 实验
    • 3.1 实验建立
    • 3.2 实验结果
    • 3.3 消融实验
    • 3.4 Case study
  • 4 相关工作
  • 5 总结

导语

转自我本人的其他平台的博客。

本文是今年(2022年)EMNLP上发表的一个工作,该工作延续了上一篇DELTA模型的思路,将多轮问题重构为两阶段pipeline模式:问题重写和单轮Text-to-SQL。让我们一起来看看本文又是如何在DELTA上继续改进的吧。

  • 会议:EMNLP 2022 Findings
  • 链接:https://arxiv.org/pdf/2205.07686.pdf

1 简介

对于多轮的Text-to-SQL任务,现有的方法通常专注于充分利用历史上下文或以前预测的SQL来进行当前的SQL解析,而忽略了显式地理解模式和会话依赖关系,如共同引用、省略和用户焦点变化。而这些则是多轮Text-to-SQL中最复杂的挑战,下图1展示了关于这些语言现象的示例:

之前的工作大都是简单的将多轮中的各个句子进行拼接(下图2a),就得到了不错的效果,但这些端到端的方法缺乏对这些上下文依赖现象的关注。过去多轮Text-to-SQL领域,只有DELTA模型关注过这个问题,其将整个任务流程分解为两个pipeline的子任务(下图2b):

  1. 使用conversational question reformulation (CQR)模型来重写多轮对话;
  2. 使用一个单轮的(上下文无关)Text-to-SQL语义解析器完成语义解析。

然而,在实践中,两阶段pipeline方法的限制体现在两个方面:

  1. 存在转换的错误传播现象;
  2. 忽视了两个阶段之间的相关性。

同时,由于因为text-to-SQL数据集中的多轮题严格围绕底层数据库,现有的text-to-SQL数据集中没有CQR注释。这些需要研究者自己通过一些无监督或半监督的方法来生成CQR标注。

基于以上的发现,本文设计了一个新的两阶段的模型CQR-SQL,它是一个两阶段模型,其中第一阶段是一个schema增强的递归式CQR模型,相比于之前的两阶段方法中的第一阶段模型,该模型有两点更新:

  1. 考虑了对话依赖的数据库schema
  2. 考虑了上一轮次的预测的self-contained questions

在第二阶段,作者设计了两个一致性任务,即schema grounding consistency task 和 tree-structured SQL parsing consistency task来将self-contained questions和多轮question上下文映射到同一个潜在空间,尽量保证模型在输入self-cotanied question和多轮question上下文时得到相同的输出。这样,在推断阶段,模型将无需重新生成self-contained语句,解决了错误传播问题。

2 方法

2.1 预备知识

任务定义

多轮Text-to-SQL任务的目标是在输入当前轮次τ​的问句和历史上下文问句q≤τ​的前提下,生成对应于该轮次的SQL语句sτ​。

Backbone Network

CQR-SQL使用Encoder-decoder结构,其中Encoder采用relation-aware Transformer (RAT)结构,Decoder则采用tree-structured LSTM(Yin and Neubig (2017)),都是很经典的Text-to-SQL任务中用到的结构。

2.2 使用schema增强的递归式CQR模型

由于上下文相关的text-to-SQL缺乏域内CQR标注,我们采用schema enhanced递归CQR方法来收集可靠的self-contained问题。

Schema Integration for CQR

为了产生与schema更相关的问题,这里把问题的最后拼接了schema信息。

Recursive Generation for CQR

同时,受Edit-SQL和IST-SQL的启发,在多轮编码中加入last predicted SQL query有助于捕获长期依赖。所以,最终的优化目标为:

Self-training for CQR

通用的CQR模型在SParC和CoSQL这类in-domain数据上表现不好,因而本文也采用和DELTA的类似方式来进行半监督的生成标注数据。

具体来说,采用的方法为self-training,该方法就是通过一系列的步骤,用已有的有标签的数据(labelled data),去对剩下的还未标记的数据打标签。从而使得训练数据(training data)更多。

具体步骤如下:

  1. 初始化有标签数据和无标签数据
  1. 重复:

    • 用有标签的数据去训练一个模型
    • 用这个模型来对没有标签的数据做预测
    • 只选取最有把握的预测结果来标记数据(unlabelled data)
    • 把新标记好的数据加入到原来的标记好的数据集中,同时把他们从原来的数据集中删除
  1. 直到数据集不发生变化

使用算法描述即如下图所示:

2.3 CQR-SQL : Latent CQR Learning for Text-to-SQL Parsing in Context

在解决了阶段1的self-contained数据标注问题之后,我们再来看看CQR-SQL模型。图3展示了CQR-SQL的训练示意图,首先这里明确一下,作者使用了两个任务来训练模型:

  1. Schema Grounding Consistency Task:用来预测当前轮次下,哪些database schema会被使用到;
  2. SQL Parsing Consistency Task:用来预测得到最终的SQL语句。

这里,我们会注意到,这些任务后面都加了Consistency,即这里作者还设计了一致性的Loss确保模型在接收self-contained问题和多轮上下文question时模型的预测尽可能一致。接下来将详细介绍。

Schema Grounding Consistency Task.

这个任务用来预测当前轮次下,哪些database schema会被使用到;由于这是一个不需要顺序的任务(相当于从一堆集合元素中挑出一部分元素的子集),所以为了避免位置信息干扰,这里使用BoW loss(参考:https://zhuanlan.zhihu.com/p/26898768)。

其损失函数定义如下:

BoW loss的ground truth就是第τ​轮次中出现的schema item。

同时,为了保持模型在接收self-contained question和多轮question上下文时的一致性,还涉及了一致性loss,如下:

SGKLSG_{KL}SGKL​ loss就是两次预测之间的KL散度(交换顺序后也要考虑,因为KL散度不对称)

SQL Parsing Consistency Task

该任务的loss设计与上一个任务相仿,也是由两部分组成,其中第一部分是预测SQL语句的loss,这个需要位置信息,就是正常的cross-entropy loss,另一个则也是一致性loss,形式如下:

最终的loss形态,包含BoW loss、SQL预测loss、和两个阶段中各自的一直连续性loss加和

在Evaluation时需不要额外的self-contaied问题标注了,因为CQR模型已经训练好了可以接收多轮输入或Self-contained问题而产生连续一致的结果。

3 实验

3.1 实验建立

首先,由于self-contained question缺乏标注,作者标注了一部分self-contained问题作为初始化的标注数据。之后,通过3轮self-training的迭代,最终获得了4441个SParC和1973个CoSQL上的有标签数据来训练CQR模型。

3.2 实验结果

主要实验结果如下表所示:

可以看到。CQR-SQL在绝大多数指标上都取得了SOTA的表现。同时,作者还进行了不同轮次和不同难度的正确性分析,如下图所示:

3.3 消融实验

作者还进行了一些消融实验来验证各个组件的有效性,结果如下表:

3.4 Case study

同时,作者也提供了两个case study来详细分析:

4 相关工作

5 总结

相比于DELTA,CQR-SQL通过一种潜在空间的一致性loss去掉了在推断时需要的两阶段转换,从而避免了错误累积现象,同时使用self-training的方式总结了一些标注数据,实验结果也有了很大提升。

论文笔记:CQR-SQL: Conversational Question Reformulation Enhanced Context-Dependent Text-to-SQL Parsers相关推荐

  1. 论文笔记之EDVR: Video Restoration with Enhanced Deformable Convolutional Networks

    EDVR: Video Restoration with Enhanced Deformable Convolutional Networks 金字塔.级联和可变形卷积的对齐 时间空间注意力融合 整体 ...

  2. 论文笔记:HIE-SQL:History Information Enhanced Network for Context-Dependent Text-to-SQL Semantic Parsing

    论文笔记:HIE-SQL: History Information Enhanced Network for Context-Dependent Text-to-SQL Semantic Parsin ...

  3. 论文笔记:Pay More Attention to History: A Context Modeling Strategy for Conversational Text-to-SQL

    论文笔记:Pay More Attention to History: A Context Modeling Strategy for Conversational Text-to-SQL 目录 论文 ...

  4. 【笔记1-1】基于对话的问答系统CoQA (Conversational Question Answering)

    CoQA: A Conversational Question Answering Challenge (一)论文概述(摘要+简介) (二)目标任务 (三)数据收集过程 3.1 数据收集界面 3.2 ...

  5. Check It Again: Progressive Visual Question Answering via Visual Entailment 论文笔记

    Check It Again: Progressive Visual Question Answering via Visual Entailment 论文笔记 一.Abstract 二.引言 三.R ...

  6. WeaQA:Weak Supervision via Captions for Visual Question Answering 论文笔记

    WeaQA:Weak Supervision via Captions for Visual Question Answering论文笔记 一.Abstract 二.引言 三.相关工作 3.1 VQA ...

  7. Hierarchical Graph Network for Multi-hop Question Answering 论文笔记

    Hierarchical Graph Network for Multi-hop Question Answering 论文笔记 2020 EMNLP,Microsoft 365, 这篇文章所提出的层 ...

  8. Visual Question Answering with Textual Representations for Images 论文笔记

    Visual Question Answering with Textual Representations for Images 论文笔记 一.Abstract 二.引言 三.方法 3.1 Lang ...

  9. 论文笔记:Editing-Based SQL Query Generation for Cross-Domain Context-Dependent Questions

    论文笔记:Editing-Based SQL Query Generation for Cross-Domain Context-Dependent Questions 目录 论文笔记:Editing ...

最新文章

  1. Eclipse create git repository failure(egit)
  2. Docker使用中遇到的问题
  3. 驱动下通过进程PID获得进程名 (动态获取ImageFileName在EPROCESS结构体中的相对偏移)...
  4. 今天发现新大陆:haml和Emmet
  5. hdu 6015 Gameia(树上博弈)
  6. 论文笔记_S2D.20_2017-ICCV-从单张RGB图像到精确尺度深度图评估的一种双支网络
  7. docker .env文件_基于Docker搭建Nacos集群
  8. Java和Python哪个更适合初学者的问题
  9. 【MapGIS二次开发】常见问题解析
  10. 超级好用的一个php上传图片类(随机名_缩略图_加水印),php教程_超级好用的一个php上传图片类(随机名,缩略图,加水印)...
  11. WEBMAX函数教程
  12. Pytorch 节省内存、显存的一些技巧
  13. 百度副总裁 AIG总负责人王海峰:决胜AI时代(财新专访实录)
  14. 论文开题报告要查重吗?
  15. 尼姆游戏-取硬币游戏
  16. java鼠标经过代码_一段眼睛跟着鼠标转动的跟踪眼代码
  17. linux下文件夹归置方式
  18. sourcetree提交报错 git -c diff.mnemonicprefix=false -c core.quotepath=false --no-optional-locks ······
  19. 微软鼠标测试软件,微软Precision鼠标评测:Surface生产力工具最佳搭配
  20. python如何画球体_用python绘制一个球体的轨道轨迹

热门文章

  1. 关于使用UIWebView加载HTTPS站点出现NSURLErrorDomain code=-1202
  2. java练习题:在一组数组中去掉最大值和最小值,求平均值
  3. 千峰JavaDay32课后作业
  4. 33. 汽车软件质量改善
  5. 佛教哲学 学习笔记-003-四谛归空-空宗哲学
  6. Xiaohe-LeetCode 100 Same Tree
  7. DataWhale_Pandas Task10 时序数据
  8. 人生重开模拟/合成大西瓜/小空调......2021爆款开源项目盘点
  9. 第一个神经网络TensorFlow
  10. 决定四六级阅读答案的那些词汇