Text-to-SQL学习整理(二十八):RASAT--将关系结构集成到T5模型中

1,184 阅读7分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第30天,点击查看活动详情

导语

之前的工作揭示了直接Fine-tune T5可以在Text-to-SQL任务上取得不错的表现,最近的尝试对T5的输出进行约束(参考:juejin.cn/post/708848… ),而本文则是介绍了一种从Encoder端进行改进的方法:RASAT。这篇文章写的非常好,方法非常的简单巧妙,值得学习!

1 简介

在近几年的Text-to-SQL工作中,研究者们引入了各种各样、形形色色的关系,比如GlobalGNN(juejin.cn/post/708700… )使用GNN来编码数据库schema,BRIDGE模型(juejin.cn/post/708775… )引入了数据库内容匹配,RAT-SQL(juejin.cn/post/708741… )引入了schema linking来建模schema mention和schema item之间的关系,SADGA则引入了输入问句中的依存句法结构关系。然而,这些关系在使用时需要借助特殊的结构,如GNN、Tree-based LSTM等,无法充分利用大规模预训练模型的强大表示能力。

而另一方面,Shaw et al. (2021)的工作展示了直接使用seq2seq的方式来Fine-tune T5-3B模型就可以达到堪比SOTA的表现,在此基础上,Scholak等人设计了PICARD模型,即对T5模型的输出beam进行约束以减少不符合SQL语法规则的输出,取得了新的SOTA表现。

而RASAT则综合了以上两大主流方法的优点,借助Relation-aware Self-attention模块编码各种Relation来集成到T5模型中。RASAT既能充分利用各种先验的关系编码,同时又可以直接继承T5模型强大的表示能力,在目前Text-to-SQL领域的三大数据集:Spider、SParC和CoSQL上全部取得了SOTA的表现。

2 相关工作

3 预备知识

3.1 任务定义

单轮Text-to-SQL任务的目标是在输入问句QQ和数据库schema SS的前提下,生成对应于该问句的SQL语句YY

而对于多轮Text-to-SQL任务,输入的问句变为当前轮次问句QtQ_t和历史上下文问句QtQ_{\le t}。数据库schema则定义为表列的集合S=<T,C>S=<T,C>

3.2 Relation-aware Self-attention

Relation-aware Self-attention其实就是在原来Self-attention计算时,加入了两个偏置项rkr_krvr_v,它们被用来代表第i个token和第j个token之间的先验关系。

image.png

4 RASAT

4.1 模型概览

模型的名称叫RASAT(Relation-Aware Self-Attention-augmented T5),其整体结构如下图所示。

image.png

整体而言,模型的结构非常简单,即是一个原始的T5模型,然后其中Encoder的Self-attention模块被替换为了Relation-aware Self-attention模块。模型只额外增加了两个Embedding Matrix用来维护各种Relation的Embedding向量(可训练的)。

对于模型的序列化方式,作者基本遵循了和PICARD相似的方式,即对于单轮的Text-to-SQL问题,输入形式如下:

X=Q|S|t1:c11[v],,c1T1|t2:c21,X= \overline{\mathcal{Q} \texttt{|} S \texttt{|} t_{1} \texttt{:} c_{11} \texttt{[} v \texttt{]} \texttt{,} \cdots \texttt{,} c_{1|T_1|} \texttt{|}t_{2} \texttt{:} c_{21} \texttt{,} \cdots}

对于多轮的Text-to-SQL问题,形式如下:

X=Q1|Q2||Qt|S|t1:c11[v],X= \overline{\mathcal{Q}_{1} \texttt{|} \mathcal{Q}_{2} \texttt{|} \cdots \texttt{|} \mathcal{Q}_t \texttt{|} S \texttt{|} t_{1} \texttt{:} c_{11} \texttt{[} v \texttt{]} \texttt{,} \cdots}

4.2 Interaction Graph

在确定好输入后,作者将所有输入中每个token作为一个节点连成了一张全连接图,叫做Interaction Graph。其中,任意两个节点之间有且只有一条边。接着,作者将输入之间的Relation定义为一个三元组:

<H,r,T><H, r, T>

其中,H和T分别是连边的头实体和尾实体,r即为关系。作者根据头尾实体类型的不同总共定义了5大类共51种关系,这些关系都是非对称的,几种代表性的关系如下图所示:

image.png

接下来将分别介绍这5大类关系:

Schema Encoding

Schema Encoding用于编码数据库模式中内部的结构关系,如某个列属于某个表,某个列是某个表的主键、不同列之间的主外键联系,列与列同属于一张表等等。

Schema Linking

Schema Linking用于表示数据库schema和问句question之间的关系,比如有哪些schema item(即表名、列名)被用户在question中精确/部分提及,这里的这种关系与RAT-SQL的处理一样,都是使用了n-gram匹配。

Question Dependency Structure

问句的各个token之间存在着句法依存关系,这个关系也是过去工作中常常被忽略掉的。如下图所示,

image.png

Coreference Between Questions

多轮的Text-to-SQL中存在着丰富的语义指代现象,如上图2所示,用户在第2,3轮中所说的they就指的是第1轮问句中的studens。本文也是最早将这种关系显式的加入到模型中的工作(CQR-SQL也用到了,不过晚了几天)。

Database Content Mentions

这个关系指的是哪些数据库的值被用户精确/部分提及,因为有时用户可能不会明确的提及某一个column的名字,而是提到了其中的某个value,这个就需要充分利用数据库的database content,这里也是使用了和Bridge模型相似的操作,将匹配到的content以[v]的方式追加到对应的column后。

4.3 关系传播

一切关系处理完毕后,还有一个问题需要解决,即目前所有的关系都是在word/phrase层面进行分析的,而向T5这一类PLM,绝大多数都使用的BPE分词,所以会造成一种粒度上的不匹配。过去的工作如RAT-SQL、LGESQL等都是使用mean pooling, attentive pooling, 或者BiLSTMs来进行Embedding的聚合。而这里,作者为了不破坏T5的Embedding的表示能力,采用了一种相反的方式,即将word/phrase层面的relation“传播”到token层面,这确保尽可能的保留T5的Embedding性能。

5 实验

作者在目前的经典Text-to-SQL数据集Spider、SparC和CoSQL上都进行了测试,并取得全部SOTA的表现。

下图展示了SParC上的实验结果,可以看到RASAT在不使用PICARD时已经“碾压式”的超过了各种方法,结合PICARD后更是大大拉开了差距。

image.png

在CoSQL上也是差不多的表现,如下图所示:

image.png

而在单轮的Text-to-SQL数据集SPider和Spider-realistic上则是也有着一定的提升:

image.png

image.png

同时,作者还进行了一系列消融实验:

表7展示了不同SQL难度下的T5-3B和RASAT的表现情况,可以看到,不论是简单的问题还是复杂的问题,RASAT的表现均超过了T5-3B。

image.png

表8则展示了不同size的T5模型对最终性能的影响,可以看到,使用T5的size越大,性能的提升也越高,而且以这种趋势来看,使用更大的模型(如T5-11B)将会取得更大的提升。

表9和表10则分别在单轮、多轮数据集上对提出的5大类关系分别进行了消融对比,可以看到,这些关系都对最终结果有一定贡献。

image.png

6 总结

本文提出了RASAT,一个关系感知自我注意增强T5模型,用于文本到SQL的生成。与以往的工作相比,RASAT可以在顺序T5模型中引入各种结构关系。不同于更常见的微调原始模型或使用提示调优的方法,本文提出增强编码器中的自我注意模块,并向模型引入新的参数,同时仍然能够利用预先训练的权重。在三个最常见的文本到SQL基准测试中,RASAT取得了最先进的性能,特别是在执行精度方面。

附录

参数量

表11展示了RASAT相比于T5-3B的参数量变化,可以看到,增加非常少(小于0.01%),却带来了极大的提升,这也说明了所设计模型的优越性。

image.png

案例研究

同时,作者也给出了几个Case study的例子,

image.png

可以看到,RASAT相比于原始的T5-3B,对于上下文的利用更加好。