HarmonyOS开发者限时福利来啦!最高10w+现金激励等你拿~ 了解详情
写点什么

Salesforce 发布数据库自然语言接口 Photon

  • 2020-10-04
  • 本文字数:1320 字

    阅读完需:约 4 分钟

Salesforce发布数据库自然语言接口Photon

来自 Salesforce Research 和香港中文大学的一个科学家团队发布了一种叫作“Photon”的数据库自然语言接口(NLIDB)。该团队使用深度学习技术构建了一个在通用基准测试中达到 63%准确率的解析器,以及一个可以提示用户澄清模糊问题的错误检测模块。


该团队在最近的ACL 2020大会上演示了 Photon,团队成员 Victoria Lin 在最近的博文中描述了该系统。Photon 的核心是一个基于神经网络的语义解析器,它可以将人类用户的自然语言问题转换成 SQL 查询。解析器在Spider数据集上实现了 63.2%的匹配精度,这是迄今为止排名第二高的结果。Photon 还包含了一个问题校正器,当人类输入不能被翻译成 SQL,它可以检测出来。问题校正器使用“聊天机器人”风格的界面启动一个对话,并进一步完善问题。专业用户还可以直接以 SQL 的形式输入查询。Lin 表示:


从现代 NLP 的进步程度来看,我们相信一个自然语言信息系统的时代即将到来。


NLIDB 的目标是“民主化”从关系数据库提取有用数据的能力,允许用户用自然语言提问,而不需要用 SQL 等编程语言构造查询。与其他同类系统一样,Photon 使用一种被称为语义解析的策略,它将自然语言问题转换成逻辑形式——本质上是将人类语言转换成编程语言语句。Photon 的解析器基于一个神经网络,它的输入是一个与数据库模式相关联的自然语言问题,输出是一个 SQL 查询语句。解析器不能访问数据库的全部内容,但可以访问“范畴列”的值。解析器由一个预先训练好的 BERT 模型和一系列 LSTM 子网络组成。Photon 随后对网络输出执行波束搜索解码,并对结果应用静态 SQL 正确性检查。根据作者的说法,这带来了大约 5%的改进(基于 Spider 数据集)。


为了提高系统的健壮性,Photon 提供了一个问题校正器。校正器使用另一个神经网络——用来确定一个问题是否不能准确地转换成 SQL 的分类器。通过对可翻译问题进行“交换”和“删除”操作,研究人员构建了一个合成数据集来训练分类器。例如,问题“存在多少个国家”可能被转换成“存在多少个”。混淆检测器还可以识别问题中令人感到困惑的部分。这些问题被用于提供修正建议,它们通过聊天界面反馈给用户。


其他科技公司也在构建类似的 NLIDB 系统。微软研究院开发了一个叫作CAMP的神经网络语义解析系统,该系统使用一系列门控循环单元(GRU)将自然语言问题转换为 SQL 查询。谷歌的TAPAS采用了一种稍微不同的方法。TAPAS 的训练过程直接包含了表数据,而不是将自然语言解析为 SQL。Photon 的作者指出,在表数据上训练网络存在数据隐私问题。


在 Hacker News 的一个讨论帖子中,用户对 NLIDB 结果的质量发表了评论。一个用户指出:


模型不善于说“不知道”。不过我很乐观。每年都看到显著的进步(受 NLP 的实际进步推动),训练数据集也变得越来越有趣。现在有了会话数据集(例如https://yale-lily.github.io/cosql)),模型被训练问后续的问题,目标是“让系统来澄清模糊的问题、验证返回的结果,并告知用户那些无法回答或不相关的问题”。这可能是一个巨大的胜利。


Photon 的演示版本已经向公众开放。Lin 说,未来的工作包括“语音输入、自动完成和可视化输出”,但推出这些功能的具体日期尚未公布。


原文链接


Salesforce Releases Photon Natural Language Interface for Databases


2020-10-04 10:002431

评论

发布
暂无评论
发现更多内容

异步机制和CPU架构对 Redis 性能的影响

escray

redis 学习 极客时间 3月日更 Redis 核心技术与实战

看东鹏饮料如何从150亿条数据中洞察先机 | 精选案例

亚马逊云科技 (Amazon Web Services)

Python基础之:Python中的模块

程序那些事

Python Python3 程序那些事

【LeetCode】删除排序链表中的重复元素 IIJava题解

Albert

算法 LeetCode 3月日更

搞懂 ZooKeeper 集群的数据同步

HelloGitHub

Java zookeeper ZooKeeper原理

Gas费用持续攀升!NA公链NAC公链如何破解高额Gas费用的困局?

区块链第一资讯

如何定义错误码

编号94530

Java 错误码 错误处理

Redis - 缓存穿透、缓存击穿、缓存雪崩

insight

redis 3月日更

分布式锁的实现方案

360技术

设计与思考,关于资源和生命周期

程序员架构进阶

设计实践 生命周期 28天写作 3月日更 池化技术

数据去哪了?:从一次生产事故聊聊并发编程原子性问题

海拉鲁

Java 并发编程 多线程

用 Redis 实现消息队列是一个好主意么?

escray

redis 学习 极客时间 3月日更 Redis 核心技术与实战

QCon全球软件开发大会:推动创新,实现技术落地

博文视点Broadview

Worktile 前端工程化之路

PingCode研发中心

大前端

NoCode 实战 | 零代码应用开发,轻松搞定任务跟踪管理难题(上)

亚马逊云科技 (Amazon Web Services)

华为云PB级数据库GaussDB(for Redis)揭秘第六期:Feed流场景中的应用

华为云开发者联盟

数据库 redis 华为云 GaussDB Feed流

一段java代码执行旅程

华为云开发者联盟

JVM class 指令 java代码 java栈

在全面拥抱人工智能前,这 6 步您的公司做到了吗?| 云途专栏

亚马逊云科技 (Amazon Web Services)

亚马逊云科技和德甲为 2021 赛季新推出三项赛况统计数据,强化实时比赛分析

亚马逊云科技 (Amazon Web Services)

通俗讲解分布式锁,看完不懂算我输

Java小咖秀

Java 分布式 多线程 并发

Rust从0到1-基础概念-数据类型

rust 数据类型

区块链六大应用场景,推动政府信息化发展

13828808769

区块链+ #区块链#

第十二周作业

Geek_mewu4t

镜像仓库学习笔记

lenka

3月日更

网络连接之协议栈

Kylin

协议栈 3月日更 21天挑战 网络连接

区块链BaaS应用平台搭建,助力企业运用区块链解决业务问题

13828808769

区块链 区块链+ 区块链发展 #区块链#

智慧公安信息化管理系统,重点人员管控系统的搭建

13828808769

智慧交通

数据结构队列

我是程序员小贱

3月日更

[译]用@WebMvcTest测试MVC Web Contorller

麦芽面包

spring unittest

Wireshark数据包分析学习笔记Day21

穿过生命散发芬芳

Wireshark 数据包分析 3月日更

初识Golang之声明函数

Kylin

3月日更 21天挑战 Go 语言

Salesforce发布数据库自然语言接口Photon_数据库_Anthony Alford_InfoQ精选文章