炼数成金 门户 商业智能 自然语言处理 查看内容

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

2017-9-15 21:36| 发布者: 炼数成金_小数| 查看: 20851| 评论: 0|原作者: 杨晓凡|来自: DBGeeK
摘要: 随着机器学习蓬勃发展,新的研究领域不停出现。除了创造并解决新的问题之外,现有的应用其实也可以从机器学习中大为受益。Salesforce 近期的一篇论文就介绍了利用机器学习,无需学习 SQL 语言就可以在数据库中进行查 ...
数据库 SQL 模型 机器学习 强化学习 自然语言
随着机器学习蓬勃发展,新的研究领域不停出现。除了创造并解决新的问题之外,现有的应用其实也可以从机器学习中大为受益。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 数据集也是目前所有同类数据集中较大的一个。

欢迎加入本站公开兴趣群
商业智能与数据分析群
兴趣范围包括各种让数据产生价值的办法,实际应用案例分享与讨论,分析工具,ETL工具,数据仓库,数据挖掘工具,报表系统等全方位知识
QQ群:81035754

鲜花

握手

雷人

路过

鸡蛋

相关阅读

最新评论

热门频道

  • 大数据
  • 商业智能
  • 量化投资
  • 科学探索
  • 创业

即将开课

  GMT+8, 2017-11-21 14:24 , Processed in 0.241685 second(s), 26 queries .