【text2sql】新模型架构RESDSQL取得了SOTA效果

news2024/11/20 2:38:09

这篇论文的标题是《RESDSQL: Decoupling Schema Linking and Skeleton Parsing for Text-to-SQL》,作者是来自中国人民大学信息学院,发表于2023年的AAAI。论文的主要贡献在于提出了RESDSQL框架,该框架通过解耦模式链接和骨架解析来提高Text-to-SQL任务的性能和鲁棒性。作者通过在Spider数据集上的实验验证了他们的方法,当时取得了SOTA效果。

模型概述

作者将Text-to-SQL任务视为一个翻译任务,可以使用编码器-解码器(transformer)模型来解决。为了应对现有的挑战,他们通过在输入序列中注入最相关的模式项,以及在输出序列中加入SQL骨架,从而提出了排名增强的编码器(Ranking-enhanced Encoder)和骨架感知的解码器(Skeleton-aware Decoder)。
在这里插入图片描述

排名增强编码器(Ranking-Enhanced Encoder)

目的:减少编码器输入中的所有模式项,只考虑最相关的模式项。
方法:设计了一个交叉编码器来同时对表格和列进行分类,并基于分类概率对它们进行排名。
输入:将数据库的模式项序列化成默认顺序的模式序列,并与问题拼接形成输入序列。
编码模块(Encoding Module):使用RoBERTa模型对输入序列进行编码,并通过池化模块将每个模式项的输出嵌入表示为一个整体。
列增强层(Column-Enhanced Layer):为了解决某些问题只提及列名而不提及表名的问题,提出了列增强层来将列信息注入到相应的表嵌入中。
交叉编码器的损失函数(Loss Function of Cross-Encoder):使用焦点损失(focal loss)来解决训练数据中标签分布高度不平衡的问题。

骨架感知解码器(Skeleton-Aware Decoder)

目的:将SQL生成分解为两个步骤:(1) 基于问题语义生成SQL骨架;(2) 从输入序列中选择所需的“数据”(即表、列和值)来填充骨架的插槽。
方法:不直接生成目标SQL查询,而是鼓励解码器先生成SQL查询的骨架,然后继续生成SQL查询。
损失函数:使用序列生成的损失函数,基于Transformer解码器的自注意力机制,先生成骨架,然后生成SQL查询。

消融研究(Ablation Studies)

列增强层:证明了列增强层在注入人类先验知识到交叉编码器中是有效的。
焦点损失:证明了焦点损失在解决训练数据中标签不平衡问题上的有效性。
排名模式项:证明了排名增强编码器在模式链接中的关键作用。
骨架解析:证明了骨架感知解码器在简化解码步骤中的作用。

实验补充

  • 数据集:在Spider及其三个变体(Spider-DK、Spider-Syn和Spider-Realistic)上进行实验。
  • 评估指标:使用精确匹配(EM)和执行准确度(EX)两个指标来评估性能。
  • 训练:分两个阶段训练RESDSQL。第一阶段训练交叉编码器对模式项进行排名,第二阶段训练seq2seq模型。
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2199877.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

开源商城系统crmeb phpstudy安装配置

BOSS让我最快时间部署一套开源商场系统,今天就以crmeb为例。 快速部署在linux中我会首选docker,因为我要在windows中部署,本文就选用phpstudy集成环境做了。 什么是crmeb 我从官网摘点: CRMEB产品与服务 CRMEB通过将CRM&#x…

从零开始学习Vue3

1、Vue3特点:更多的API特性;体积更小,速度更快;解决遗留问题;更加强壮。 2、通过全面学习Vue3,新手与老手的收获: 新手—如何去使用Vue完成项目的开发 老手—深度理解特性背后的原理 3、达到学习…

AVL树学习笔记

目录 1.AVL树的概念 2.AVL树的实现 2.1AVL树的结构 2.2 AVL树的插入 2.2.1 AVL树插入的大致过程 2.2.2 平衡因子的更新 2.2.3 插入节点及更新平衡因子的代码实现: 2.3 旋转 2.3.1 旋转的原则 2.3.2 右单旋 2.3.3 左单旋 2.3.4 左右双旋 2.3.5 右左双旋…

18、电科院FTU检测标准学习笔记-高低温性能试验

作者简介: 本人从事电力系统多年,岗位包含研发,测试,工程等,具有丰富的经验 在配电自动化验收测试以及电科院测试中,本人全程参与,积累了不少现场的经验 ———————————————————…

第二百七十二节 JPA教程 - JPA查询Is Empty示例

JPA教程 - JPA查询Is Empty示例 IS EMPTY运算符是IS NULL的逻辑等价物,但是对于集合。 查询可以使用IS EMPTY运算符或IS NOT EMPTY来检查集合关联路径是否解析为空集合或至少有一个值。 我们可以使用EMPTY来检查属性是否为空。 以下JPQL显示如何使用EMPTY获取员工…

解压缩软件哪个好?不同场景下的最佳选择

解压缩软件在日常工作与生活中发挥着至关重要的作用,从简单的文件解压到处理大型项目,选择一款适合自己的解压缩软件能够大幅提高工作效率。 面对众多解压缩工具,如WinRAR、7-Zip、解压专家、PeaZip等,如何根据不同的使用场景选择…

基于京东:HotKey实现自动缓存热点Key!!!

