NL2SQL:弱监督学习与有监督学习完成进阶之路

640


Outline 


  • NL2SQL 任务和 WikiSQL 数据集介绍

  • 弱监督学习下 NL2SQL 解决方案

  • 有监督学习下 NL2SQL 解决方案

  • 追一科技 NL2SQL 天池挑战赛


NL2SQL任务和WikiSQL数据集介绍


近年来,NLP 的突破,带来了一些创新型研究机会,NL2SQL 正是其中之一,在学界与工业界获得了广泛关注。Salesforce、斯坦福、耶鲁等机构提出了 WikiSQL、WikiTableQuestions、Spider、SParC 等大规模数据集,并得到多次评测结果的提交。以 WikiSQL 为例,目前在排行榜上有多达 19 次的评测结果的提交。 


顾名思义,NL2SQL 就是将自然语言转化为 SQL 语句的一项任务。在中文领域,NL2SQL 研究也越来越受到瞩目。随着追一科技在天池平台发起首届中文 NL2SQL 比赛,(比赛地址https://tianchi.aliyun.com/markets/tianchi/zhuiyi_cn),第一个中文 NL2SQL 数据集也将横空出世。那么,这个任务,有哪些解决方案?尤其是在挑战赛这种高手对决的情况下,如何实现最优解? 


WikiSQL 是目前规模最大的 NL2SQL 数据集,有不少的借鉴和优化空间。在这篇文章中,我们将帮助选手简要梳理一下目前在 WikiSQL 数据集上的弱监督学习以及有监督学习的方案。


弱监督学习下NL2SQL解决方案


众所周知,使用机器学习算法少不了训练数据的参与。对于 NL2SQL 任务,我们希望实现从自然语言问句到 SQL 程序语句的转换。很容易想到,我们可以使用“自然语言语句-SQL”作为训练数据来训练模型。但“自然语言语句-SQL”这样的训练数据难以获得或标注,使数据的前期准备工作变得繁重困难。使用弱监督学习方式意味着我们可以使用“自然语言语句-SQL 的执行结果”取代“自然语言语句-SQL”作为训练数据更新模型参数。相比之下,这样的训练数据更容易获得,可以将研究人员从训练数据收集的繁重工作解放出来。 


针对弱监督学习方法解决 NL2SQL 问题,WikiSQL 提供了专门的榜单。目前榜单上有两种弱监督学习的方案,分别是 MAPO 和 MeRL,本文将对这两种方法对应的论文进行解析。


Memory Augmented Policy Optimization (MAPO)


640?wx_fmt=png


MAPO 算法是在论文 Memory Augmented Policy Optimization for Program Synthesis and Semantic Parsing 中提出的,发表于 2018 年的 NIPS 会议。论文中对 MAPO 算法的设计思路进行了详细的介绍,并且对 MAPO 算法在 WikiSQL 上的应用进行了详尽的分析。 


MAPO 是一种基于弱监督强化学习的方法。在论文中,作者根据 NL2SQL 任务的基本构成和强化学习的基本元素,将 NL2SQL 任务转化为一个强化学习任务。在 MAPO 中,强化学习的状态 x 被看做输入的自然语言问题和其对应的环境(一个解释器或者数据库),强化学习的动作空间 A 被看做当前自然语言问题下所有可能产生的程序集合,而每一条强化学习轨迹的动作序列 a 对应着每一个可能的程序。


MAPO 算法的目的是生成一个策略函数640?wx_fmt=jpeg,该策略函数给出了在一个自然语言问句 x 条件下,采样到的各个程序 a 的概率分布,根据此概率分布,我们可以得到自然语言问句对应的程序,也就解决了 NL2SQL 任务。


由此可知,算法的关键即是对策略函数的训练。在 MAPO 中,作者使用了一个 seq2seq 模型来拟合策略函数,针对策略函数的训练也就等同于对这个 seq2seq 模型进行训练。


值得注意的是,在强化学习中,策略函数的参数更新与深度神经网络有所不同,并非是基于损失函数,而是基于期望回报进行,参数的更新是朝着最大化期望回报的方向进行。期望回报可以由 Reward 函数给出。


由于我们的任务是生成程序语句,因此我们可以很方便地将生成的程序运行在真实环境中,并将结果与弱监督训练数据的 label 对比,从而得到 0-1 二值 Reward 函数,这体现了强化学习的核心思想,即通过与环境交互的方式来纠正智能体的行为,从而达到“学习”的效果。 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值