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

news/2024/6/17 12:19:29 标签: 论文阅读, sql, 数据库, text2sql, nlp

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

汇总起来就是下图:
在这里插入图片描述


http://www.niftyadmin.cn/n/5028812.html

相关文章

零基础VB6无壳P-CODE逆向分析(VB Decompiler应用与避坑)

> 前言 最近从朋友那里拿到了一个加密狗授权的软件安装包,秉承着LCG的精神,开启了逆向之路,经过查壳和综合分析确定是VB6编写的程序(这年头使用VB6开发商业程序的还真少见),作为一名C# Winform的业余程序员,靠着C#的知识勉强分析个大概. > 授权简介 软件共分三种授权模…

ChatGPT 或其它 AI,能用在文书创作上吗?

新的申请季已经正式开始,一些热门项目的ED截止日期也不再遥远,因此很多准留学生们都已经开始了关于文书的创作。 而随着科技的不断发展,以ChatGPT为首的一众AI工具也作为一种辅助手段愈发融入了我们的生活。 那么不免就会有一些同学在准备申…

[SQL Server]在应使用条件的上下文(在 ‘)‘ 附近)中指定了非布尔类型的表达式,查询时间大于某个数值时

这种条件查询条件里面不要有空格&#xff0c;一个也不要有 这种条件查询条件里面不要有空格&#xff0c;一个也不要有 $giftsDb::table(drawgot)->where(disabtime,<,"2030-01-03")->select();

《C和指针》笔记26: 函数参数调用

函数参数调用有两种方式&#xff1a;传值调用和传址调用。 C的规则很简单&#xff1a;所有参数都是传值调用。 但是&#xff0c;如果被传递的参数是一个数组名&#xff0c;并且在函数中使用下标引用该数组的参数&#xff0c;那么在函数中对数组元素进行修改实际上修改的是调用…

JAVA使用wkhtml 将html转成pdf或Image文件

linux的wkhtml 安装&#xff1a; linux安装wkhtmltopdf&#xff08;清晰明了&#xff09;_sout-lanys的博客-CSDN博客 win的wkhtml安装&#xff1a; 直接下载&#xff1a;wkhtmltopdf html 必须加UTF-8编码 <head> <meta charset"utf-8"> </hea…

MYBATIS-PLUS入门使用、踩坑记录

转载&#xff1a; mybatis-plus入门使用、踩坑记录 - 灰信网&#xff08;软件开发博客聚合&#xff09; 首先引入MYBATIS-PLUS依赖&#xff1a; SPRING BOOT项目&#xff1a; <dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus…

牛客: BM7 链表中环的入口结点

牛客: BM7 链表中环的入口结点 文章目录 牛客: BM7 链表中环的入口结点题目描述题解思路题解代码 题目描述 题解思路 用一个哈希表存储链表节点,遍历链表,将节点加入哈希表,如果该节点在哈希表中出现过,意味着该节点是入口节点 题解代码 package mainfunc EntryNodeOfLoop(p…

SpringMvc静态资源映射

目录 &#xff08;1&#xff09;配置静态资源筛查器 &#xff08;2&#xff09;配置静态资源映射器 &#xff08;3&#xff09;配置默认Servlet处理静态资源 当在DispatcherServlet的<url-pattern>中配置拦截 “/” 时&#xff0c;除了jsp文件不会拦截以外&#xff0c…