基于神经网络的自然语言查询到数据库查询的转换制造技术

技术编号:23632276 阅读:55 留言:0更新日期:2020-04-01 00:42
计算系统使用神经网络将自然语言查询转换为数据库查询。该计算系统使用基于机器学习的多个模型,每个机器学习模型用于生成数据库查询的一部分。机器学习模型使用基于输入自然语言查询项、数据库模式的一组列和数据库查询语言(例如,结构化查询语言SQL)的词汇表生成的输入表示。基于机器学习的多个模型可包括:用于确定数据库查询的聚合算子的聚合分类器模型,用于确定数据库查询的结果列的结果列预测器模型,用于确定数据库查询的条件子句的条件子句预测器模型。该条件子句预测器是基于强化学习的。

【技术实现步骤摘要】
【国外来华专利技术】基于神经网络的自然语言查询到数据库查询的转换
本公开总地涉及数据库查询的自动生成,并且更具体地,涉及用于将自然语言查询转换成数据库查询的基于神经网络的模型。
技术介绍
世界上大量可用的数据存储在关系数据库中,关系数据库为诸如医疗记录、金融市场、客户关系管理之类的应用程序提供了基础。但是,访问关系数据库中的信息需要了解数据库查询语言,例如结构化查询语言(SQL)。尽管诸如SQL之类的数据库查询语言在允许用户指定对来自关系数据库的数据的请求方面具有强大功能,但它们却很难学习。为了能够使用数据库查询语言有效地编写数据库查询,需要具备数据库方面的专业知识和强大的技术知识。一些系统支持自然语言来访问存储在系统中的数据。自然语言查询提供了易于表达,因为人们不需要培训如何使用自然语言。但是,这些系统不提供数据库查询语言(例如SQL)的表达能力。例如,自然语言查询可以以多种方式来解释,但相应地,执行自然语言查询来访问存储在关系数据库中的数据可能效率不高,并且可能无法检索所请求的确切信息。因此,使用自然语言查询或数据库查询来访问关系数据库中存储的数据的常规技术具有缺点,因为它们要么提供了易于表达,要么提供了表达的能力,但不能同时提供两者。附图说明所公开的实施例具有其他优势和特征,这些优势和特征从具体实施方式、附加的权利要求以及所附的图(附图)将更加显而易见。图1是示出了根据实施例的用于将自然语言查询转换为数据库查询的整个系统环境的高级框图。图2示出了根据实施例的用于将自然语言查询转换成数据库查询的计算系统的系统架构。图3示出了根据实施例的自然语言与数据库查询转换器执行的处理的细节。图4示出了根据实施例的用于将自然语言查询转换成数据库查询的总体过程。图5示出了根据实施例的聚合分类器基于自然语言查询来确定输出数据库查询的聚合算子的过程。图6示出了根据实施例的结果列预测器基于自然语言查询来确定输出数据库查询的SELECT子句的列的过程。图7示出了根据实施例的训练条件子句预测器以确定输出数据库查询的条件子句的过程。图8是说明用于实现图1的客户端设备和/或计算系统的示例计算机的高级框图。这些图(附图)和下面的描述仅通过举例来描述某些实施例。本领域技术人员将从以下描述中容易地认识到,在不脱离本文描述的原理的情况下,可以采用本文所示的结构和方法的替代实施例。现在将详细参考几个实施例,其示例在附图中进行了说明。具体实施方式计算系统使用深度神经网络将自然语言查询转换为相应的数据库查询,例如,使用结构化查询语言(SQL)指定的查询。实施例使用SQL查询的结构来大幅度减小所生成的查询的输出空间。该计算系统使用深度神经网络将自然语言查询转换(translate)为数据库查询。在实施例中,计算系统使用多个基于机器学习的模型,例如基于神经网络的模型,来生成输出数据库查询的不同部分。例如,计算系统可以使用聚合分类器模型来确定数据库查询中的聚合算子,使用结果列预测器模型来确定数据库查询的结果列,以及使用条件子句预测器模型来确定数据库查询的条件子句。在一个实施例中,聚合分类器模型和结果列预测器模型包括多层感知器。条件子句预测器模型使用基于策略的强化学习(RL)来生成数据库查询的条件子句。之所以如此,是因为条件子句本质上是无序的,并且条件子句的多个表示可以为数据库查询提供相同的输出结果。因此,条件子句不适合使用交叉熵损失进行优化。使用组合了交叉熵损失和RL奖励的混合目标来训练深度神经网络。例如,数据库可以存储带有列编号(Pick_number),CFL团队(CFL_Team),玩家(Player),位置(Position)和大学(College)的表CFLDraft。该表可以存储以下示例行:系统接收自然语言查询,例如“HowmanyCFLteamsarefromYorkCollege?(有多少个CFL团队来自约克大学?)”系统处理接收到的自然语言查询,该自然语言查询与包含表CFLDraft的数据库模式相关联,以使用SQL语言“SELECTCOUNT(CFL_Team)FROMCFLDraftWHERECollege=“York””来生成数据库查询。系统使用数据库模式执行数据库查询。表CLFDraft的两行匹配数据库查询的WHERE子句,因为它们具有大学“约克(York)”。结果,系统返回结果2。整个系统环境图1是根据实施例的示出了用于将自然语言查询转换为数据库查询的整个系统环境的高级框图。系统环境100包括通过网络150连接到计算系统130的一个或更多个客户端设备110。计算系统130可以是在线系统,但是也可以离线工作,例如通过执行将一组自然语言查询中的每一个转换成数据库查询的批处理。这里仅示出了两个客户端设备110a,110b,但是这些实体中的每个实体可以有多个实例。例如,可以存在多个计算系统130以及与每个计算系统130通信的数十个或数百个客户端设备110。附图使用相同的附图标记来标识相同的元件。诸如“110a”之类的附图标记后的字母表示该文本专门指代具有该特定附图标记的元素。文本中没有以下字母的参考数字,例如“110”,是指图中带有该参考数字的任何或所有元件。客户端设备110是诸如具有之类的操作系统的智能手机,平板计算机,膝上型计算机,台式计算机,汽车或其他车辆中的电子立体声设备,或任何其他类型的启用网络的设备(可以收听或以其他方式体验数字内容)。典型的客户端设备110包括连接到网络150所需的硬件和软件(例如,经由Wifi和/或4G或其他无线电信标准)。客户端设备110包括客户端应用程序120,客户端应用程序120允许客户端设备110的用户与计算系统130进行交互。例如,客户端应用程序120可以是允许用户输入发送到计算系统130的自然语言查询的用户界面。客户端应用程序120从计算系统130接收结果,并将结果经由用户界面呈现给用户。在一个实施例中,客户端应用程序120是允许客户端设备110的用户与在计算系统130上执行的网络服务器交互的浏览器。计算系统130包括用于执行一组协调功能或任务的软件。该软件可以允许计算系统130的用户执行某些任务或感兴趣的活动,或者可以包括向其他软件提供某些功能和服务的系统软件(例如,操作系统)。计算系统130从客户端设备110接收请求,并执行与所接收的请求相关联的计算机程序。作为示例,计算系统130可以执行响应于来自客户端设备110的请求的计算机程序,以将自然语言查询转换为数据库查询。在计算系统130上执行的软件可以包括以协作方式编写的计算机程序、库和相关数据的复杂集合,其中的多方或团队负责管理软件的不同组件。在一个实施例中,计算系统130从客户端设备110接收自然语言查询135。用户可以经由在计算系统130上执行的客户端应用程序120来提供自然语言查询135。计算系统130存储数据库模式145,该数据库模式145定义了存储在数据库中的数据结构。例如本文档来自技高网...

