[论文阅读] SADGA: Structure-Aware Dual Graph Aggregation Network for Text-to-SQL

"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 之间的映射。

文章提到:已有模型面临泛化弱的问题,导致的原因有以下两点:

  1. Question 和 schema 之间的结构差异
  2. 高度依赖预定义模型可能会导致不合适的链接或者是潜在链接无法识别

为了缓解以上提及到的两个问题,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 细节👇

  1. global graph linking ------ 查询节点与另一个图的关键节点计算注意力
  2. local graph linking ------ 计算对偶图上每个关键节点的邻居节点的注意力
  3. dual-graph aggregation mechanism ------ 聚合global和 local graph link 的结果,以获得问题图和模式图中节点的统一结构化表示。第一个门控是将全局信息和局部信息进行融合,第二个门控系统是对新学习的学习和原始数据进行融合。

汇总起来就是下图:

相关推荐
zhangchaoxies20 小时前
CSS如何实现响应式弹性网格布局_配合media query修改flex-wrap属性
jvm·数据库·python
霖霖总总20 小时前
[Redis小技巧32]Redis分布式锁的至暗时刻:从原理演进到时钟跳跃的终极博弈
数据库·redis·分布式
Polar__Star21 小时前
C#怎么操作Chart图表控件 C#如何用WinForms Chart控件绑定数据绘制统计图表【控件】
jvm·数据库·python
2401_8971905521 小时前
CSS如何制作数字滚动效果_利用transform位移数字
jvm·数据库·python
我叫黑大帅21 小时前
如何排查 MySQL 慢查询
后端·sql·面试
一 乐21 小时前
电影院|基于springboot + vue电影院购票管理系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·论文·毕设·电影院购票管理管理系统
1.14(java)21 小时前
Spring核心:IoC与DI详解
数据库
运维 小白1 天前
PostgreSQL高可用(Patroni + etcd + Keepalived)
数据库·postgresql·etcd
2301_813599551 天前
HTML图片怎么用UnoCSS对齐_UnoCSS原子化CSS图片对齐实战
jvm·数据库·python
m0_377618231 天前
c++怎么在不加载整个大文件的情况下获取其SHA256校验值【进阶】
jvm·数据库·python