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

【Text2SQL 经典模型】HydraNet

论文:Hybrid Ranking Network for Text-to-SQL

⭐⭐⭐

arXiv:2008.04759

HydraNet 也是利用 PLM 来生成 question 和 table schema 的 representation 并用于生成 SQL,并在 SQLova 和 X-SQL 做了改进,提升了在 WikiSQL 上的表现。

一、Intro

论文总结了 WikiSQL 上做 Text2SQL 的 3 个挑战:

  1. 如何融合来自 NL question 和 table schema 的信息,这是由 encoder 处理的;
  2. 如何保证输出的 SQL 查询是可执行且准确的,这是由 decoder 处理的;
  3. 如何利用 PLM。

本篇模型主要解决第 3 个问题,同时顺带解决了前两个问题。本论文认为,之前的方法没有很好地将 task model 和 PLM 对齐,从而导致 PLM 的力量被 task model 削弱,比如 SQLova 和 X-SQL 都是在 BERT 编码结果上施加了另外的 pooling 层(如添加 LSTM 操作等),这带来了信息丢失和不必要的复杂性。但本文是充分利用 BERT 的功能,认为 [CLS] 的 output representation 捕获了 question 和 columns 的所有融合信息,这也正是 decoder 所需要的 column vector,因此,本文工作没有应用进一步的 pooling 或者额外的复杂曾,这让模型结构更加简单高效。

二、HydraNet

HydraNet 将 Text2SQL 视为一个多任务学习问题。

2.1 PLM 的 encode

给定一个 question q q q 和候选列 c 1 ∼ c k c_1 \sim c_k c1ck

针对每一个 column c i c_i ci,我们为它构造一个 pair:

其中:

  • Concat 表示字符串的拼接,本文使用空格连接
  • ϕ c i \phi_{c_i} ϕci 表示 column c i c_i ci 的类型:string、real 等
  • t c i t_{c_i} tci 表示 c i c_i ci 的 table name

然后,将 concat 的拼装结果作为 x,question 作为 y,得到下面的 token 序列:

将上面的 token seq 输入给 BERT 做编码,从而得到 seq representation。

2.2 Tasks

本文考虑没有嵌套结构的 SQL query,这里将一个 SQL 表述为以下的形式:

也就是一个 SQL 包括 SELECT、FROM、WHERE 这三个部分。

我们将上面的 SQL query 中的 objects 分为两类:

  1. 与特定 column 有关联的 objects:比如 aggregator、value text span
  2. 与特点 column 无关的全局 objects:比如 select-num(select 从句的个数)和 where-num(where conditions 的个数)
2.2.1 对与 column 有关的 objects 的预测

对于每个 col-question 的 pair ( c i , q ) (c_i, q) (ci,q),对于上面 1 中的与 column 有关的 objects 的预测可以被视为对 sentence pair 的分类或者 QA task。

使用 BERT 输出的 seq representation 来做预测:

  • 对于一个 aggregator a j a_j aj 的预测:将 h [ C L S ] h_{[CLS]} h[CLS] 经过一个仿射变换再经过一个 softmax 后做分类。
  • 对一个 condition operator o j o_j oj 的预测:也是将 h [ C L S ] h_{[CLS]} h[CLS] 经过一个仿射变换再经过一个 softmax 做分类。
  • 对 value text span 的 start index 和 end index 的预测:分别计算 question 中每个 token 作为 start index 和 end index 的概率,并选择概率最大的作为 start 和 end 形成 text span。
2.2.2 对于与 column 无关的 objects 的预测

为了预测 select-num n s n_s ns,计算出概率 P ( n s ∣ q ) P(n_s | q) P(nsq),然后能够让这个概率最大的 n s n_s ns 值就是预测的结果。这个概率的计算公式为:

其中, P ( n s ∣ c i , q ) P(n_s | c_i, q) P(nsci,q) 可以被视为一个 sentence pair 的分类; P ( c i ∣ q ) P(c_i | q) P(ciq) 可以被视为 column c i c_i ci 和 question q q q 的 similarity,它的具体计算可以参考下一节。

n s n_s ns 类似,where-num n w n_w nw 的预测方式也是几乎一模一样。

2.2.3 Column Ranking

