论文导读|Representing Schema Structure with Graph Neural Networks for Text-to-SQL Parsing

  • 编者按
  • 1、背景知识
  • 2、SQL生成语法
  • 3、利用GNN对数据库模式进行编码
  • 4、模型
  • 5、实验
  • References

作者:北京大学 常辰

编者按

在Text to SQL这一问题中,由于数据库模式(Database Schema)在训练以及测试时都是可见的,因此鲜有对其内含的信息进行进一步处理,该论文介绍了一种将数据库模式构筑成图的形式,并利用图神经网络(GNN)编码,以提升在更复杂的DB schema下的表现。
该论文的代码已开源:https://github.com/benbogin/spider-schema-gnn

1、背景知识

Text to SQL的目标是将一句自然语言转换为可执行的SQL查询语句,利用这个技术,即使不了解SQL的语法,仍然能够得到自己想要的查询结果。与其他语义解析(semantic parsing)任务一样,转换的目标语言具有较为严格的语法和逻辑结构,因此在语义解析的模型中,经常会使用GNN来捕捉结构信息,或者对输出加上一些语法的限制。但Text to SQL有所不同的一点是,数据库模式也会作为输入的一部分,或者说数据库模式也是生成SQL语句中不可或缺的信息。

数据库模式能够反映数据的结构及其联系,比如表的列名、列之间主外键的关系等等,因此数据库模式也会对SQL语句产生影响。在下图的两个例子中,问题的句式相似,但是由于数据库模式不同,作为结果的SQL语句也有很大的差距。
鉴于这一点,作者认为除了生成SQL时的语法限制之外,对数据库模式结构信息的编码也是十分必要的。

2、SQL生成语法

SQL语句有自己的一套编译规则,但是利用这些规则进行生成有两大弊端。第一是这些规则非常复杂,会使得生成的序列过长,同时也会包含不少冗余的生成步骤。第二则是这些规则并非上下文无关(context-free),同样会使生成过程变得十分复杂。

基于以上两点,作者首先构建了一套针对特定数据集(data-specific)的上下文无关语法(context-free grammar, CFG)。作者将设计的语法分为两类:全局规则(global rules)和链接规则(linked rules)。
全局规则是所有实例的生成过程中都可以使用的规则,如上图中这些生成规则都是全局规则,这些规则与数据库模式无关,类似于模板。

链接规则会根据问题和数据库模式生成,这些规则所生成的是表名、列名等数据库模式中的某一项,或者是问题中的某个词,因此这种规则对不同的问题也是不同的,类似于复制机制。

最后,只需要将利用这些规则得到的语法树深度优先遍历,就能得到生成的序列了。

3、利用GNN对数据库模式进行编码


首先需要将模式转换为图,以上图这个输入为例,涉及到的表有student, semester, student_semester, program这4个,很自然的一个想法是将表名和列名各自作为一个节点,并且将每个表的节点分别与其所有的列用双向边连接起来,作为第一类边;接下来再将主外键对和相应的表连接起来,以主键为起始点的边作为第二类边,以外键作为起始点的边作为第三类边,例如student.student_id-> student_semester. student_id和student-> student_semester是第二类边,反向则是第三类边,如下所示

除此之外,根据实际的问题,并非图中所有的节点都需要用到,上图中只有深色的节点是实际需要的,为了能够反映每个节点与问题的相关度,需要学习模式项(schema item)v,即图中节点与问题中每个词xi的相关度Slink,并且通过softmax归一化得到一个概率分布

取其中最大的一个概率作为与问题的相关度

用这个相关度和初始embedding得到基于问题的embedding

经过L层GNN得到每个节点最终的embedding

4、模型

与seq2seq模型类似,该模型由一个编码器和解码器组成,编码器为双向LSTM,解码器为LSTM。

有所不同的是,在编码器的输入中加入了与数据库模式相关的embedding

在解码时临时将链接规则加入可用规则中,并且对之前几步解码中应用了链接规则的项使用self-attention,再计算得出可用规则集上的概率分布

5、实验

本文中使用的数据集是近年Text to SQL任务中常用的SPIDER数据集,共有一万多条数据,并且有相对复杂的数据库模式。

实验结果如上图所示,即使不使用GNN对数据库模式进行编码,仍然有很大的提升,使用GNN后在跨表查询(即MULTI一列)中有很大提升。作者对两者输出的结果中,使用到”join”的部分进行了分析,不使用GNN时,有83.4%将同一张表join到了一起,或者是对非主外键对的两列错误地使用了join;而使用了GNN后这种错误仅有15.6%,从而一定程度上证明了利用了数据库模式的结构信息的模型在多表查询的情况下能有更好的表现。
最后,作者对这一模型所能达到的最佳状态作了一个估计,在计算图中节点与问题相关度时,把所有需要用到的节点相关度置为1,不相关的置为0,最终能达到54.3%的正确率,说明这一模型仍有提升的空间。