一.引言 某些热点数据,我们提前如果能够预判到的话,可以提前人工给数据加缓存,也就是缓存预热,将其缓存在本地或者Redis中,提高访问性能同时,减低数据库压力,也减轻后端服务的压力。但是&#…

imageJ 将多图中的同一条划线数据用曲线展示

1、导入图片,将所需的图片放进同一个文件夹,按顺序命名 2、划线 3、导出数据及画曲线 1)得到单图的曲线上的图像数据:选中图片 -----> ctrl k 2)将多张图像的同一条曲线位置的图像数据在同一数轴上画出曲线 步骤…

SpringBoot中applicaiton.properties转换成application.yml 插件

点击idea中的File----->点击setting----->点击Plugins-----> 输入 Convert Yaml and Properties File ----->然后Install下载 -----> 点击OK应用 最后选择Application.properties----->右击Convert YAML and properties File----->即转换成功了

VUE项目与原生Javascript Js功能模块的整合-政府项目涉及Ukey使用和开发

一、VUE项目与原生Javascript Js功能模块的整合 因为产品要整体做三级等保验证,而等保需要做密码安全评价(密评),最终的方案就是需要使用 Ukey 来登录管理后台,而这最终涉及在我们的VUE项目中去调用第三方 UKEY 厂商提…

浙大数据结构:08-图8 How Long Does It Take

这道题算是较为简单的拓扑排序题&#xff0c;难度不大 机翻 1、条件准备 n,m为n个结点&#xff0c;m条边。 tim数组存到该结点完成的最早时间&#xff0c;会一点点更新 graph存有向边的时间 indegree数组存每个结点的入度 #include <iostream> #include <vector&g…

扫描电镜是用来测什么的?

扫描电镜是一种用于对样品进行微观尺度形貌观测和分析的仪器。它能够提供高分辨率的图像&#xff0c;帮助科学家和工程师了解样品的微观结构和特性。 一、扫描电镜的一般测量功能 微观形貌观测 扫描电镜可以清晰地观察到样品表面的微观形貌&#xff0c;如颗粒的形状、大小、…

【Oracle APEX开发小技巧9】通过页面设置文本大写避免upper()函数转换占用额外资源

进行规范改造登录函数和存储过程时&#xff0c;发现有些应用的登录函数/存储过程中有upper()函数的使用&#xff0c;因为登录时输入工号&#xff0c;默认无更改&#xff0c;为了与数据库中存储的数据对应&#xff0c;通过upper()将其文本中字母设置为大写。 若要解决这个问题&…

C++初阶---C++入门(下)

目录 一、内联函数 1.内联函数的定义与底层机制 0x01.内联函数的定义 0x02.内联函数的底层机制 2.内联函数的优缺点 优点&#xff1a; 缺点&#xff1a; 3.内联函数的使用建议 4.内联函数的注意事项 二、auto关键字&#xff08;C11&#xff09; 1.代码示例 2.auto使…

flask项目框架搭建

目录结构 blueprints python包&#xff0c;蓝图文件&#xff0c;相当于路由组的概念,方便模块化开发 例如auth.py文件 from flask import Blueprint, render_templatebp Blueprint("auth", __name__, url_prefix"/auth")bp.route("/login") d…

李沐 X 动手学深度学习 深度学习介绍 学习笔记

x轴是不同的模式&#xff1a;符号学---概率模型---机器学习y轴是我们想做的东西&#xff08;问题领域&#xff09;&#xff1a;感知&#xff08;了解这是什么东西&#xff0c;能看见这个物体&#xff09;---&#xff08;做&#xff09;推理&#xff08;基于我看到的东西想象未来…

揭秘猫咪掉毛的真实原因有哪些?掉毛飞毛宠物空气净化器来救援!

作为三猫家庭&#xff0c;日常家里的毛发、异味一直是困扰我很久的难题。最近窗外的世界柳絮满天飘&#xff0c;家里猫毛满飞&#xff0c;养猫家庭应该都不陌生吧&#xff0c;鼻子嘴巴甚至是眼睛里总感觉有猫毛。不管猫砂换的多勤快&#xff0c;也总能闻到阵阵臭味&#xff01;…

【git】git add时warning:LF will replaced by CRLF

git add时warning&#xff1a;LF will replaced by CRLF 一&#xff0c;问题现象二&#xff0c;问题原因&解决方法 一&#xff0c;问题现象 二&#xff0c;问题原因&解决方法 这个警告的原因是 Git 在进行文件添加操作时&#xff0c;发现行尾结束符不一致。 在不同的…

Klick‘r3.0.4 |智能自动点击,高效省力

Klick’r 是一款专为 Android 设计的开源自动点击工具&#xff0c;能识别屏幕上的图像并进行相应操作。支持游戏中的自动点击、应用测试及日常任务自动化。 大小&#xff1a;27M 百度网盘&#xff1a;https://pan.baidu.com/s/1881Zfevph6_2Zhdc-H_R4A?pwdolxt 夸克网盘&…

定点数和浮点数的详细介绍(一)定义、范围、位宽

1.定点数 1.1定点数描述 定点数包括定点小数(纯小数)、定点整数(纯整数)、整数和小数位数固定的实数。 1.2定点小数: 小数点默认在符号位后面,首位为符号位,其他为数值位(在用二进制代表小数时,例如0xFF,就表示0.5+0.25+0.125+0.0625+0.03125........) 例如,用…