[论文阅读] 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 的结果,以获得问题图和模式图中节点的统一结构化表示。第一个门控是将全局信息和局部信息进行融合,第二个门控系统是对新学习的学习和原始数据进行融合。

汇总起来就是下图:

相关推荐
AwhiteV25 分钟前
利用图数据库高效解决 Text2sql 任务中表结构复杂时占用过多大模型上下文的问题
数据库·人工智能·自然语言处理·oracle·大模型·text2sql
m0_595199851 小时前
Redis(以Django为例,含具体操作步骤)
数据库·redis·缓存
爱尚你19931 小时前
MySQL 三大日志:redo log、undo log、binlog 详解
数据库·mysql
小猿姐2 小时前
KubeBlocks AI:AI时代的云原生数据库运维探索
数据库·人工智能·云原生·kubeblocks
NocoBase4 小时前
10 个开源工具,快速构建数据应用
数据库·低代码·开源
麻辣清汤4 小时前
结合BI多维度异常分析(日期-> 商家/渠道->日期(商家/渠道))
数据库·python·sql·finebi
Kan先生6 小时前
对象存储解决方案:MinIO 的架构与代码实战
数据库·python
超级迅猛龙6 小时前
保姆级Debezium抽取SQL Server同步kafka
数据库·hadoop·mysql·sqlserver·kafka·linq·cdc
杨过过儿6 小时前
【Task02】:四步构建简单rag(第一章3节)
android·java·数据库
····懂···7 小时前
攻克PostgreSQL专家认证
数据库·postgresql