将文本转化为结构化查询语言的方法及装置与流程

    专利2022-07-08  102


    本发明涉及自然语言处理技术领域,尤其涉及一种将文本转化为结构化查询语言的方法及装置。



    背景技术:

    文本到sql(structuredquerylanguage)语句任务的目的在于将自然语言问句转化为对应的可执行sql语句。传统的文本到sql方式有基于中间表示的文本到sql(结构化查询语言)解析网络(irnet)和基于关系可知transformer的文本到sql模型(ratsql)。

    irnet:针对可执行的sql语句用抽象语法树技术设计一套中间语法,所有的sql语句都可以用这套语法来表示。相比较于sql语句,中间语法会抽象表示sql中的关键词,会使得搜索空间大大减小。在解析的时候只需要先解析出搜索空间较小的中间语法,然后再将中间语法还原成sql语句。

    ratsql:关系可知transformer的文本到sql模型将数据库信息和用户问句信息拼在一起,并且充分考虑它们之间的关系,将关系信息融入到问句和数据库信息的表示之中。这种统一表示方式在领域迁移任务中取得到了比较好的效果。

    但是上面介绍的两个方法都没有地考虑领域信息对文本到sql语句解析任务带来的影响,然而对于文本到sql语句解析任务领域迁移的能力具有很重要的现实意义。领域信息对性能的影响也需要得到重视,如何消除这一影响在之前的方法中都没有得到解决。



    技术实现要素:

    本发明实施例提供一种将文本转化为结构化查询语言的方法及装置,用于至少解决上述技术问句之一。

    第一方面,本发明实施例提供一种将文本转化为结构化查询语言的方法,包括:

    根据用户问句文本和相应的数据库信息确定抽象问句表示和抽象数据库信息表示;

    将所述抽象问句表示和抽象数据库信息表示输入至第一转换器,以得到统一信息表示;

    确定所述统一信息表示所对应的语法树结构,以得到对应于所述用户问句文本的结构化查询语言。

    第二方面,本发明实施例提供一种将文本转化为结构化查询语言的装置,包括:

    投影层程序模块,用于根据用户问句文本和相应的数据库信息确定抽象问句表示和抽象数据库信息表示;

    第一转换器程序模块,用于将所述抽象问句表示和抽象数据库信息表示输入至第一转换器,以得到统一信息表示;

    解码器程序模块,用于确定所述统一信息表示所对应的语法树结构,以得到对应于所述用户问句文本的结构化查询语言。

    第三方面,本发明实施例提供一种存储介质,所述存储介质中存储有一个或多个包括执行指令的程序,所述执行指令能够被电子设备(包括但不限于计算机,服务器,或者网络设备等)读取并执行,以用于执行本发明上述任一项将文本转化为结构化查询语言的方法。

    第四方面,提供一种电子设备,其包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器,其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明上述任一项将文本转化为结构化查询语言的方法。

    第五方面,本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括存储在存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,使所述计算机执行上述任一项将文本转化为结构化查询语言的方法。

    本发明实施例的有益效果在于:借用数据库中既有领域信息又有结构信息的特点,采用图投影模型分离领域信息。我们将数据库的语义信息作为跳板,利用数据库的结构信息来更新问句,逐步抽象化问句的表示,使得问句和数据库中的领域信息逐渐剥离,最后得到抽象化的问句和数据库的表示,这种表示不包含具体的语义信息,通过这种方式来提升模型的领域迁移能力。

    附图说明

    为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

    图1为本发明的将文本转化为结构化查询语言的方法的一实施例的流程图;

    图2为本发明的将文本转化为结构化查询语言的方法的另一实施例的流程图;

    图3为本发明的将文本转化为结构化查询语言的方法的又一实施例的流程图;

    图4为本发明的将文本转化为结构化查询语言的装置的原理框图;

    图5为本发明一实施例中所提出的shadowgnn的结构示意图。

    具体实施方式

    为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

    需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。

    本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、元件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。

    在本发明中,“模块”、“装置”、“系统”等指应用于计算机的相关实体,如硬件、硬件和软件的组合、软件或执行中的软件等。详细地说,例如,元件可以、但不限于是运行于处理器的过程、处理器、对象、可执行元件、执行线程、程序和/或计算机。还有,运行于服务器上的应用程序或脚本程序、服务器都可以是元件。一个或多个元件可在执行的过程和/或线程中,并且元件可以在一台计算机上本地化和/或分布在两台或多台计算机之间,并可以由各种计算机可读介质运行。元件还可以根据具有一个或多个数据包的信号,例如,来自一个与本地系统、分布式系统中另一元件交互的,和/或在因特网的网络通过信号与其它系统交互的数据的信号通过本地和/或远程过程来进行通信。

    最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”,不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

    如图1所示,本发明的实施例提供一种将文本转化为结构化查询语言的方法,包括:

    s10、根据用户问句文本和相应的数据库信息确定抽象问句表示和抽象数据库信息表示。

    示例性地,将用户问句文本和相应的数据库信息输入至图投影神经网络得到抽象问句表示和抽象数据库信息表示。

    在一些实施例中,所述数据库信息包括带有领域信息的数据库信息和带有结构信息的数据库信息;将用户问句文本和相应的数据库信息输入至图投影神经网络得到抽象问句表示和抽象数据库信息表示包括:将用户问句文本、带有领域信息的数据库信息和带有结构信息的数据库信息输入至预先构建的图投影神经网络得到抽象问句表示和抽象数据库信息表示。

    s20、将所述抽象问句表示和抽象数据库信息表示输入至第一转换器,以得到统一信息表示;

    s30、确定所述统一信息表示所对应的语法树结构,以得到对应于所述用户问句文本的结构化查询语言。

    本发明实施例中借用数据库中既有领域信息又有结构信息的特点,采用图投影模型分离领域信息。我们将数据库的语义信息作为跳板,利用数据库的结构信息来更新问句,逐步抽象化问句的表示,使得问句和数据库中的领域信息逐渐剥离,最后得到抽象化的问句和数据库的表示,这种表示不包含具体的语义信息,通过这种方式来提升模型的领域迁移能力。

    如图2所示,为本发明的另一实施例的流程图,在该实施例中,将用户问句文本、带有领域信息的数据库信息和带有结构信息的数据库信息输入至预先构建的图投影神经网络得到抽象问句表示和抽象数据库信息表示包括:

    s11、根据用户问句文本和带有领域信息的数据库信息求得注意力权重矩阵;

    s12、根据所述注意力权重矩阵和所述抽象数据库信息表示更新所述用户问句文本,并将更新后的用户问句文本输入至第二转换器以得到抽象问句表示;

    s13、根据所述注意力权重矩阵和所述用户问句文本更新带有领域信息的数据库信息和带有结构信息的数据库信息,并输入至图卷积网络以得到抽象数据库表示。

    在本实施例中,用户问句文本首先和带有领域信息的信息数据库求得注意力权重矩阵,用户问句文本的更新是依据该注意力权重矩阵和抽象的数据库信息,而另外两种数据库(带有领域信息的数据库和带有结构信息的数据库)的更新都是依据该注意力权重矩阵和用户问句表示。最后将数据库的表示经过一层基于关系的图卷积网络,将用户问句的表示经过一层transformer。上面的一次更新过程,我们称之为图投影过程,经过多次这样的更新过程后就能得到抽象的数据库表示和抽象的问句表示。紧接着将抽象的数据库表示和抽象的问句表示使用关系可知transformer得到统一的表示。

    如图3所示,为本发明的另一实施例的流程图,在该实施例中,根据所述注意力权重矩阵和所述用户问句文本更新带有领域信息的数据库信息和带有结构信息的数据库信息包括:

    s131、确定在带有领域信息的数据库视角下对应于所述用户问句文本的第一文本表示;

    s132、确定在带有结构信息的数据库视角下对应于所述用户问句文本的第二文本表示;

    s133、根据所述注意力权重矩阵和所述第一文本表示更新带有领域信息的数据库信息;

    s134、根据所述注意力权重矩阵和所述第二文本表示更新带有结构信息的数据库信息。

    在本实施例中,数据库和问句表示的更新过程:用户问句首先和带有领域信息的数据库求得注意力权重矩阵,用户问句的更新是依据该注意力权重矩阵和抽象的数据库信息,而另外两种数据库的更新都是依据该注意力权重矩阵和各自视角的用户问句表示。最后将数据库的表示经过一层基于关系的图卷积网络,将用户问句的表示经过一层transformer。上面的一次更新过程,我们称之为图投影神经网络,经过多次这样的更新过程后就能得到抽象的数据库表示和抽象的问句表示。紧接着将抽象的数据库表示和抽象的问句表示使用关系可知transformer得到统一的表示。

    在一些实施例中,确定所述统一信息表示所对应的语法树结构,以得到对应于所述用户问句文本的结构化查询语言包括:

    预先采用irnet的解码方式,将结构化查询语言表示成抽象语法树的形式;

    确定所述统一信息表示所对应的语法树结构;

    确定所述语法树结构所对应的结构化查询语言为对应于所述用户问句文本的结构化查询语言。

    如图4所示,本发明实施例还提供一种将文本转化为结构化查询语言的装置400,在该实施例中包括:

    投影层程序模块410,用于根据用户问句文本和相应的数据库信息确定抽象问句表示和抽象数据库信息表示;

    第一转换器程序模块420,用于将所述抽象问句表示和抽象数据库信息表示输入至第一转换器,以得到统一信息表示;

    解码器程序模块430,用于确定所述统一信息表示所对应的语法树结构,以得到对应于所述用户问句文本的结构化查询语言。

    在一些实施例中,根据用户问句文本和相应的数据库信息确定抽象问句表示和抽象数据库信息表示包括:将用户问句文本和相应的数据库信息输入至图投影神经网络得到抽象问句表示和抽象数据库信息表示。

    在一些实施例中,数据库信息包括带有领域信息的数据库信息和带有结构信息的数据库信息;

    所述将用户问句文本和相应的数据库信息输入至图投影神经网络得到抽象问句表示和抽象数据库信息表示包括:

    将用户问句文本、带有领域信息的数据库信息和带有结构信息的数据库信息输入至预先构建的图投影神经网络得到抽象问句表示和抽象数据库信息表示。

    在一些实施例中,将用户问句文本、带有领域信息的数据库信息和带有结构信息的数据库信息输入至预先构建的图投影神经网络得到抽象问句表示和抽象数据库信息表示包括:

    根据用户问句文本和带有领域信息的数据库信息求得注意力权重矩阵;

    根据所述注意力权重矩阵和所述抽象数据库信息表示更新所述用户问句文本,并将更新后的用户问句文本输入至第二转换器以得到抽象问句表示;

    根据所述注意力权重矩阵和所述用户问句文本更新带有领域信息的数据库信息和带有结构信息的数据库信息,并输入至图卷积网络以得到抽象数据库表示。

    在一些实施例中,根据所述注意力权重矩阵和所述用户问句文本更新带有领域信息的数据库信息和带有结构信息的数据库信息包括:

    确定在带有领域信息的数据库视角下对应于所述用户问句文本的第一文本表示;

    确定在带有结构信息的数据库视角下对应于所述用户问句文本的第二文本表示;

    根据所述注意力权重矩阵和所述第一文本表示更新带有领域信息的数据库信息;

    根据所述注意力权重矩阵和所述第二文本表示更新带有结构信息的数据库信息。

    在一些实施例中,确定所述统一信息表示所对应的语法树结构,以得到对应于所述用户问句文本的结构化查询语言包括:

    预先采用irnet的解码方式,将结构化查询语言表示成抽象语法树的形式;

    确定所述统一信息表示所对应的语法树结构;

    确定所述语法树结构所对应的结构化查询语言为对应于所述用户问句文本的结构化查询语言。

    为更加清楚的介绍本发明的技术方案,也为更直接地证明本发明的可实施性以及相对于现有技术的有益性,以下将对本发明的发明历程以及技术背景、技术方案、所进行的实验等进行更为详细的介绍。

    摘要

    为了提升模型的泛化能力,我们从数据库的结构和语义两个角度提出了新的解析框架,我们称之为shadowgnn。抽象的数据库剔除了数据库表示中的语义信息,借助这一抽象表示结合我们设计的图投影神经网络来得到去词汇化的问句和数据库表示。结合得到的抽象化表示,我们再进一步使用关系可知的transformer得到问句和数据库的统一表示。最后,我们结合了一种上下文无关的中间语法来进行解码。在富有挑战的文本到sql任务spider上,我们提出的模型比我们实现的基线模型都要好。结合预训练模型(electra),shadowgnn得到了和目前最好性能相对的结果。

    1、介绍

    最近,text-to-sql已引起语义解析社区的广泛关注。使用自然语言(nl)查询数据库的能力吸引了大多数不熟悉sql语言的用户访问大型数据库。已经提出了许多将问句转换为可执行的sql查询的神经方法。在公开的text-to-sql基准测试中,精确匹配准确率甚至超过80%。但是,text-to-sql的跨领域问句是一个实际的挑战,被先前的数据集忽略了。需要说明的是,数据库架构被视为域。域信息由两部分组成:模式组件的语义信息(例如,表名)和模式的结构信息(例如,表与列之间的主键关系)。

    最近发布的数据集spider会隐藏测试集的数据库模式,这与训练集完全不同。在这种跨领域设置中,域适应具有挑战性,主要有两个原因。首先,测试和开发集中的域的语义信息在训练集中看不到。在给定的开发集上,数据库模式中35%的单词不会出现在训练集的模式中。很难在问句和模式中匹配域表示形式。其次,数据库模式的结构之间存在相当大的差异。特别是,数据库模式始终包含语义信息。很难获得数据库模式的统一表示。我们可以看到,由于上述原因,关键字是域的特定语义信息。

    在本文中,我们尝试减轻跨领域设置下领域信息的影响。重要的是要弄清楚模式组件的语义信息在将nl问句转换为sql查询期间所起的作用。对于text-to-sql模型,基本任务是通过查找带有语义信息的模式来找出所有提到的列(名称)和表(团队,赛季)(命名为语义模式)。一旦nl问句中提到的列和表与模式组件完全匹配,我们就可以通过将常规组件类型替换为特定的模式组件来抽象nl问句和语义模式。我们仍然可以使用抽象nl问句和模式结构来推断sql查询的结构。通过语义模式和抽象模式之间的对应关系,我们可以将抽象查询还原为具有域信息的可执行sql查询。受此现象的启发,我们将text-to-sql模型的编码器分解为两个模块。首先,本发明提出了一种图投影神经网络(gpnn)来抽象nl问句和语义模式,其中尽可能多地删除领域信息。然后,本发明使用关系感知转换器来获取抽象nl问句和抽象模式的统一表示。

    本发明的方法是在具有挑战性的跨领域text-to-sql数据集spider上进行评估的。贡献总结为:

    ·本发明第一个通过抽象nl问句和sql查询表示来减轻领域信息影响。将其应用于相似的跨领域任务是一种有意义的方法。

    ·为了消除nl问句和模式中包含的领域信息,本发明建议gpnn获得它们对nl问句和模式的抽象表示。

    ·实证结果表明,在具有挑战性的spider基准测试中,本发明的方法可以与最新方法取得可比的性能。消融研究进一步证实,gpnn对于抽象nl问句和方案的表示很重要。

    2、相关工作

    文本到sql:最近在spider上评估的模型为文本到sql的研究指出了几个有趣的方向。首次提出了基于ast的解码器,使用类似的基于ast的解码器对更抽象的中间表示(ir)进行解码,然后将其转换为sql查询。rat-sql引入了一个关系感知转换器编码器,以改进问句和模式的联合编码,并在spider数据集上达到了最佳性能。editsql在将上下文转换为上下文相关的text-to-sql基准测试中将话语转换为sql查询时考虑了对话上下文。

    图神经网络:图神经网络(gnn)已被用于以更结构化的方式对模式进行编码。先前的工作在模式中构造了外键关系的有向图,然后使用gnn获得了相应的模式表示形式。global-gnn还采用了gnn来推导架构的表示形式,并选择一组可能出现在输出查询中的架构节点。然后,它有区别地重新排列从生成解码器输出的前k个查询。我们提出了图形投影神经网络(gpnn),它能够提取nl问句和语义模式的抽象表示。

    领域适应:领域适应引起了研究人员的兴趣,因为具有良好适应能力的模型可以转移到性质相似但来自不同领域的数据。最近提出的一些模型集中在提高域适应能力。多亏了具有挑战性的spider数据集,我们现在有了更好的评估这种能力的方法。irnet使用从粗到精的解码策略,其中在与域相关的节点填充之前生成与域无关的草图。ryansql也为复杂的select语句提供了详细的草图。ratsql可以通过组合架构链接和关系感知转换器来执行与领域无关的编码,从而转移到新数据库。gnn和global-gnn将图神经网络(gnn)引入到模式编码中,可以捕获结构信息并轻松转移到其他数据库。我们是第一个专注于text-to-sql中的抽象模式以提高域适应能力的人。

    3、背景

    在本节中,我们首先介绍关系图卷积网络(r-gcn),这是我们在下一节中介绍的拟议gpnn的基础。然后,我们介绍了关系感知型转换器,这是一种在计算注意力权重时考虑相关信息的转换器变型。

    3.1、关系图卷积网络

    在描述r-gcn的细节之前,我们首先给出关系有向图的表示法。我们将这种图表示为其中节点(模式分量)为且带方向标记的边为(vi;r;vj),其中vi是源节点,vj是目标节点,并且是从vi到vj的边类型。表示关系r下节点vi的邻居索引的集合,其中vi充当目标节点的角色。

    图的每个节点都有一个输入特征xi,可以将其视为r-gcn的初始隐藏状态图中每个节点的隐藏状态通过以下步骤逐层更新:

    发送消息:在第l层r-gcn上,图的每个边(vi;r;vj)将从源节点vi向目标节点vj发送消息。消息计算如下:

    其中,r是从vi到vj的关系,是线性变换,是可训练的矩阵。根据等式1,计算消息的参数的大小与节点类型的数量成正比。为了增加可伸缩性,r-gcn使用基本分解方法对消息计算参数进行正则化,定义如下:

    其中b是基数,是基变换的系数。对于不同的边缘类型,基础变换是共享的,并且仅系数依赖于r。

    聚合消息在消息发送过程之后,将聚合每个节点的所有传入消息。r-gcn只是将这些传入消息平均为:

    其中,等于

    更新状态聚合消息后,每个节点会将其隐藏状态从hi(l-1)更新为hi(l)

    其中,σ是激活函数(即relu),w0(l)是权重矩阵。对于r-gcn的每一层,更新过程可以简单表示为:

    其中,是节点的数量,是图结构。

    3.2、关系感知转换器

    随着大规模语言模型的成功,转换器架构已被广泛用于自然语言处理(nlp)任务中,以利用自注意力机制对序列x=[x]ni=1进行编码。例如,一个转换器由多个自注意力层堆叠在一起,其中每个层将xi转换为具有h头的yi如下:

    其中,h是头索引,dz是zi(h)的隐藏维,αij(h)是注意概率,concat表示连接操作,layernorm是层归一化,fc是全连接层。转换器功能可以简单地表示为:

    y=transformer(x),(10)

    其中,|x|是序列长度。

    关系感知转换器(rat)是传统转换器的重要扩展,它将输入序列视为标记有向完全连接的图形。在rat中考虑了输入元素之间的成对关系。rat在等式5和等式6中合并了关系信息。从元素xi到元素xj的边缘由向量rij;,k和rij,v表示,它们表示为并入自关注层中的偏差,如下所示:

    其中,rij;,k和rij,v在不同的关注头中共享。对于rat的每一层,更新过程可以简单表示为:

    其中,是序列标记之间的关系矩阵。

    r-gcn和rat已成功应用于text-to-sql任务。bogin,berant和gardner利用r-gcn对语义模式的结构进行编码,以获取节点的全局表示形式。不仅考虑方案结构,还考虑方案和nl问句之间的方案链接。他们提出了一个统一的框架,以使用rat对模式和问句的表示建模。但是,他们没有明确探讨域信息的影响。在下一部分中,我们将介绍我们提出的gpnn,并说明如何使用gpnn获得模式和问句的抽象表示。

    4、方法

    文本到sql模型以nl问句和语义模式作为输入。在我们提出的shadowgnn中,编码器已分解为两个模块。第一个模块使用精心设计的图形投影神经网络(gpnn)过滤特定领域信息。第二个模块利用关系感知转换器进一步获取问句和模式的统一表示。shadowgnn的这种两阶段编码器在跨领域设置下将问句转换为sql查询时,模拟了人类的推理过程:抽象和推理。

    如图5所示,为本发明一实施例中所提出的shadowgnn的结构示意图。在该实施例中,shadowgnn具有三种输入:抽象模式(仅具有模式的结构信息),语义模式和自然语言问句。shadowgnn的编码器由两个模块组成:一组图形投影层和一组相关关系的自我注意层。

    4.1、图投影神经网络

    在本小节中,我们介绍gpnn的结构。正如我们所讨论的,该架构由数据库结构信息和领域语义信息组成。因此,在模式上有两个视图,分别是抽象模式和语义模式。抽象模式的输入是不带任何域信息的模式节点的类型(表或列),可以将其视为语义模式的投影。语义模式的输入包含域信息。首先,nl问句始终包含域信息。

    传统的r-gcn方法仅将nl问句和语义模式作为输入。如图5所示,gpnn将其他抽象模式作为输入。gpnn的主要动机是抽象问句和模式的表示。抽象模式已从语义模式中提炼出来。本质在于抽象问句表示。gpnn的思想是以语义模式为桥梁,问句使用抽象模式更新其表示形式,而注意力信息则通过语义模式的向量进行计算。在每个图投影层中,首先在nl问句和语义模式之间进行关注操作,如下所示:

    其中,wq(l)和wk(l)是第l个投影层的注意力权重,并且是权重得分的矩阵。更新问句表示时,我们将抽象模式gja,(j)的表示作为gpnn第l层的关注关键值,

    其中,gate(·)=sigmoid(fc(·)),而wv(l)是可训练的重量。在更新语义模式时,我们将上述注意矩阵的转置作为从模式到问句的注意,

    类似于公式15-17中的问句的更新过程,语义模式的更新过程将作为注意力得分,并将qi(l)作为注意力值。我们可以看到我们仅使用抽象模式来更新问句表示。这样,将删除问句表示中包含的域信息。

    抽象模式的更新过程与语义模式更新相同,在语义模式更新中,它们对问句qi(l)的关注权重没有共享。在使用注意力机制更新抽象模式之前,有一项重要操作。我们首先计算注意力概率的最大值u,

    其中,uj的物理含义是该问句提到模式的第j个组件的可能性最大。我们通过广播上ga,(l)乘以u来区分抽象模式的初始表示;以广播方式使用。注意机制来更新三种向量。然后,我们结合模式和nl问句的特征,继续分别用r-gcn(·)函数和transformer(·)函数对模式和问句进行编码,如图5所示。到目前为止,已经介绍了投影层。图投影神经网络(gpnn)是投影层的堆栈。

    4.2、架构链接和rat

    模式链接可被视为一种先验知识,其中问句和模式之间的相关表示将根据匹配程度进行标记。共有7个标签:表完全匹配,表部分匹配,列完全匹配,列部分匹配,列值完全匹配,列值部分匹配和不匹配。列值存储在数据库中。如果将模式分为表和列,则有三种输入:问句,表和列。ratsql利用关系感知转换器来统一三个输入的表示。ratsql定义了三个输入之间的所有关系rat(·)函数获得问句和模式的统一表示。模式链接关系是r的子集。在本文中,我们利用rat进一步统一了问句和模式的抽象表示,该抽象表示是由先前的gpnn模块生成的。

    4.3、带有semql语法的解码器

    为了有效地限制合成期间的搜索空间,irnet设计了上下文无关的semql语法作为nl问句和sql之间的中间表示形式,本质上是抽象语法树(ast)。semql恢复sql的树型性质。为了简化语法树,semql没有涵盖sql的所有关键字。例如,可以从select子句或表的主键(其中将聚合函数应用于其列之一)推断出groupby子句中包含的列。

    结合semql查询的特征,irnet利用从粗到精的方法将semql查询的解码过程分解为两个阶段。第一步是使用框架解码器预测semql查询的框架。然后,细节解码器通过选择列和表来填充骨架中缺少的细节。在本文中,我们将irnet解码器直接用于text-to-sql模型,其中已发布源代码1。

    5、实验

    在本节中,我们比其他最新模型评估了我们提出的shadowgnn的有效性。我们进一步消除其他设计选择,以了解其贡献。

    5.1、实验设置

    数据集和指标:我们在spider上进行了实验,这是大规模,复杂和跨领域的text-to-sql基准。spider上的数据库分为146个培训,20个开发和40个测试。人工标记的问句-sql查询对分为8625/1034/2147,用于训练/开发/测试。像所有竞争挑战一样,该测试仪也不对公众开放。我们使用与相同的度量标准报告结果:精确匹配准确度和组件匹配准确度。

    基线:本文的主要贡献在于text-to-sql模型的编码器。至于我们评估模型的解码器,它是直接从irnet借用的。首先,按照精心设计的语法,用抽象语法树(ast)表示sql查询。然后,通过深度优先搜索(dfs)方法将ast展平为一个序列(名为semql查询)。在解码期间,仍使用lstm解码器一一预测。但是,irnet对解码器采用了从粗到精的方法。框架解码器首先输出semql查询的框架。然后,细节解码器通过选择列和表来填充骨架中缺少的细节。r-gcn和ratsql是另外两个强大的基准,它们提高了text-to-sql编码器的表示能力。

    表1:开发集和测试集的精确匹配精度。表格顶部的方法仅通过基于bert的模型进行了扩充,底部的方法则结合了其他预训练的模型。

    预训练模型:语言模型预训练对于学习与上下文相关的自然语言表示形式是有效的。为了与我们的基线方法进行比较,我们使用基于bert的模型最初嵌入了nlp问句和模式组件的表示。问句标记和模式标记之间有一个分隔符[sep]。如果一个标记包含多个单词(例如,列名玩家id),则在bert的最后一层之后会有一个平均池层。为了进一步评估我们的方法的有效性,我们利用功能更强大的electra-large编码问句和模式,该问句和模式已广泛用于机器阅读任务中。

    实施:我们使用pytorch实施shadowgnn和基线方法。我们使用py-torch转换器存储库中的预训练模型bert和electra,对1080tigpu上基于bert的模型和titantitan上基于electra的模型进行微调。我们使用具有默认超参数的adam进行优化。学习率设置为1e-4,但是预训练模型的学习率的权重衰减为0.1。gpnn层和rat层的隐藏大小设置为512。辍学率为0.3。批处理大小设置为16。由于gpu设备的限制,我们不像ratsql那样在超参数网格中搜索最佳设置。在基于electra和基于bert的实验中也是如此。shadowgnn编码器中的gpnn和rat层设置为4。

    5.2、实验结果

    表1列出了基于bert的预训练模型增强的精确匹配精度最高的三个模型,以及与其他预训练模型合并的底部四个模型。与我们提出的shadowgnn相比,我们可以发现shadowgnn在开发集上绝对提高了3.8%和1.5%。shadowgnn通过最先进的方法达到了可比的性能。irnet 在spider排行榜上的irnet变体中获得最佳性能,这是由其名称推断出来的。shadowgnn集成的electra模型分别在开发和测试集2上获得了绝对的6.6%和4.8%的性能提升。

    text-to-sql模型的出色表现表明我们将标记的semql树直接转换为sql查询。这是我们提出的模型的上限,实际上是irnet模型的性能。黄金性能仅取决于设计的semql语法。对于groupby子句和复杂的iuen操作,irnet中使用的semql语法性能最低。开发集上的黄金精确匹配精度仅为89.6%,这是我们的text-to-sql模型的主要限制。我们可以看到,黄金匹配精度越低,我们提出的模型的组件匹配精度就越低。仅在groupby子句中,具有electra的shadowgnn的性能低于具有bert的shadowgnn的性能。正如我们所讨论的,groupby子句是从另一个子句中推断出来的,该子句与特定模型无关。

    我们进一步设计了一个实验来验证图投影神经网络(gpnn)的有效性。考虑一个已经过预处理的问句:“一年后举行最多音乐会的体育场的名称和容量是什么?”,“名称”和“容量”是列名称。我们交换它们的位置,并与最终gpnn层的表示形式计算余弦相似度。有趣的是,我们发现“名称”与“容量”最相似。似乎删除了两个列名的语义,因为两个列名的表示仅取决于存在的位置。这表明gpnn确实有效。

    表2:在四个难度水平下消融方法的匹配精度。

    5.3、消融研究

    我们对基于bert的shadowgnn进行消融研究,以分析设计良好的图形投影神经网络(gpnn)的贡献。我们实现了四个消融模型:r-gcn,gpnn,rat和r-gcn rat。首先,我们介绍消融模型的实现。

    我们是第一个通过抽象nl问句和sql查询表示来减轻域信息影响的人。将其应用于类似的跨领域任务是一种有意义的方法。

    r-gcn:我们直接在gpnn中删除投影部分。在更新问句表示形式时,我们将语义模式的表示形式用作关注值,而不是抽象表示形式。我们可以发现没有架构链接信息。直接与主模型进行比较是不公平的。我们使用线性层通过架构链接输入来计算先验得分pnm。我们在注意力分数上添加pnm作为先验知识。在每个层,该先验分数是共享的。

    gpnn:与shadowgnn相比,gpnn模型直接删除了关系感知转换器。编码器中只有四个投影层。

    ratrat:模型用另外四个关系感知的自我关注层替换了四个投影层。编码器中总共有八个关系感知自我注意层,这与rat-sql设置一致。

    r-gcn rat:在此模型中,有四个r-gcn层和四个关系感知自我关注层。作为比较,r-gcn的初始输入是语义模式和抽象模式的总和。

    这四个烧蚀模型的解码器部分与shadowgnn的解码器相同。我们在中定义了开发集上四个难度级别上的消融模型的准确性。如表2所示,shadowgnn可以在所有难度级别上获得最佳性能。与r-gcn相比,我们基于semql语法实现的r-gcn具有更高的性能。gpnn是一种图神经网络,其重点是获取问句和模式的抽象表示。有趣的是,在bert扩展下,gpnn在基于gnn的神经网络中获得最佳性能,这表明图投影神经网络(gpnn)的有效性。与rat模型相比,shadowgnn的绝对精度提高了3.6%。特别是在硬水平数据上,绝对提高了5.7%。在训练集中,硬水平数据仅占15%左右。表明shadowgnn的域适应能力优于rat模型。与r-gcn rat模型相比,shadowgnn仍具有更好的性能,初始输入信息绝对相同。它表示明确抽象问句和模式表示的必要性和有效性。

    5.4、误差分析

    为了了解错误的来源,我们在开发集上分析了288个electra增强型shadowgnn失败的示例。我们确定导致sql查询错误的三个主要原因:(1)16%的失败查询是使用不同sql语法的nl意图的等效实现。例如,max操作可以由orderbycdesclimit1重写。(2)13%的失败示例在运算符中出错,因为它需要领域知识来预测正确的示例。对于sql专家来说,甚至有些示例都很难标注。考虑以下问句:“每年的平均体重和年数是多少?”,对于短语“平均体重和年数”,很难确定是否需要计算“平均值”。(3)25%的失败示例选择错误的表列。大多数此类失败示例都会选择相应列的错误表,其中该列是两个表的外键,而这两个表中的列名相同。

    5.5、讨论与未来工作

    从以上结果可以看出,我们提出的shadowgnn的主要局限性在于semql语法的不完整,其中一些重要的子句是由text-to-sql模型推断而不是预测的。在接下来的工作中,我们将改进semql语法。另一方面,为了验证所提出的图投影神经网络(gpnn)的通用性,我们将适应跨领域设置下的类似任务,例如对话状态跟踪(dst)。

    6、结论

    在本文中,我们尝试减轻域信息对跨领域text-to-sql任务的影响。我们提出了一种图形投影神经网络(gpnn),以简单的关注方式来抽象问句和模式的表示。我们进一步将gpnn输出的问句和模式的抽象表示与相对感知转换器(rat)统一起来。实验表明,我们提出的shadowgnn可以在具有挑战性的text-to-sql任务中获得出色的性能。消融研究进一步表明了我们提出的gpnn的有效性。

    需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作合并,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

    在一些实施例中,本发明实施例提供一种非易失性计算机可读存储介质,所述存储介质中存储有一个或多个包括执行指令的程序,所述执行指令能够被电子设备(包括但不限于计算机,服务器,或者网络设备等)读取并执行,以用于执行本发明上述任一项将文本转化为结构化查询语言的方法。

    在一些实施例中,本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括存储在非易失性计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,使所述计算机执行上述任一项将文本转化为结构化查询语言的方法。

    在一些实施例中,本发明实施例还提供一种电子设备,其包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器,其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行将文本转化为结构化查询语言的方法。

    在一些实施例中,本发明实施例还提供一种存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现将文本转化为结构化查询语言的方法。

    通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。

    最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。


    技术特征:

    1.一种将文本转化为结构化查询语言的方法,包括:

    根据用户问句文本和相应的数据库信息确定抽象问句表示和抽象数据库信息表示;

    将所述抽象问句表示和抽象数据库信息表示输入至第一转换器,以得到统一信息表示;

    确定所述统一信息表示所对应的语法树结构,以得到对应于所述用户问句文本的结构化查询语言。

    2.根据权利要求1所述的方法,其特征在于,所述根据用户问句文本和相应的数据库信息确定抽象问句表示和抽象数据库信息表示包括:将用户问句文本和相应的数据库信息输入至图投影神经网络得到抽象问句表示和抽象数据库信息表示。

    3.根据权利要求2所述的方法,其特征在于,所述数据库信息包括带有领域信息的数据库信息和带有结构信息的数据库信息;

    所述将用户问句文本和相应的数据库信息输入至图投影神经网络得到抽象问句表示和抽象数据库信息表示包括:

    将用户问句文本、带有领域信息的数据库信息和带有结构信息的数据库信息输入至图投影神经网络得到抽象问句表示和抽象数据库信息表示。

    4.根据权利要求3所述的方法,其特征在于,所述将用户问句文本、带有领域信息的数据库信息和带有结构信息的数据库信息输入至图投影神经网络得到抽象问句表示和抽象数据库信息表示包括:

    根据用户问句文本和带有领域信息的数据库信息求得注意力权重矩阵;

    根据所述注意力权重矩阵和所述抽象数据库信息表示更新所述用户问句文本,并将更新后的用户问句文本输入至第二转换器以得到抽象问句表示;

    根据所述注意力权重矩阵和所述用户问句文本更新带有领域信息的数据库信息和带有结构信息的数据库信息,并输入至图卷积网络以得到抽象数据库表示。

    5.根据权利要求4所述的方法,其特征在于,根据所述注意力权重矩阵和所述用户问句文本更新带有领域信息的数据库信息和带有结构信息的数据库信息包括:

    确定在带有领域信息的数据库视角下对应于所述用户问句文本的第一文本表示;

    确定在带有结构信息的数据库视角下对应于所述用户问句文本的第二文本表示;

    根据所述注意力权重矩阵和所述第一文本表示更新带有领域信息的数据库信息;

    根据所述注意力权重矩阵和所述第二文本表示更新带有结构信息的数据库信息。

    6.根据权利要求1-5中任一项所述的方法,其特征在于,所述确定所述统一信息表示所对应的语法树结构,以得到对应于所述用户问句文本的结构化查询语言包括:

    预先采用irnet的解码方式,将结构化查询语言表示成抽象语法树的形式;

    确定所述统一信息表示所对应的语法树结构;

    确定所述语法树结构所对应的结构化查询语言为对应于所述用户问句文本的结构化查询语言。

    7.一种将文本转化为结构化查询语言的装置,其特征在于,包括:

    投影层程序模块,用于根据用户问句文本和相应的数据库信息确定抽象问句表示和抽象数据库信息表示;

    第一转换器程序模块,用于将所述抽象问句表示和抽象数据库信息表示输入至第一转换器,以得到统一信息表示;

    解码器程序模块,用于确定所述统一信息表示所对应的语法树结构,以得到对应于所述用户问句文本的结构化查询语言。

    8.根据权利要求7所述的装置,其特征在于,所述根据用户问句文本和相应的数据库信息确定抽象问句表示和抽象数据库信息表示包括:将用户问句文本和相应的数据库信息输入至图投影神经网络得到抽象问句表示和抽象数据库信息表示。

    9.一种电子设备,其包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器,其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-6中任意一项所述方法的步骤。

    10.一种存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1-6中任意一项所述方法的步骤。

    技术总结
    本发明公开一种将文本转化为结构化查询语言的方法,包括:根据用户问句文本和相应的数据库信息确定抽象问句表示和抽象数据库信息表示;将抽象问句表示和抽象数据库信息表示输入至第一转换器,以得到统一信息表示;确定统一信息表示所对应的语法树结构,以得到对应于用户问句文本的结构化查询语言。本发明借用数据库中既有领域信息又有结构信息的特点,采用图投影模型分离领域信息。我们将数据库的语义信息作为跳板,利用数据库的结构信息来更新问句,逐步抽象化问句的表示,使得问句和数据库中的领域信息逐渐剥离,最后得到抽象化的问句和数据库的表示,这种表示不包含具体的语义信息,通过这种方式来提升模型的领域迁移能力。

    技术研发人员:俞凯;陈志
    受保护的技术使用者:苏州思必驰信息科技有限公司
    技术研发日:2020.12.18
    技术公布日:2021.03.12

    转载请注明原文地址:https://wp.8miu.com/read-21769.html

    最新回复(0)