当前位置: 首页 > news >正文

【Text2SQL 论文】SeaD:使用 Schema-aware 去噪训练的 end2end 的 Text2SQL

论文:SeaD: End-to-end Text-to-SQL Generation with Schema-aware Denoising

⭐⭐

NAACL 2022, arXiv:2105.07911

本论文提出 SeaD 模型,使用 schema-aware 的去噪方法来训练一个 end2end、seq2seq 的 Transformer 模型来实现 Text2SQL。

一、论文速读

给定一个 question Q Q Q 和一个 schema S S S,我们期望生成相应的 SQL 查询 Y Y Y

1.1 model 的输入输出

SeaD 的输入输出如下图所示:

在 input 中,将 table headers 的各个 column name 前面加一个 <col n> 表示第几个 column,然后跟着 column name 和 type,比如对于 week 字段,就是 <col0>week:int

在期待的 output 中,SQL 的 column name 使用 “`” 这个 token 围绕,并将 name 换为分隔符 <col n>,如上图所示。

1.2 Transformer with Pointer

该工作使用 Transformer 作为 backbone 来做 seq2seq 任务。

为什么使用 Transformer with Pointer?在 Text2SQL 任务中,大多数的 schema 和 value mentions 可以从 input seq 中抽取出来,所以在 Transformer 架构的最上面加了一个 Hybrid Pointer Generator Network 来生成 token,生成的 token 来自于 target vocabulary V V V 或者 copy from the input text。

target vocabulary V V V 由三个集合组合而成:

  • V q V_q Vq 表示 corpora token vocabulary
  • V c V_c Vc 表示 column token set
  • V s V_s Vs 表示可用的 SQL keywords

Transformer with Pointer 的具体思路可以参考原论文,这里做一个概述:使用 Transformer 中 decoder 生成的 h d e c h_{dec} hdec 计算出 target vocabulary V V V 中各个 token 的 unnormalized scores s c o r e s v scores_{v} scoresv 和 input seq 中各个 token 的 unnormalized scores s c o r e s s scores_{s} scoress,然后将两个 scores 合并为 s c o r e h y b r i d score_{hybrid} scorehybrid,最终输出的概率分布就是 P = s o f t m a x ( s c o r e h y b r i d ) P = softmax(score_{hybrid}) P=softmax(scorehybrid)

1.3 Schema-aware Denoising

与 masted LM 和其他去噪任务类似,这里提出了两个 schema-aware denoising 的训练方法:erosion 和 shuffle。

1.3.1 Erosion

参考上图,对 table schema S S S 中的 column name 做 erosion 操作,主要是做重排、增加和删除操作来引入噪声,同时 <col n> 分隔符保持不变。

如果一个 column 被删除但是生成的 SQL 需要使用它,则生成 SQL 中使用 <unk> 来替代,这能让 model 学会当 schema 信息不足时抛出 unknown exception。

1.3.2 Shuffle

参考上图,将 source query Q Q Q 中的提及的实体(question 和 SQL)重新排序,而 schema seq S S S 保持不变。这个 denoisiong objective 训练模型重构实体顺序正确的查询序列 Q Q Q

二、总结

实验在 test 结果上达到了 93 的准确率,但没有公开 code。但本文提出的思路还是值得学习的。

相关文章:

【Text2SQL 论文】SeaD:使用 Schema-aware 去噪训练的 end2end 的 Text2SQL

论文&#xff1a;SeaD: End-to-end Text-to-SQL Generation with Schema-aware Denoising ⭐⭐ NAACL 2022, arXiv:2105.07911 本论文提出 SeaD 模型&#xff0c;使用 schema-aware 的去噪方法来训练一个 end2end、seq2seq 的 Transformer 模型来实现 Text2SQL。 一、论文速读…...

python数据分析——apply 1

参考资料&#xff1a;活用pandas库 apply是指把函数同时作用于DataFrame的每一行或每一列。类似于编写一些跨每行或每列的for循环&#xff0c;并同时调用apply函数。 1、函数 函数是对python代码进行分组和复用的一种方法。如果某段代码会被多次使用&#xff0c;并且使用时是需…...

Spring Boot 项目统一异常处理

在 Spring Boot 项目开发中&#xff0c;异常处理是一个非常重要的环节。良好的异常处理不仅能提高应用的健壮性&#xff0c;还能提升用户体验。本文将介绍如何在 Spring Boot 项目中实现统一异常处理。 统一异常处理有以下几个优点&#xff1a; 提高代码可维护性&#xff1a;…...

安卓手机APP开发__网络连接性支持VPN

安卓手机APP开发__网络连接性支持VPN 安卓提供了API给开发者,来创建一个虚拟的私有网络(VPN)的解决方案. 根据这里的介绍,你能知道如何开发和测试你的针对安卓设备的VPN的客户端. 概述 VPN允许设备为了安全地连接网络,而没有物理性的连接在一个网络上. 安卓包括了一个内嵌的…...

Shopee单个商品详情采集

Shopee商品详情页数据采集实战 作为东南亚地区最大的电商平台之一,Shopee拥有超过3亿活跃用户。对于跨境电商企业、市场分析师等角色而言,从Shopee获取商品数据是非常有价值的。本文将介绍如何使用Python程序采集Shopee单个商品详情页数据。 1. 确定采集目标和技术方案 确定…...

深入研究Qt Meta - Object System

目录 先说RTTI 再说QMeta Object System 关于Q_OBJECT 这篇文章我打算研究一下QMetaObject System&#xff0c;也就是Qt自己构建起来的元对象系统。 先说RTTI 啥是RTTI&#xff1f;这是C编程里的一个常见术语&#xff0c;全称是&#xff1a;运行阶段类型识别&#xff08;Ru…...

web学习笔记(五十八)

目录 1. v-model 双向数据绑定 2. 事件修饰符 3. 路径别名 4. setup语法糖 4.1 语法糖的概念 4.2 setup语法糖 5. 配置代理服务器 1. v-model 双向数据绑定 v-model 双向数据绑定只能使用在表单标签&#xff1b; v-model双向数据绑定原理&#xff1a;采用 Object.de…...

精准安全运维,统信UOS服务器版V20(1070)漏洞修复指南丨年度更新

随着信息安全威胁的不断升级&#xff0c;操作系统的安全性已成为企业运维的关键要素。 为了确保业务运行环境的安全无忧&#xff0c;统信软件持续致力于技术创新和优化&#xff0c;并于日前重磅推出了统信UOS服务器版V20&#xff08;1070&#xff09;。该系统提供了高频补丁更…...

Vue3实战笔记(46)—Vue 3高效开发定制化Dashboard的权威手册

文章目录 前言Dashboard开发总结 前言 后台管理系统中的Dashboard是一种图形化的信息显示工具&#xff0c;通常用于提供一个特定领域或系统的概况。它可以帮助用户监控和分析数据&#xff0c;快速获取重要信息。可以帮助用户监控业务状况、分析数据、获取关键信息和管理资源。…...

MySQL为什么会选错索引

有的时候&#xff0c;我们加了索引&#xff0c;也不一定最终查询语句就能用上索引&#xff0c;因为Innodb要不要使用索引&#xff0c;该使用哪个索引是优化器决定的&#xff0c;它是根据成本&#xff08;代价&#xff09;预估来选择的&#xff0c;他会倾向于选择一个成本最低的…...

kafka调优参考建议 —— 筑梦之路

这里主要是从不同使用场景来调优&#xff0c;仅供参考。 吞吐量优先 吞吐量优先使用场景如采集日志。 1. broker配置调优 num.partitions&#xff1a;分区个数&#xff0c;设置为与消费者的线程数基本相等 2. producer配置调优 batch.size 批量提交消息的字节数&#xff0c;…...

Redis(十三) 事务

文章目录 前言事务的特性Redis事务的执行原理Redis中使用事务WATCH UNWATCH实现乐观锁 前言 前面我们学习 MySQL 的时候&#xff0c;肯定也学习了事务。事务是什么&#xff1f;给大家举个例子&#xff1a;假如我给朋友微信转账&#xff0c;我给他转了 100 块钱&#xff0c;当我…...

RK 11.0 多屏模式下修改鼠标进入方式

要求&#xff1a;主屏在左&#xff0c;副屏在右。这种排列情况下鼠标仅可通过主屏的最右侧移入副屏的最左侧&#xff0c;或从副屏的最左侧移入主屏最右侧。 1.RK默认设计 1.1 RK的代码设计是当sys.mouse.presentation1时&#xff0c;鼠标在屏幕边缘的时候就会移入另一个屏幕 …...

​​​【收录 Hello 算法】10.4 哈希优化策略

目录 10.4 哈希优化策略 10.4.1 线性查找&#xff1a;以时间换空间 10.4.2 哈希查找&#xff1a;以空间换时间 10.4 哈希优化策略 在算法题中&#xff0c;我们常通过将线性查找替换为哈希查找来降低算法的时间复杂度。我们借助一个算法题来加深理解。 Question 给…...

浅析部署架构中的GZone、RZone和CZone

在现代软件开发中&#xff0c;理解和应用各种技术概念是成功的重要因素。本文将详细介绍GZone、RZone和CZone三个概念&#xff0c;解释它们的定义、特点、功能及应用场景&#xff0c;并通过实际案例帮助读者更好地理解这些概念。 一、GZone 1.1 定义 GZone是指“Global Zone…...

【全开源】分类记账小程序系统源码(ThinkPHP+FastAdmin+UniApp)

基于ThinkPHPFastAdminUniAppvk-uView-uiVue3.0开发的一款支持多人协作的记账本小程序&#xff0c;可用于家庭&#xff0c;团队&#xff0c;组织以及个人的日常收支情况记录&#xff0c;支持周月年度统计。 &#xff1a;智能管理您的财务生活 一、引言&#xff1a;财务智能化…...

Android NDK系列(四)NDK的编译

Native工程一般会用到NDK&#xff0c;一般开发者使用的NDK是官方提供的&#xff0c;直接下载即可使用。在工作过程中一般很少要定义NDK&#xff0c;不过对于想了解NDK是怎么生成的&#xff0c;可以继续往下阅读。 Google提供了编译NDK的说明文档&#xff0c;地址为NDK编译&…...

Jenkins--从入门到入土

Jenkins–从入门到入土 文章目录 Jenkins--从入门到入土〇、概念提要--什么是CI/DI&#xff1f;1、CI&#xff08;Continuous Integration&#xff0c;持续集成&#xff09;2、DI&#xff08;DevOps Integration&#xff0c;DevOps 集成&#xff09;3、解决的问题 一、Jenkins安…...

文心一言 VS 讯飞星火 VS chatgpt (267)-- 算法导论20.2 2题

二、写出 PROTO-vEB-DELETE 的伪代码。通过扫描簇内的相关位&#xff0c;来更新相应的 summary 位。并且你实现的伪代码的最坏情况运行时间是多少&#xff1f;如果要写代码&#xff0c;请用go语言。 文心一言&#xff1a; 首先&#xff0c;让我们回顾一下vEB&#xff08;Van …...

C 语言设计模式(结构型)

文章目录 代理模式场景示例 门面模式场景示例 桥接模式场景示例 适配器模式场景示例 外观模式场景示例 享元模式场景示例 装饰器模式场景示例 组合模式场景示例 代理模式 C语言中&#xff0c;代理模式通常用于实现对象的间接访问。代理模式是一种结构型设计模式&#xff0c;它…...

瑞德克斯在手机端的表现稳不稳?是否适合随时查看行情?

瑞德克斯在手机端的表现稳不稳&#xff1f;是否适合随时查看行情&#xff1f;移动端是当下用户接触金融服务最频繁的入口之一。瑞德克斯在手机端的体验打磨上下了不少功夫&#xff0c;让常用功能可以在小屏幕上同样得到清晰、舒适的呈现。瑞德克斯的移动应用采用了简洁的导航设…...

GEO优化是不是免费引流方式

这个问题很多企业主会问&#xff0c;背后关心的是获客成本。要回答清楚&#xff0c;需要区分几个概念&#xff1a;流量获取本身是否付费、优化过程是否产生成本、长期来看性价比如何。GEO本身属于“自然流量”获取方式从本质上讲&#xff0c;GEO优化获取的流量是自然流量&#…...

GORM 标签详解(数据库字段映射核心)

很多人刚学 GORM&#xff1a; 会觉得&#xff1a; gorm:"primaryKey" gorm:"index" gorm:"not null"这些东西&#xff1a; 像“魔法字符串”。 其实&#xff1a; 它本质上是在告诉 GORM&#xff1a; 数据库这一列应该怎么创建也就是&#xff1a;…...

有哪些免费好用的在线论文排版工具值得推荐?

毕业季最让人头疼的&#xff0c;从来都不是论文内容创作&#xff0c;而是繁琐的格式排版 —— 标题层级错乱、目录更新失效、参考文献格式不规范、页眉页脚混乱…… 手动调整动辄耗费数小时&#xff0c;还容易反复返工。其实&#xff0c;多款免费好用的在线论文排版工具已能完美…...

OpenAI Assistant API vs 开源框架:创业者该如何选择技术栈?

OpenAI Assistant API vs 开源框架&#xff1a;创业者该如何选择技术栈&#xff1f; 作者&#xff1a;老周&#xff0c;连续AI创业者&#xff0c;前大厂AI架构师&#xff0c;专注分享AI创业落地实战经验 引言 痛点引入 过去一年我接触了至少20个AI创业团队&#xff0c;80%的团…...

入侵检测中可解释机器学习的局限与评估:超越特征重要性神话

1. 项目概述与核心问题在网络安全领域&#xff0c;入侵检测系统&#xff08;IDS&#xff09;正越来越多地依赖机器学习模型来识别恶意流量。这些模型&#xff0c;尤其是深度神经网络&#xff0c;虽然性能强大&#xff0c;但其内部决策过程往往像一个“黑盒”&#xff0c;难以理…...

Termux-X免Root移动渗透工作台实战指南

1. 这不是“手机装Kali”的噱头&#xff0c;而是真能干活的移动渗透工作台很多人第一次看到“Termux-X”和“Kali NetHunter免Root”这两个词组合在一起时&#xff0c;第一反应是&#xff1a;又一个标题党&#xff1f;毕竟过去几年里&#xff0c;“安卓跑Kali”“手机当渗透主机…...

跟着 MDN 学CSS day_13 :(深入理解CSS中的元素尺寸调整)

在网页布局的世界里&#xff0c;尺寸控制是一切视觉呈现的基础。一个元素到底应该占据多大的空间&#xff0c;是由内容决定还是由我们手动设定&#xff0c;在不同的设备和视口下又该如何自适应&#xff0c;这些问题贯穿于每一个 CSS 开发者的日常工作。MDN 的"在 CSS 中调…...

3分钟掌握Ditto:物联网设备管理的数字孪生革命

3分钟掌握Ditto&#xff1a;物联网设备管理的数字孪生革命 【免费下载链接】ditto Eclipse Ditto™: Digital Twin framework of Eclipse IoT - main repository 项目地址: https://gitcode.com/gh_mirrors/ditto6/ditto 还在为管理成千上万的物联网设备而头疼吗&#x…...

如何快速配置游戏存档编辑器:面向玩家的完整指南

如何快速配置游戏存档编辑器&#xff1a;面向玩家的完整指南 【免费下载链接】SPT-AKI-Profile-Editor Программа для редактирования профиля игрока на сервере SPT-AKI 项目地址: https://gitcode.com/gh_mirrors/sp/SPT…...