Seq2SQL :使用强化学习通过自然语言生成SQL

论文: https://einstein.ai/static/images/layouts/research/seq2sql/seq2sql.pdf

数据集:https://github.com/salesforce/WikiSQL

Seq2SQL属于natural language interface (NLI)的领域,方便普通用户接入并查询数据库中的内容,即用户不需要了解SQL语句,只需要通过自然语言,就可查询所需内容。

Seq2SQL借鉴的是Seq2Seq的思想,与Seq2Seq应用于机器翻译与Chatbot类似,Seq2SQL将输入的语句encode后再decode成结构化的SQL语言输出,强化学习是在Seq2SQL中的最后一个模块中应用。同时,这篇论文还推出一个数据集WikiSQL,数据集内有人工标注好的问句及其对应SQL语句。

试验结果显示,Seq2SQL的准确率也不是特别的高,只有60.3%


Seq2SQL结构:

Seq2SQL由三部分组成:



    第一部分:  Aggregation classifier    这一部分其实是一个分类器,将用户输入的语句分类成是select count/max/min 等统计相关的约束条件

在此处采用的Augmented Pointer Network,Augmented Pointer Network总体而言也是ecoder-to-decoder的结构,

encoder采用的是两层的bi-LSTM, decoder 采用的是两层的unidirectional LSTM,

encoder输出h,ht对应的是第t个词的输出状态

decoder的每一步是,输入y s-1,输出状态gs,接着,decoder为每个位置t生成一个attention的score

,最终生成 

在Seq2SQL中,首先为input生成一个表征向量(agg:aggregation clasifier, inp:input,enc:encoder)

首先为Augmented Pointer Network类似,计算出一个attention的分数,

量化后,通过softmax函数 

input的表征向量 

通过一个多层的网络和softmax完成分类任务

第二部分: select column   这一部分是看用户输入的问句命中了哪个column

首先将每个column name 通过LSTM encode

     将用户输入encode成与第一部分类似的

最终通过一个多层的神经元和softmax确定是命中哪一行



      

第三部分:where clause  确定约束条件,因为最终生成的SQL可能与标注中的不太一样,但是依旧有一样的结果,所以不能像前两部分一样使用交叉熵作为loss训练,因此使用强化训练中reward函数 (g: ground-truth), loss使用梯度


WikiSQL:

WikiSQL包含一系列与SQL相关的问题集以及SQL table

null

时间: 2024-11-29 06:09:22

Seq2SQL :使用强化学习通过自然语言生成SQL的相关文章

深度强化学习(Deep Reinforcement Learning)入门:RL base & DQN-DDPG-A3C introduction

转自https://zhuanlan.zhihu.com/p/25239682 过去的一段时间在深度强化学习领域投入了不少精力,工作中也在应用DRL解决业务问题.子曰:温故而知新,在进一步深入研究和应用DRL前,阶段性的整理下相关知识点.本文集中在DRL的model-free方法的Value-based和Policy-base方法,详细介绍下RL的基本概念和Value-based DQN,Policy-based DDPG两个主要算法,对目前state-of-art的算法(A3C)详细介绍,其他

C++强化学习规划表

第一阶段 C语言加强以及C++语言详解(29天) 课程名称 课程内容 学习目标 C语言强化 · C语言基础复习(数据类型.变量.内存布局.指针基础) · C语言基础强化提高(C语言中的字符串.一维数组.二维数组) · C语言基础强化提高(一级指针,二级指针,三级指针实战,N级指针概念,指针数组和数组指针) · C语言基础强化提高(结构体.文件的使用) · 动态库的封装和设计 · 函数指针回调函数 · C语言面试题强化与提高 在基础班C语言知识点之上,掌握C语言深入技巧,为日后 做更大的项目打下坚

什么是强化学习?

Reinforcement learning 是机器学习里面的一个分支,特别善於控制一只能够在某个环境下 自主行动 的个体 (autonomous agent),透过和 环境 之间的互动,例如 sensory perception 和 rewards,而不断改进它的 行为 . 听到强化学习,你脑里应该浮现一只曱甴那样的小昆虫,那就是 autonomous agent 的形象: 对「环境」(environment) 这概念,你应该想到像以下这经典游戏的迷宫: 包括有追捕你的怪物.和吃了会加分的食物

