论文笔记:CQR-SQL: Conversational Question Reformulation Enhanced Context-Dependent Text-to-SQL Parsers
论文笔记: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):
- 使用conversational question reformulation (CQR)模型来重写多轮对话;
- 使用一个单轮的(上下文无关)Text-to-SQL语义解析器完成语义解析。
然而,在实践中,两阶段pipeline方法的限制体现在两个方面:
- 存在转换的错误传播现象;
- 忽视了两个阶段之间的相关性。
同时,由于因为text-to-SQL数据集中的多轮题严格围绕底层数据库,现有的text-to-SQL数据集中没有CQR注释。这些需要研究者自己通过一些无监督或半监督的方法来生成CQR标注。
基于以上的发现,本文设计了一个新的两阶段的模型CQR-SQL,它是一个两阶段模型,其中第一阶段是一个schema增强的递归式CQR模型,相比于之前的两阶段方法中的第一阶段模型,该模型有两点更新:
- 考虑了对话依赖的数据库schema
- 考虑了上一轮次的预测的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)更多。
具体步骤如下:
- 初始化有标签数据和无标签数据
重复:
- 用有标签的数据去训练一个模型
- 用这个模型来对没有标签的数据做预测
- 只选取最有把握的预测结果来标记数据(unlabelled data)
- 把新标记好的数据加入到原来的标记好的数据集中,同时把他们从原来的数据集中删除
- 直到数据集不发生变化
使用算法描述即如下图所示:
2.3 CQR-SQL : Latent CQR Learning for Text-to-SQL Parsing in Context
在解决了阶段1的self-contained数据标注问题之后,我们再来看看CQR-SQL模型。图3展示了CQR-SQL的训练示意图,首先这里明确一下,作者使用了两个任务来训练模型:
- Schema Grounding Consistency Task:用来预测当前轮次下,哪些database schema会被使用到;
- 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相关推荐
- 论文笔记之EDVR: Video Restoration with Enhanced Deformable Convolutional Networks
EDVR: Video Restoration with Enhanced Deformable Convolutional Networks 金字塔.级联和可变形卷积的对齐 时间空间注意力融合 整体 ...
- 论文笔记: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 ...
- 论文笔记: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 目录 论文 ...
- 【笔记1-1】基于对话的问答系统CoQA (Conversational Question Answering)
CoQA: A Conversational Question Answering Challenge (一)论文概述(摘要+简介) (二)目标任务 (三)数据收集过程 3.1 数据收集界面 3.2 ...
- Check It Again: Progressive Visual Question Answering via Visual Entailment 论文笔记
Check It Again: Progressive Visual Question Answering via Visual Entailment 论文笔记 一.Abstract 二.引言 三.R ...
- WeaQA:Weak Supervision via Captions for Visual Question Answering 论文笔记
WeaQA:Weak Supervision via Captions for Visual Question Answering论文笔记 一.Abstract 二.引言 三.相关工作 3.1 VQA ...
- Hierarchical Graph Network for Multi-hop Question Answering 论文笔记
Hierarchical Graph Network for Multi-hop Question Answering 论文笔记 2020 EMNLP,Microsoft 365, 这篇文章所提出的层 ...
- Visual Question Answering with Textual Representations for Images 论文笔记
Visual Question Answering with Textual Representations for Images 论文笔记 一.Abstract 二.引言 三.方法 3.1 Lang ...
- 论文笔记:Editing-Based SQL Query Generation for Cross-Domain Context-Dependent Questions
论文笔记:Editing-Based SQL Query Generation for Cross-Domain Context-Dependent Questions 目录 论文笔记:Editing ...
最新文章
- Eclipse create git repository failure(egit)
- Docker使用中遇到的问题
- 驱动下通过进程PID获得进程名 (动态获取ImageFileName在EPROCESS结构体中的相对偏移)...
- 今天发现新大陆:haml和Emmet
- hdu 6015 Gameia(树上博弈)
- 论文笔记_S2D.20_2017-ICCV-从单张RGB图像到精确尺度深度图评估的一种双支网络
- docker .env文件_基于Docker搭建Nacos集群
- Java和Python哪个更适合初学者的问题
- 【MapGIS二次开发】常见问题解析
- 超级好用的一个php上传图片类(随机名_缩略图_加水印),php教程_超级好用的一个php上传图片类(随机名,缩略图,加水印)...
- WEBMAX函数教程
- Pytorch 节省内存、显存的一些技巧
- 百度副总裁 AIG总负责人王海峰:决胜AI时代(财新专访实录)
- 论文开题报告要查重吗?
- 尼姆游戏-取硬币游戏
- java鼠标经过代码_一段眼睛跟着鼠标转动的跟踪眼代码
- linux下文件夹归置方式
- sourcetree提交报错 git -c diff.mnemonicprefix=false -c core.quotepath=false --no-optional-locks ······
- 微软鼠标测试软件,微软Precision鼠标评测:Surface生产力工具最佳搭配
- python如何画球体_用python绘制一个球体的轨道轨迹
热门文章
- 关于使用UIWebView加载HTTPS站点出现NSURLErrorDomain code=-1202
- java练习题:在一组数组中去掉最大值和最小值,求平均值
- 千峰JavaDay32课后作业
- 33. 汽车软件质量改善
- 佛教哲学 学习笔记-003-四谛归空-空宗哲学
- Xiaohe-LeetCode 100 Same Tree
- DataWhale_Pandas Task10 时序数据
- 人生重开模拟/合成大西瓜/小空调......2021爆款开源项目盘点
- 第一个神经网络TensorFlow
- 决定四六级阅读答案的那些词汇