CN115048447B - 一种基于智能语义补全的数据库自然语言接口系统 - Google Patents

一种基于智能语义补全的数据库自然语言接口系统 Download PDF

Info

Publication number
CN115048447B
CN115048447B CN202210740860.3A CN202210740860A CN115048447B CN 115048447 B CN115048447 B CN 115048447B CN 202210740860 A CN202210740860 A CN 202210740860A CN 115048447 B CN115048447 B CN 115048447B
Authority
CN
China
Prior art keywords
query
natural language
database
vector
encoder
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
CN202210740860.3A
Other languages
English (en)
Other versions
CN115048447A (zh
Inventor
郑渤龙
毕蕾
席瑞洁
万静意
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.)
Huazhong University of Science and Technology
Original Assignee
Huazhong University of Science and Technology
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 Huazhong University of Science and Technology filed Critical Huazhong University of Science and Technology
Priority to CN202210740860.3A priority Critical patent/CN115048447B/zh
Publication of CN115048447A publication Critical patent/CN115048447A/zh
Application granted granted Critical
Publication of CN115048447B publication Critical patent/CN115048447B/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/25Integrating or interfacing systems involving database management systems
    • 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/242Query formulation
    • G06F16/2433Query languages
    • 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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/237Lexical tools
    • G06F40/242Dictionaries
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • General Health & Medical Sciences (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Machine Translation (AREA)

Abstract

本发明公开了一种基于智能语义补全的数据库自然语言接口系统,涉及计算机查询技术领域,包括关系感知型编码器、抽取生成型集束解码器、历史查询桥接机制以及动态上下文向量构建模块;关系感知型编码器包括文本联合嵌入模块、表感知查询编码器以及查询感知表编码器,文本联合嵌入模块基于预训练语言模型构建,表感知查询编码器以及查询感知表编码器均融合了注意力机制;抽取生成型集束解码器包括抽取生成动作选择模块、计划采样机制和多样化集束搜索模块。本发明能够降低非专业人士检索数据库的门槛,减少人机交互障碍,具有实用性,可以在人工智能交互和智能问答、搜索引擎的优化以及企业运营成本的节约等场景得到广泛应用。

Description

一种基于智能语义补全的数据库自然语言接口系统
技术领域
本发明涉及计算机查询技术领域,具体而言,涉及一种可用于处理语义残缺或错误的数据库自然语言接口系统。
背景技术
随着社交媒体以及物联网设备的发展,各种数据源的数据规模呈指数级增长,全球数据的存储量呈爆发式增长。在针对海量数据的存储中,关系型数据库扮演着至关重要的角色,存储的数据在商业运营、医学、科学研究以及日常生活的各种任务中都必不可少。虽然关系型数据库已经存在了几十年,但是普通用户在使用结构化查询语言(StructuredQuery Language,SQL)访问关系型数据库时仍然存在一定困难。数据库自然语言接口(Natural Language Interface to Database,NLIDB)旨在将用户输入的自然语言查询转换为关系型数据库中可执行的SQL查询语句,绝大多数不精通结构化查询语言的用户可以使用自然语言接口,对数据库进行有效查询,大大减少人机交互的障碍。因此,研究如何提供一种用户友好的数据库自然语言接口已经成为了数据库领域和自然语言处理领域的交叉研究热点之一。
数据库自然语言接口技术一直受到国内外广泛关注,目前主流解决方案主要在三个阶段进行优化:输入预处理阶段、翻译阶段和后翻译阶段。输入预处理阶段的优化主要通过对输入的自然语言进行预处理,丰富输入数据类型,包括对输入数据标注等方法。ATHENA使用分词器对输入的自然语言中出现的指代实体的语言进行分隔,分词之后更易于提取句子的主干信息。NaLIR利用依存分析对输入的自然语言中的词语依赖关系进行处理。除了将自然语言查询作为输入,SQLova在双向编码器表示模型(Bidirectional EncoderRepresentations from Transformers,BERT)编码器中结合了数据表头内容,使用[SEP]分隔自然语言文本序列和数据表头内容。翻译阶段的优化主要通过深度学习方法。Xi V.Lin等人提出BRIDGE模型,采用序列到序列的深度学习架构,编码器使用锚文本将序列中提到的单元值与相应的数据库字段连接起来,进而使用BERT对自然语言序列和数据库模式的混合序列进行编码,解码器为结合多头注意力机制的指针生成网络。后翻译阶段的优化目前主要采用去匿名化、引入中间表示和限制解码空间等方法。DBPal设计了一种匿名化机制,将自然语言查询中的数值等信息用占位符来进行替换,在模型完成结构化查询语言的生成之后,再用自然语言查询中的叙述复原其中的占位符。
现有的数据库自然语言接口技术在不同的阶段进行模型优化时,均未考虑用户的输入为不完整的或错误的自然语言查询语句,使人机交互障碍较大,难以在人工智能交互和智能问答、搜索引擎的优化以及企业运营成本的节约等场景得到高效广泛应用。
发明内容
本发明为了克服现有数据库自然语言接口方法未考虑用户输入的自然语言查询为语义缺失或错误的缺陷,提供一种基于智能语义补全的数据库自然语言接口系统,并引入数据库历史查询桥接机制和动态上下文向量,从而能够实现智能语义补全和纠错的数据库自然语言接口,可作为各种基于数据库服务的应用中的基础构建模块。
本发明提供了一种基于智能语义补全的数据库自然语言接口系统,包括关系感知型编码器、抽取生成型集束解码器、历史查询桥接机制以及动态上下文向量构建模块;
历史查询桥接机制用于将自然语言查询与数据库历史查询桥接,输出历史查询桥接状态向量;
关系感知型编码器包括文本联合嵌入模块、表感知查询编码器以及查询感知表编码器,文本联合嵌入模块基于预训练语言模型构建,表感知查询编码器以及查询感知表编码器均融合了注意力机制;
文本联合嵌入模块用于将自然语言查询分词和数据库模式分词分别转化为自然语言查询的嵌入向量和数据库模式的嵌入向量;表感知查询编码器用于将自然语言查询的嵌入向量转化为可以感知数据库模式的自然语言查询状态向量;查询感知表编码器用于将数据库模式的嵌入向量转化为可以感知自然语言查询的数据库模式状态向量;
动态上下文向量构建模块用于基于时间步、历史查询桥接状态向量、自然语言查询状态向量和数据库模式状态向量计算得到动态上下文向量;
抽取生成型集束解码器包括抽取生成动作选择模块、计划采样机制和多样化集束搜索模块;
抽取生成动作选择模块用于基于动态上下文向量,计算输出从自然语言查询中抽取的概率,以及从结构化查询语言(Structured Query Language,SQL)关键字词典和数据库模式中生成的概率;
计划采样机制用于基于从自然语言查询中抽取的概率,和从SQL关键字词典和数据库模式中生成的概率,计算得到生成词的概率;
多样化集束搜索模块用于基于得到生成词的概率,得到可执行的SQL查询语句集合,并返回给用户。
在本发明的一较佳实施方式中,文本联合嵌入模块将自然语言查询分词和数据库模式分词分别转化为自然语言查询的嵌入向量和数据库模式的嵌入向量的方法包括:
将自然语言查询分词和数据库模式分词进行拼接,得到模型输入的表达为
Input=[CLS,X,SEP,T1,SEP,T2,SEP,...],
其中,Input表示输入序列,CLS和SEP表示特殊字符,X表示自然语言查询,Ti表示数据库模式;
将输入序列Input输入到预训练语言模型BERT中,最后输出得到
{EX,ES}=BERT(Input),
其中,
Figure BDA0003715689840000031
是自然语言查询的嵌入向量,n是自然语言查询的长度,ES是数据库模式的嵌入向量。
在本发明的一较佳实施方式中,表感知查询编码器包括第一层Bi-LSTM、数据库模式注意力机制层和第二层Bi-LSTM;
获取可以感知数据库模式的自然语言查询状态向量的方法为:
使用表感知查询编码器的第一层Bi-LSTM对自然语言查询的嵌入向量进行编码,得到嵌入向量HB
通过数据库模式注意力机制层捕获自然语言查询中与数据库模式强相关的自然语言单词,将经过数据库模式注意力机制后的向量Hschema与嵌入向量HB进行拼接,将拼接后的向量使用表感知查询编码器的第二层Bi-LSTM编码得到可以感知数据库模式的自然语言查询状态向量HX
在本发明的一较佳实施方式中,查询感知表编码器包括第一层双向长短时记忆网络、数据库模式自注意力机制层、自然语言查询注意力机制层和第二层双向长短时记忆网络;
获取可以感知自然语言查询的数据库模式状态向量的方法为:
使用查询感知表编码器的第一层双向长短时记忆网络数据库模式的嵌入向量进行编码,然后使用数据库模式自注意力机制层提取多表间关系;
使用自然语言查询注意力机制层建模数据库模式语句与自然语言查询语句之间的关系,再将数据库模式自注意力机制层的向量Hself与自然语言查询注意力机制层的输出Hquery进行拼接,拼接后得到的向量Hcat使用查询感知表编码器的第二层双向长短时记忆网络进行编码,得到可以感知自然语言查询的数据库模式状态向量HS
在本发明的一较佳实施方式中,获取历史查询桥接状态向量的方法具体包括:
使用预训练语言模型BERT对数据库历史查询进行编码得到嵌入向量EQ,然后使用Bi-LSTM对嵌入向量EQ进行编码,得到向量
Figure BDA0003715689840000041
其中μ表示历史查询语句的长度;
计算历史影响因子
Figure BDA0003715689840000042
然后,对历史影响因子/>
Figure BDA0003715689840000043
进行归一化,
Figure BDA0003715689840000044
计算历史查询桥接状态向量HQ
Figure BDA0003715689840000045
在本发明的一较佳实施方式中,获取动态上下文向量的方法包括:
计算当前时间步t解码器隐藏状态
Figure BDA0003715689840000046
和单个自然语言查询词的编码最终隐藏状态
Figure BDA0003715689840000047
之间的对齐分数/>
Figure BDA0003715689840000048
Figure BDA0003715689840000049
其中,
Figure BDA00037156898400000410
为可学习参数;
计算解码时间步t之前的自然查询词的聚合对齐分数
Figure BDA00037156898400000411
得到归一化之后的具有局部依赖性的对齐分数/>
Figure BDA00037156898400000412
Figure BDA00037156898400000413
计算在解码时间步t第i个自然语言查询编码最终隐状态对解码器隐藏层状态的注意力权重
Figure BDA00037156898400000414
Figure BDA00037156898400000415
根据自然语言查询状态向量和注意力权重
Figure BDA00037156898400000416
计算自然语言查询局部敏感型上下文向量/>
Figure BDA00037156898400000417
Figure BDA00037156898400000418
同理,结合数据库模式状态向量,计算得到数据库模式局部敏感的上下文向量
Figure BDA00037156898400000419
Figure BDA0003715689840000051
Figure BDA0003715689840000052
Figure BDA0003715689840000053
Figure BDA0003715689840000054
结合历史查询桥接状态向量,计算得到历史查询局部敏感的上下文向量
Figure BDA0003715689840000055
Figure BDA0003715689840000056
Figure BDA0003715689840000057
Figure BDA0003715689840000058
Figure BDA0003715689840000059
在每一个解码时间步t,计算在时间步t之前生成的每个隐藏状态
Figure BDA00037156898400000510
和当前时间步隐藏状态/>
Figure BDA00037156898400000511
的内部注意力分数/>
Figure BDA00037156898400000512
Figure BDA00037156898400000513
计算时间步t时间步之前每个隐藏状态与当前时间步隐藏状态的内部注意力向量
Figure BDA00037156898400000514
Figure BDA00037156898400000515
计算解码内部跟踪型上下文向量
Figure BDA00037156898400000516
Figure BDA00037156898400000517
将自然语言查询、数据库模式和历史查询敏感的上下文向量进行拼接,得到在该时间步的动态上下文向量
Figure BDA0003715689840000061
Figure BDA0003715689840000062
在本发明的一较佳实施方式中,计算输出从自然语言查询中抽取的概率,以及从SQL关键字词典和数据库模式中生成的概率的方法包括:
在每一个时间步t,将动态上下文向量
Figure BDA0003715689840000063
和解码器隐藏层状态/>
Figure BDA0003715689840000064
进行拼接,输入到激活函数层tanh中以引入非线性因素,Vo为可学习参数,隐藏层状态/>
Figure BDA0003715689840000065
在每一个时间步t,将动态上下文向量
Figure BDA0003715689840000066
和隐藏层状态Ot输入到sigmoid函数中,以使用伯努利分布计算从自然语言查询中抽取的概率/>
Figure BDA0003715689840000067
进而得到从SQL关键字词典和数据库模式中生成的概率/>
Figure BDA0003715689840000068
bext为可学习参数,
Figure BDA0003715689840000069
Figure BDA00037156898400000610
在本发明的一较佳实施方式中,计算生成词的概率的方法包括:
计算SQL关键字词典K的概率分布PSQL
Figure BDA00037156898400000611
计算数据库模式S的概率分布Pschema
Figure BDA00037156898400000612
计算SQL关键字词典K和数据库模式S的共同概率分布PSQL∪schema
PSQL∪schema=[PSQL(yt);PS(yt)]
计算自然语言查询的概率分布PX
Figure BDA00037156898400000613
计算生成词
Figure BDA00037156898400000614
的概率/>
Figure BDA00037156898400000615
Figure BDA00037156898400000616
在本发明的一较佳实施方式中,可执行的SQL查询语句集合
Figure BDA00037156898400000617
在本发明的一较佳实施方式中,该系统还包括课程式学习算法优化模型,用于使系统能学习到历史查询中未出现过的新类型查询。
与现有技术相比,本发明的有益效果是:
1)本发明提出一种新颖的基于残缺自然语言生成SQL语句的框架,解决残缺自然语言输入导致的查询意图与SQL语句的错误对应问题;提出使用预训练语言模型对自然语言查询与数据库模式进行联合嵌入,捕捉输入信息的依赖关系;设计抽取-生成动作选择,解决模型生成领域外词汇的问题;
2)本发明中所采用的历史查询桥接机制,创新性地利用非结构化的数据库历史查询记录,弥补现有算法不能转化语义残缺的自然语言查询的缺陷,通过融合数据库历史查询知识以实现语义补全和纠错,生成数据库SQL语句;
3)本发明创新性地构建动态上下文向量,相比于传统的向量构建,能够在建模过程中动态组合每个时间步的源状态而非单一的静态状态,通过动态调整时间窗口对状态信息及时间步予以关注,以避免重复SQL元素的生成。
4)本发明提供的面向智能语义补全和纠错的数据库自然语言接口系统能够降低非专业人士检索数据库的门槛,减少人机交互障碍,具有实用性,可以在人工智能交互和智能问答、搜索引擎的优化以及企业运营成本的节约等场景得到广泛应用。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举本发明实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1是本发明所述数据库自然语言接口系统的整体框架图;
图2是表感知查询编码器的结构图;
图3是查询感知表编码器的结构图;
图4是抽取生成型集束解码器的结构图;
图5是课程式学习算法的示意图;
图6是CCTS模型和T5模型真实生成对比案例示意图;
图7是不同数据集上自然语言查询完整度与Recall指标的变化趋势图;
图8是不同数据集上数据库实体完整度与Recall指标的变化趋势图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参照图1,本发明提供了一种基于智能语义补全的数据库自然语言接口系统,包括关系感知型编码器、抽取生成型集束解码器、历史查询桥接机制以及动态上下文向量构建模块;
历史查询桥接机制用于将自然语言查询与数据库历史查询桥接,输出历史查询桥接状态向量;
关系感知型编码器包括文本联合嵌入模块、表感知查询编码器以及查询感知表编码器,文本联合嵌入模块基于预训练语言模型构建,表感知查询编码器以及查询感知表编码器均融合了注意力机制;
文本联合嵌入模块用于将自然语言查询分词和数据库模式分词分别转化为自然语言查询的嵌入向量和数据库模式的嵌入向量;表感知查询编码器用于将自然语言查询的嵌入向量转化为可以感知数据库模式的自然语言查询状态向量;查询感知表编码器用于将数据库模式的嵌入向量转化为可以感知自然语言查询的数据库模式状态向量;
动态上下文向量构建模块用于基于时间步、历史查询桥接状态向量、自然语言查询状态向量和数据库模式状态向量计算得到动态上下文向量;
抽取生成型集束解码器包括抽取生成动作选择模块、计划采样机制和多样化集束搜索模块;
抽取生成动作选择模块用于基于动态上下文向量,计算输出从自然语言查询中抽取的概率,以及从SQL关键字词典和数据库模式中生成的概率;
计划采样机制用于基于从自然语言查询中抽取的概率,和从SQL关键字词典和数据库模式中生成的概率,计算得到生成词的概率;
多样化集束搜索模块用于基于得到生成词的概率,得到可执行的SQL查询语句集合,并返回给用户。
在本发明中,文本联合嵌入的方法如下:
使用特殊字符[SEP]分割自然语言查询和不同的数据表模式,在处理时将自然语言查询与数据表模式一同作为特征输入到模型中。模型的输入为自然语言查询分词(QueryTokenization)和数据库模式分词(Schema Tokenization)拼接而成。因此,对自然语言查询X和数据库模式S={T1,T2,...,Ti,...,Tl}来说,模型输入的表达为
Input=[CLS,X,SEP,T1,SEP,T2,SEP,...],
其中,l表示数据库表的个数,Input表示输入序列,CLS和SEP表示特殊字符,X表示自然语言查询,Ti表示数据表模式,输入序列由这三者拼接而成。
在完成输入文本序列的拼接与分词之后,将输入序列Input输入到预训练语言模型BERT中,序列的每一个单词都会得到一个向量表示。值得注意的一点是,由于SQL关键词在分词时不应该被分割,所以使用SQL关键词扩充了BERT的词典。自然语言查询的每个单词以及数据库模式对应的嵌入向量为后续编码所需的输入向量,
{EX,ES}=BERT(Input),
其中,
Figure BDA0003715689840000091
是自然语言查询的嵌入向量,n是自然语言查询的长度,ES是数据库模式的嵌入向量。
在本发明中,表感知查询编码器编码用户输入的自然语言查询过程如下:
在获取自然语言查询的嵌入向量EX和数据库模式的嵌入向量ES后,可以利用嵌入向量进行建模。对于用户的自然语言查询嵌入向量EX,提出了表感知查询编码器,其结构如图2所示。编码器首先使用第一层Bi-LSTM进行编码,进而得到嵌入向量HB,然后通过数据库模式注意力机制层捕获自然语言查询中与数据库模式强相关的自然语言单词,将经过注意力机制后的向量Hschema与第一层Bi-LSTM编码后的向量HB进行拼接,将拼接后的向量使用第二层Bi-LSTM编码得到可以感知数据库模式的自然语言查询状态向量HX
在本发明中,查询感知表编码器编码数据库模式的过程如下:
对于数据库模式的嵌入向量ES,提出了查询感知表编码器,其结构如图3所示。
编码器首先使用第一层双向长短时记忆网络对数据库模式嵌入向量进行编码,然后由于数据库中数据表之间具有主键、外键等约束关系,使用数据库模式自注意力机制层提取多表间关系。同时,根据对数据集中的数据库模式与自然语言查询语句的观察,两者之间具有重要的依赖关系,编码器使用自然语言查询注意力机制层建模两者之间的关系。然后,将数据表自注意力机制层的向量Hself与自然语言查询注意力机制层的输出Hquery进行拼接,拼接后的向量Hcat再次使用双向长短时记忆网络进行编码,得到可以感知自然语言查询的数据库模式状态向量HS
在本发明中,历史查询桥接机制引入数据库历史查询进行数据增强的过程包括:
首先对数据库历史查询进行嵌入以及编码,与上文提出的关系感知型编码器结构一致,使用Jacob Devlin等人提出的预训练语言模型BERT对数据库历史查询进行编码得到嵌入向量EQ,然后使用Zhiheng Huang等人提出的Bi-LSTM进行编码,得到向量
Figure BDA0003715689840000101
其中μ表示历史查询语句的长度。
首先计算历史查询与当前的自然语言查询之间的历史影响因子,给定历史查询的隐状态HI和自然语言查询经过第一层Bi-LSTM编码后的隐藏层向量HB,计算历史影响因子
Figure BDA0003715689840000102
Figure BDA0003715689840000103
然后,对历史影响因子进行归一化,
Figure BDA0003715689840000104
历史影响因子表示了当前数据库的历史查询对用户输入的不完整自然语言查询的影响程度,因子数值越大,代表历史查询与当前查询输入的匹配程度越高,则补充的信息越有价值。
(2)实现自然语言查询与历史查询的桥接
将历史影响因子与历史查询的隐状态相乘,得到历史查询桥接状态向量HQ
Figure BDA0003715689840000105
Figure BDA0003715689840000106
为了实现自然语言查询与历史查询的桥接,将历史查询桥接状态向量与表感知查询编码器的Hcon进行拼接之后一起输入到Bi-LSTM作为自然语言查询向量HX,再输入到解码器中完成抽取动作选择,进而可以从用户自然语言查询和历史自然语言查询中均抽取词汇,引入历史查询进行数据增强。
在本发明中,获取动态上下文向量的方法包括:
1)构建局部敏感型上下文向量表征编码器的输入和解码器的状态之间的动态语义关系。
每一个解码步骤解码器不仅要将其内部隐藏状态和之前生成的词的词向量作为输入,也应该选择性地关注与当前解码步骤相关的自然语言查询、数据库模式信息和历史查询信息。为了实现这个目标,需要关注各个时刻编码器输入对解码器当前输出的影响程度,可以用编码器编码后的向量与解码器的隐藏层状态计算对齐分数,然后使用对齐分数计算注意力向量,进而得到的局部敏感型上下文向量
Figure BDA0003715689840000111
其就是对编码器编码后的向量和解码器隐藏状态之间的动态语义关系的表征。
对于自然语言查询X,在每一个解码步骤t,给定自然语言查询X编码后的状态向量hX与当前解码器隐藏层状态
Figure BDA0003715689840000112
首先计算当前时间步t解码器隐藏状态/>
Figure BDA0003715689840000113
和单个自然语言查询词的编码最终隐藏状态/>
Figure BDA0003715689840000114
之间的对齐分数/>
Figure BDA0003715689840000115
Figure BDA0003715689840000116
为可学习参数。即
Figure BDA0003715689840000117
为了避免关注超出需要的自然语言查询词编码,计算解码时间步t之前的自然查询词的聚合对齐分数/>
Figure BDA0003715689840000118
进而得到归一化之后的具有局部依赖性的对齐分数/>
Figure BDA0003715689840000119
Figure BDA00037156898400001110
此处需要注意在t=1时,将对齐分数设置为
Figure BDA00037156898400001111
这是因为这时并没有之前的对齐分数进行比例化计算。最后使用归一化来计算得到在解码时间步t第i个自然语言查询编码最终隐状态对解码器隐藏层状态的注意力权重/>
Figure BDA00037156898400001112
接着,将注意力权重与自然语言查询的状态向量相乘计算自然语言查询局部敏感型上下文向量。
Figure BDA00037156898400001113
Figure BDA00037156898400001114
同理可得到数据库模式局部敏感的上下文向量
Figure BDA00037156898400001115
Figure BDA00037156898400001116
Figure BDA00037156898400001117
Figure BDA00037156898400001118
Figure BDA0003715689840000121
由下式得到历史查询局部敏感的上下文向量
Figure BDA0003715689840000122
Figure BDA0003715689840000123
Figure BDA0003715689840000124
/>
Figure BDA0003715689840000125
Figure BDA0003715689840000126
2)构建内部跟踪型上下文向量捕捉先前解码时间步的特征
虽然局部敏感型上下文向量构建可以确保选择性地使用编码序列的不同部分,但是解码器内部仍然可能因其自身的隐藏状态而生成重复的词语,特别是在生成SQL语言这样的长序列情况中。生成的过程中如果不断重复出现某个词语,对SQL语句的准确性是致命的。为了避免该问题的发生,提出构建内部跟踪型上下文向量。并且,在模型生成的过程中,也应该关注之前时间步生成的信息,因此通过构建内部跟踪型上下文向量将先前解码序列的信息合并到当前的解码过程中。综上构建内部跟踪型上下文向量能够回顾之前的解码步骤可以使得模型做出更结构化的预测,避免重复相同的信息,并且能够捕捉很多时间步之前的信息。
在每一个解码时间步t,首先计算在t之前生成的每个隐藏状态
Figure BDA0003715689840000127
和当前时间步隐藏状态/>
Figure BDA0003715689840000128
的内部注意力分数/>
Figure BDA0003715689840000129
Figure BDA00037156898400001210
为可学习参数。
Figure BDA00037156898400001211
然后得到t时间步之前每个隐藏状态与当前时间步隐藏状态的内部注意力向量
Figure BDA00037156898400001212
Figure BDA00037156898400001213
通过注意力向量
Figure BDA00037156898400001214
和t时间步之前的解码器隐藏状态计算得到解码内部跟踪型上下文向量/>
Figure BDA0003715689840000131
Figure BDA0003715689840000132
最后将自然语言查询、数据库模式和历史查询敏感的上下文向量进行拼接,得到在该时间步的动态上下文向量
Figure BDA0003715689840000133
用于指导解码器的抽取生成动作选择。
Figure BDA0003715689840000134
在本发明中,计算输出从自然语言查询中抽取的概率,以及从SQL关键字词典和数据库模式中生成的概率的方法如下:
对于这里所研究的输入为信息缺失或不正确的自然语言查询、输出为SQL查询语句的任务而言,考虑从SQL关键字词典和数据库模式中生成SQL查询语句的基本结构,从自然语言查询中抽取查询条件值。这样既解决由信息缺失或不正确的自然语言查询生成完整SQL语句的补全问题,也保留生成SQL关键字和数据库模式词汇的纠错的能力,同时能提高模型的泛化性。
因此设计了抽取生成动作选择策略。在每一个解码的时间步t,抽取生成型集束解码器从以下动作中选择一种:从SQL关键字词典K中和从数据库模式S中生成SQL关键字或者一个组件(字段名、表名);从自然语言查询X中抽取词汇。如图4所示,首先,在每一个解码时间步,将动态上下文向量
Figure BDA0003715689840000135
和解码器隐藏层状态/>
Figure BDA0003715689840000136
进行拼接,输入到激活函数层tanh中以引入非线性因素,提高模型的表征能力,Vo为可学习参数,即/>
Figure BDA0003715689840000137
在每一个时间步t,将动态上下文向量
Figure BDA0003715689840000138
和隐藏层状态Ot输入到sigmoid函数中以使用伯努利分布计算从自然语言查询X中抽取的概率/>
Figure BDA0003715689840000139
进而得到从SQL关键字词典K和数据库模式S中生成的概率/>
Figure BDA00037156898400001310
如下式所示,/>
Figure BDA00037156898400001311
bext为可学习参数。
Figure BDA00037156898400001312
Figure BDA00037156898400001313
在本发明中,计算生成词的概率的方法包括:
给定经过Bi-LSTM网络得到的解码器隐藏层状态
Figure BDA00037156898400001314
编码器的输入自然语言查询状态向量HX,数据库模式状态向量HS,将Ot输入到全连接线性网络中,向样本标记空间中映射模型学习到的分布式特征表示,然后使用softmax进行归一化操作得到SQL关键字词典K的概率分布,VSQL、bSQL为可学习参数,计算出SQL关键字词典K的概率分布PSQL,如下式所示。
Figure BDA00037156898400001315
同理由得到数据库模式S的概率分布Pschema
Figure BDA0003715689840000141
得到SQL关键字词典K和数据库模式S的共同概率分布如下式所示。
PSQL∪schema=[PSQL(yt);PS(yt)]
由下式得到自然语言查询的概率分布PX
Figure BDA0003715689840000142
最后,得到生成词
Figure BDA0003715689840000143
的概率/>
Figure BDA0003715689840000144
Figure BDA0003715689840000145
在本发明中,最终的目标是能够得到Top K个完整的可执行SQL查询语句集合
Figure BDA0003715689840000146
返回给用户以进行选择,因此需要多样化解码结果。采用集束搜索的方式,在每一个解码时间步进行扩展时,剪掉概率较低的图节点,仅留下指定数目的概率较高的解,提高搜索速度。
在本发明中,该系统还包括课程式学习算法优化模型,用于使系统能学习到历史查询中未出现过的新类型查询。
1)定义新样本的难易程度
当用户查询不完整时,由于查询前缀可能扩展为多种类型的查询,对于历史查询中未见的新类型查询,就要求模型在生成预测的SQL语句的过程中具有泛化能力。课程式学习(Curriculum Learning)借鉴人和动物的学习流程都是由易到难的学习思想,在训练过程中,对样本进行权重的动态分配,让模型先从容易的样本开始进行学习,逐步过渡到复杂的样本上学习。其对于模型会有以下两个方面的提升:第一,课程式学习能够有效地加快模型的训练速度,在更少的训练迭代步数下达到相同的模型性能效果;第二,课程式学习能够让模型更容易训练到更好的局部最优状态,提高模型的泛化能力。因此,设计课程式学习算法可以提升模型学习能力。
课程式学习会考量数据样本的难易程度,从而根据难度对样本进行差异化权重分配。在训练刚开始的阶段,赋予简单样本的权重最高,随着训练的不断推进,逐渐增加较难样本的权重。因此首先需要对每个样本的难易程度进行定义,由于用户输入的自然语言查询可能是不完整的,越完整的查询训练难度越小,而越不完整的查询训练难度越大,所以与目标的完整自然语言查询匹配的字符串越长的查询难度越小,越短的查询难度越大。
X为用户输入不完整的自然语言查询,目标SQL查询
Figure BDA0003715689840000151
对应的完整自然语言查询
Figure BDA0003715689840000152
其中M代表目标SQL查询的个数,由于用户输入的自然语言查询X可能对应多个目标SQL语句,因此最终将结果值最大的难易打分作为该样本的最终难易程度得分,定义的样本难易打分函数如下式所示:
Figure BDA0003715689840000153
2)批次样本选择
对每一个epoch规定其参与训练的样本,gmin表示样本的最低得分,gmax表示样本的最高得分,B代表的是根据
Figure BDA0003715689840000154
排序后的样本的集合,按照下式所示计算得到每一个epoch包含的样本批次Bpace(e)。
Figure BDA0003715689840000155
Figure BDA0003715689840000156
如图5所示,对于第一个epoch即epoch=0,Bpace选择样本难易程度得分在[gmin,gmin+1]范围内的样本作为训练批次;随后的epoch,逐步增大难度,直到epoch中的样本的最大难易程度得分到达gmax;在此之后,每一个epoch都包含所有的样本。
下面提供关于本发明的对比测试案例:
首先,我们测试了本发明提出的基于智能语义补全的数据库自然语言接口系统,将其命名为面向自动补全和纠错的Text2SQL模型(Completion-Correction Model forText-to-SQL,CCTS),其将不完整的自然语言查询转化为可执行SQL语句的真实生成效果,并与T5模型的结果进行了对比,如图6所示。X为语义残缺的自然语言查询输入,
Figure BDA0003715689840000157
为CCTS模型和T5模型生成的推荐SQL语句,可以看出T5对于较长的SQL语句的预测效果不佳,而CCTS模型能够结合数据库模式以及历史查询语句生成用户期望的可执行SQL语句。其次,为了验证本方案在数据库自然语言接口中处理语义残缺或错误方面的优势,我们与现有技术进行对比测试及分析。
(1)数据集
实验使用了由Naihao Deng等人整理并提出的三个公开数据集:Spider、Advising和Scholar数据集。这三个数据集由Naihao Deng等人针对面向不完整或者错误的自然语言查询的Text2SQL任务重新进行了组织。其将以上的三个数据集中的每一个自然语言查询从问题的第一个到最后一个词来生成不完整或者存在错误的自然语言查询,用于评价面向自动补全和纠错的Text2SQL任务。因此对于不完整的自然语言查询X,其假设其对应的完整自然语言查询Xgold代表用户的查询意图,Xgold对应的Ygold为用户查询意图的SQL查询语句表示。此处需注意一个不完整的自然语言查询可以扩展到多个完整的查询,因此数据集中的每个示例都包含一个不完整的自然语言查询X及其对应的
Figure BDA0003715689840000161
和/>
Figure BDA0003715689840000162
Spider数据集是一个大型的跨域的Text2SQL数据集,其广泛地应用于Text2SQL任务中,其包含10,181个问题和5,639个横跨138个领域的复杂SQL查询。Advising数据集来自于密歇根大学的课程信息数据库。作者手动标记了初始问题集,并且为了确保高质量,对每个问题的对应的SQL查询都进行了评分以确保其正确性。其包含4,570个自然语言查询及其对应的SQL查询。Scholar数据集包含用户关于学术出版物的问题。通过询问用户来检查自动生成的SQL语句的正确性,包含816个自然语言查询。
(2)评价指标
针对基于智能语义补全的数据库自然语言接口,采用召回率、平均倒数排名和节省率作为评价指标,各个指标的计算过程如下所示。
召回率(RECALL):
模型预测的包含K个结果的SQL语句集
Figure BDA0003715689840000163
和目标SQL语句集/>
Figure BDA0003715689840000164
的匹配比值,
Figure BDA0003715689840000165
平均倒数排名(Mean Reciprocal Rank,MRR):
对于模型预测的包含K个结果的SQL语句集
Figure BDA0003715689840000166
和目标SQL语句集/>
Figure BDA0003715689840000167
Ygold与/>
Figure BDA0003715689840000168
匹配的正确结果在/>
Figure BDA0003715689840000169
中的排名ranki的倒数值的平均值,
Figure BDA00037156898400001610
节省率(SAVE):
模型预测的包含K个结果的SQL语句集Ysug中与目标SQL语句集Ygold匹配的正确结果集
Figure BDA0003715689840000171
其SQL查询语句/>
Figure BDA0003715689840000172
对应的最短的能够生成该SQL语句的不完整的自然查询语句Xj的长度,与完整的自然查询语句/>
Figure BDA0003715689840000173
的长度差值的比例,
Figure BDA0003715689840000174
(3)对比模型
本发明基于智能语义补全的数据库自然语言接口方法可被拆分为问题补全和SQL语句预测的两阶段任务,因此需要与两阶段任务的模型进行对比;其次,需要与基于检索的查询补全的模型进行对比;最后,还需要与传统的基于生成的模型进行对比。
1)两阶段任务模型
QAC-S2S:首先使用GPT2语言模型对自然语言查询进行补全,得到预测的完整的自然语言查询,然后使用ATTN-COPY-Seq2Seq模型由预测的完整自然语言查询生成SQL查询,注意这两个阶段是分别进行训练的。
2)基于检索的模型
EMB-RTR:该模型首先使用两个独立的RoBERTa分别对用户输入的自然语言查询和历史SQL查询进行嵌入,使用二者嵌入向量的点积来表示自然语言查询和历史SQL查询的相似性,进而在推理时检索到与当前自然语言查询有高相似度分数的历史SQL查询。
CLS-RTR:该模型为基于RoBERTa的分类模型。该模型首先区分与当前自然语言查询相关和不相关的SQL查询,然后在推理阶段根据模型预测的概率对所有历史SQL查询进行排名,检索前K个SQL查询作为模型最终预测的SQL查询。
3)基于生成的模型
Seq2Seq:经典的Text2SQL模型,其采用Bi-LSTM作为编码器和LSTM作为解码器,以序列到序列的方式生成SQL语句。
Seq2Seq+ATTN:使用基于注意力机制的编码器-解码器神经网络架构实现自然语言查询到SQL查询语句的生成。
Seq2Seq+ATTN-COPY:引入“COPY”机制更多地关注用户输入的自然语言查询,并处理OOV词汇,以便缩小Text2SQL任务的词汇集的规模。
T5:基于预训练的序列到序列的模型,其采用Transformer结构,是现在Text2SQL任务的主流模型之一。
(4)对比实验效果
为了评价本发明提出的CCTS模型的性能,将其在不同的数据集下进行对比实验(K=5),实验结果如表1所示,注意对于实验结果中的值<1%的指标值用“-”代替。通过实验结果可以得到以下结论:
表1对比实验
Figure BDA0003715689840000181
基于两阶段任务的模型在三个数据集上的总体实验效果不佳。虽然其首先对自然语言查询进行了补全,进而将问题转换为可以传统的Text2SQL模型解决,但是由于这两个阶段是分开训练,忽略了补全和生成之间的依赖关系,同时没有利用数据库模式信息和历史查询记录对自然语言查询进行纠错,因此效果较差。并且在大型跨域的Spider数据集上更是表现不佳。
基于检索的模型效果不稳定。EMB-RTR模型仅利用了自然语言查询和历史SQL查询的相似性来检索,忽略了历史查询的局限性,这导致历史查询数据量小时预测错误的概率更大,因此其受数据集数据量的影响很大,从结果中也能很明显地看出在数据量更大的Spider数据集上效果优于另外两个数据集,但是整体效果很差。CLS-RTR模型对历史SQL查询首先进行分类,能够更好地捕捉用户查询和SQL查询之间的关系,其与EMB-RTR模型有同样的缺点,其在数据量大的Spider数据集上效果很好。但是从结果中可以看出,基于检索的模型效果不稳定,只有当数据量很大的时候训练效果好,这制约了在基于智能语义补全的数据库自然语言接口中的可用性。
基于生成的模型效果一般。其面向的都是传统的Text2SQL问题,并没有对不完整或者错误的用户自然语言查询进行处理。ATTN机制和COPY机制能够一定程度上提升Seq2Seq模型的效果,T5模型作为强大的预训练模型实验效果不错。但是这些模型都没有考虑融合多类型数据,提取特征以增益面向自动补全和纠错的Text2SQL任务。特别是在MRR指标上的效果不佳,这是因为没有考虑利用数据库模式和历史查询对用户的模糊查询意图进行数据增强,进而提供给用户更多的查询选择,使得正确的SQL查询语句在推荐给用户的SQL查询语句中排名更高。
本发明提出的CCTS模型在三个数据集上的整体实验效果最佳。这说明CCTS模型能够对用户输入的不完整或者存在错误的自然语言查询进行自动补全和纠错,正确预测SQL语句,并且将结果进行有效排序,节省用户更多的查询耗费。CCTS模型将自然语言查询、数据库模式和历史查询作为输入,采用关系感知型联合编码器将自然语言查询与数据库模式进行联合编码捕获用户潜在的查询意图,并且使用抽取生成型集束解码器从编码信息中抽取和生成词汇,并结合计划采样机制和多样化集束搜索生成最终的SQL语句。同时,使用融合注意力机制建立输入之间的依赖关系以进行数据增强,采用动态上下文向量在生成SQL语句时进行动态关系捕捉和避免重复词生成,并结合课程学习算法进一步提高模型的泛化性。具体来说,CCTS模型相对于T5模型在三个数据集上评价指标都有所提升,在大型跨域Spider数据集上Recall指标提升到了47%,MRR指标提升到了43%,SAVE指标提升到了57%。
(5)自然语言查询完整度性能分析
自然语言查询的完整度为用户提出的不完整或者存在错误的自然语言查询X与其对应的最短的完整的自然语言查询
Figure BDA0003715689840000191
的长度之比,在三个数据集上的实验结果如图7所示。可以从图中的结果看出,当自然语言查询越完整的时候,Recall指标越高。这是因为自然语言查询越完整,那么能够获得的输入信息就更多,那么得到正确的SQL语句的可能性就越大。同时本发明提出的CCTS模型与T5模型相比,在三个数据集上,当自然语言查询完整度较低的时候Recall指标明显优于T5模型。这说明了CCTS模型使用数据库模式和历史查询记录进行数据增强,并对输入之间的依赖关系进行建模,同时采用动态上下文向量辅助解码的有效性。因此CCTS模型能够完成自动补全和纠错以生成正确的表明用户查询意图的SQL语句。
(6)数据库实体完整度性能分析
数据库实体的完整度为不完整或者存在错误的自然语言查询X中的正确提及的数据库实体个数与其对应的最短的完整的自然语言查询
Figure BDA0003715689840000192
的数据库实体个数之比。实验结果如图8所示,并于T5模型的结果进行了对比。可以从图中的结果看出,当被正确提及的数据库实体越多的时候,Recall指标越高。当数据库实体在自然语言查询被正确提及得越少,预测SQL查询语句的难度越大。例如在Scholar数据集上,数据库实体完整度从10%增加到50%,本发明提出的CCTS模型的Recall指标从20%提高到了32%。这是因为数据库模式构成了SQL语句中的相关查询表列部分,被正确提及得越多,模型更能理解用户的查询意图,进而将自然语言查询与数据库模式信息相匹配得到正确表达用户需要的SQL查询语句。同时CCTS模型与T5模型相比,当在数据库实体完整度较低的时Recall指标仍然高于T5模型。例如在Spider数据集上,当数据库实体完整度为50%时,T5的Recall指标为28%,而CCTS的Recall指标为36%,明显高于T5模型。这说明了CCTS模型对于用户不完整或者存在错误的自然语言查询有较好的补全和纠错的能力,能够利用数据库模式信息和历史查询记录进行数据增强,并建模与用户当前自然语言查询之间的依赖关系,提取有用特征,从而在用户未准确表达其查询意图时补全和纠正数据库表列信息,完成向表达用户真实查询意图的SQL语句的生成。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (6)

1.一种基于智能语义补全的数据库自然语言接口系统,其特征在于,包括关系感知型编码器、抽取生成型集束解码器、历史查询桥接机制以及动态上下文向量构建模块;
历史查询桥接机制用于将自然语言查询与数据库历史查询桥接,输出历史查询桥接状态向量;
关系感知型编码器包括文本联合嵌入模块、表感知查询编码器以及查询感知表编码器,文本联合嵌入模块基于预训练语言模型构建,表感知查询编码器以及查询感知表编码器均融合了注意力机制;
文本联合嵌入模块用于将自然语言查询分词和数据库模式分词分别转化为自然语言查询的嵌入向量和数据库模式的嵌入向量;表感知查询编码器用于将自然语言查询的嵌入向量转化为可以感知数据库模式的自然语言查询状态向量;查询感知表编码器用于将数据库模式的嵌入向量转化为可以感知自然语言查询的数据库模式状态向量;
动态上下文向量构建模块用于基于时间步、历史查询桥接状态向量、自然语言查询状态向量和数据库模式状态向量计算得到动态上下文向量;
抽取生成型集束解码器包括抽取生成动作选择模块、计划采样机制和多样化集束搜索模块;
抽取生成动作选择模块用于基于动态上下文向量,计算输出从自然语言查询中抽取的概率,以及从结构化查询语言关键字词典和数据库模式中生成的概率;
计划采样机制用于基于从自然语言查询中抽取的概率,以及从SQL关键字词典和数据库模式中生成的概率,计算得到生成词的概率;
多样化集束搜索模块用于基于得到生成词的概率,得到可执行的SQL查询语句集合,并返回给用户;
获取动态上下文向量的方法包括:
计算当前时间步t解码器隐藏状态
Figure FDA0004194253000000011
和单个自然语言查询词的编码最终隐藏状态/>
Figure FDA0004194253000000012
之间的对齐分数/>
Figure FDA0004194253000000013
Figure FDA0004194253000000014
其中,
Figure FDA0004194253000000015
为可学习参数;
计算解码时间步t之前的自然查询词的聚合对齐分数
Figure FDA0004194253000000016
得到归一化之后的具有局部依赖性的对齐分数/>
Figure FDA0004194253000000017
Figure FDA0004194253000000021
计算在解码时间步t第i个自然语言查询编码最终隐状态对解码器隐藏层状态的注意力权重
Figure FDA0004194253000000022
Figure FDA0004194253000000023
根据自然语言查询状态向量和注意力权重
Figure FDA0004194253000000024
计算自然语言查询局部敏感型上下文向量/>
Figure FDA0004194253000000025
Figure FDA0004194253000000026
同理,结合数据库模式状态向量,计算得到数据库模式局部敏感的上下文向量
Figure FDA0004194253000000027
Figure FDA0004194253000000028
Figure FDA0004194253000000029
Figure FDA00041942530000000210
Figure FDA00041942530000000211
结合历史查询桥接状态向量,计算得到历史查询局部敏感的上下文向量
Figure FDA00041942530000000212
Figure FDA00041942530000000213
Figure FDA00041942530000000214
Figure FDA0004194253000000031
Figure FDA0004194253000000032
在每一个解码时间步t,计算在时间步t之前生成的每个隐藏状态
Figure FDA0004194253000000033
和当前时间步隐藏状态/>
Figure FDA0004194253000000034
的内部注意力分数/>
Figure FDA0004194253000000035
Figure FDA0004194253000000036
计算时间步t时间步之前每个隐藏状态与当前时间步隐藏状态的内部注意力向量
Figure FDA0004194253000000037
Figure FDA0004194253000000038
计算解码内部跟踪型上下文向量
Figure FDA0004194253000000039
Figure FDA00041942530000000310
将自然语言查询、数据库模式和历史查询敏感的上下文向量进行拼接,得到在该时间步的动态上下文向量
Figure FDA00041942530000000311
Figure FDA00041942530000000312
文本联合嵌入模块将自然语言查询分词和数据库模式分词分别转化为自然语言查询的嵌入向量和数据库模式的嵌入向量的方法包括:
将自然语言查询分词和数据库模式分词进行拼接,得到模型输入的表达为
Input=[CLS,X,SEP,T1,SEP,T2,SEP,...],
其中,Input表示输入序列,CLS和SEP表示特殊字符,X表示自然语言查询,Ti表示数据库模式;
将输入序列Input输入到预训练的双向编码器表示模型(Bidirectional EncoderRepresentations from Transformers,BERT)中,最后输出得到
{EX,ES}=BERT(Input),
其中,
Figure FDA00041942530000000313
是自然语言查询的嵌入向量,n是自然语言查询的长度,ES是数据库模式的嵌入向量;
获取历史查询桥接状态向量的方法具体包括:
使用预训练语言模型BERT对数据库历史查询进行编码得到嵌入向量EQ,然后使用Bi-LSTM对嵌入向量EQ进行编码,得到向量
Figure FDA0004194253000000041
其中μ表示历史查询语句的长度;
计算历史影响因子
Figure FDA0004194253000000042
然后,对历史影响因子/>
Figure FDA0004194253000000043
进行归一化,
Figure FDA0004194253000000044
计算历史查询桥接状态向量HQ
Figure FDA0004194253000000045
计算输出从自然语言查询中抽取的概率,以及从SQL关键字词典和数据库模式中生成的概率的方法包括:
在每一个时间步t,将动态上下文向量
Figure FDA0004194253000000046
和解码器隐藏层状态/>
Figure FDA0004194253000000047
进行拼接,输入到激活函数层tanh中以引入非线性因素,Vo为可学习参数,隐藏层状态/>
Figure FDA0004194253000000048
在每一个时间步t,将动态上下文向量
Figure FDA0004194253000000049
和隐藏层状态Ot输入到sigmoid函数中,以使用伯努利分布计算从自然语言查询中抽取的概率/>
Figure FDA00041942530000000410
进而得到从SQL关键字词典和数据库模式中生成的概率/>
Figure FDA00041942530000000411
bext为可学习参数,
Figure FDA00041942530000000412
Figure FDA00041942530000000413
2.根据权利要求1所述基于智能语义补全的数据库自然语言接口系统,其特征在于,表感知查询编码器包括第一层双向长短时记忆网络、数据库模式注意力机制层和第二层Bi-LSTM;
获取可以感知数据库模式的自然语言查询状态向量的方法为:
使用表感知查询编码器的第一层Bi-LSTM对自然语言查询的嵌入向量进行编码,得到嵌入向量HB
通过数据库模式注意力机制层捕获自然语言查询中与数据库模式强相关的自然语言单词,将经过数据库模式注意力机制后的向量Hschema与嵌入向量HB进行拼接,将拼接后的向量使用表感知查询编码器的第二层Bi-LSTM编码得到可以感知数据库模式的自然语言查询状态向量HX
3.根据权利要求2所述基于智能语义补全的数据库自然语言接口系统,其特征在于,查询感知表编码器包括第一层双向长短时记忆网络、数据库模式自注意力机制层、自然语言查询注意力机制层和第二层双向长短时记忆网络;
获取可以感知自然语言查询的数据库模式状态向量的方法为:
使用查询感知表编码器的第一层双向长短时记忆网络数据库模式的嵌入向量进行编码,然后使用数据库模式自注意力机制层提取多表间关系;
使用自然语言查询注意力机制层建模数据库模式语句与自然语言查询语句之间的关系,再将数据库模式自注意力机制层的向量Hself与自然语言查询注意力机制层的输出Hquery进行拼接,拼接后得到的向量Hcat使用查询感知表编码器的第二层双向长短时记忆网络进行编码,得到可以感知自然语言查询的数据库模式状态向量HS
4.根据权利要求3所述基于智能语义补全的数据库自然语言接口系统,其特征在于,计算生成词的概率的方法包括:
计算SQL关键字词典K的概率分布PSQL
Figure FDA0004194253000000051
计算数据库模式S的概率分布Pschema
Figure FDA0004194253000000052
计算SQL关键字词典K和数据库模式S的共同概率分布PSQL∪schema
PSQL∪schema=[PSQL(yt);PS(yt)]
计算自然语言查询的概率分布PX
Figure FDA0004194253000000053
计算生成词
Figure FDA0004194253000000054
的概率/>
Figure FDA0004194253000000055
Figure FDA0004194253000000056
5.根据权利要求4所述基于智能语义补全的数据库自然语言接口系统,其特征在于,可执行的SQL查询语句集合,其中K表示生成的SQL语句的个数:
Figure FDA0004194253000000057
6.根据权利要求5所述基于智能语义补全的数据库自然语言接口系统,其特征在于,该系统还包括课程式学习算法优化模型,用于使系统能学习到历史查询中未出现过的新类型查询。
CN202210740860.3A 2022-06-27 2022-06-27 一种基于智能语义补全的数据库自然语言接口系统 Active CN115048447B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210740860.3A CN115048447B (zh) 2022-06-27 2022-06-27 一种基于智能语义补全的数据库自然语言接口系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210740860.3A CN115048447B (zh) 2022-06-27 2022-06-27 一种基于智能语义补全的数据库自然语言接口系统