AI+游戏:高效利用样本的强化学习 | 腾讯AI Lab学术论坛演讲

3月15日,腾讯AI Lab第二届学术论坛在深圳举行,聚焦人工智能在医疗.游戏.多媒体内容.人机交互等四大领域的跨界研究与应用.全球30位顶级AI专家出席,对多项前沿研究成果进行了深入探讨与交流.腾讯AI Lab还宣布了2018三大核心战略,以及同顶级研究与出版机构自然科研的战略合作(点击 这里 查看详情). 腾讯AI Lab希望将论坛打造为一个具有国际影响力的顶级学术平台,推动前沿.原创.开放的研究与应用探讨与交流,让企业.行业和学界「共享AI+未来」. 彭健 美国伊利诺伊大学厄巴纳-香槟分校

深度强化学习泡沫及路在何方?

一.深度强化学习的泡沫 2015年,DeepMind的Volodymyr Mnih等研究员在<自然>杂志上发表论文Human-level control through deep reinforcement learning[1],该论文提出了一个结合深度学习(DL)技术和强化学习(RL)思想的模型Deep Q-Network(DQN),在Atari游戏平台上展示出超越人类水平的表现.自此以后,结合DL与RL的深度强化学习(Deep Reinforcement Learning, DRL)迅速

智能语音助手的工作原理是?先了解自然语言处理(NLP)与自然语言生成(NLG)

语音助手越来越像人类了,与人类之间的交流不再是简单的你问我答,不少语音助手甚至能和人类进行深度交谈.在交流的背后,离不开自然语言处理(NLP)和自然语言生成(NLG)这两种基础技术.机器学习的这两个分支使得语音助手能够将人类语言转换为计算机命令,反之亦然. 这两种技术有什么差异?工作原理是什么?NLP vs NLG:了解基本差异 什么是NLP?NLP指在计算机读取语言时将文本转换为结构化数据的过程.简而言之,NLP是计算机的阅读语言.可以粗略地说,在NLP中,系统摄取人语,将其分解,分析,确定适

强化学习二

一.前言 在第一章强化学习简介中,我们提到强化学习过程可以看做一系列的state.reward.action的组合.本章我们将要介绍马尔科夫决策过程(Markov Decision Processes)用于后续的强化学习研究中. 二.马尔科夫过程(Markov Processes) 2.1 马尔科夫性 首先,我们需要了解什么是马尔科夫性: 当我们处于状态StSt时,下一时刻的状态St+1St+1可以由当前状态决定,而不需要考虑历史状态. 未来独立于过去,仅仅于现在有关 将从状态s 转移到状态 s

【推荐算法工程师技术栈系列】机器学习深度学习--强化学习

目录 强化学习基本要素 马尔科夫决策过程 策略学习(Policy Learning) 时序差分方法(TD method) Q-Learning算法 Actor-Critic方法 DQN DDPG 推荐系统强化学习建模 附录 强化学习基本要素 智能体(agent):与环境交互,负责执行动作的主体: 环境(Environment):可以分为完全可观测环境(Fully Observable Environment)和部分可观测环境(Partially Observable Environment).

一文让你看懂人工智能、机器学习、深度学习和强化学习的关系

如果说信息技术是第三次工业革命的核心,那么人工智能所代表的智能则是下一次工业革命的核心力量. 2016年,谷歌阿尔法围棋以4:1战胜围棋世界冠军.职业九段棋手李世石,不仅让深度学习为人们所知,而且掀起了人工智能的"大众热".此后,人工智能越来越热,从机器人开发.语音识别.图像识别.自然语言处理到专家系统等不断推陈出新. 同时,人工智能技术越来越多地融入到我们的生活中,出现了智能音箱.智能助理.智能机器人等. 根据应用领域的不同,人工智能研究的技术也不尽相同,目前以机器学习.计算机视觉等