ShadowGNN: Graph Projection Neural Network for Text-to-SQL Parser 论文笔记


摘要

  • 给定一个数据库模式,Text-to-SQL旨在将一个自然语言问题翻译成相应的SQL查询。在跨领域(意思是,如果模型在数据库a,比如说地理信息的数据库上训练,当把模型放在数据库b,比如说企业信息的数据库上测试)的设置下,传统的语义解析模型很难适应未见过的数据库模式。
  • 为了提高模型对罕见和未见过的模式的泛化能力,我们提出了一个新的架构,即ShadowGNN,它在抽象和语义层面上处理模式。通过忽略数据库中语义项的名称,把抽象的数据库模式投影到一个图神经网络上并利用,以获得问题和模式的非词汇化表达。
  • 基于独立于领域的表述,一个关系感知的转化器被用来进一步提取问题和模式之间的逻辑联系。最后,利用一个带有context-free grammer即SQL的抽象语法树,大部分的Text-to-SQL模型都使用这个语法树来当作 Decoder 部分)的SQL解码器。
  • 在具有挑战性的Text-to-SQL基准Spider上,仿真结果显示ShadowGNN优于最先进的模型。当注释数据极其有限时(只有10%的训练集),ShadowGNN 获得了绝对的5%以上的性能提升,这表明其强大的泛化能力。我们的实现将在https://github.com/WowCZ/shadowgnn上开源。

1.Introduction

这一部分介绍了Text-to-SQL的一些难点。

首先,数据库模式被当作一个 domain,其中包含两部分的信息:

  • 模式组件的语义信息(如表名,列名)
  • 数据集的结构信息(如主外键关系)

最近发布的数据集Spider(Yu等人,2018) ,隐藏了测试集的数据库模式,这些模式在训练集上是完全不可见的。在这种跨领域的设置中,领域适应是有难度的,主要有两个原因:

  • 首先,测试集和开发集的domain的语义信息在训练集中是不存在的。在给定的开发集上,数据库模式中的35%的 word 并没有出现在训练集的数据库模式中,在问题和模式中很难匹配领域的表述。
  • 第二,数据库模式的结构之间存在着相当大的差异。特别是,数据库模式总是包含语义信息。要获得数据库模式的统一表示是很困难的。在跨领域的设置下,基本的挑战是减轻领域信息的影响。

首先,有必要弄清楚在将NL问题转化为SQL查询的过程中,数据库模式组件的语义信息发挥了哪些作用。

考虑到图1(a)中的例子,对于Text-to-SQL模型来说,基本任务是通过查找带有语义信息的模式(被命名为语义模式 semantic schema)来找出所有提到的列(name)和表( team , match season)。
在这里插入图片描述

一旦NL问题中提到的列和表与模式组件完全匹配(即NL中的单词出现在数据库中),我们就可以通过用特定的模式组件来替代普通的组件来抽象出NL问题和语义模式。如图图1(b)所示,我们仍然可以利用抽象的NL问题和模式结构来推断SQL查询的结构。

在这里插入图片描述

通过语义模式和抽象模式之间的对应关系,我们可以将抽象查询还原为带有领域信息的可执行SQL查询。

受这一现象的启发,我们将Text-to-SQL模型的编码器分解为两个模块。

  • 首先,我们提出了一个图投影神经网络(GPNN)来抽象 NL问题(NL question)语义模式 (semantic schema),其中 domain information 被尽可能地删除。
  • 然后,我们使用 relation-aware transformer这一部分可以参考另外一篇论文 RAT-SQL)来获得抽象的NL问题的统一表征以及抽象的模式的统一表征。

2.Background

这一部分介绍了本篇论文借用了哪些论文的模型

  • 在这一节中,我们首先介绍关系图卷积网络(R-GCN)(Schlichtkrull等人,2018),它是我们提出的GPNN的基础。
  • 然后,我们介绍 relation-aware transformer这一部分可以参考另外一篇论文 RAT-SQL),这是一个在计算注意力权重时考虑关系信息(实际上就是在 self-attention 的基础上加了边的信息)的 transformer 变体。

2.1 Relational Graph Convolution Network(关系图卷积网络)

  • 在描述R-GCN的细节之前,我们首先给出关系有向图的符号。
    在这里插入图片描述
  • 其中,V是数据库的模式组件(如表,列
  • ε \varepsilon ε 是两个节点 v i v_{i} vi v j v_{j} vj 之间的边
  • R 是边的类型
  • 故要表示一条边,则用一个三元组( v i v_{i} vi , r , v j v_{j} vj

  • 上图的公式代表指向节点 v i v_{i} vi,且边的类型为 r 的节点的集合

  • 图中的每个节点 v 都有一个输入特征 x i x_{i} xi,它被看作是R-GCN的初始隐藏状态 h i 0 h_{i}^{0} hi0

  • 图中每个节点的隐藏状态按以下步骤逐层更新。

Sending Message把相邻节点的信息考虑进来) 在第 l 层的R-GCN中,图中的每条边( v i v_{i} vi , r , v j v_{j} vj)将从起点 v i v_{i} vi 向终点 v j v_{j} v

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值