【技术保护点】
1.一种由包括一个或更多个计算机的计算机系统执行的方法,其中所述计算机系统执行以下步骤:/n基于使用数据库模式存储的数据,接收输入自然语言查询;/n从多个项生成令牌序列,所述多个项包括:/n所述输入自然语言查询的项,/n所述数据库模式的一组列,以及/n数据库查询语言的词汇表;/n生成一个或更多个输入表示,每个输入表示通过对所述令牌序列进行编码而获得;/n访问基于机器学习的多个模型,每个模型配置为预测与所述输入自然语言查询相对应的数据库查询的部分;/n对于所述多个模型中的每一个,基于一输入表示执行模型以生成所述数据库查询的一部分;/n组合所生成的数据库查询的各部分,以获得所述数据库查询;/n执行所述数据库查询,以获得结果集。/n

【技术特征摘要】
【国外来华专利技术】20170518 US 62/508,367;20180131 US 15/885,6131.一种由包括一个或更多个计算机的计算机系统执行的方法,其中所述计算机系统执行以下步骤:
基于使用数据库模式存储的数据,接收输入自然语言查询;
从多个项生成令牌序列,所述多个项包括:
所述输入自然语言查询的项,
所述数据库模式的一组列,以及
数据库查询语言的词汇表;
生成一个或更多个输入表示,每个输入表示通过对所述令牌序列进行编码而获得;
访问基于机器学习的多个模型,每个模型配置为预测与所述输入自然语言查询相对应的数据库查询的部分;
对于所述多个模型中的每一个,基于一输入表示执行模型以生成所述数据库查询的一部分;
组合所生成的数据库查询的各部分,以获得所述数据库查询;
执行所述数据库查询,以获得结果集。