References

  1. Bogin, B., Gardner, M., & Berant, J. (2019). Representing Schema Structure with Graph Neural Networks for Text-to-SQL Parsing. ACL 2019.
  2. Lin, K., Bogin, B., Neumann, M., Berant, J., & Gardner, M. (2019). Grammar-based Neural Text-to-SQL Generation. ArXiv, abs/1905.13326.
  3. Yu, T., Zhang, R., Yang, K., Yasunaga, M., Wang, D., Li, Z., Ma, J., Li, I., Yao, Q., Roman, S., Zhang, Z., & Radev, D.R. (2018). Spider: A Large-Scale Human-Labeled Dataset for Complex and Cross-Domain Semantic Parsing and Text-to-SQL Task. EMNLP 2018.

论文导读|Representing Schema Structure with Graph Neural Networks for Text-to-SQL Parsing相关推荐

  1. 综述论文阅读”A comprehensive survey on graph neural networks“(TNNLS2020)

    论文标题 A comprehensive survey on graph neural networks 论文作者.链接 作者:Wu, Zonghan and Pan, Shirui and Chen ...

  2. [论文翻译]-A Comprehensive Survey on Graph Neural Networks《图神经网络GNN综述》

    文章目录 摘要 1 简介 1.1 GNN简史 1.2 Related surveys on graph neural networks 1.3 Graph neural networks vs. ne ...

  3. 【论文】A Comprehensive Survey on Graph Neural Networks

    A Comprehensive Survey on Graph Neural Networks 1 Introduction 2 Definition 3 Categorization GNN分类 框 ...

  4. 论文翻译-A Comprehensive Survey on Graph Neural Networks《图神经网络GNN综述》

    文章目录 1 简介 1.1 GNN简史 1.2 GNN的相关研究 1.3 GNN vs 网络嵌入 1.4 文章的创新性 2 基本的图概念的定义 3 GNN分类和框架 3.1 GNNs分类 3.2 框架 ...

  5. 论文阅读_Robust Counterfactual Explanations on Graph Neural Networks

    abstract 在本文中,我们提出了一种新颖的方法,通过在相似的输入图上对 GNN 的通用决策逻辑进行显式建模,来生成对 GNN 的鲁棒反事实解释.解释具有鲁棒性,因为是从控制许多类似输入图的预测的 ...

  6. [EGNN] Exploiting Edge Features for Graph Neural Networks 利用图神经网络的边特征 论文详解 CVPR 2019

    文章目录 1 简介 1.1 GAT和GCN的局限性 1.2 EGNN的创新点 2 相关工作 3 EGNN网络 3.1 符号定义 3.2 EGNN和GNN的对比 3.3 Doubly stochasti ...

  7. 【论文解读 ASONAM 2019】Semi-Supervised Learning and Graph Neural Networks for Fake News Detection

    论文题目:Semi-Supervised Learning and Graph Neural Networks for Fake News Detection 论文链接:https://ieeexpl ...

  8. TAGNN: Target Attentive Graph Neural Networks for Session-based Recommendation论文阅读笔记

    论文标题:TAGNN: Target Attentive Graph Neural Networks for Session-based Recommendation 发表于:2020 SIGIR 作 ...

  9. 图神经网络(Graph Neural Networks)概述

    论文:A Comprehensive Survey on Graph Neural Networks 一篇关于图神经网络的综述文章,着重介绍了图卷积神经网络(GCN),回顾了近些年的几个主要的图神经网 ...

最新文章

  1. 深度思考:从头开始训练目标检测
  2. python中raise stoplteration_推导表达式迭代器生成器模块和包 | 编程电脑技术交流...
  3. Linux/Ubuntu下安装QQ2012
  4. 前端进阶之路:初涉Less
  5. 独家专访 | 从跨国投行到开源社区,IBM Spark总工程师Nick Pentreath的传奇经历
  6. qt label显示图片_qt关于qmovie类的使用
  7. oracle查询中表的连接顺序 手工指定
  8. linix防火墙设置之顺序设置问题 -- 解决防火墙规则顺序和插入规则到指定序号的问题...
  9. 专访阿里数据库备份专家 教你pick最有效的备份系统
  10. 蓝桥杯第三届省赛JAVA真题----取球博弈
  11. matlab中sum(w.),matlab中sum
  12. java spin lock_JAVA 各种锁机制
  13. 从零开始刷Leetcode——数组(31.33)
  14. linux 间隔时间中断测试
  15. VM14Pro下打开虚拟机黑屏及其衍生问题的解决方案
  16. python中file是什么意思_Python中的file和open用法详解
  17. react创建ts项目
  18. Designing Specification
  19. unity模型制作规范
  20. C#实践——计算GPA

热门文章

  1. Oracle未找到先决条件检查
  2. 【HoloLens2】添加空间音频学习笔记
  3. 笔记本双屏系统的组建
  4. J.Hilburn:高档男装市场颠覆者_网易财经
  5. ActionsScript 3.0简易涂鸦板
  6. 拍卖!黄岛西海岸“银十”集中拍卖17块土地!海底隧道口5宗黄金地块意外流拍
  7. 用序列号觖决安全问题
  8. 让图片在div里居中(三种方法)
  9. 计算机网络基础 — 运输层常见问题与解答
  10. 【UCB操作系统CS162项目】Pintos Lab1:线程调度 Threads