Publications (2)

Publication Number Publication Date
CN115048447A CN115048447A (zh) 2022-09-13
CN115048447B true CN115048447B (zh) 2023-06-16

Family

ID=83163476

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210740860.3A Active CN115048447B (zh) 2022-06-27 2022-06-27 一种基于智能语义补全的数据库自然语言接口系统

Country Status (1)

Country Link
CN (1) CN115048447B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116975032B (zh) * 2023-07-14 2024-04-12 南京领行科技股份有限公司 数据对齐方法、系统和电子设备及存储介质
CN116662582B (zh) * 2023-08-01 2023-10-10 成都信通信息技术有限公司 基于自然语言的特定领域业务知识检索方法及检索装置
CN116910272B (zh) * 2023-08-09 2024-03-01 西安工程大学 基于预训练模型t5的学术知识图谱补全方法
CN116910086B (zh) * 2023-09-13 2023-12-01 北京理工大学 一种基于自注意力句法感知的数据库查询方法和系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109344231A (zh) * 2018-10-31 2019-02-15 广东小天才科技有限公司 一种补全语义残缺的语料的方法及系统
CN111078896A (zh) * 2019-12-18 2020-04-28 福州大学 基于prmatc算法的知识库补全方法
CN112070139A (zh) * 2020-08-31 2020-12-11 三峡大学 基于bert与改进lstm的文本分类方法
CN113204619A (zh) * 2021-04-30 2021-08-03 平安科技(深圳)有限公司 基于自然语言处理的语句补全方法、装置、设备及介质

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11573957B2 (en) * 2019-12-09 2023-02-07 Salesforce.Com, Inc. Natural language processing engine for translating questions into executable database queries
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
CN112069831B (zh) * 2020-08-21 2024-05-31 三峡大学 基于bert模型和增强混合神经网络的不实信息检测方法
CN112732916B (zh) * 2021-01-11 2022-09-20 河北工业大学 一种基于bert的多特征融合模糊文本分类系统
CN112988785B (zh) * 2021-05-10 2021-08-20 浙江大学 基于语言模型编码和多任务解码的sql转换方法及系统
CN113254582A (zh) * 2021-05-26 2021-08-13 四川大学 一种基于预训练模型的知识驱动对话方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109344231A (zh) * 2018-10-31 2019-02-15 广东小天才科技有限公司 一种补全语义残缺的语料的方法及系统
CN111078896A (zh) * 2019-12-18 2020-04-28 福州大学 基于prmatc算法的知识库补全方法
CN112070139A (zh) * 2020-08-31 2020-12-11 三峡大学 基于bert与改进lstm的文本分类方法
CN113204619A (zh) * 2021-04-30 2021-08-03 平安科技(深圳)有限公司 基于自然语言处理的语句补全方法、装置、设备及介质

