【Text2SQL 经典模型】SQLNet

论文:SQLNet: Generating Structured Queries From Natural Language Without Reinforcement Learning

⭐⭐⭐⭐

Code:

  • SQLNet | paperwithcode
  • SQLNet| GitHub

一、论文速读

这篇论文强调了一个问题:order-matters problem —— 意思是说,对于一个 SQL query,他有需要相同的等价表述形式,比如说 WHERE 子句中的条件互相交换是等价的,但是对于训练一个 seq2seq 的 model 来说,选择其中的一个是敏感的

之前的 Seq2SQL 模型中,是使用强化学习来解决的 order-matter 问题,根据生成的 SQL query 是否正确来计算奖励并用于训练模型。但后来的工作发现通过强化学习来实现的改进是很有限的。

这篇论文提出了 SQLNet 模型,它采用基于 sketch(草图)的方法来生成 SQL。具体来说,论文预先设计了如下左图所示的一个 SQL sketch,其中 $xxxslots

在这里插入图片描述

然后使用多个模型来填充这些 slots,上图的右图中展示了 slots 之间的依赖关系,比如 SELECT AGGREGATOR 依赖于 SELECT Column 和 question,表示在预测 AGGREGATOR 时,需要将已经预测到 SELECT Column 和 question 作为条件来预测 AGGREGATOR。

从上图的依赖关系可以看出,不同的 WHERE 子句的预测是互相独立的,由此可以避免 order-matter problem。

二、SQLNet 的一些细节

2.1 Sequence-to-set

论文使用 seq2set 来将一个 question 转为一个包含 column names 的集合,这个集合的列名就是 WHERE 语句的列名,由此来预测 WHERE 语句包含哪些条件。

具体来说,就是计算 P w h e r e c o l ( c o l ∣ Q ) P_{wherecol}(col|Q) Pwherecol(colQ) 这个概率值,其中 col 是列名,Q 是 NL question,具体计算公式可以参考原论文。

原论文在推导这个概率的计算公式是,还提出了一个 Column attention 的概念。

2.2 预测 WHERE 子句

WHERE 子句是 WikiSQL 任务中最复杂的预测结构,它的预测也是最有挑战的任务。

在计算出 P w h e r e c o l ( c o l ∣ Q ) P_{wherecol}(col|Q) Pwherecol(colQ) 概率后,选择哪些 columns 作为 WHERE 子句的列呢?论文给出两种方法:

  • 设置一个 threshold,概率大于这个阈值的 column 被选中
  • 由另一个模型根据 question 生成一个数字 K,并选中 top-K 的 columns

2.3 预测 SELECT 子句

预测 SELECT 子句与 WHERE 子句挺相似的,只需要在所有 columns 种选出一个 column 即可,aggregator 的预测也是一个分类器。

2.4 训练 loss

给定一个 question Q,一个包含 C 列的 col,假设 y 是一个 C 维的 vector,其中 y i = 1 y_i = 1 yi=1 表示第 i 个 column 是真的出现在了正确 SQL 的 WHERE 子句中, y i = 0 y_i = 0 yi=0 表示没有。使用如下加权负对数 loss 函数来训练 P w h e r e c o l P_{wherecol} Pwherecol 子模型:

在这里插入图片描述

其中权重 α \alpha α 是一个超参数,用来平衡 positive data 和 negative data。

2.5 权重共享的细节

论文发现,预测不同 slots 所使用的 LSTM 不共享权重更好,同时共享 word embedding 更好。

word embedding 模型采用了 GloVe 模型。

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

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

相关文章

2024.5组队学习——MetaGPT(0.8.1)智能体理论与实战(中):订阅智能体OSS实现

传送门: 《2024.5组队学习——MetaGPT(0.8.1)智能体理论与实战(上):MetaGPT安装、单智能体开发》《2024.5组队学习——MetaGPT(0.8.1)智能体理论与实战(下)&…

【线段图案】

描述 KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的线段图案。 输入描述: 多组输入,一个整数(1~100),表示线段长度,即“*”的数量。 输出描述…

是德科技 DSOS054A MSOS054A示波器

产品 带宽 通道数 最大存储器深度 DSOS054A 高清晰度示波器 500 MHz 4 个模拟通道 800 Mpts MSOS054A 高清晰度示波器 500 MHz 4 个模拟通道和 16 个数字通道 800 Mpts Infiniium S 系列示波…

R语言使用 ggscidca包优雅的绘制支持向量机决策曲线

DCA(Decision Curve Analysis)临床决策曲线是一种用于评价诊断模型诊断准确性的方法,在2006年由AndrewVickers博士创建,我们通常判断一个疾病喜欢使用ROC曲线的AUC值来判定模型的准确性,但ROC曲线通常是通过特异度和敏感度来评价,…

vue项目报错:internal/modules/cjs/loader.js:892 throw err;

前言: vue项目中无法正常使用git,并报错情况。 报错信息: internal/modules/cjs/loader.js:892throw err;^ Error: Cannot find module D:\project\sd_wh_yth_front\node_modules\yorkie\src\runner.js 报错处理: npm install y…

夏天晚上热,早上凉怎么办?

温差太大容易引起感冒 1.定个大概3点的闹钟,起来盖被子。有些土豪可以开空调,我这个咸鱼没有空调。 2.空调调到合适的温度,比如20几度。

