CN110945495B - 基于神经网络的自然语言查询到数据库查询的转换 - Google Patents

基于神经网络的自然语言查询到数据库查询的转换 Download PDF

Info

Publication number
CN110945495B
CN110945495B CN201880033017.3A CN201880033017A CN110945495B CN 110945495 B CN110945495 B CN 110945495B CN 201880033017 A CN201880033017 A CN 201880033017A CN 110945495 B CN110945495 B CN 110945495B
Authority
CN
China
Prior art keywords
query
database
agg
column
input
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201880033017.3A
Other languages
English (en)
Other versions
CN110945495A (zh
Inventor
V·钟
熊蔡明
R·佐赫尔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shuo Power Co
Original Assignee
Salesforce com Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Salesforce com Inc filed Critical Salesforce com Inc
Publication of CN110945495A publication Critical patent/CN110945495A/zh
Application granted granted Critical
Publication of CN110945495B publication Critical patent/CN110945495B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2452Query translation
    • G06F16/24522Translation of natural language queries to structured queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/004Artificial life, i.e. computing arrangements simulating life
    • G06N3/006Artificial life, i.e. computing arrangements simulating life based on simulated virtual individual or collective life forms, e.g. social simulations or particle swarm optimisation [PSO]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/01Probabilistic graphical models, e.g. probabilistic networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2457Query processing with adaptation to user needs
    • G06F16/24578Query processing with adaptation to user needs using ranking

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Computing Systems (AREA)
  • Evolutionary Computation (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Biomedical Technology (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Biophysics (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Computational Mathematics (AREA)
  • Algebra (AREA)
  • Probability & Statistics with Applications (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

计算***使用神经网络将自然语言查询转换为数据库查询。该计算***使用基于机器学习的多个模型,每个机器学习模型用于生成数据库查询的一部分。机器学习模型使用基于输入自然语言查询项、数据库模式的一组列和数据库查询语言(例如,结构化查询语言SQL)的词汇表生成的输入表示。基于机器学习的多个模型可包括:用于确定数据库查询的聚合算子的聚合分类器模型,用于确定数据库查询的结果列的结果列预测器模型,用于确定数据库查询的条件子句的条件子句预测器模型。该条件子句预测器是基于强化学习的。

Description

基于神经网络的自然语言查询到数据库查询的转换
技术领域
本公开总地涉及数据库查询的自动生成,并且更具体地,涉及用于将自然语言查询转换成数据库查询的基于神经网络的模型。
背景技术
世界上大量可用的数据存储在关系数据库中,关系数据库为诸如医疗记录、金融市场、客户关系管理之类的应用程序提供了基础。但是,访问关系数据库中的信息需要了解数据库查询语言,例如结构化查询语言(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。该表可以存储以下示例行:
Figure BDA0002277827520000031
***接收自然语言查询,例如“How many CFL teams are from York College?(有多少个CFL团队来自约克大学?)”***处理接收到的自然语言查询,该自然语言查询与包含表CFLDraft的数据库模式相关联,以使用SQL语言“SELECT COUNT(CFL_Team)FROMCFLDraft WHERE College=“York””来生成数据库查询。***使用数据库模式执行数据库查询。表CLFDraft的两行匹配数据库查询的WHERE子句,因为它们具有大学“约克(York)”。结果,***返回结果2。
整个***环境
图1是根据实施例的示出了用于将自然语言查询转换为数据库查询的整个***环境的高级框图。***环境100包括通过网络150连接到计算***130的一个或更多个客户端设备110。计算***130可以是在线***,但是也可以离线工作,例如通过执行将一组自然语言查询中的每一个转换成数据库查询的批处理。
这里仅示出了两个客户端设备110a,110b,但是这些实体中的每个实体可以有多个实例。例如,可以存在多个计算***130以及与每个计算***130通信的数十个或数百个客户端设备110。附图使用相同的附图标记来标识相同的元件。诸如“110a”之类的附图标记后的字母表示该文本专门指代具有该特定附图标记的元素。文本中没有以下字母的参考数字,例如“110”,是指图中带有该参考数字的任何或所有元件。
客户端设备110是诸如具有
Figure BDA0002277827520000041
之类的操作***的智能手机,平板计算机,膝上型计算机,台式计算机,汽车或其他车辆中的电子立体声设备,或任何其他类型的启用网络的设备(可以收听或以其他方式体验数字内容)。典型的客户端设备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定义了存储在数据库中的数据结构。例如,数据库模式145可以标识存储在数据库中的各种表、每个表的列、表之间的关系(例如外键关系)、与表相关联的任何约束等等。
自然语言与数据库查询转换器140接收自然语言查询135和数据库模式145作为输入,并生成与输入的自然语言查询135等效的数据库查询155。所生成的数据库查询155符合数据库模式145。所生成的数据库查询155由数据库查询处理器150接收,该数据库查询处理器150使用存储在数据库160中的数据来处理数据库查询155。数据库查询处理器150通过处理数据库查询155来生成查询结果165。计算***130将所生成的查询结果165提供给在发送自然语言查询135的客户端设备110上运行的客户端应用程序120。
在一个实施例中,自然语言与数据库查询转换器140执行序列到序列的转换。传统的基于神经网络的序列到序列转换器的搜索空间很大。相反,本实施例利用数据库查询语言中固有的结构来减少搜索空间。特别是,***基于表模式、输入问题和SQL关键词的结合,对生成的序列的输出空间进行了限制。在一个实施例中,自然语言与数据库查询转换器140使用深度神经网络,其中深度神经网络是具有增强的输入的指针网络。
网络150在客户端设备110和记录管理***130之间提供通信基础设施。网络150通常是互联网,但可以是任何网络,包括但不限于局域网(LAN)、城域网(MAN)、广域网(WAN)、移动有线或无线网络、专用网络或虚拟专用网络。网络150的部分可以使用通信技术通过链接提供,这些技术包括基于IEEE 802.11标准的WiFi、蓝牙短程标准和无线通用串行总线(USB)标准。
***架构
图2示出了用于将自然语言查询转换成数据库查询的计算***的***架构。计算***130包括输入编码模块210、训练模块240、自然语言与数据库查询转换器140、查询合成模块220,查询执行引擎230、训练数据存储215和数据库160。未示出诸如网络接口、安全功能、负载平衡器、故障转移服务器、管理和网络操作控制台等的常规组件,以免模糊***架构的细节。
输入预处理模块210预处理输入数据,以作为输入提供给自然语言与数据库查询转换器140。在一个实施例中,输入预处理模块210通过将来自数据库模式、输入的自然语言查询和数据库查询语言(例如,SQL)的词汇的列名称进行串接(concatenate)来生成令牌(token)序列(420)。输入预处理模块210生成一个或更多个输入表示,以提供给生成输出数据库查询的各个部分的各个模型。
自然语言与数据库查询转换器140处理输入的自然语言查询,以生成与自然语言查询相对应的数据库查询。在一个实施例中,自然语言与数据库查询转换器140包括其他组件,例如,聚合分类器260、结果列预测器270和条件子句预测器280,结合图3进一步描述。
自然语言与数据库查询转换器140使用不同的神经网络生成数据库查询的不同组件。在一个实施例中,自然语言与数据库查询转换器140使用不同的神经网络来生成数据库查询的组件,包括选择列、聚合算子和where子句。
训练模块240使用存储在训练数据存储215中的历史数据来训练自然语言与数据库查询转换器140的神经网络。在一个实施例中,训练模块240使用交叉熵损失训练聚合分类器260和结果列预测器270,但是使用策略梯度强化学习训练条件子句预测器280,以解决查询条件的无序性质。使用SQL查询结构允许自然语言与数据库查询转换器140来减少数据库查询的输出空间。与不使用查询结构的其他技术相比,这将会导致显著更高的性能。
查询合成模块220接收自然语言与数据库查询转换器140生成的数据库查询的各个组件,并将它们组合起来以获得数据库查询。查询执行引擎230使用存储在数据库160中的数据执行由查询合成模块220提供的数据库查询。计算***130将查询的执行结果返回给结果的请求者,例如,在客户端设备110上执行的客户端应用程序120。
图3示出了根据一实施例的自然语言与数据库查询转换器140执行的处理细节。如图3所示,自然语言与数据库查询转换器140的输入包括自然语言查询320和数据库模式320。在上面基于CFLDraft表说明的示例中,自然语言查询320为“How many CFL teams arefrom York College?(有多少个CFL团队来自约克大学?)”,数据库模式320包括各个列,其中各个列包括:编号(Pick_number),CFL团队(CFL_Team),玩家(Player),位置(Position)和大学(College)。示例输出数据库查询为:“SELECT COUNT(CFL_Team)FROM CFLDraftWHERE College=“York””。
输入预处理模块210生成一个或更多个输入表示,并将输入表示提供给自然语言与数据库查询转换器140的每个组件,该自然语言与数据库查询转换器140包括聚合分类器260、结果列预测器270和条件子句预测器280。聚合分类器260、结果列预测器270和条件子句预测器280中的每一个都生成输出数据库查询的一部分。
结果列预测器270生成结果列,例如,使用SQL表示的输出数据库查询的SELECT子句310中指定的列。结果列的示例是示例输出数据库查询中的列CFL团队。在一个实施例中,结果列预测器270是指针网络,其接收列序列的编码作为输入,并且指向对应于SELECT列的列序列中的列。
条件子句预测器280生成输出数据库查询的WHERE子句320,该WHERE子句320指定用于过滤输出数据库查询的输出行的条件。在上面的示例中,WHERE子句“College=“York””是输出数据库查询中的条件子句。
聚合分类器260在输出数据库查询中生成聚合算子330(如果有的话),例如在示例输出数据库查询中生成COUNT算子。聚合算子产生SQL选择的行的摘要。聚合分类器260可以生成的聚合算子的示例包括最大值(MAX)、最小值(MIN)、平均值(AVG)、和(SUM)等等。如果在输出查询中没有聚合算子,则聚合分类器260可以生成NULL聚合算子。
提供包括SELECT子句310、WHERE子句320和聚合算子330在内的输出数据库查询的各个组件,以作为查询合成模块270的输入。查询合成模块270组合输出数据库查询的各个组件以生成完整的输出数据库查询340。
整个过程
图4-图7示出了用于将自然语言查询转换为数据库查询的各种过程。本领域技术人员将认识到,其他实施例可以以不同于流程图中所示的顺序执行图4-图7的步骤。而且,其他实施例可以包括与本文描述的步骤不同的步骤和/或另外的步骤。被指示为由某些模块执行的步骤可以由其他模块执行。
图4示出了根据一实施例的用于将自然语言查询转换成数据库查询的总体过程。自然语言与数据库查询转换器140接收输入的自然语言查询(410)。输入预处理模块210通过串接来自数据库模式的列名、输入的自然语言查询和数据库查询语言的词汇表(例如SQL语言的各种关键字,例如SELECT,FROM,WHERE等等)来生成令牌序列(420)。例如,等式(1)示出了令牌序列包含列名称
Figure BDA0002277827520000081
表示SQL词汇的项(term)xs、表示输入的自然语言查询的项xq
Figure BDA0002277827520000082
在等式(1)中,序列a与b的串接表示为[a;b]。此外,组合的序列x包括相邻序列之间的哨兵(sentinel)令牌以划分边界。例如,令牌<col>标识列名称,令牌<sql>标识表示SQL词汇表的项,令牌<question>标识输入的自然语言查询的项。
输入预处理模块210生成令牌序列的输入表示(430)。在实施例中,输入预处理模块210生成多个输入表示,多个模型中的每个模块一个输入表示。
自然语言与数据库查询转换器140访问多个神经机器学习模型,每个模型被配置为生成输出数据库查询的一部分。在一个实施例中,自然语言与数据库查询转换器140将多个基于经训练的神经网络的模型从存储设备加载到存储器。自然语言与数据库查询转换器140向多个基于机器学习的模型中的每一个提供输入表示(450)。多个基于机器学习的模型中的每一个都生成数据库查询的一部分。
在一些实施例中,输入预处理模块210生成多个输入表示,自然语言与数据库查询转换器140可以向每个基于机器学习的模型提供不同的输入表示。每个基于机器学习的模型都生成数据库查询的一部分,并将其提供给查询合成模块270。查询合成模块270组合数据库查询的多个部分以生成完整的数据库查询(460)。查询执行引擎230执行数据库查询以生成结果集(470)。
聚合分类器
图5示出了聚合分类器基于自然语言查询来确定输出数据库查询的聚合算子的过程。聚合分类器260基于在输入的自然语言查询中指定的问题的类型来确定输出数据库查询的聚合算子。例如,聚合分类器260可以将包括字符串“多少(how many)”的输入问题映射到聚合算子COUNT,聚合分类器260可以将包括“什么是最高的(what is the highest)”的输入问题映射到聚合算子最大值,聚合分类器260可以将包括“什么是最小的(what is thesmallest)”的输入问题映射到聚合算子的最小值等等。
聚合分类器260确定输入令牌序列的输入表示(510)。聚合分类器260计算输入序列中的每个第t个令牌的标量注意力分数αt inp=Winp*ht enc。聚合分类器260生成分数的向量αinp=[α1 inp,α2 inp,...]。聚合分类器260归一化分数向量αinp,以通过对向量αinp应用softmax函数确定βinp=softmax(αinp),来产生输入编码的分布。聚合分类器260产生输入编码的分布。聚合分类器260将输入表示κagg确定为由归一化的分数βinp加权的输入编码henc的总和,如以下等式所示。
Figure BDA0002277827520000091
聚合分类器260包括应用于所生成的输入表示κagg的多层感知器,以生成与各种聚合运算相对应的分数αagg,聚合运算例如COUNT、MIN、MAX、指示没有聚合的NULL算子等。聚合分类器260基于所生成的分数来识别针对数据库查询的聚合运算(530)。
在一个实施例中,聚合分类器260使用以下方程确定αagg
αagg=Waggtanh(Vaggκagg+bagg)+cagg (3)
项Wagg,Vagg,bagg和cagg表示对应于多层感知器的权重。聚合分类器260应用softmax函数以获得在可能的聚合运算βagg=softmax(αagg)的集合上的分布。基于交叉熵损失Lagg训练聚合分类器。
结果列预测器
SELECT子句也称为选择列或结果列。结果列预测器270基于数据库模式中的表列以及自然语言查询来确定选择列。例如,给定自然语言查询“有多少个CFL团队(How manyCFL teams)...”,结果列预测器270确定选择列包括CFLDraft表中的CFL_Teams列。因此,结果列预测器270解决了作为匹配问题的SELECT列预测问题。在一个实施例中,结果列预测器270使用指针来标识SELECT列。给定列表示的列表和自然语言查询的表示,结果列预测器270选择与自然语言查询最匹配的列。
图6示出了结果列预测器执行的用于基于自然语言查询来确定输出数据库查询的SELECT子句的列的过程。结果列预测器270通过使用LSTM(长短期记忆网络)对每个列名称进行编码(610)来使用列的输入表示。输入预处理模块210使用以下等式生成特定列j的输入表示ec j(620):
Figure BDA0002277827520000101
在该等式中,
Figure BDA0002277827520000102
表示第j列的第t个编码器状态,emb是返回嵌入的函数。输入预处理模块210使最后的编码器状态为ec j,列j的表示。
输入预处理模块210使用类似于以上针对κagg所描述的架构来构建用于自然语言查询κsel的表示。结果列预测器270以输入表示为条件,在列表示上应用多层感知器(630),以使用以下等式计算每列j的分数:
Figure BDA0002277827520000103
在等式中Wsel,Vsel,和Vc是多层感知器的权重。结果列预测器270使用softmax函数对分数进行归一化(640),以产生可能的SELECT列βsel=softmax(αsel)的分布。在CFLDraft表的上述示例中,分布是在“编号(Pick_number)”、“CFL团队(CFL_Team)”、“玩家(Player)”、“位置(Position)”和“大学(College)”列上。结果列预测器270基于归一化的分数来选择输出数据库查询的结果列(650)。基于交叉熵损失Lsel来训练聚合分类器。
条件子句预测器
在一个实施例中,条件子句预测器使用指针解码器生成WHERE子句。但是,查询的WHERE条件可以互换,查询将产生相同的结果。例如,给定自然语言查询“which males areolder than 18(年龄大于18岁的男性)”,输出数据库查询可以是“SELECT name FROMinsurance WHERE age>18AND gender=“male””或者“SELECT name FROM insuranceWHERE gender=“male”and age>18”。即使这两个数据库查询并不基于两个查询字符串之间的字符串匹配而匹配,但这两次数据库查询都获得正确的执行结果。如果在训练神经网络时将第一次数据库查询作为地面实况(ground truth)提供,并且使用交叉熵损失来监督训练,则第二次数据库查询将被错误地处罚,因为它与基于字符串匹配的第一次数据库查询不匹配。因此,实施例应用强化学习来学习策略,以直接优化数据库查询的执行结果的预期正确性。
图7示出了根据一个实施例的训练条件子句预测器以确定输出数据库查询的条件子句的过程。条件子句预测器280接收自然语言查询710和数据库模式720作为输入,以生成数据库查询730。条件子句预测器280使用数据库160发送数据库查询以执行,以获得奖励度量。查询执行引擎230执行所生成的数据库查询730,以获得预测的查询结果750。计算***130将地面实况的查询结果750存储在训练数据存储215中。条件子句预测器280将预测的查询结果750与地面实况的查询结果750进行比较以确定奖励750。提供奖励作为条件子句预测器280的输入,同时作为训练条件子句预测器280的反馈。
由WHERE子句中的条件子句预测器280生成的令牌序列由y=[y1,y2,...,yT]表示。令q(y)表示由模型生成的查询,而qg表示与自然语言查询相对应的地面实况的数据库查询。条件子句预测器280使用以下等式作为奖励度量R(q(y),qg):
Figure BDA0002277827520000111
因此,如果所生成的数据库查询的执行结果与作为地面实况提供的预期结果相匹配,则条件子句预测器280分配正奖励。如果所生成的数据库查询的执行结果未能与作为地面实况提供的预期结果相匹配,或者如果所生成的数据库查询不是有效的数据库查询,则条件子句预测器280分配负奖励。
条件子句预测器280将损失Lwhe确定为可能的WHERE子句的负期望奖励。训练模块使用梯度下降来训练条件子句预测器280,以最小化目标函数L=Lagg+Lsel+Lwhe。因此,条件子句预测器280将总梯度确定为从预测SELECT列的交叉熵损失、预测聚合运算的交叉熵损失和条件子句的策略学习得到的梯度的加权和。
自然语言与数据库查询转换器140的结构合并可减少可生成的无效的数据库查询。列名称导致的大量无效查询结果-生成的查询引用了表中不存在的选择列。当列名称包含许多令牌(例如“Miles
(km)”,其有4个令牌)时,这特别有用。为聚合引入分类器还可以降低错误率。聚合分类器的使用提高了预测COUNT算子的准确性和查全率(recall)。使用表示学习来生成条件子句会导致生成更高质量的WHERE子句,该子句的排序可能不同于地面实况。即使条件的顺序与地面实况查询不同,使用基于策略的表示学习来进行训练也会得到正确的结果。
计算机架构
图8是说明用于实现图1的客户端设备和/或计算***的示例计算机的高级框图。计算机800包括耦合到芯片组804的至少一个处理器802。芯片组804包括存储器控制器集线器820和输入/输出(I/O)控制器集线器822。存储器806和图形适配器812耦合到存储器控制器集线器820,并且显示器818耦合到图形适配器812。存储设备808、输入设备814和网络适配器816耦合到I/O控制器集线器822。计算机800的其他实施例具有不同的架构。
存储设备808是非暂时性计算机可读存储介质,例如硬盘驱动器、光盘只读存储器(CD-ROM)、DVD或固态存储器设备。存储器806保存处理器802使用的指令和数据。输入接口814可以是触摸屏接口、鼠标、跟踪球或其他类型的指示设备、键盘或其某种组合,并且用于将数据输入到计算机800中。在一些实施例中,计算机800可以被配置为经由来自用户的手势从输入接口814接收输入(例如,命令)。图形适配器812在显示器818上显示图像和其他信息。网络适配器816将计算机800耦合到一个或更多个计算机网络。
计算机800适于执行计算机程序模块以提供本文描述的功能。如本文所使用的,术语“模块”是指用于提供指定功能的计算机程序逻辑。因此,可以用硬件、固件和/或软件来实现模块。在一个实施例中,程序模块被存储在存储设备808上,被加载到存储器806中,并由处理器802执行。
图1中实体使用的计算机800的类型可根据实施例和实体所需的处理能力而有所不同。计算机800可能缺少上面描述的一些组件,例如图形适配器812和显示器818。例如,计算***130可以由多个刀片服务器组成,这些服务器通过网络(如服务器农场)进行通信。
本申请的主题的实现尤其可以是以下示例1至21:
1.一种方法,包括:
基于使用数据库模式存储的数据,接收输入的自然语言查询;
从多个项生成令牌序列,所述多个项包括:
所述输入的自然语言查询的项,
所述数据库模式的一组列,以及
数据库查询语言的词汇表;
生成一个或更多个输入表示,每个输入表示通过对所述令牌序列进行编码而获得;
访问基于机器学习的多个模型,每个模型配置为预测与所述输入自然语言查询相对应的数据库查询的部分;
对于所述多个模型中的每一个,基于所述输入表示执行模型以生成所述数据库查询的部分;
组合所生成的数据库查询的部分,以获得所述数据库查询;
执行所述数据库查询,以获得结果集。
2.根据示例1所述的方法,其中从客户端设备接收所述输入自然语言查询,并且所述方法还包括将所述结果集发送到所述客户端设备的步骤。
3.根据示例1所述的方法,其中所述多个模型包括用于确定所述数据库查询中的聚合算子的聚合分类器模型,其中所述聚合分类器模型包括多层感知器。
4.根据示例1所述的方法,其中所述多个模型包括用于确定所述数据库查询的结果列的结果列预测器模型,其中所述结果列预测器模型包括多层感知器。
5.根据示例1所述的方法,其中所述多个模型包括用于确定所述数据库查询的条件子句的条件子句预测器模型,其中所述条件子句预测器模型是基于强化学习的。
6.根据示例5所述的方法,还包括:
基于地面实况数据库查询接收结果集;
基于从生成的查询获得的结果与从地面实况查询获得的结果的比较来确定奖励值;以及
基于所述奖励值调整所述条件子句预测器模型的权重。
7.根据示例5所述的方法,还包括:
确定与所述序列中的每个令牌相对应的列编码;
针对输入序列的每个令牌,确定包含标量注意力分数的向量;
使用softmax函数对所述向量进行归一化;以及
确定所述输入表示,作为由相应归一化的分数加权的列编码之和。
8.根据示例1所述的方法,还包括:
使用梯度下降对所述多个模型进行训练,以基于所述多个模型中每一个的结果最小化表示损失的目标函数。
9.根据前述示例之一所述的方法,其中生成所述一个或更多个输入表示包括:通过以下步骤计算输入表示κagg
针对令牌序列中的每个第t个令牌,计算标量注意力分数
Figure BDA0002277827520000141
其中
Figure BDA0002277827520000142
是与输入序列中的第t个词相对应的编码器的状态,
归一化分数向量
Figure BDA0002277827520000143
以产生所述令牌序列中的令牌的分布,
获得所述输入表示κagg
Figure BDA0002277827520000144
其中βagg=softmax(αagg),且αagg=Waggtanh(Vaggκagg+bagg)+cagg
10.根据前述示例之一所述的方法,还包括:
使用具有指针网络的长短期记忆(LSTM),所述长短期记忆(LSTM)用一个或更多个列名称来公式化所述SQL查询的选择子句,包括:
给出列表示和问题表示的列表,选择与问题最匹配的列,其中通过使用LSTM对每个列名称进行编码来获得列表示的列表,其中特定列j的表示
Figure BDA0002277827520000151
通过
Figure BDA0002277827520000152
Figure BDA0002277827520000153
给出。
11.根据前述示例之一所述的方法,还包括:
使用强化学习通过对数据库执行生成的SQL查询来公式化SQL查询的where条件,以获得奖励R(q(y),qy),R(q(y),qy)被定义为:
Figure BDA0002277827520000154
其中q(y)表示模型生成的查询,qg表示与所述输入自然语言查询相对应的地面实况查询。
12.一种方法,包括:
处理自然语言请求以生成SQL查询的部分,包括:
使用具有指针网络的长短期记忆(LSTM),所述长短期记忆(LSTM)用一个或更多个列名称来公式化SQL查询的选择子句;和
使用通过强化学习训练的增强指针解码器来公式化SQL查询的where条件。
13.根据示例12所述的方法,还包括:
使用多层感知器确定适用于指定条件下选择的列的SQL查询的聚合运算。
14.根据示例12或13所述的方法,其中使用具有指针网络的长短期记忆(LSTM),所述长短期记忆(LSTM)用一个或更多个列名称来公式化所述SQL查询的选择子句,包括:
给定列表示和问题表示的列表,选择与问题最匹配的列。
15.根据示例14所述的方法,其中所述列表示的列表通过使用LSTM对每个列名称进行编码来获得,其中特定列j的表示
Figure BDA0002277827520000155
通过
Figure BDA0002277827520000156
Figure BDA0002277827520000157
给出。
16.根据示例14-15之一所述的方法,其中生成所述一个或更多个输入表示包括通过以下步骤计算输入表示κagg
针对令牌序列中的每个第t个令牌,计算标量注意力分数
Figure BDA0002277827520000161
其中
Figure BDA0002277827520000162
是与输入序列中的第t个词相对应的编码器的状态,
归一化分数向量
Figure BDA0002277827520000163
以产生所述令牌序列中的令牌的分布,
获得所述输入表示κagg
Figure BDA0002277827520000164
其中βagg=softmax(αagg)且αagg=Waggtanh(Vaggκagg+bagg)+cagg
17.根据示例14-16之一所述的方法,还包括:
使用强化学习通过对数据库执行生成的SQL查询来公式化SQL查询的where条件,以获得奖励R(q(y),qg),R(q(y),qg)被定义为:
Figure BDA0002277827520000165
其中q(y)表示模型生成的查询,qg表示与输入自然语言查询相对应的地面实况查询。
18.一种非暂时性计算机可读存储介质,包括计算机可执行代码,所述计算机可执行代码在由一个或更多个计算机执行时,使一个或更多个计算机执行根据示例1-17中任一项的步骤。
19.一种用于生成循环神经网络(RNN)体系架构的计算机***,所述计算机***包括:
一个或更多个计算机处理器;以及
非暂时性计算机可读存储介质,包括计算机可执行代码,该计算机可执行代码在由一个或更多个计算机执行时,使得该一个或更多个计算机执行根据权利要求18所述的方法的步骤。
20.一种计算机***,包括一个或更多个计算机处理器和至少一个非暂时性存储介质,并且还包括:
用于基于使用数据库模式存储的数据接收输入自然语言查询的装置;
用于从多个项生成令牌序列的装置,所述多个项包括:
所述输入自然语言查询的项,
所述数据库模式的一组列,以及
数据库查询语言的词汇表;
用于生成一个或更多个输入表示的装置,每个输入表示通过对所述令牌序列进行编码而获得;
用于访问基于机器学习的多个模型的装置,每个模型配置为预测与所述输入自然语言查询相对应的数据库查询的部分;
用于针对所述多个模型中的每一个,基于输入表示执行模型以生成所述数据库查询的部分的装置;
用于组合所生成的所述数据库查询的部分以获得所述数据库查询的装置;以及
用于执行所述数据库查询以获得结果集的装置。
21.一种计算机***,包括一个或更多个计算机处理器和至少一个非暂时性存储介质,并且还包括:
处理自然语言请求以生成SQL查询的部分的装置,包括:
用于使用具有指针网络的长短期记忆(LSTM)的装置,所述长短期记忆(LSTM)用一个或更多个列名称来公式化SQL查询的选择子句;以及
用于使用通过强化学习训练的增强指针解码器以公式化SQL查询的where条件的装置。
替代实施例
尽管所公开的实施例基于关系数据库并且使用SQL进行了说明,但是所公开的技术可应用于其他类型的数据库,例如,基于对象的数据库、对象关系数据库等。如果用于特定类型数据库的数据库查询语言支持等效于结果列、聚合子句或条件子句的特征,则所公开的技术适用。例如,如果数据库查询语言支持条件子句,则条件子句预测器可用于基于输入自然语言查询来预测输出数据库查询的条件子句。
应当理解,本发明已经简化了附图和描述,以示出对于清楚地理解本发明相关的元件,同时为了清楚起见,省去了在典型的分布式***中发现的许多其他元件。本领域技术人员可以认识到在实现实施例中其他元件和/或步骤是期望的和/或需要的。然而,由于这样的元件和步骤在本领域中是公知的,因为它们并不会促进对实施例的更好的理解,因此这里不再对这样的元件和步骤进行讨论。本文的公开内容针对本领域技术人员已知的对这样的元件和方法的所有这样的变型和修改。
上面的描述的某些部分在算法和信息操作的符号表示方面来描述实施例。这些算法的描述和表示通常由数据处理领域的技术人员用来将其工作的实质有效地传达给本领域的其他技术人员。这些操作虽然在功能上、计算上或逻辑上进行了描述,但应理解为由计算机程序或等效电路、微代码等实现。此外,在不失一般性的情况下,有时将这些操作布置称为模块也是方便的。所描述的操作及其相关的模块可以用软件、固件、硬件或其任何组合来体现。
如本文所使用的,对“一个实施例”或“一实施例”的任何引用均表示结合该实施例描述的特定元件、特征、结构或特性包括在至少一个实施例中。说明书中各个地方出现的短语“在一个实施例中”不一定都指的是同一实施例。
可以使用表达“耦合”和“连接”及其派生词来描述一些实施例。应该理解的是,这些术语并不旨在彼此等同。例如,可以使用术语“连接”来描述一些实施例,以表示两个或更多个元件彼此直接物理或电接触。在另一个示例中,可以使用术语“耦合”来描述一些实施例,以指示两个或更多个元件是直接物理或电接触。然而,术语“耦合”还可以表示两个或更多元件彼此不直接接触,但是仍然彼此协作或相互作用。实施例不限于此上下文。
如本文所使用的,术语“包括”、“包含”、“含有”、“具有”或其任何其他变型旨在覆盖非排他性包含。例如,包括一系列元素的过程、方法、物品或设备不必仅限于那些元素,而是可以包括未明确列出或此类过程、方法、物品或设备固有的其他元素。此外,除非明确指出相反的意思,否则“或”是指包含性的或而不是排他性的或。例如,条件A或B由以下任一条件满足:A为真(或存在)且B为假(或不存在),A为假(或不存在)且B为真(或存在),并且A和B均为真(或存在)。
另外,使用“一个”或“一种”来描述本文的实施例的要素和组分。这样做仅仅是为了方便并给出本发明的一般意义。该描述应被理解为包括一个或至少一个,并且单数也包括复数,除非显而易见的是另有说明。
在阅读了本公开之后,本领域技术人员将理解通过本文公开的原理,使用失真区域显示图表的***和过程的另外的替代结构和功能设计。因此,尽管已经示出和描述了特定的实施例和应用,但是应当理解,所公开的实施例不限于本文所公开的精确构造和组件。对本领域技术人员而言显而易见的是,在不脱离所附权利要求书所限定的精神和范围的情况下,可以对本文公开的方法和装置的布置、操作和细节进行各种修改、改变和变化。
附录
以下标题为“Seq2SQL:使用强化学习从自然语言生成结构化查询”的文档公开了“Seq2SQL”,它是此附录的一部分,因此也是本申请公开内容的一部分,其中公开了“Seq2SQL”-用于将自然语言问题转换成相应SQL查询的深度神经网络。Seq2SQL利用SQL查询的结构来显著减少所生成查询的输出空间。Seq2SQL包含三个组件,这些组件利用SQL查询的结构来大大减少所生成查询的输出空间。特别是,它使用指针解码器和策略梯度来生成查询的条件,由于它们的无序性质,我们证明该条件不适合使用交叉熵损失进行优化。Seq2SQL使用混合目标进行训练,该目标结合了交叉熵损失和数据库实时查询执行中的强化学习奖励。这些特征允许该模型在查询生成上可以实现大大改善的结果。
Seq2SQL:使用强化学习从自然语言生成结构化查询
匿名作者
附属
地址
埃内尔
摘要
关系数据库存储了大量的世界知识。然而,由于缺少对查询语言(如SQL)的理解,所以限制了用户从数据库中检索事实的能力。我们提出了Seq2SQL,这是一种将自然语言问题转换为相应的SQL查询的深度神经网络。我们的模型利用SQL查询的结构来显著减少生成的查询的输出空间。而且,我们使用循环查询执行将策略梯度强化学习来学习生成SQL查询条件的策略。查询的因素是无序的而且不太适合通过交叉熵损失进行优化。此外,我们将发布WikiSQL,这是由37000个手工注释的问题示例和分布在来自wikipedia的9500个表中SQL查询组成的数据集。这个数据集用来训练我们的模型并且比可比数据集大一个数量级。通过应用使用来自对WikiSQL执行的循环查询的奖励的策略梯度方法,我们发现Seq2SQL优于注意力序列到序列模型,执行精度从21.8%提高到52.2%,逻辑形式精度从20.4%提高到46.6%。
1.介绍
关系数据库存储了当下大量的信息,其为医疗记录[Hillestad等人,2005]、金融市场[Beck等人,2000]和客户关系管理[Ngai等人,2009]等关键应用程序提供了基础。然而,访问关系数据库需要理解SQL等查询语言(诸如SQL),尽管这些语言功能强大,但是很难掌握。自然语言接口(NLI)[Androutsopoulos等人,1995]是自然语言处理和人机交互的交叉研究领域,旨在为人类提供通过使用自然语言与计算机交互的手段。我们研究了自然语言接口应用于关系数据库的一个特定方面:将自然语言问题转换为SQL查询。
我们在这项工作中的主要贡献有两方面。首先,我们引入了Seq2SQL,这是用于将自然语言问题转换成相应SQL查询的深度神经网络。如图1所示,Seq2SQL由三个组件组成,它们利用SQL查询的结构来显著减少所生成的查询的输出空间。尤其是,它使用指针解码器和策略梯度来生成查询条件,由于其无序性,该查询条件不适合使用交叉熵损失进行优化。Seq2SQL使用混合目标对Seq2SQL进行训练,该混合目标组合交叉熵损失和由对数据库执行的实时查询而得到的强化学习奖励。这些特性允许该模型实现对查询的改进的结果生成。
Figure BDA0002277827520000221
图1:Seq2SQL将问题和表格的列表作为输入。它生成相应的SQL查询,在训练期间对数据库执行该查询。以执行结果作为奖励,训练强化学习算法。
第二,我们发布了WikiSQL,这是一个由37000个手工注释的自然语言问题实例、SQL查询和从来自Wikipedia的9500个HTML表中提取的SQL表组成的语料库。WikiSQL比还提供逻辑形式和自然语言表达的可比数据集要大一个数量级。我们以原始JSON格式和SQL数据库的形式发布了WikiSQL中使用的表。与WikiSQL一起,我们还为数据库发布了查询执行引擎,在策略学习期间我们使用它在循环中执行查询。在WikiSQL上,我们表明Seq2SQL的性能显著优于注意力序列到序列基线,其获得了20.3%的执行精度,以及指针网络基线,其获得了43.2%的执行精度。通过利用SQL查询的固有结构,并在训练期间使用来自实时查询执行的奖励信号应用策略梯度方法,Seq2SQL实现了对WikiSQL的显著改进,获得了52.2%的执行精度。
2.相关工作
从自然语言表达学习逻辑形式。在问答(QA)的语义分析中,自然语言问题被解析为逻辑形式,然后在知识图谱[Zelle&Mooney,1996,Wong&Mooney,2007,Zettlemoyer&Collins,2005,2007.]上执行。语义分析领域的其他工作关注的是学习解析器,而不依靠注释的逻辑形式,而是利用会话日志[Artzi&Zettlemoyer,2011]、演示[Artzi&Zettlemoyer,2013]、远程监督[Cai&Yates,2013,Reddy等人,2014]和问答对[Liang等人,2011]。最近,Pasupat&Liang[2015]引入了浮动解析器来处理大量的表达以及在web表上语义解析的表模式的变化。我们的方法不同于这些语义分析技术,因为它不依赖于高质量的语法和词汇,而是依赖于表示学习。
语义解析数据集。以前的语义解析***通常设计成在封闭域、固定模式数据集(如GeoQuery[Tang&Mooney,2001]和ATIS[Price,1990])上以回答复杂的组合问题。研究人员还研究了大型知识图谱子集(如DBPedia[Starc&Mladenic,2017]和Freebase[Cai&Yates,2013;Berant等人,2013])的问答。与这些数据集相比,WikiSQL是最大的,并且还有很大的差距——它在示例的数量和域/表模式的数量上要大一个数量级。“overnight”数据集,Wang等人[2015]使用类似的众包(crowd-sourcing)过程来构建一个(自然语言问题、逻辑形式)成对的数据集,但只有8个域。WikiTableQuestions[Pasupat&Liang,2015](其和WikiSQL一样)是一个问题和答案的集合,也是从***中提取的大量表格,在问题域的广度和问题复杂性的深度之间取得平衡。但是,WikiTableQuestions不提供逻辑形式,而WikiSQL提供。此外,WikiSQL侧重于为关系数据库表上的问题生成SQL查询,意图为真实世界构建自然语言接口,产生数据集。
序列生成的表示学习。我们的基线模型是基于Bahdanau等人[2015]提出的注意力序列到序列模型(Seq2Seq)。Seq2Seq在各种自然语言处理任务(例如:机器翻译[Sutskever等人,2014,Bahdaoau等人,2015]、总结[Nallapati等人,2016,Paulus等人,2017]、语义分析[Dong&Lapata,2016])上具有非常大的进步。Seq2Seq的灵感来自指针网络[Vinyals等人,2015],它不是从固定的词汇表(如序列到序列模型)生成词汇,而是从输入序列中选择词汇而生成。这类模型已成功地应用于诸如语言建模[Merity等人,2017]、总结[Gu等人,2016]、组合优化[Bello等人,2017]和问题回答[Seo等人,2017,Xiong等人,2017]之类的任务。神经方法也被应用于语义解析[Dong&Lapata,2016,Neelakantan等人,2017]。但是,与[Dong&Lapata,2016]不同的是,我们使用基于指针的生成方法而不是Seq2Seq生成方法,并证明了前一种方法工作得更好,特别是对于不可见的词汇和列名称。与[Neelakantan等人,2017]]不同的是,我们的模型在推理期间不需要访问表内容。与这两种方法相反,我们使用策略梯度来训练我们的模型,这再次显著地提高了性能。
Figure BDA0002277827520000241
图2:WikiSQL中的示例。输入包括表格和问题。输出包括地面实况SQL查询和相应的执行结果。
数据库的自然语言接口。WikiSQL的实际应用与自然语言接口(NLI)有很大关系。该领域最著名的工作之一是《PRECISE》[Popescu等人,2003],它将问题转换为SQL查询并识别不确定的问题。Giordani和Moschitti[2012]提出了另一种将问题转换成SQL的***,该模型首先从语法生成候选查询,然后使用树内核对查询进行排序。这两种方法都依赖于高质量的语法,不适合需要泛化到新模式的任务(例如WikiSQL)。Iyer等人[2017]也提出了翻译成SQL的***,但使用了Seq2Seq模型,该模型进一步改进了人类反馈。与该模型相比,我们表明了Seq2SQL显著优于Seq2Seq,并且在训练中使用强化学习代替人工反馈。
3.模型
Seq2SQL模型从自然语言问题和表模式1生成SQL查询。一个强大的基线模型是用于机器翻译的Seq2Seq模型[Babdanau等人,2015]。但是,Seq2Seq模型中的标准softmax的输出空间对于这个任务来说太大了。特别是,我们注意到,通过将生成的序列的输出空间限制为表模式、问题表达和SQL关键字的联合,可以极大地简化问题。得到的模型类似于带有增强的输入的指针网络[Vinyals等人,2015]。在我们对Seq2SQL的描述中,我们首先描述了该增强的指针网络模型,然后解决了它的局限性,特别是在生成无序查询条件方面。
Figure BDA0002277827520000242
3.1增强的指针网络
增强的指针网络通过从输入序列中进行选择来逐个令牌地生成SQL查询。在我们的例子中,输入序列是选择列所需的列名称和查询条件所需的查询条件列、问题以及有限的SQL语言词汇表(如SELECT、COUNT等)的串接。在图2所示的例子中,列名令牌包括“Pick”、“#”、“CFL”、“Team”等;问题令牌包括“How”、“many”、“CFL”、“teams”等;SQL令牌包括SELECT、WHERE、COUNT、MIN、MAX等。使用这个增强的输入序列,指针网络能够通过从输入中专门选择来生成SQL查询。
如图2所示,假设我们有包含N个表列的列表和问题,并被要求生成相应的SQL查询。令xc j=[xc j,1,xc j,2,…xc j,Tj]表示第j列名称中的词序列,其中xc j,i表示第j列中的第i个词,Tj表示第j列中的词的总数。同样,让xq和xs分别表示问题中的词序列和SQL词汇表中的所有唯一词的集合。
我们将输入序列x定义为所有列名、问题和SQL词汇表的串接:
Figure BDA0002277827520000251
其中[a;b]表示序列a和b之间的串接,我们在所有三个序列之间添加特殊哨兵令牌以划分边界。
该网络首先使用两层、双向的长短期记忆网络[Hochreiter&Schmidhuber,1997]对x进行编码。编码器的输入是与输入序列中的词相对应的嵌入。我们用h表示编码器的输出,其中ht是编码器对应于输入序列中第t个词的状态。为了简单起见,我们没有写出LSTM等式,该等式曾由Hochreiter和Schmidhuber[1997]描述。然后,我们将与Vinyals等人[2015]提出的类似的指针网络应用于输入编码h。
解码器网络使用两层、不定向的LSTM。在每个解码器步骤s中,解码器LSTM将前一个解码步骤中生成的查询令牌ys-1作为输入,输出状态gs。接下来,解码器对输入序列x的每个位置t产生一标量注意力分数
Figure BDA0002277827520000252
Figure BDA0002277827520000253
解码器选择得分最高的输入令牌作为SQL查询的下一个令牌,即
Figure BDA0002277827520000254
3.2 Seq2SQL
Figure BDA0002277827520000261
图3:Seq2SQL模型有三个成分,对应于SQL查询(右)的三个部分。模型的输入是问题(左上)和表的列名称(左下)。
虽然增强的指针模型能够解决SQL生成问题,但它没有利用SQL查询固有的结构。通常,如图3所示的SQL查询由三个成分组成。第一个成分是聚合算子(在本例中为COUNT),它生成SQL查询选择的行的摘要。或者查询可不请求汇总统计信息,在这种情况下不提供聚合算子。第二个成分是SELECT列(在本例中是Engine),它标识返回结果中包含的列。第三个成分是查询的WHERE子句,在本例中,Driver=Val Musetti,其包含筛选行所需的条件。这里,我们只想要driver为“Val Musetti”的行。
为了利用SQL查询中存在的结构,我们引入了Seq2SQL。如图3所示,Seq2SQL有三个部分,分别对应于聚合算子、SELECT列和WHERE子句。首先,网络对查询的聚合运算进行分类,并添加了与无聚合对应的空操作。接下来,网络指向输入表中与SELECT列对应的列。最后,网络使用指针网络为查询生成条件。前两个成分使用交叉熵损失进行监督,而第三个生成成分使用策略梯度强化学习进行训练,以解决查询条件的无序性(我们在第3.2节对此进行了详细解释)。类似于从Seq2seq移动到增强的指针模型,利用SQL查询的结构使得Seq2SQL可以进一步削减SQL查询的输出空间。我们表明了,与Seq2Seq模型和指针模型相比,这导致了显著更高的性能。
聚合运算
聚合运算取决于问题。对于图3所示的示例,我们认为正确的算子是COUNT,因为问题要求“How many”。
为了计算聚合运算,我们首先计算输入表示kagg,和等式(2)类似,我们首先针对输入序列中的每个第t个令牌计算标量注意力分数αin t=Winpht enc。然后将所有分数的向量αinp=[α1 inp,α2 inp,…]归一化,以产生输入序列x中所有令牌的分布βinp=softmax(αinp)。输入表示kagg是由相应的归一化的注意力权重加权的列编码的和:
Figure BDA0002277827520000273
让αagg表示聚合运算(如COUNT、MIN、MAX)和空聚合运算NULL的得分。我们通过将多层感知器应用于输入表示ksel来计算αagg
αagg=Wagg tanh(Vaggkagg+bagg)+cagg (4)
然后通过应用softmax函数得到可能的聚合运算集合上的分布βagg=softmax(αagg)。我们使用交叉熵损失Lagg进行聚合运算。
选择列
选择列取决于表列和问题。即对于图3中的示例,我们从问题的“多少个引擎类型”部分可以看到查询需要“Engine(引擎)”列。选择列预测是一个匹配问题,可以使用指针解决:给定列表示和问题表示的列表,我们选择最匹配问题的列。为了产生列的表示,我们首先用LSTM对每个列名称进行编码。特定列j的表示
Figure BDA0002277827520000274
由下式给出:
Figure BDA0002277827520000275
这里,
Figure BDA0002277827520000276
表示第j列的第t个编码器状态。列j的表示
Figure BDA0002277827520000277
被认为是最后一个编码器状态。
为了构造问题的表示,我们使用关于kagg(方程3)的但具有不固定的权重的相同的体系架构计算另一个输入表示ksel。最后,我们在列表示上应用多层感知器,根据输入表示,来计算每一列j的分数:
Figure BDA0002277827520000278
我们使用softmax函数对分数进行归一化,以产生可能的选择列βsel=softmax(αsel)上的分布。对于图3所示的示例,分布是在“Entrant”、“Constructor”、“Chassis”、“Engine”、“No”和地面实况SELECT列“Driver”上的分布。利用交叉熵损失Lsel对SELECT网络进行训练。
WHERE子句
可以使用类似于3.1节中描述的指针解码器来训练WHERE子句。然而,利用交叉熵损失优化网络存在关键的局限性:可以任意交换查询的WHERE条件,并且查询仍产生相同的结果。假设我们有一个问题“年龄大于18岁的男性的名字”,查询语句:SELECT name FROMinsurance WHERE age>18AND gender=“male”和SELECT name FROM insurance WHEREgender=“male”AND age>18。尽管没有精确的字符串匹配,这两个查询都获得正确的执行结果。假设将前一个查询作为地面实况提供,利用交叉熵损失来监督生成,则会错误地惩罚后一个查询。为了解决这个问题,我们使用强化学习来学习一个策略,以直接优化执行结果的期望“正确性”(公式7)。
在每个步骤中,我们从输出分布中取样,以获得下一个令牌,而不是老师强制这样做。在生成过程的最后,我们对数据库执行生成的SQL查询以获得奖励。让q(y)表示由模型生成的查询,qg表示与问题相对应的地面实况查询。奖励R(q(y),qg)定义为:
Figure BDA0002277827520000281
让y=[y1,y2,...yT]表示在SQL查询q(y)的WHERE子句中生成的令牌序列,其导致执行奖励为R(q(y),qg)。损失Lwhe=-Ey[R(q(y),qg)]是可能的WHERE子句上的负的期望奖励。
如Schulman等人[2015]所示,在网络的前向传递期间采样的行为导致反向传递期间合成梯度的相应注入,该合成梯度是奖励的函数。具体地,让pt(yt)表示在第t步中选择令牌yt的概率,对应的合成梯度为R(q(y),qg)logPt(yt)。
混合目标函数
利用梯度下降法对模型进行训练,以使目标函数∫obj=Lagg+Lsel+Lwhe最小化。因此,反向传递期间的总梯度是来自预测SELECT列时的交叉熵损失、预测聚合运算时的交叉熵损失和策略学习时的交叉熵损失的梯度的等同加权和。
4.WikiSQL
WikiSQL是自然语言表达和相应SQL查询和SQL表的集合。据我们所知,这是目前所能找到的最大的语料库。如图2所示的WikiSQL中的单个示例,包含SQL表、SQL查询以及与SQL查询对应的自然语言表达。这项工作中,我们不使用SQL表的内容,只使用它的模式(例如,列名称)。这意味着在WikiSQL上训练的***不需要在推理期间访问最终用户的数据库内容。
表1示出了WikiSQL如何与相关数据集进行比较。也就是说,我们注意到,WikiSQL是迄今为止最大的手工注释语义解析数据集——无论是从示例的数量还是表模式的数量来看,它都比其他具有逻辑形式的数据集大一个数量级。而且,WikiSQL中的查询跨越了大量的表模式并覆盖多种数据。大量的模式相比其他数据集提出了挑战:模型必须不仅能够泛化到新的查询,而且能够泛化到新的模式。最后,WikiSQL包含从web提取的挑战性的真实数据。这在列数、问题长度和查询长度的分布中很明显(分别如图5所示)。数据集中各种问题的另一个指标是问题类型的分布(如图4所示)。
Figure BDA0002277827520000291
图4:WikiSQL中问题类型的分布
Figure BDA0002277827520000292
图5:WikiSQL中列数、每问题令牌和每查询令牌的分布。
WikiSQL是使用Amazon Mechanical Turk(AMT)上的众包收集的,分为两个阶段。首先,工作人员将生成的问题改写为表格。生成的问题本身使用模板形成,使用随机生成的SQL查询填充。由于HTML表的变化很大,我们通过只保留那些合法的数据库表和足够大的行数和列数,从而确保了表的有效性和复杂性。在第二阶段,另外两名工作人员被要求验证意译与生成的问题具有相同的含义。我们丢弃那些没有显示出足够变化的意译,如通过与生成的问题具有字符编辑距离所测量的,以及那些在验证阶段期间被工作人员认为不正确的。关于如何收集WikiSQL的更多详细信息显示在附录的A部分。我们提供了意译阶段2和验证阶段3使用的接口示例。接口的HTML页面也包含在补充资料中。
Figure DA00022778275239424615
这些表和它们相应的意译和SQL查询被随机地***到训练、偏移和测试分支中,这样每个表都以一个分支的形式出现。除了原始表内容、查询、结果和自然表达之外,我们还为查询***发布了相应的SQL数据库和执行引擎。
4.1评价
Figure BDA0002277827520000301
表1:WikiSQL与现有数据集之间的比较。数据集包括GeoQuery880[Tang&Mooney,2001]、ATIS[Price,1990]、Free917[Cai&Yates,2013]、Overnight[Wang等人,2015]、WebQuestions[Berant等人,2013]和WikiTableQuestions[Pasupat&Liang,2015]。“大小(Size)”表示数据集中的示例的总数量。“LF”表示数据集是否有带注释的逻辑形式。“模式(Schema)”表示数据集中域或模式的数量。ATIS的格式被呈现为插槽填充任务。每个Freebase API页面都被视为一个单独的域。
评估WikiSQL的一种自然方法是使用执行精度度量。设N为数据集中的示例总数,Nex为执行后得到正确结果的查询总数。执行精度定义为Accex=Nex/N。
另一个度量是逻辑形式的准确性。设Nlf表示查询总数与用于收集意译的地面实况查询的字符串完全匹配。逻辑形式精确度定义为Acclf=Nlf/N。
上述两个度量都有优点和缺点。正如我们将在第3.2节中所示的,逻辑形式的精确性不正确地惩罚了实现正确结果但与地面实况查询没有精确字符串匹配的查询。替代地,可以构造一个与自然语言问题相对应但不会得到相同的结果的SQL查询。两个不同的查询产生相同结果的示例为:SELECT COUNT(name)WHERE SSN=123和SELECT COUNT(SSN)WHERESSN=123。由于上述这些观察,我们使用这两个度量来评估模型。
5实验
数据集使用Stanford CoreNLP分词,我们使用归一化的令牌进行训练,并在输出查询之前恢复为原始注释。通过这种方式,查询由来自原始注释的令牌组成,因此可以在数据库中执行。
我们使用来自Glove[Pennington等人,2014]的预先训练的词嵌入和来自[Hashimoto等人,2016]的字符n-gram嵌入。设wg x为GloVe嵌入,wc x为词x的字符嵌入。其中wc x为x中所有字符n-gram的嵌入的均值。对于一个给定的,我们将其词嵌入wx=[wg x;wc x]定义为其GloVe嵌入及其字符嵌入的串接。对于没有预先训练的嵌入的词,我们将嵌入赋值零向量。我们不训练嵌入,而是固定预先训练的嵌入。
所有网络的运行时间最大为100个时期(epoch),并提前停止使用dev分离器上的执行精度标准。我们使用ADAM[Kingma&Ba,2014]进行训练,并使用dropout[Srivastava等人,2014]进行调节。我们使用Pytorch4来实现所有的模型。为了训练Seq2SQL,我们首先预先训练一个版本,其中WHERE子句是通过教师强迫进行监督的(例如,采样程序不是从零开始训练),然后使用强化学习继续训练。为了获得第3.2节中描述的奖励,我们使用了第4节中描述的查询执行引擎。
Figure DA00022778275239450818
5.1结果
我们将结果与Berant等人[2013]使用的用于机器翻译的注意力序列到序列基线进行比较。这个模型已经在附件B部分详细地描述。我们还提出了消除Seq2SQL的方法,在这个方法中,SQL查询的WHERE子句使用交叉熵损失(例如教师强迫)进行训练,其方式与增强的指针网络相同。三种模型的性能如表2所示。
Figure BDA0002277827520000321
表2:WikiSQL上的性能。这两个度量都在4.1节中定义。当与Seq2SQL相比时,除了WHERE子句与强化学习相比时通过教师强迫是受监督的以外,Seq2SQL(无RL)模型在架构中是相同的。
我们注意到,通过利用增强的指针网络来减少输出空间,对注意力序列到序列模型显著地改进了21.4%。而且,利用SQL查询的结构可以带来另外的4.1%的显著改进,这是与增强的指针网络相比,没有RL的Seq2SQL的性能所示的。最后,完整的Seq2SQL模型,使用基于数据库中实时查询执行的奖励的强化学习进行训练,导致了另外显著的性能4.9%。
5.2分析
限制输出空间获得更精确的条件。当我们比较注意力序列到序列模型和增强的指针网络的输出时,我们发现后者产生的WHERE子句条件的质量更高。例如,对于问题“1850年3月4日有多少个选区的继任者就职?”,前者产生“SELECT COUNT District WHERE Datesuccessor seated=seated march 4”,但是后者产生“SELECT COUNT District WHEREDate successor seated=seated march 4.1850”。类似地,对于“道格·巴塔利亚的编号是多少?”,前者产生“SELECT pick WHERE player=doug”,但是后者产生“SELECT pickWHERE player=doug battalia”。一个关键的原因是条件往往是由罕见的词组成(例如,1850出现在语料库非常罕见)。但是Seq2SQL模型随后倾向于生成一个条件,该条件包含训练语料库中经常出现的令牌,比如日期为“3月4日”或玩家姓名为“doug”。指针网络不会面对该问题,因为输出分布从该输入序列专门构建。
合并结构减少了无效的查询。正如预期的那样,将简单的选择和聚合结构合并到模型中可以显著降低生成的无效SQL查询的百分比,从39.8%降低到7.1%。通常,我们发现大量无效的查询结果来自无效的列名称。也就是说,模型生成引用表中不存在的列的查询。当列名包含许多令牌时这尤其有用,例如“Miles(km)”,其经过分词后有4个令牌。为聚合引入专门的分类器也可以减少由于错误的聚合算子而导致的错误率。表3示出了,添加聚合分类器显著提高了预测COUNT算子的查全率。对于不同模型产生的更多查询,请参见附录的第C部分。
强化学习产生更高质量的WHERE子句,它的顺序有时与地面实况(groud truth)不同。如预期的,采用策略学习训练的模型获得了正确的结果,其中条件的顺序不同于地面实况查询的顺序。例如,对于问题“1992年民主党候选人在哪个地区首次当选?”地面实况条件是“WHERE First elected=1992AND Party=Democratic”,而Seq2SQL生成“WHERE Party=Democratic AND First elected=1992”。更一般地说,我们注意到,在大多数情况下,如果Seq2SQL是正确的,而没有策略学习的Seq2SQL不是正确的,会产生错误的WHERE子句。例如,对于相当复杂的问题“新泽西特伦顿第12轮比赛中,a.j.福伊特获得杆位的比赛叫什么名字?”,不经过强化学习训练的Seq2SQL产生WHERE子句“WHERE rnd=12and track=a.j.foyt AND pole position=a.j.foyt”,而基于策略梯度的Seq2SQL可以正确地生成子句“WHERE rnd=12AND pole position=a.j.foyt.”。
Figure BDA0002277827520000331
表3:对COUNT聚合算子的性能。Seq2SQL模型包括COUNT算子与地面实况查询包括COUNT算子相比。
困难的表模式带来了挑战。在许多HTML表中,列名称不能准确地描述列的内容。例如,在开发集中的一个表中,来自布朗克斯区的投票数被列在标题为“the bronx”的列中。当我们问“有多少来自布朗克斯的选民投票给了社会党”这个问题时,由于短语“有多少”,模型错误地生成了聚合算子COUNT。然而,由于此表的组织方式,投票者数量实际上在列中列出,COUNT运算是多余的。另一个困难的例子是问题“Plymouth的一辆车在2月9日赢得了哪一年的比赛”,因为模型不明白“Plymouth”指的是汽车制造。
6.结论
我们提出了Seq2SQL,这是一个将自然语言问题转换成相应SQL查询的深度神经网络,它利用SQL查询的结构来显著减少生成的查询的输出空间。作为Seq2SQL的一部分,我们提出了使用循环查询执行来学习生成SQL查询条件的策略,该策略的性质是无序的,不适合通过交叉熵损失进行优化。除了Seq2SQL,我们还引入了WikiSQL,这是一个由自然语言问题和SQL查询组成的数据集,它比可比数据集大一个数量级。最后,我们证明了Seq2SQL显著优于WikiSQL上的注意力序列到序列模型,执行精度从21.8%提高到52.2%,逻辑形式精度从20.4%提高到46.6%。在未来的工作中,我们计划投资更复杂的查询,如嵌套的查询和更复杂的奖励函数。
参开文献
I.Androutsopoulos,G.D.Ritchie,and P.Thanisch.Natural languageinterfaces to databases–an introduction.1995.
Y.Artzi and L.S.Zettlemoyer.Bootstrapping semantic parsers fromconversations.In EMNLP,2011.
Y.Artzi and L.S.Zettlemoyer.Weakly supervised learning of semanticparsers for mapping instructions to actions.TACL,1:49–62,2013.
D.Bahdanau and K.Cho.and Y.bengio.Neural macheine translation byjointy learning to align and translate.ICLR,2015
T.Beck,A.Demirg¨uc,-Kunt,and R.Levine.A new database on the structureand developmentof the financial sector.The World Bank Economic Review,14(3):597–605,2000.
I.Bello,H.Pham,Q.V.Le,M.Norouzi,and Samy Bengio.Neuralcombinatorialoptimization with reinforcement learning.ICLR,2017.
J.Berant,A.Chou,R.Frostig,and P.Liang.Semantic parsing on freebasefrom question-answer pairs.In EMNLP,2013.
C.Bhagavatula,T.Noraset,and D.Downey.Methods for exploring and miningtables on wikipedia.In IDEA@KDD,2013.
Q.Cai and A.Yates.Large-scale semantic parsing via schema matchingand lexiconextension.In ACL,2013.
L.Dong and M.Lapata.Language to logical form with neuralattention.ACL,2016.
A.Giordani and A.Moschitti.Translating questions to SQL queries withgenerative parsers discriminatively reranked.In COLING,2012.
J.Gu,Z.Lu,H.Li,and V.O.K.Li.Incorporating copying mechanism insequence-to-sequence learning.ACL,2016.
K.Hashimoto,C.Xiong,Y.Tsuruoka,and R.Socher.A Joint Many-Task Model:Growing a Neural Network for Multiple NLP Tasks.arXiv,cs.CL 1611.01587,2016.
R.Hillestad,J.Bigelow,A.Bower,F.Girosi,Robin Meili,Richard Scoville,and R.Taylor.Can electronic medical record systems transform health care?potential health benefits,savings,and costs.Health affairs,24(5):1103–1117,2005.
S.Hochreiter and J.Schmidhuber.Long short-term memory.Neuralcomputation,1997.
S.Iyer,I.Konstas,A.Cheung,J.Krishnamurthy,and L.Zettlemoyer.Learninga neural semantic parser from user feedback.In ACL,2017.
D.P.Kingma and J.Ba.Adam:A method for stochastic optimization.arXiv,abs/1412.6980,2014.
G.Klein.Y.Kim.Y.Deng.J.Senellart,andA.M.Rush.OpenNMT:Open-So urseToolKit for neural machine translation,Arxiv.abs,2017
P.Liang,M.I.Jordan,and D.Klein.Learning dependency-basedcompositional semantics.Computational Linguistics,39:389–446,2011.
T.Luong.H.Pham.and C.d.manming.Effective approaches to attention-based neural machine translation.In EMNLP.2015.
S.Merity,C.Xiong,J.Bradbury,and R.Socher.Pointer sentinelmixturemodels.ICLR,2017.
R.Nallapati.B.Zhou.C.dos samtos.C.glar glucejre.compositionalsematics.Comtutational linguistics.In EMNLP.2015.
A.Neelakantan,Q.V.Le,M.Abadi,Andrew McCallum,and DarioAmodei.Learning a natural language interface with neural programmer.In ICLR,2017.
E.W.Ngai,L.Xiu,and D.C.Chau.Application of data mining techniques incustomer relationship management:A literature review andclassification.Expert systems with applications,36(2):2592–2602,2009.
P.Pasupat and P.Liang.Compositional semantic parsing on semi-structured tables.InACL,2015.
R.paulus.C.XIONG.and R.Spcher.A deep reinforced model for abstractivesummarization.arXivprepint arIiv1705.04304.2017.
J.Pennington,R.Socher,and C.D.Manning.Glove:Global vectors for wordrepresentation.In EMNLP,2014.
A.-Maria Popescu,O.Etzioni,and H.Kautz.Towards a theory of naturallanguage interfaces to databases.In Proceedings of the 8th InternationalConference on Intelligent User Interfaces,pp.149–157.ACM,2003.
P.J.Price.Evaluation of spoken language systems:The ATIS domain.1990.
S.Reddy,M.Lapata,and M.Steedman.Large-scale semantic parsing withoutquestionanswer pairs.TACL,2:377–392,2014.
J.Schulman,N.Heess,Theophane Weber,and Pieter Abbeel.Gradientestimation using stochastic computation graphs.In NIPS,2015.
M.J.Seo,A.Kembhavi,A.Farhadi,and H.Hajishirzi.Bidirectional attentionflow for machine comprehension.ICLR,2017.
N.Srivastava,G.E.Hinton,A.Krizhevsky,I.Sutskever,andR.Salakhutdinov.Dropout:a simple way to prevent neural networks from overfitting.Journalof Machine Learning Research,15:1929–1958,2014.
J.Starc and D.Mladenic.Joint learning of ontology and semantic parserfrom text.Intelligent Data Analysis,21:19–38,2017.
I.Sutskever.O.vinyals.and Q.V.Le.sequence to sequence learning withneural networks.In NIPS.2014
L.R.Tang and R.J.Mooney.Using multiple clause constructors ininductive logic programming for semantic parsing.In ECML,2001.
O.Vinyals,M.Fortunato,and N.Jaitly.Pointer networks.In NIPS,2015.
Y.Wang,J.Berant,and P.Liang.Building a semantic parser overnight.InACL,2015.
Y.W.Wong and R.J.Mooney.Learning synchronous grammars for semanticparsing with lambda calculus.In ACL,2007.
C.Xiong,V.Zhong,and R.Socher.Dynamic coattention networks forquestion answering.ICLR,2017.
J.M.Zelle and R.J.Mooney.Learning to parse database queries usinginductive logic programming.In AAAI/IAAI,Vol.2,1996.
L.S.Zettlemoyer and M.Collins.Learning to map sentences to logicalform:Structured classification with probabilistic categorial grammars.InUncertainty in Artificial Intelligence,2005.
L.S.Zettlemoyer and M.Collins.Online learning of relaxed ccg grammarsfor parsing to logical form.In EMNLP-CoNLL,2007.
A WikiSQL的集合
WikiSQL在意译阶段和验证阶段收集。在释义阶段,我们使用Bhagavatula等人[2013]从Wikipedia中提取的表,并根据以下标准删除小表:
·每行中的单元格数不相同
·单元格中的内容超过50个字符
·标题单元格为空
·该表少于5行或5列
·一行中超过40%的单元格包含相同的内容
我们还删除了表的最后一行,因为大量HTML表的最后一行往往有汇总统计信息,因此最后一行不符合标题行定义的表模式。
对于每个通过上述标准的表,我们按照以下规则随机生成6个SQL查询:
·该查询遵循格式:SELECT agg_op agg_col from table where cond1_colcond1_op cond1AND cond2_col cond2_op cond2…
·聚合算子agg_op可以为空,也可以为COUNT。如果聚合列agg_col是数值型的,则agg_op可以是最大值和最小值之一。
·条件算子cond_op是=。如果相应的条件列cond_col是数值型的,则cond_op可以附加地是>和<中的一个。
·条件cond可以是表中对应的cond_col下出现的任何可能的值。如果cond_col是数值,则cond可以是从列中的最小值到列中的最大值范围内采样的任何数值。
我们只生成产生非空结果集的查询。为了强制执行简洁的查询,如果这样做不会改变执行结果,我们将从生成的查询中删除条件。
对于每个查询,我们使用模板生成一个粗糙的问题,并通过Amazon MechanicalTurk上的众包获得人工意译。在每个Amazon Mechanical Turk HIT中,都会向一个工作者显示表格以及其生成的问题,并要求每个问题的释义。
在从意译阶段获得自然语言释义后,我们将每个问题意译对交给另外两个处于验证阶段的工作者,以验证意译和原问题是否包含相同的意思。
然后,我们使用以下标准过滤意译的初始集合:
·在验证阶段,至少有一名工作者认为意译是正确的
·意译必须与产生的问题有足够的不同,并有一定的字符级别编辑距离大于10
图2展示了WikiSQL中的一个示例。其中,对应产生的问题是“约克大学所在的CFL团队的总数是多少”。
B注意力Seq2Seq基线
对于我们的基线,我们使用注意力序列到序列模型,这导致机器翻译[Babdanan等人,2015]和神经语义解析[Dong和Lapata,2016]有了显著的改进。该模型基于luong等人[2015]描述的全局注意力编码器-解码器模型(具有输入馈送)。我们使用基于OpenNMT[Klein等人]的实现。
我们使用相同的两层双向堆叠LSTM编码器,如前所述。解码器是两层无方向性的堆叠LSTM。解码器LSTM与方程2所描述的解码器几乎相同,唯一的区别在于输入馈送。
Figure BDA0002277827520000401
其中dhid维度kdec s是sth解码步骤期间输入序列上的注意力上下文,计算为:
Figure BDA0002277827520000402
Figure BDA0002277827520000403
为了在第s个解码器步骤中产生输出令牌,将解码器状态和注意力上下文的串接给到最后一个线性层,从而产生目标词汇表中词的分布αdec
Figure BDA0002277827520000404
其中,Udec具有维度Nvocab×dhid,Nvocab是输出词汇表的大小。
在训练期间,教师强迫被使用。在推理过程中,使用大小为5的波束,将生成的未知词替换为注意力权重最高的输入词。
C由Seq2SQL的预测
Figure BDA0002277827520000411
Figure BDA0002277827520000421
表4:模型在开发部分的预测示例。Q表示自然语言问题,G表示相应的地面实况查询。P、S’和S分别表示由增强的指针网络Seq2SQL产生的查询,而不使用强化学习Seq2SQL。为了简洁,我们省略了查询的FROM表部分。

Claims (18)

1.一种由包括一个或更多个计算机的计算机***执行的方法,其中所述计算机***执行以下步骤:
基于使用数据库模式存储的数据,接收输入自然语言查询;
从多个项生成令牌序列,所述多个项包括:
所述输入自然语言查询的项,
所述数据库模式的一组列,以及
数据库查询语言的词汇表;
生成一个或更多个输入表示,每个输入表示通过对所述令牌序列进行编码而获得;
访问多个基于机器学习的模型,每个基于机器学习的模型配置为预测与所述输入自然语言查询相对应的数据库查询的一部分,所述多个基于机器学习的模型包含:(1)用于预测所述数据库查询的选择子句的结果列预测器;(2)用于预测所述数据库查询的where子句的条件子句预测器;以及(3)用于预测所述数据库查询的聚合算子的聚合分类器,其中所述聚合分类器是使用交叉熵损失训练的神经网络,而所述条件子句预测器基于奖励度量使用强化学习;
对于所述多个基于机器学习的模型中的每一个,使用一输入表示执行所述基于机器学习的模型以生成所述数据库查询的一部分;
组合所生成的数据库查询的各部分,以获得所述数据库查询;以及
执行所述数据库查询,以获得结果集。
2.根据权利要求1所述的方法,其中从客户端设备接收所述输入自然语言查询,并且所述方法还包括将所述结果集发送到所述客户端设备的步骤。
3.根据权利要求1所述的方法,其中所述聚合分类器包括多层感知器。
4.根据权利要求1所述的方法,其中所述结果列预测器包括多层感知器。
5.根据权利要求1所述的方法,还包括:
基于地面实况数据库查询接收结果集;
基于从生成的查询获得的结果与从所述地面实况数据库查询获得的结果的比较来确定奖励值;以及
基于所述奖励值调整所述条件子句预测器模型的权重。
6.根据权利要求1所述的方法,还包括:
确定与所述序列中的每个令牌相对应的列编码;
针对输入序列的每个令牌,确定包含标量注意力分数的向量;
使用softmax函数对所述向量进行归一化;以及
确定所述输入表示,作为由相应归一化的分数加权的列编码之和。
7.根据权利要求1所述的方法,还包括:
使用梯度下降对所述多个基于机器学习的模型进行训练,以基于所述多个模型中每一个的结果最小化表示损失的目标函数。
8.根据权利要求1所述的方法,其中生成所述一个或更多个输入表示包括:通过以下步骤计算输入表示κagg
针对令牌序列中的每个第t个令牌,计算标量注意力分数
Figure FDA0003482503790000021
其中
Figure FDA0003482503790000022
是与输入序列中的第t个词相对应的编码器的状态,
归一化分数向量
Figure FDA0003482503790000023
以产生所述令牌序列中的令牌的分布,
获得所述输入表示κagg
Figure FDA0003482503790000024
αagg=Waggtanh(Vaggκagg+bagg)+cagg
其中Wagg、Vagg、bagg和cagg表示应用于所述输入表示κagg的多层感知器的权重,αagg表示聚合运算的分数,所述聚合运算包括COUNT,MIN,MAX或无聚合运算NULL。
9.根据权利要求1所述的方法,其中所述数据库查询包括SQL查询,所述数据库查询的一部分包括所述数据库查询的结果列,所述结果列包括所述SQL查询的选择子句中指定的列,所述方法还包括:
使用具有指针网络的长短期记忆网络LSTM,所述指针网络用一个或更多个列名称来公式化所述SQL查询的选择子句,包括:
给出列表示和问题表示的列表,选择与问题最匹配的列,其中通过使用LSTM对每个列名称进行编码来获得列表示的列表,其中特定列j的表示
Figure FDA0003482503790000031
通过
Figure FDA0003482503790000032
Figure FDA0003482503790000033
给出,
其中
Figure FDA0003482503790000034
表示第j列的第t个编码器状态。
10.根据权利要求1所述的方法,还包括:
使用强化学习通过对数据库执行生成的SQL查询来公式化SQL查询的where条件,以获得奖励R(q(y),qg),R(q(y),qg)被定义为:
Figure FDA0003482503790000035
其中q(y)表示由所述基于机器学习的模型生成的查询,qg表示与所述输入自然语言查询相对应的地面实况查询。
11.一种用于将自然语言查询转换到数据库查询的方法,其中所述数据库查询包括SQL查询,所述方法包括:
处理自然语言请求以生成所述SQL查询的部分,包括:
使用具有指针网络的长短期记忆网络LSTM,所述指针网络用一个或更多个列名称来公式化所述SQL查询的选择子句;和
使用通过强化学习训练的增强指针解码器来公式化所述SQL查询的where条件。
12.根据权利要求11所述的方法,还包括:
使用多层感知器确定适用于指定条件下选择的列的所述SQL查询的聚合运算。
13.根据权利要求11所述的方法,其中使用具有指针网络的长短期记忆网络LSTM,所述指针网络用一个或更多个列名称来公式化所述SQL查询的选择子句,包括:
给定列表示和问题表示的列表,选择与所述问题最匹配的列。
14.根据权利要求13所述的方法,其中所述列表示的列表通过使用LSTM对每个列名称进行编码来获得,其中特定列j的表示
Figure FDA0003482503790000036
通过
Figure FDA0003482503790000037
Figure FDA0003482503790000038
给出,
其中
Figure FDA0003482503790000039
表示第j列的第t个编码器状态。
15.根据权利要求13所述的方法,还包括:生成一个或更多个输入表示,用于提供给所述LSTM以生成所述数据库查询的各个部分,
其中生成所述一个或更多个输入表示包括通过以下步骤计算输入表示κagg
针对令牌序列中的每个第t个令牌,计算标量注意力分数
Figure FDA0003482503790000041
其中
Figure FDA0003482503790000042
是与输入序列中的第t个词相对应的编码器的状态,
归一化分数向量
Figure FDA0003482503790000043
以产生所述令牌序列中的令牌的分布,
获得所述输入表示κagg
Figure FDA0003482503790000044
αagg=Waggtanh(Vaggκagg+bagg)+cagg
其中Wagg、Vagg、bagg和cagg表示应用于所述输入表示κagg的多层感知器的权重,αagg表示聚合运算的分数,所述聚合运算包括COUNT,MIN,MAX或无聚合运算NULL。
16.根据权利要求13所述的方法,还包括:
使用强化学习通过对数据库执行生成的SQL查询来公式化SQL查询的where条件,以获得奖励R(q(y),qg),R(q(y),qg)被定义为:
Figure FDA0003482503790000045
其中q(y)表示由基于机器学习的模型生成的查询,qg表示与所述自然语言查询相对应的地面实况查询。
17.一种非暂时性计算机可读存储介质,包括计算机可执行代码,所述计算机可执行代码在由一个或更多个计算机执行时,使一个或更多个计算机执行步骤,所述步骤包括:
基于使用数据库模式存储的数据,接收输入自然语言查询;
从多个项生成令牌序列,所述多个项包括:
所述输入自然语言查询的项,
所述数据库模式的一组列,以及
数据库查询语言的词汇表;
生成一个或更多个输入表示,每个输入表示通过对所述令牌序列进行编码而获得;
访问多个基于机器学习的模型,每个基于机器学习的模型配置为预测与所述输入自然语言查询相对应的数据库查询的一部分,所述多个基于机器学习的模型包含:(1)用于预测所述数据库查询的选择子句的结果列预测器;(2)用于预测所述数据库查询的where子句的条件子句预测器;以及(3)用于预测所述数据库查询的聚合算子的聚合分类器,其中所述聚合分类器是使用交叉熵损失训练的神经网络,而所述条件子句预测器基于奖励度量使用强化学习;
对于所述多个基于机器学习的模型中的每一个,使用一输入表示执行所述基于机器学习的模型以生成所述数据库查询的一部分;
组合所生成的数据库查询的各部分,以获得所述数据库查询;以及
执行所述数据库查询,以获得结果集。
18.一种用于生成循环神经网络RNN体系架构的计算机***,所述计算机***包括:
一个或更多个计算机处理器;以及
非暂时性计算机可读存储介质,包括计算机可执行代码,所述计算机可执行代码在由一个或更多个计算机执行时,使一个或更多个计算机执行步骤,所述步骤包括:
基于使用数据库模式存储的数据,接收输入自然语言查询;
从多个项生成令牌序列,所述多个项包括:
所述输入自然语言查询的项,
所述数据库模式的一组列,以及
数据库查询语言的词汇表;
生成一个或更多个输入表示,每个输入表示通过对所述令牌序列进行编码而获得;
访问多个基于机器学习的模型,每个基于机器学习的模型配置为预测与所述输入自然语言查询相对应的数据库查询的一部分;
对于所述多个基于机器学习的模型中的每一个,使用一输入表示执行所述基于机器学习的模型以生成所述数据库查询的一部分,所述多个基于机器学习的模型包含:(1)用于预测所述数据库查询的选择子句的结果列预测器;(2)用于预测所述数据库查询的where子句的条件子句预测器;以及(3)用于预测所述数据库查询的聚合算子的聚合分类器,其中所述聚合分类器是使用交叉熵损失训练的神经网络,而所述条件子句预测器基于奖励度量使用强化学习;
组合所生成的数据库查询的各部分,以获得所述数据库查询;以及
执行所述数据库查询,以获得结果集。
CN201880033017.3A 2017-05-18 2018-05-17 基于神经网络的自然语言查询到数据库查询的转换 Active CN110945495B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201762508367P 2017-05-18 2017-05-18
US62/508,367 2017-05-18
US15/885,613 2018-01-31
US15/885,613 US10747761B2 (en) 2017-05-18 2018-01-31 Neural network based translation of natural language queries to database queries
PCT/US2018/033099 WO2018213530A2 (en) 2017-05-18 2018-05-17 Neural network based translation of natural language queries to database queries

Publications (2)

Publication Number Publication Date
CN110945495A CN110945495A (zh) 2020-03-31
CN110945495B true CN110945495B (zh) 2022-04-29

Family

ID=64272433

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880033017.3A Active CN110945495B (zh) 2017-05-18 2018-05-17 基于神经网络的自然语言查询到数据库查询的转换

Country Status (6)

Country Link
US (2) US10747761B2 (zh)
EP (1) EP3625734A4 (zh)
JP (1) JP6929971B2 (zh)
CN (1) CN110945495B (zh)
CA (1) CA3062071C (zh)
WO (1) WO2018213530A2 (zh)

Families Citing this family (129)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10565493B2 (en) * 2016-09-22 2020-02-18 Salesforce.Com, Inc. Pointer sentinel mixture architecture
US10565305B2 (en) 2016-11-18 2020-02-18 Salesforce.Com, Inc. Adaptive attention model for image captioning
US10565318B2 (en) 2017-04-14 2020-02-18 Salesforce.Com, Inc. Neural machine translation with latent tree attention
US11386327B2 (en) 2017-05-18 2022-07-12 Salesforce.Com, Inc. Block-diagonal hessian-free optimization for recurrent and convolutional neural networks
US10817650B2 (en) 2017-05-19 2020-10-27 Salesforce.Com, Inc. Natural language processing using context specific word vectors
US10885586B2 (en) * 2017-07-24 2021-01-05 Jpmorgan Chase Bank, N.A. Methods for automatically generating structured pricing models from unstructured multi-channel communications and devices thereof
US11087211B2 (en) * 2017-10-05 2021-08-10 Salesforce.Com, Inc. Convolutional neural network (CNN)-based suggestions for anomaly input
US10542270B2 (en) 2017-11-15 2020-01-21 Salesforce.Com, Inc. Dense video captioning
US11276002B2 (en) 2017-12-20 2022-03-15 Salesforce.Com, Inc. Hybrid training of deep networks
US10776581B2 (en) 2018-02-09 2020-09-15 Salesforce.Com, Inc. Multitask learning as question answering
US11227218B2 (en) 2018-02-22 2022-01-18 Salesforce.Com, Inc. Question answering from minimal context over documents
US10929607B2 (en) 2018-02-22 2021-02-23 Salesforce.Com, Inc. Dialogue state tracking using a global-local encoder
US11106182B2 (en) 2018-03-16 2021-08-31 Salesforce.Com, Inc. Systems and methods for learning for domain adaptation
WO2019176102A1 (ja) * 2018-03-16 2019-09-19 楽天株式会社 検索システム、検索方法、及びプログラム
US10783875B2 (en) 2018-03-16 2020-09-22 Salesforce.Com, Inc. Unsupervised non-parallel speech domain adaptation using a multi-discriminator adversarial network
US11501202B1 (en) * 2018-04-17 2022-11-15 Amazon Technologies, Inc. Querying databases with machine learning model references
US11494454B1 (en) * 2018-05-09 2022-11-08 Palantir Technologies Inc. Systems and methods for searching a schema to identify and visualize corresponding data
US10909157B2 (en) 2018-05-22 2021-02-02 Salesforce.Com, Inc. Abstraction of text summarization
US10777196B2 (en) * 2018-06-27 2020-09-15 The Travelers Indemnity Company Systems and methods for cooperatively-overlapped and artificial intelligence managed interfaces
US10970486B2 (en) 2018-09-18 2021-04-06 Salesforce.Com, Inc. Using unstructured input to update heterogeneous data stores
US11436481B2 (en) 2018-09-18 2022-09-06 Salesforce.Com, Inc. Systems and methods for named entity recognition
US11645509B2 (en) 2018-09-27 2023-05-09 Salesforce.Com, Inc. Continual neural network learning via explicit structure learning
US11029694B2 (en) 2018-09-27 2021-06-08 Salesforce.Com, Inc. Self-aware visual-textual co-grounded navigation agent
US11514915B2 (en) 2018-09-27 2022-11-29 Salesforce.Com, Inc. Global-to-local memory pointer networks for task-oriented dialogue
US11087177B2 (en) 2018-09-27 2021-08-10 Salesforce.Com, Inc. Prediction-correction approach to zero shot learning
US20200125664A1 (en) * 2018-10-19 2020-04-23 Sap Se Network virtualization for web application traffic flows
EP3660733B1 (en) * 2018-11-30 2023-06-28 Tata Consultancy Services Limited Method and system for information extraction from document images using conversational interface and database querying
US11822897B2 (en) 2018-12-11 2023-11-21 Salesforce.Com, Inc. Systems and methods for structured text translation with tag alignment
US10963652B2 (en) 2018-12-11 2021-03-30 Salesforce.Com, Inc. Structured text translation
US11922323B2 (en) 2019-01-17 2024-03-05 Salesforce, Inc. Meta-reinforcement learning gradient estimation with variance reduction
US11966389B2 (en) * 2019-02-13 2024-04-23 International Business Machines Corporation Natural language to structured query generation via paraphrasing
US11568306B2 (en) 2019-02-25 2023-01-31 Salesforce.Com, Inc. Data privacy protected machine learning systems
US11003867B2 (en) 2019-03-04 2021-05-11 Salesforce.Com, Inc. Cross-lingual regularization for multilingual generalization
US11366969B2 (en) 2019-03-04 2022-06-21 Salesforce.Com, Inc. Leveraging language models for generating commonsense explanations
US11580445B2 (en) 2019-03-05 2023-02-14 Salesforce.Com, Inc. Efficient off-policy credit assignment
US11087092B2 (en) 2019-03-05 2021-08-10 Salesforce.Com, Inc. Agent persona grounded chit-chat generation framework
CN110059100B (zh) * 2019-03-20 2022-02-22 广东工业大学 基于演员-评论家网络的sql语句构造方法
US11232308B2 (en) 2019-03-22 2022-01-25 Salesforce.Com, Inc. Two-stage online detection of action start in untrimmed videos
CN110019151B (zh) * 2019-04-11 2024-03-15 深圳市腾讯计算机***有限公司 数据库性能调整方法、装置、设备、***及存储介质
US11789945B2 (en) * 2019-04-18 2023-10-17 Sap Se Clause-wise text-to-SQL generation
US11281863B2 (en) 2019-04-18 2022-03-22 Salesforce.Com, Inc. Systems and methods for unifying question answering and text classification via span extraction
US11550783B2 (en) * 2019-04-18 2023-01-10 Sap Se One-shot learning for text-to-SQL
US11487939B2 (en) 2019-05-15 2022-11-01 Salesforce.Com, Inc. Systems and methods for unsupervised autoregressive text compression
US11620572B2 (en) 2019-05-16 2023-04-04 Salesforce.Com, Inc. Solving sparse reward tasks using self-balancing shaped rewards
US11604965B2 (en) 2019-05-16 2023-03-14 Salesforce.Com, Inc. Private deep learning
US11562251B2 (en) 2019-05-16 2023-01-24 Salesforce.Com, Inc. Learning world graphs to accelerate hierarchical reinforcement learning
US11775775B2 (en) 2019-05-21 2023-10-03 Salesforce.Com, Inc. Systems and methods for reading comprehension for a question answering task
US11669712B2 (en) 2019-05-21 2023-06-06 Salesforce.Com, Inc. Robustness evaluation via natural typos
US11687588B2 (en) 2019-05-21 2023-06-27 Salesforce.Com, Inc. Weakly supervised natural language localization networks for video proposal prediction based on a text query
US11657269B2 (en) 2019-05-23 2023-05-23 Salesforce.Com, Inc. Systems and methods for verification of discriminative models
US11615240B2 (en) 2019-08-15 2023-03-28 Salesforce.Com, Inc Systems and methods for a transformer network with tree-based attention for natural language processing
US20220292087A1 (en) * 2019-08-30 2022-09-15 Servicenow Canada Inc. Decision support system for data retrieval
US11475048B2 (en) 2019-09-18 2022-10-18 Salesforce.Com, Inc. Classifying different query types
US11520785B2 (en) 2019-09-18 2022-12-06 Salesforce.Com, Inc. Query classification alteration based on user input
US11449796B2 (en) * 2019-09-20 2022-09-20 Amazon Technologies, Inc. Machine learning inference calls for database query processing
US11599792B2 (en) * 2019-09-24 2023-03-07 Salesforce.Com, Inc. System and method for learning with noisy labels as semi-supervised learning
US11568000B2 (en) 2019-09-24 2023-01-31 Salesforce.Com, Inc. System and method for automatic task-oriented dialog system
US11640527B2 (en) 2019-09-25 2023-05-02 Salesforce.Com, Inc. Near-zero-cost differentially private deep learning with teacher ensembles
CN112580357A (zh) * 2019-09-29 2021-03-30 微软技术许可有限责任公司 自然语言查询的语义解析
US11341340B2 (en) * 2019-10-01 2022-05-24 Google Llc Neural machine translation adaptation
US11620515B2 (en) 2019-11-07 2023-04-04 Salesforce.Com, Inc. Multi-task knowledge distillation for language model
US11347708B2 (en) 2019-11-11 2022-05-31 Salesforce.Com, Inc. System and method for unsupervised density based table structure identification
US11334766B2 (en) 2019-11-15 2022-05-17 Salesforce.Com, Inc. Noise-resistant object detection with noisy annotations
US11288438B2 (en) 2019-11-15 2022-03-29 Salesforce.Com, Inc. Bi-directional spatial-temporal reasoning for video-grounded dialogues
US11481636B2 (en) 2019-11-18 2022-10-25 Salesforce.Com, Inc. Systems and methods for out-of-distribution classification
US11922303B2 (en) 2019-11-18 2024-03-05 Salesforce, Inc. Systems and methods for distilled BERT-based training model for text classification
US11188530B2 (en) * 2019-11-25 2021-11-30 Servicenow, Inc. Metadata-based translation of natural language queries into database queries
US11256754B2 (en) 2019-12-09 2022-02-22 Salesforce.Com, Inc. Systems and methods for generating natural language processing training samples with inflectional perturbations
US11487999B2 (en) 2019-12-09 2022-11-01 Salesforce.Com, Inc. Spatial-temporal reasoning through pretrained language models for video-grounded dialogues
US11416688B2 (en) 2019-12-09 2022-08-16 Salesforce.Com, Inc. Learning dialogue state tracking with limited labeled data
US11640505B2 (en) 2019-12-09 2023-05-02 Salesforce.Com, Inc. Systems and methods for explicit memory tracker with coarse-to-fine reasoning in conversational machine reading
CN111177180A (zh) * 2019-12-11 2020-05-19 北京百分点信息科技有限公司 一种数据查询方法、装置以及电子设备
KR102277787B1 (ko) * 2019-12-26 2021-07-14 포항공과대학교 산학협력단 신경망 기반 자연어로부터 sql 질의 번역 시 사용되는 컬럼 및 테이블을 예측하는 방법
KR102345568B1 (ko) * 2019-12-26 2021-12-31 포항공과대학교 산학협력단 자연어 단어를 데이터베이스의 컬럼 및 테이블과 연결하는 방법
CN111125154B (zh) * 2019-12-31 2021-04-02 北京百度网讯科技有限公司 用于输出结构化查询语句的方法和装置
US11481418B2 (en) * 2020-01-02 2022-10-25 International Business Machines Corporation Natural question generation via reinforcement learning based graph-to-sequence model
US11669745B2 (en) 2020-01-13 2023-06-06 Salesforce.Com, Inc. Proposal learning for semi-supervised object detection
US11562147B2 (en) 2020-01-23 2023-01-24 Salesforce.Com, Inc. Unified vision and dialogue transformer with BERT
US11900070B2 (en) * 2020-02-03 2024-02-13 International Business Machines Corporation Producing explainable rules via deep learning
US20210249104A1 (en) 2020-02-06 2021-08-12 Salesforce.Com, Inc. Systems and methods for language modeling of protein engineering
US11521065B2 (en) * 2020-02-06 2022-12-06 International Business Machines Corporation Generating explanations for context aware sequence-to-sequence models
US11748770B1 (en) * 2020-03-30 2023-09-05 Amdocs Development Limited System, method, and computer program for using shared customer data and artificial intelligence to predict customer classifications
US11328731B2 (en) 2020-04-08 2022-05-10 Salesforce.Com, Inc. Phone-based sub-word units for end-to-end speech recognition
CN111639153B (zh) * 2020-04-24 2024-07-02 平安国际智慧城市科技股份有限公司 基于法律知识图谱的查询方法、装置、电子设备及介质
CN111522839B (zh) * 2020-04-25 2023-09-01 华中科技大学 一种基于深度学习的自然语言查询方法
US11544597B2 (en) 2020-04-30 2023-01-03 International Business Machines Corporation Problem manipulators for language-independent computerized reasoning
US11669699B2 (en) 2020-05-31 2023-06-06 Saleforce.com, inc. Systems and methods for composed variational natural language generation
US11720559B2 (en) * 2020-06-02 2023-08-08 Salesforce.Com, Inc. Bridging textual and tabular data for cross domain text-to-query language semantic parsing with a pre-trained transformer language encoder and anchor text
US11625436B2 (en) 2020-08-14 2023-04-11 Salesforce.Com, Inc. Systems and methods for query autocompletion
US11934952B2 (en) 2020-08-21 2024-03-19 Salesforce, Inc. Systems and methods for natural language processing using joint energy-based models
US11934781B2 (en) 2020-08-28 2024-03-19 Salesforce, Inc. Systems and methods for controllable text summarization
CN111813802B (zh) * 2020-09-11 2021-06-29 杭州量之智能科技有限公司 一种基于自然语言生成结构化查询语句的方法
US20230359617A1 (en) * 2020-10-01 2023-11-09 Vishal Misra Systems, methods, and media for formulating database queries from natural language text
CN116490864A (zh) * 2020-10-14 2023-07-25 微软技术许可有限责任公司 生成式检索中基于trie的集束搜索的前瞻策略
US11803541B2 (en) * 2020-10-16 2023-10-31 Salesforce, Inc. Primitive-based query generation from natural language queries
US11947440B2 (en) * 2020-11-10 2024-04-02 Salesforce, Inc. Management of search features via declarative metadata
CN112270190A (zh) * 2020-11-13 2021-01-26 浩鲸云计算科技股份有限公司 一种基于注意力机制的数据库字段翻译方法及***
CN112380238B (zh) * 2020-11-16 2024-06-28 平安科技(深圳)有限公司 数据库数据查询方法、装置、电子设备及存储介质
US20220156270A1 (en) * 2020-11-16 2022-05-19 Science First Partnerships, LLC Data-Driven Academia and Industry Matching Platform
US11829442B2 (en) 2020-11-16 2023-11-28 Salesforce.Com, Inc. Methods and systems for efficient batch active learning of a deep neural network
CN112559552B (zh) 2020-12-03 2023-07-25 北京百度网讯科技有限公司 数据对生成方法、装置、电子设备及存储介质
CN112507098B (zh) * 2020-12-18 2022-01-28 北京百度网讯科技有限公司 问题处理方法、装置、电子设备、存储介质及程序产品
CN112559690A (zh) * 2020-12-21 2021-03-26 广东珠江智联信息科技股份有限公司 一种自然语言智能数据建模技术
US11989528B2 (en) 2020-12-30 2024-05-21 Direct Cursus Technology L.L.C Method and server for training a machine learning algorithm for executing translation
KR102498403B1 (ko) * 2021-01-29 2023-02-09 포항공과대학교 산학협력단 자연어를 sql로 변환하는 시스템을 위한 훈련 세트 수집 장치 및 그 방법
CN113779062A (zh) * 2021-02-23 2021-12-10 北京沃东天骏信息技术有限公司 Sql语句生成方法、装置、存储介质及电子设备
CN113220881B (zh) * 2021-02-24 2024-02-06 盐城幼儿师范高等专科学校 基于深度学习的教育问答实现方法、装置及服务器
CN113010651A (zh) * 2021-03-02 2021-06-22 中国工商银行股份有限公司 一种针对用户提问的答复方法、装置及设备
US11928111B2 (en) * 2021-03-03 2024-03-12 Samsung Electronics Co., Ltd. Electronic apparatus and method for controlling electronic apparatus
JP2022147406A (ja) 2021-03-23 2022-10-06 キオクシア株式会社 情報処理装置、情報処理方法、及び学習モデルの生成方法
US11604794B1 (en) 2021-03-31 2023-03-14 Amazon Technologies, Inc. Interactive assistance for executing natural language queries to data sets
US11500865B1 (en) 2021-03-31 2022-11-15 Amazon Technologies, Inc. Multiple stage filtering for natural language query processing pipelines
US11726994B1 (en) 2021-03-31 2023-08-15 Amazon Technologies, Inc. Providing query restatements for explaining natural language query results
CN113052257B (zh) * 2021-04-13 2024-04-16 中国电子科技集团公司信息科学研究院 一种基于视觉转换器的深度强化学习方法及装置
US11768831B2 (en) * 2021-05-10 2023-09-26 Servicenow, Inc. Systems and methods for translating natural language queries into a constrained domain-specific language
CN113282724B (zh) * 2021-05-21 2024-05-28 北京京东振世信息技术有限公司 一种智能客服的交互方法和装置
CN113408298B (zh) * 2021-06-30 2024-05-31 北京百度网讯科技有限公司 语义解析方法、装置、电子设备及存储介质
CN113553414B (zh) * 2021-06-30 2023-08-25 北京百度网讯科技有限公司 智能对话方法、装置、电子设备和存储介质
CN113486056B (zh) * 2021-07-09 2023-06-09 平安科技(深圳)有限公司 基于知识图谱的学习情况获取方法、装置及相关设备
CN113641805B (zh) * 2021-07-19 2024-05-24 北京百度网讯科技有限公司 结构化问答模型的获取方法、问答方法及对应装置
KR102666591B1 (ko) * 2021-10-20 2024-05-16 케이데이터랩 주식회사 크라우드 소싱을 활용하여 인공지능 학습용 데이터를 생성하는 인공지능 학습데이터 생성방법
US11726750B1 (en) * 2021-11-17 2023-08-15 Outsystems—Software Em Rede, S.A. Constrained decoding and ranking of language models for code generation
KR20230079729A (ko) * 2021-11-29 2023-06-07 주식회사 포티투마루 자연어 질의의 sql 변환 방법 및 장치
US11907226B2 (en) * 2022-03-21 2024-02-20 International Business Machines Corporation Refining understanding of natural language database queries
US20230306061A1 (en) * 2022-03-22 2023-09-28 Paypal, Inc. Automated database query generation and analysis
CN115168408B (zh) * 2022-08-16 2024-05-28 北京永洪商智科技有限公司 基于强化学习的查询优化方法、装置、设备及存储介质
US20240104092A1 (en) * 2022-09-22 2024-03-28 Hitachi Energy Ltd Voice-based performance query with non-semantic databases
CN116467347B (zh) * 2023-03-22 2024-04-30 天云融创数据科技(北京)有限公司 一种股票问答方法
CN117827882B (zh) * 2024-01-04 2024-08-20 北京新数科技有限公司 一种基于深度学习的金融数据库sql质量评分方法、***、设备和可存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8156145B2 (en) * 2003-11-06 2012-04-10 Oracle International Corporation Analytic enhancements to model clause in structured query language (SQL)
CN102622342A (zh) * 2011-01-28 2012-08-01 上海肇通信息技术有限公司 中间语***、中间语引擎、中间语翻译***和相应方法
CN102693303A (zh) * 2012-05-18 2012-09-26 上海极值信息技术有限公司 一种公式化数据的搜索方法及装置
US8380645B2 (en) * 2010-05-27 2013-02-19 Bmc Software, Inc. Method and system to enable inferencing for natural language queries of configuration management databases
CN106598948A (zh) * 2016-12-19 2017-04-26 杭州语忆科技有限公司 基于长短期记忆神经网络结合自动编码器的情绪识别方法
CN106663092A (zh) * 2014-10-24 2017-05-10 谷歌公司 具有罕见词处理的神经机器翻译***

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070027905A1 (en) * 2005-07-29 2007-02-01 Microsoft Corporation Intelligent SQL generation for persistent object retrieval
US20110314010A1 (en) 2010-06-17 2011-12-22 Microsoft Corporation Keyword to query predicate maps for query translation
US9305050B2 (en) 2012-03-06 2016-04-05 Sergey F. Tolkachev Aggregator, filter and delivery system for online context dependent interaction, systems and methods
US10025819B2 (en) * 2014-11-13 2018-07-17 Adobe Systems Incorporated Generating a query statement based on unstructured input
US20160171050A1 (en) 2014-11-20 2016-06-16 Subrata Das Distributed Analytical Search Utilizing Semantic Analysis of Natural Language
JP6305630B2 (ja) 2015-03-20 2018-04-04 株式会社東芝 文書検索装置、方法及びプログラム
US10545958B2 (en) * 2015-05-18 2020-01-28 Microsoft Technology Licensing, Llc Language scaling platform for natural language processing systems
JP6678930B2 (ja) * 2015-08-31 2020-04-15 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 分類モデルを学習する方法、コンピュータ・システムおよびコンピュータ・プログラム
US10606846B2 (en) 2015-10-16 2020-03-31 Baidu Usa Llc Systems and methods for human inspired simple question answering (HISQA)
US10430407B2 (en) * 2015-12-02 2019-10-01 International Business Machines Corporation Generating structured queries from natural language text
US10013416B1 (en) * 2015-12-18 2018-07-03 Amazon Technologies, Inc. Language based solution agent
US20170249309A1 (en) * 2016-02-29 2017-08-31 Microsoft Technology Licensing, Llc Interpreting and Resolving Conditional Natural Language Queries
US9830315B1 (en) * 2016-07-13 2017-11-28 Xerox Corporation Sequence-based structured prediction for semantic parsing
US20180052824A1 (en) * 2016-08-19 2018-02-22 Microsoft Technology Licensing, Llc Task identification and completion based on natural language query
US10783451B2 (en) * 2016-10-12 2020-09-22 Accenture Global Solutions Limited Ensemble machine learning for structured and unstructured data
US10654380B2 (en) * 2016-11-18 2020-05-19 Microsoft Technology Licensing, Llc Query rewriting and interactive inquiry framework
US20180210883A1 (en) * 2017-01-25 2018-07-26 Dony Ang System for converting natural language questions into sql-semantic queries based on a dimensional model

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8156145B2 (en) * 2003-11-06 2012-04-10 Oracle International Corporation Analytic enhancements to model clause in structured query language (SQL)
US8380645B2 (en) * 2010-05-27 2013-02-19 Bmc Software, Inc. Method and system to enable inferencing for natural language queries of configuration management databases
CN102622342A (zh) * 2011-01-28 2012-08-01 上海肇通信息技术有限公司 中间语***、中间语引擎、中间语翻译***和相应方法
CN102693303A (zh) * 2012-05-18 2012-09-26 上海极值信息技术有限公司 一种公式化数据的搜索方法及装置
CN106663092A (zh) * 2014-10-24 2017-05-10 谷歌公司 具有罕见词处理的神经机器翻译***
CN106598948A (zh) * 2016-12-19 2017-04-26 杭州语忆科技有限公司 基于长短期记忆神经网络结合自动编码器的情绪识别方法

Also Published As

Publication number Publication date
US11526507B2 (en) 2022-12-13
JP6929971B2 (ja) 2021-09-01
CA3062071A1 (en) 2018-11-22
EP3625734A4 (en) 2020-12-09
CA3062071C (en) 2023-08-29
JP2020520516A (ja) 2020-07-09
CN110945495A (zh) 2020-03-31
US20180336198A1 (en) 2018-11-22
WO2018213530A2 (en) 2018-11-22
US10747761B2 (en) 2020-08-18
US20200301925A1 (en) 2020-09-24
WO2018213530A3 (en) 2019-01-24
EP3625734A2 (en) 2020-03-25

Similar Documents

Publication Publication Date Title
CN110945495B (zh) 基于神经网络的自然语言查询到数据库查询的转换
Zhong et al. Seq2sql: Generating structured queries from natural language using reinforcement learning
CN110825721B (zh) 大数据环境下高血压知识库构建与***集成方法
Zheng et al. An attention-based effective neural model for drug-drug interactions extraction
US20220083605A1 (en) Predictive system for generating clinical queries
US20200175360A1 (en) Dynamic updating of a word embedding model
US10831752B2 (en) Semantic relational database operations
CN115269865A (zh) 一种面向辅助诊断的知识图谱构建方法
Kumar et al. An abstractive text summarization technique using transformer model with self-attention mechanism
Xu et al. BERT gated multi-window attention network for relation extraction
Li et al. Using context information to enhance simple question answering
Lei et al. Semi-supervised geological disasters named entity recognition using few labeled data
Sowa Future directions for semantic systems
Yu et al. An interaction-modeling mechanism for context-dependent Text-to-SQL translation based on heterogeneous graph aggregation
CN113704481B (zh) 一种文本处理方法、装置、设备及存储介质
Wu A reconstruction decoder for computing with words
Hang et al. Joint extraction of entities and relations using multi-label tagging and relational alignment
Tuli et al. Symbol question conversion in structured query language using fuzzy with deep attention based rain LSTM
Xu et al. Text clustering based on pre-trained models and autoencoders
Li et al. [Retracted] Design of Human Resource Management System Based on Deep Learning
Zhang et al. Constructing covid-19 knowledge graph from a large corpus of scientific articles
Zeng et al. Personalized dynamic attention multi-task learning model for document retrieval and query generation
Zhen et al. Frequent words and syntactic context integrated biomedical discontinuous named entity recognition method
Li et al. Improving Medical Q&A Matching by Augmenting Dual‐Channel Attention with Global Similarity
Wang Multimedia-aided English online translation platform based on bayesian theorem

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CP01 Change in the name or title of a patent holder

Address after: California, USA

Patentee after: Shuo Power Co.

Address before: California, USA

Patentee before: SALESFORCE.COM, Inc.

CP01 Change in the name or title of a patent holder