对于所有候选的所有 columns,我们需要计算出两个 rank:SELECT-Rank 和 WHERE-Rank,是根据是否存在于 SELECT 或 WHERE 语句中的分数的排名。

对于 SELECT-Rank 的排名分数的计算方式如下:

也就是利用 h [ C L S ] h_{[CLS]} h[CLS] 来计算。同样,WHERE-Rank 的分数计算也是如此。

以上这个公式也就是计算出的 P ( c i ∣ q ) P(c_i | q) P(ciq),可以用于上一节的计算。

基于排名分数,就可以做排名了。做出排名后,SELECT-Rank 的前 select-num 就可以作为选出的 SELECT 中的 columns 结果了,另外的 WHERE 的 columns 的选择也是如此。

2.3 Execution-guided decoding

论文还使用 Execution-guided decoding 来防止生成的 SQL 出现错误。

三、总结

在 WikiSQL 上做了实验,发现 HydraNet 的性能优于其他方法。尤其值得注意的是,其表现甚至与使用了 MT-DNN 作为 PLM 的 X-SQL 效果一样好,尽管 MT-DNN 明显比 BERT-Large 要好。

另外,HydraNet 的架构更加简单,参数也更少,它只在 PLM 的输出中增加了 Dense 层。这样得到的 HydraNet 泛化性更好。

总的来说,本文提出的 HydraNet 更好的利用了 BERT-style 的 PLM,保持了架构的简单,并在 WikiSQL 排行榜上表现出很好的效果。但是,HydraNet 所支持的语法仍较为简单,仍然需要扩展。

相关文章:

【Text2SQL 经典模型】HydraNet

论文:Hybrid Ranking Network for Text-to-SQL ⭐⭐⭐ arXiv:2008.04759 HydraNet 也是利用 PLM 来生成 question 和 table schema 的 representation 并用于生成 SQL,并在 SQLova 和 X-SQL 做了改进,提升了在 WikiSQL 上的表现。 一、Intro…...

Mysql-根据字段名查询字段在哪些表里

SELECT * FROM information_schema.COLUMNS WHERE COLUMN_NAMElabel_name;...

牛逼!50.3K Star!一个自动将屏幕截图转换为代码的开源工具

1、背景 在当今快节奏的软件开发环境中,设计师与开发者之间的协同工作显得尤为重要。然而,理解并准确实现设计稿的意图常常需要耗费大量的时间和沟通成本。为此,开源社区中出现了一个引人注目的项目——screenshot-to-code,它利用…...

八种单例模式