【HarmonyOS4学习笔记】《HarmonyOS4+NEXT星河版入门到企业级实战教程》课程学习笔记(十一)

课程地址: 黑马程序员HarmonyOS4NEXT星河版入门到企业级实战教程,一套精通鸿蒙应用开发 (本篇笔记对应课程第 18 节) P18《17.ArkUI-状态管理Observed 和 ObjectLink》 第一件事:嵌套对象的类型上加上 Observed 装饰器…

基于网络爬虫技术的网络新闻分析(四)

目录 4.2 系统异常处理 4.2.1 爬虫异常总体概况 4.2.2 爬虫访问网页被拒绝 5 软件测试 5.1 白盒测试 5.1.1 爬虫系统测试结果 5.1.2 中文分词系统测试结果 5.1.3 中文文章相似度匹配系统测试结果 5.1.4 相似新闻趋势展示系统测试结果 5.2 黑盒测试 5.2.1 爬虫系统测…

2024电工杯数学建模 - 案例:最短时间生产计划安排

# 前言 2024电工杯(中国电机工程学会杯)数学建模思路解析 最新思路更新(看最新发布的文章即可): https://blog.csdn.net/dc_sinor/article/details/138726153 最短时间生产计划模型 该模型出现在好几个竞赛赛题上,预测2022今年国赛也会与该模型相关。 1 模型描…

CoShNet:使用复数改进神经网络

使用复数改进神经网络 文章目录 一、说明二、了解卷积神经网络三、进入混合神经网络四、令人惊叹的 CoSh 网络五、复杂函数的神奇性质六、相位一致性七、结论 一、说明 本文题为“CoShNet:使用Shearlets的混合复杂值神经网络”,提出了在混合神经网络中使…

深入理解SVM和浅层机器学习算法的训练机制

深入理解SVM和浅层机器学习算法的训练机制支持向量机(SVM)的训练过程SVM的基本概念SVM的损失函数训练方法 浅层机器学习算法的训练机制决策树K-最近邻(K-NN)朴素贝叶斯 结论 深入理解SVM和浅层机器学习算法的训练机制 在探讨浅层…

展现金融科技前沿力量,ATFX于哥伦比亚金融博览会绽放光彩

不到半个月的时间里,高光时刻再度降临ATFX。而这一次,是ATFX不曾拥有的桂冠—“全球最佳在线经纪商”(Best Global Online Broker)。2024年5月15日至16日,拉丁美洲首屈一指的金融盛会—2024年哥伦比亚金融博览会(Money Expo Colombia 2024) 于…

AI智能体|使用扣子Coze基于IDE创建自定义插件

大家好,我是无界生长。 在使用Coze的过程中,有些个性化场景无法通过插件商店已有的插件满足,这个时候就需要通过自定义插件的方式来实现业务需求。下面将通过一个实际案例来简单介绍下如何使用Coze基于IDE创建自定义插件,完成在Co…

2024最新流媒体在线音乐系统网站源码| 音乐社区 | 多语言 | 开心版

简介: 2024最新流媒体在线音乐系统网站源码| 音乐社区 | 多语言 | 开心版 下载地址 https://www.kuaiyuanya.com/product/article/index/id/33.html 图片:

使用 Django Rest Framework 构建强大的 Web API

文章目录 安装 Django Rest Framework创建序列化器创建视图和 URL 路由配置认证和权限测试 API Django Rest Framework(DRF)是一个强大的工具,用于在 Django Web 框架中构建灵活且功能丰富的 Web API。它提供了许多功能,包括序列化…

(六)DockerCompose安装与配置

DockerCompose简介 Compose 项目是 Docker 官方的开源项目,负责实现对 Docker 容器集群的快速编排。使用前面介绍的Dockerfile我们很容易定义一个单独的应用容器。然而在日常开发工作中,经常会碰到需要多个容器相互配合来完成某项任务的情况。例如要实现…

protobuf学习

学习了下protobuf这个工具,可以用来序列化数据结构,而且效率很高,数据可以压缩的更小。 记录下,我这里主要在C#里使用,从NuGet程序包安装以下两个 安装好后可以在该程序目录找到 packages\Google.Protobuf.Tools.3.26.…

在windows中使用wsl下的unbuntu环境

1 unbuntu下载编译环境 编译环境安装命令: sudo apt install gdb sudo apt install gcc sudo apt install g 2 使用vscode正常打开项目,在window中打开的项目(官方推荐将项目放在linux中的home目录) 但在windows中也可以使用&a…

汐鹤Key码查询,网站授权系统源码

汐鹤Key码查询和网站授权系统源码主要用于特殊虚拟物品销售商家。 下 载 地 址 : runruncode.com/php/19770.html 附带插件功能(网站授权),但目前开发内容较少,请谅解!同时,代码优化空间很大…

【软考】设计模式之装饰器模式

目录 1. 说明2. 应用场景3. 结构图4. 构成5. 适用性6. 优点7. 缺点8. java示例 1. 说明 1.动态地给一个对象添加一些额外的职责。2.Decorator Pattern。3.就增加功能而言,装饰器模式比生成子类更加灵活。4.一种在不改变现有对象结构的情况下,动态地给对…