2.根据权利要求1所述的方法,其中从客户端设备接收所述输入自然语言查询,并且所述方法还包括将所述结果集发送到所述客户端设备的步骤。


3.根据权利要求1所述的方法,其中所述多个模型包括用于确定所述数据库查询中的聚合算子的聚合分类器模型,其中所述聚合分类器模型包括多层感知器。


4.根据权利要求1所述的方法,其中所述多个模型包括用于确定所述数据库查询的结果列的结果列预测器模型,其中所述结果列预测器模型包括多层感知器。


5.根据权利要求1所述的方法,其中所述多个模型包括用于确定所述数据库查询的条件子句的条件子句预测器模型,其中所述条件子句预测器模型是基于强化学习的。


6.根据权利要求5所述的方法,还包括:
基于地面实况数据库查询接收结果集;
基于从生成的查询获得的结果与从所述地面实况查询获得的结果的比较来确定奖励值;以及
基于所述奖励值调整所述条件子句预测器模型的权重。


7.根据权利要求5所述的方法,还包括:
确定与所述序列中的每个令牌相对应的列编码;
针对输入序列的每个令牌,确定包含标量注意力分数的向量;
使用softmax函数对所述向量进行归一化;以及
确定所述输入表示,作为由相应归一化的分数加权的列编码之和。


8.根据权利要求1所述的方法,还包括:
使用梯度下降对所述多个模型进行训练,以基于所述多个模型中每一个的结果最小化表示损失的目标函数。


9.根据前述权利要求之一所述的方法,其中生成所述一个或更多个输入表示包括:通过以下步骤计算输入表示κagg:
针对令牌序列中的每个第t个令牌,计算标量注意力分数其中是与输入序列中的第t个词相对应的编码器的状态,
归一化分数向量以产生所述令牌序列中的令牌的分布,
获得所述输入表示κagg为



其中βagg=softmax(αagg)且αagg=Waggtanh(Vaggκagg+bagg)+cagg。


10.根据前述权利要求之一所述的方法,还包括:
使用具有指针网络的长短期记忆(LSTM),所述长短期记忆(LSTM)用一个或更多个列名称来公式化所述SQL查询的选择子句,包括:
给出列表示和问题表示的列表,选择与问题最匹配的列,其中通过使用LSTM对每个列名称进行编码来获得列表示的列表,其中特定列j的表示通过给出。


11.根据前述权利要求之一所述的方法,还包括:
使用强化学习通过对数据库执行生成的SQL查询来公式化SQL查询的where条件,以获得奖励R(q(y),qg),R(q(y),qg)被定义为:



其中q(y)表示所述模型生成的查询,...

【专利技术属性】
技术研发人员:V·钟熊蔡明R·佐赫尔
申请(专利权)人:易享信息技术有限公司
类型:发明
国别省市:美国;US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1