“SADGA: Structure-Aware Dual Graph Aggregation Network for Text-to-SQL” 是一篇 text2sql 领域的论文,发布于 NeurIPS 2021。
原文链接:https://arxiv.org/abs/2111.00653
项目代码链接:https://github.com/DMIRLAB-Group/SADGA
总体概括文章内容就是 —— 文章使用图结构作为question和schema之间的统一编码方法,还设计了一种结构感知聚合方法去学习 question-graph 和 schema-graph 之间的映射。
文章提到:已有模型面临泛化弱的问题,导致的原因有以下两点:
- Question 和 schema 之间的结构差异
- 高度依赖预定义模型可能会导致不合适的链接或者是潜在链接无法识别
为了缓解以上提及到的两个问题,SADGA使用关系节点代替边关系,以及使用统一的图神经网络对 question 和 schema 统一编码,解决结构差异问题;SADGA 使用三种链接机制识别 question 和 schema 之间的链接 —— global graph linking、local graph linking 和 dual—graph aggregation mechanism
整个模型架构是encoder-decoder
- encoder包含 SADGA 和 RAT 两个部分,其工作流程为:
- ① 基于上下文结构和依赖结构构建 question-graph 以及基于数据库特定关系构建 schema-graph
- ② 使用图神经网络分别对 question-graph 和 schema-graph 进行编码,其中,将边关系使用关系节点表示,降低编码难度
- ③ structure aware aggregation通过两个阶段的链接来学习跨越对偶图的对齐,并将信息以基于门控的机制进行聚合,以获得对偶图中每个节点的统一表示
- ④ RAT通过借助14种预定义的关系对问题单词和表/列进行编码来进一步统一SADGA学习到的表示。
- decoder 与 RATSQL 相同,先将输入转化为 ACTION 序列,使用 LSTM 将 ACTION 序列转化为 AST,再将 AST 转化为 SQL 序列
structure aware dual graph aggregation network 细节👇
- global graph linking —— 查询节点与另一个图的关键节点计算注意力
- local graph linking —— 计算对偶图上每个关键节点的邻居节点的注意力
- dual-graph aggregation mechanism —— 聚合global和 local graph link 的结果,以获得问题图和模式图中节点的统一结构化表示。第一个门控是将全局信息和局部信息进行融合,第二个门控系统是对新学习的学习和原始数据进行融合。
汇总起来就是下图: