LGESQL: Line Graph Enhanced Text-to-SQL Model with Mixed Local and Non-Local Relations
笔记整理:郭心南
来源:ACL2021
链接:https://arxiv.org/abs/2106.01093
Github地址:https://github.com/rhythmcao/text2sql-lgesql
本文主要关注多表关联下的自然语言转换SQL语句(Text-to-SQL)的工作,在已有的数据库中,根据描述查询内容的自然语言问句来生成相应的SQL语句用于检索,其中表与表之间存在外键的关联。
为了更好建模问题与数据库schema之间,以及schema内部 的关系,本文提出了一种结合线性有向图以及普通有向图的Text-to-SQL模型(Line Graph Enhanced Text-to-SQL Model),通过引入线性有向图,在简化图的同时突出边信息。同时本文还设计了图修剪的辅助任务,并且对局部图特征和非局部图特征进行表示上的区分。
目前已经有多个工作提出用有向图的方法来构建问题与数据库schema内部之间的关系,并用图神经网络(GNN)来进行编码。然而这些方法普遍存在两个问题:
1)无法很好的找出整个查询所涉及的路径;
2)针对图中每个节点,没有对局部邻居以及非局部邻居进行区分。并且这些方法在图表征上比较注重节点的表示,而忽略了边中大量存在的语义信息。
•线性有向图的构建
线性有向图中的节点和边分别是普通有向图中的边和节点,对普通有向图中顺序连接的边,在线性有向图中用有向边连接,而对于没有连接关系的边,则在线性有向图中不添加边。这种构图方法一方面增强了普通有向图中边的信息的使用,另一方面线型图能很好的找到查询所相关的主路径。
•模型
在模型方面,本文使用了两个关系图注意力神经网络(Duel Relation Graph Attention Network,简称Duel RGAT),这两个RGAT分别对普通有向图和线性有向图进行编码。
其中RGAT^n和RGAT^e分别用于普通有向图和线性有向图,X^l和Z^l分别表示第层RGAT中普通有向图和线性有向图的矩阵表示;Z_{nlc}表示线性有向图中非局部邻居部分的图;G表示RGAT的层。
RGAT的前向传播过程如下:
其中W是参数矩阵,H表示列的个数,FFN表示前向传播网络,N_i^n表示对节点v_i^n相应的表示,n表示table的序号,i表示列的序号,\phi表示对关系获取相应的向量表示。
在RGAT^n前向传播时,会使用RGAT^e中的表示,在这个过程中,本文采用了动态与静态相结合的方式。即对于RGAT^n中的某一节点来说,它会使用RGAT^e中局部邻居节点实时更新的向量表示,即动态;同时对于非局部邻居节点,它会使用预训练模型或者GloVe中的Embedding向量,即静态。
•图修剪
在主要的SQL生成任务的同时,本文还提出了图修剪的辅助任务,用于提升模型对自然语言问题相关联的schema部分的识别能力。这里采用的是分类,即对候选schema中的所有节点采用二分类的方式来判断当前节点是剪裁还是保留。
本文的实验主要在Spider数据集上进行验证,并根据不使用预训练模型,实用泛用性预训练模型,和实用text-to-SQL领域特定的预训练模型来与已有办法进行对比。该方法目前结合ELECTRA结合能达到Spider的SOTA。
OpenKG
OpenKG(中文开放知识图谱)旨在推动以中文为核心的知识图谱数据的开放、互联及众包,并促进知识图谱算法、工具及平台的开源开放。
点击阅读原文,进入 OpenKG 网站。