Also Published As

Publication number Publication date
CN115048447A (zh) 2022-09-13

Similar Documents

Publication Publication Date Title
CN109271505B (zh) 一种基于问题答案对的问答系统实现方法
CN115048447B (zh) 一种基于智能语义补全的数据库自然语言接口系统
CN108628935B (zh) 一种基于端到端记忆网络的问答方法
CN111159223A (zh) 一种基于结构化嵌入的交互式代码搜索方法及装置
CN111291188B (zh) 一种智能信息抽取方法及系统
CN111858940B (zh) 一种基于多头注意力的法律案例相似度计算方法及系统
CN111914556B (zh) 基于情感语义转移图谱的情感引导方法及系统
CN111125333A (zh) 一种基于表示学习与多层覆盖机制的生成式知识问答方法
CN114818717A (zh) 融合词汇和句法信息的中文命名实体识别方法及系统
CN111145914B (zh) 一种确定肺癌临床病种库文本实体的方法及装置
CN114428850A (zh) 一种文本检索匹配方法和系统
CN116842126A (zh) 一种利用llm实现知识库精准输出的方法、介质及系统
CN117648429B (zh) 基于多模态自适应检索式增强大模型的问答方法及系统
CN116821168A (zh) 一种改进的基于生成式大语言模型的nl2sql方法
CN114841353A (zh) 一种融合句法信息的量子语言模型建模系统及其应用
CN112417170B (zh) 面向不完备知识图谱的关系链接方法
CN111581365B (zh) 一种谓词抽取方法
CN113065324A (zh) 一种基于结构化三元组和锚定模板的文本生成方法及装置
CN116414988A (zh) 基于依赖关系增强的图卷积方面级情感分类方法及系统
CN116227594A (zh) 面向多源数据的医疗行业高可信度知识图谱的构建方法
CN115964475A (zh) 一种用于医疗问诊的对话摘要生成方法
CN115510230A (zh) 一种基于多维特征融合与比较增强学习机制的蒙古语情感分析方法
CN115033706A (zh) 一种知识图谱自动补全和更新的方法
CN111767388B (zh) 一种候选池生成方法
CN115017260A (zh) 一种基于子主题建模的关键词生成方法

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