不用再学SQL语言了,Saleforce用自然语言就能在数据库中查询



发表时间:2017-09-01  投稿人:李明   部门:技术部        编辑:    点击量:2137  

      随着机器学习蓬勃发展,新的研究领域不停出现。除了创造并解决新的问题之外,现有的应用其实也可以从机器学习中大为受益。Salesforce 近期的一篇论文就介绍了利用机器学习,无需学习 SQL 语言就可以在数据库中进行查询。

 

      SQL 在编程领域越来越少被提及,但是 SQL 语言的学习曲线仍然陡峭,这就让很多人放弃了尝试直接和关系型数据库打交道。CRM 软件服务商 Salesforce 的人工智能研究团队就从自己的业务开始下手,探索如何让不具备 SQL 知识的人通过机器学习打开数据库操作的大门。

  在他们近期的论文「Seq2SQL: Generating Structured Queries from Natural Language using Reinforcement Learning」(Seq2SQL:用强化学习从自然语言生成结构化查询语句)中,构建了一个机器学习中典型的序列到序列模型。在其中用到的强化学习让模型在翻译自然语言到 SQL 数据库查询语句任务中取得了让人眼前一亮的成果。

     这就意味着,在实际应用中用户可以直接问系统:“橄榄球高校巡回赛排名第一的是哪支队伍”,系统就会自动查询对应的数据库,然后告诉你答案是密歇根大学队。正如下面这张动图示意的?

  Salesforce 研究员 Victor Zhong,也是这篇论文的第一作者,介绍说:“一个正确的查询语句其实可以有好几种写法。如果给系统里输入一个自然语言的问题,对应的查询语句可能会有两三种。我们用强化学习来鼓励系统选用能够查询到相同结果的语句。”

      随着自然语言的提问里包含的单词变多,可以想象这种机器翻译任务也会很快变得非常复杂。应对方式就是,对于每一个缺失单词的可能翻译数目施加的限制越多,翻译任务就会变得越简单。Salesforce 的研究人员们就利用了这种想法,他们对系统的提问里、数据库标签里和典型 SQL 查询语句里能够包含的单词做了一些限制,从而简化了翻译系统的设计难度。

  让 SQL 平民化其实也不是新鲜事了,Tableau 最近收购了创业公司 ClearGraph,后者的业务就是提供用英语而不是 SQL 语言查询数据的方案。

  Victor Zhong 补充说:“有的模型直接在数据库上做操作,但是如果提问一个关于身份证号的问题就会有潜在的隐私问题。”

  除了论文里的方案本身,Salesforce 的这项研究还有一个贡献是他们构建的 WikiSQL 数据集,他们的翻译模型就是用这个数据集训练出来的。他们首先从 Wikipedia 采集了 HTML 表单,这些表单就成为了随机生成的 SQL 查询语句的基础;他们从这些查询生成了对应的问题,然后把问题放到亚马逊 Mechanical Turk 众包平台上让人类把它们改写成自然语言。每个改写后的句子都会被确认两次,而且还安排了单独的人指导这些确认过程。最终构成的 WikiSQL 数据集也是目前所有同类数据集中最大的一个。

 

来自 雷锋网

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

上一篇 下一篇