文章目录 1.单例模式基本介绍1.介绍2.单例模式八种方式 2.饿汉式(静态常量,推荐)1.基本步骤1.构造器私有化(防止new)2.类的内部创建对象3.向外暴露一个静态的公共方法 2.代码实现3.优缺点分析 3.饿汉式(静态…...

禅道密码正确但是登录异常处理

禅道密码正确,但是登录提示密码错误的异常处理 排查内容 # 1、服务器异常,存储空间、数据库异常 # 2、服务异常,文件丢失等异常问题定位 # 1、df -h 排查服务器存储空间 # 2、根据my.php排查数据库连接是否正常 # 3、修改my.pho,debugtrue…...

Go微服务: Nacos的搭建和基础API的使用

Nacos 概述 文档:https://nacos.io/docs/latest/what-is-nacos/搭建:https://nacos.io/docs/latest/quickstart/quick-start-docker/有很多种搭建方式,我们这里使用 docker 来搭建 Nacos 的搭建 这里,我们选择单机模式&#xf…...

基于Hadoop的城市公共交通大数据时空分析

基于Hadoop的城市公共交通大数据时空分析 “Spatio-temporal Analysis of Urban Public Transportation Big Data based on Hadoop” 完整下载链接:基于Hadoop的城市公共交通大数据时空分析 文章目录 基于Hadoop的城市公共交通大数据时空分析摘要第一章 引言1.1 研究背景1.2 …...

DNS服务的部署与配置(2)

1、dns的安装及开启 dnf install bind.x86_64 -y #安装 #Berkeley Internet Name Domain (BIND) systemctl enable --now named #启用dns服务,服务名称叫named firewall-cmd --permanent --add-servicedns #火墙设置 firewall-cmd --reload …...

MySql--SQL语言

目录 SQl---DDL 结构定义 创建、删除 数据库 代码 运行 设计表 数据类型 整数 浮点数 主键 约束 主键自增长 默认值 字段注释 创建、删除 表 代码 运行 代码 代码 运行 SQL---DML 数据操纵 插入数据 代码 运行 代码 运行 代码 运行 代码 …...

【网络安全】2030年十大新兴网络安全威胁

欧盟网络安全局(ENISA)已发布了一份全面的清单,列出了预计到2030年将影响数字领域的十大新兴网络安全威胁。 该预测是为期八个月的广泛研究的成果,融合了ENISA前瞻专家小组、CSIRTs网络以及欧盟CyCLONe专家的见解。 这项研究突显…...

python数据分析-CO2排放分析

导入所需要的package import numpy as np import pandas as pd import matplotlib.pyplot as plt import seaborn as sns import datetime %matplotlib inline plt.rcParams[font.sans-serif] [KaiTi] #中文 plt.rcParams[axes.unicode_minus] False #负号 数据清洗…...

2024宝藏工具EasyRecovery数据恢复软件免费版本下载

在这个数字化的时代,数据已经成为我们生活中的重中之重。无论是工作中的重要文件,还是手机中珍贵的照片,我们都依赖着这些数据。然而,数据丢失的情况时有发生,可能是误删,可能是设备故障,更可能…...

【EventSource错误解决方案】设置Proxy后SSE发送的数据只在最后接收到一次,并且数据被合并

【EventSource错误解决方案】设置Proxy后SSE发送的数据只在最后接收到一次,并且数据被合并 出错描述 出错原因与解决方案 出错描述 SSE前后端一切正常,但是fetchEventSource 的onmessage回调函数只在所有流都发送完毕后,才会执行一次。 前…...

如何在linux命令行(终端)执行ipynb 文件。可以不依赖jupyter

1.安装 runipy pip install runipy 2.终端运行 runipy <YourNotebookName>.ipynb 在终端命令行执行shell脚本&#xff0c;&#xff08;也可以在crontab 中执行&#xff09;&#xff1a; (base) [recommendapp-0-5-B-006 script]$ cat run1.sh #!/bin/bashcd /home/recom…...

基于YOLOv8的车牌检测与识别(CCPD2020数据集)

前言 本篇博客主要记录在autodl服务器中基于yolov8实现车牌检测与识别&#xff0c;以下记录实现全过程~ yolov8源码&#xff1a;GitHub - ultralytics/ultralytics: NEW - YOLOv8 &#x1f680; in PyTorch > ONNX > OpenVINO > CoreML > TFLite 一、环境配置 …...

驱动开发之新字符设备驱动开发

1.前言 register_chrdev 和 unregister_chrdev 这两个函数是老版本驱动使用的函数&#xff0c;现在新的 字符设备驱动已经不再使用这两个函数&#xff0c;而是使用 Linux 内核推荐的新字符设备驱动 API 函数。 旧版本的接口使用&#xff0c;感兴趣可以看下面这个博客&#…...

【JMU】21编译原理期末笔记

本拖延症晚期患者不知不觉已经有半年没写博客了&#xff0c;天天不知道在忙什么。 乘着期末周前赶紧先把编译原理上传了&#xff0c;我记得我这科是86分&#xff0c;有点小遗憾没上90&#xff0c;但是总体不错。 链接&#xff1a;https://pan.baidu.com/s/1gO8pT7paHv1lkM_ZpkI…...

就业信息|基于SprinBoot+vue的就业信息管理系统(源码+数据库+文档)

就业信息管理系统 目录 基于SprinBootvue的就业信息管理系统 一、前言 二、系统设计 三、系统功能设计 1前台功能模块 2后台功能模块 4.2.1管理员功能 4.2.2学生功能 4.2.3企业功能 4.2.4导师功能 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设…...

一.架构设计

架构采用 ddd 架构&#xff0c;不同于传统简单的三层的架构&#xff0c;其分层的思想对于大家日后都是很有好处的&#xff0c;会给大家的思想层级&#xff0c;提高很多。 传统的项目 现有的架构 采取ddd架构&#xff0c;给大家在复杂基础上简化保留精髓&#xff0c;一步步进行…...

<学习笔记>从零开始自学Python-之-实用库篇(一)-pyscript

由Anaconda创建的PyScript是一项实验性的但很有前途的新技术&#xff0c;它使python运转时在支撑WebAssembly的浏览器中作为一种脚本言语运用。 每个现代常用的浏览器现在都支撑WebAssembly&#xff0c;这是许多言语&#xff08;如C、C和Rust&#xff09;能够编译的高速运转时…...

告别手动拼图!用Unity TileMap的Fill Box和Picker工具,5分钟搞定复杂地形

告别手动拼图&#xff01;用Unity TileMap的Fill Box和Picker工具高效构建复杂地形在2D游戏开发中&#xff0c;地形设计往往是耗时又繁琐的环节。想象一下&#xff0c;你需要手动放置数百个草地、水域或砖块瓦片来构建游戏世界&#xff0c;这不仅容易出错&#xff0c;还会消耗大…...

Windows下玩转NVMe:除了Identify,用Intel MAS命令行还能做这些高级操作

Windows下NVMe高级管理&#xff1a;Intel MAS命令行工具实战指南对于追求极致存储性能的技术爱好者而言&#xff0c;NVMe SSD早已成为标配。但大多数人仅停留在基础使用层面&#xff0c;未能充分挖掘这些高速存储设备的潜力。本文将带你探索Intel Memory and Storage Tool&…...

如何为个人网站快速接入大模型问答功能使用Taotoken

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 如何为个人网站快速接入大模型问答功能使用Taotoken 为个人网站或博客添加一个智能问答模块&#xff0c;可以显著提升访客的互动体…...

如何在macOS上快速创建PDF文件:终极虚拟打印机解决方案

如何在macOS上快速创建PDF文件&#xff1a;终极虚拟打印机解决方案 【免费下载链接】RWTS-PDFwriter An OSX print to pdf-file printer driver 项目地址: https://gitcode.com/gh_mirrors/rw/RWTS-PDFwriter 想要在macOS上轻松创建PDF文件吗&#xff1f;RWTS PDFwriter…...

【脑机接口】迁移学习 域自适应 自监督 EEG 大模型术语解释(第9弹)

266.迁移学习 TL&#xff1a;迁移学习是把一个场景中学到的知识迁移到另一个相关场景中的方法。在 EEG 中&#xff0c;源域通常是已有被试、已有会话或已有数据集&#xff0c;目标域通常是新被试、新会话或小样本数据。它的核心目的&#xff0c;是减少目标被试需要采集的校准数…...

MNIST识别项目复盘:除了准确率97%,我们更应该关注数据预处理与损失函数的选择

MNIST识别项目深度复盘&#xff1a;超越97%准确率的工程实践思考 在完成一个基础的MNIST手写数字识别项目后&#xff0c;很多开发者会满足于模型达到97%的准确率便止步不前。然而&#xff0c;真正有价值的机器学习实践远不止于调出一个高准确率的模型。本文将带您深入两个常被忽…...

HexStrike AI v6.0:面向红队实战的多智能体渗透框架

1. 这不是又一个“AI安全”的概念玩具&#xff0c;而是一套能真正进红队作战包的智能体渗透框架我第一次在内部红队演练中把 HexStrike AI v6.0 推进真实靶场时&#xff0c;没敢直接叫它“AI渗透工具”——怕被老队员当场笑出声。毕竟过去三年里&#xff0c;我亲手试过七套标榜…...

《当下的力量》7-10章终章解读:从临在到臣服,活出生命的终极自由

《当下的力量》7-10章终章解读&#xff1a;从临在到臣服&#xff0c;活出生命的终极自由终章&#xff1a;这是全书最具力量的部分&#xff0c;它将告诉你如何在最艰难的人生境遇中&#xff0c;依然保持内心的平静与自由前言 在前六章中&#xff0c;我们已经了解了人类痛苦的根源…...

初创公司如何借助Taotoken低成本启动AI产品开发

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 初创公司如何借助Taotoken低成本启动AI产品开发 对于初创公司而言&#xff0c;在资源有限的情况下启动AI产品开发&#xff0c;面临…...

通过curl命令快速测试Taotoken的API连通性与返回

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 通过curl命令快速测试Taotoken的API连通性与返回 在集成大模型服务时&#xff0c;直接使用curl命令进行API测试是一种高效且通用的…...