将自然语言文本转换为结构化查询语言的方法

专利2025-02-28  28


本发明涉及自然语言处理,具体而言,涉及一种将自然语言文本转换为结构化查询语言的方法。


背景技术:

1、sql是标准的数据库查询语言,即结构化查询语言,但编写困难阻碍了非专业用户使用。随着人工智能技术和自治数据库系统的发展,人们对自然语言查询的要求也越来越高。它不再满足于简单的数据检索,而是能够快速有效地响应涉及逻辑和语义的复杂查询检索要求。text-to-sql(根据文本生成sql,即自然语言文本转换为结构化查询语言)是语义解析中的重要子任务。它根据用户的自然语言查询自动生成相应的sql查询。帮助非专业用户快速使用数据库查询,该任务目前有很多的应用场景,比如智能客服,问答系统和搜索引擎。因此相关研究引起了工业界以及学术界的广泛关注。给定一个自然语言查询和相应的数据库模式,text-to-sql模型的目标是生成一个sql查询语句。

2、text-to-sql方法主要分为以下几类:(1)基于序列编码器的方法;该方法中输入是一个序列,将自然语言查询与序列化的数据库模式连接起来。然后序列中的每个标记由预训练语言模型编码器进行编码,例如编码器t5。picard算法(一种迭代算法)设计了约束解码过程算法,以检测和拒绝在定向搜索阶段出现的错误标记。改善了sql解码的正确率。s2sql和lgesql(均为现有的text-to-sql方法)进一步将其他结构化知识任务整合到了t5之中,并使用语义增强来提升text-to-sql的性能。(2)基于图编码器的方法;该方法中输入是一个或多个异构图,其中节点代表自然语言查询令牌、表格或列,边代表两个节点之间的关系。例如graphix-t5(一种混合训练模型)使用图感知网络来增强text-to-sql解析,它将结构化归纳偏差引入text-to-sql的解码器中,从而提高了模型的多跳推理能力。(3)基于大模型的方法;sql-palm(基于大语言模型的模型)提出基于palm(生成式预训练模型)的text-to-sql模型,基于自一致性来设计提示方法,对llms(大语言模型)进行微调。din-sql(自然语言到sql转换的模型‌)基于llms并遵循从最少到最多的提示,将复杂的text-to-sql任务拆解成几个固定的子任务(例如模式链接、查询分类和分解),提高了llms在text-to-sql任务上的解析性能。chatgpt、codex和gpt4(均为现有大规模语言模型)基于llms的提示生成sql语句,在零样本场景下具有强大的text-to-sql生成能力。

3、基于现有技术而言,许多基于大语言模型的text-to-sql模型编码自然语言查询和数据库模式并解码相应的sql在现有的公开基准(如spider数据集)上取得了显著的效果。然而,这些结果是在测试数据与训练数据具有相同分布的情况下获得的数据。这种设置阻止了对模型鲁棒性的评估,特别是当数据包含在实际环境中不存在的虚假模式时。因此,这些方法在鲁棒text-to-sql数据集(例如spider-syn、dr.spider数据集)上的性能下降幅度较大。我们观察到当前的模型存在两个主要问题。

4、(1)序列扰动攻击问题。目前模型的输入通常为问题-模式序列,因此,对输入序列进行扰动是模型面临的主要攻击威胁,而现有的方法难以有效防御这种攻击。最先进的模型也容易受到干扰。自然语言问题干扰主要是将句子中的重要词语进行替换,例如,该模型混淆了所选列获胜者的名字和获胜者的年龄,给出了一个意译的自然语言查询,其中使用“who”来暗示所选列。数据库模式干扰是对表和列进行替换,例如,用champ-name代替列名winnername导致模型错过了“3个最年轻的获胜者”的意图。此外,也可以对sql语句进行扰动,例如,对返回项数的简单更改(从limit3到limit8)使模型无法检测到正确的意图。

5、(2)问题-模式连接问题。目前的研究很大程度上依赖于自然语言查询和数据库模式的假设之间的精确词法匹配。但是,自然语言表述具有多样性,对于同一实体存在不同形式的表达。例如,“公司”可以同时表述为“厂商”和“供应商”,“负债率”和“举债经营比率”是同一概念。另一方面,数据库中可能存在相似的表名和列名,造成链接歧义,例如,“模型”可以指“汽车”模型或“引擎”模型。此外,当模型训练在未见过的数据库上测试时,域外单词和短语难以理解,比如“查找2018年上映的喜剧片”和“查找2018年入学的学生”,其实需要区别对待。


技术实现思路

1、本发明旨在至少解决现有技术中存在序列扰动攻击问题和问题-模式连接问题的技术问题之一。

2、为此,本发明提供了一种将自然语言文本转换为结构化查询语言的方法。

3、本发明提供了一种将自然语言文本转换为结构化查询语言的方法,包括:

4、采用互信息正则化器将输入序列进行随机屏蔽从而得到局部扰动特征,并最大化局部扰动特征与全局特征之间的互信息;

5、采用学习型模式链接模块注释模式链接数据集,并基于transformer模型同时学习表和列的嵌入;

6、基于互信息正则化器和学习型模式链接模块构建text-to-sql模型,所述text-to-sql模型包括第一阶段学习任务和第二阶段学习任务;所述第一阶段学习任务包括:使用模式链接编码器获得重排序后的问题-模式序列;所述第二阶段学习任务包括:使用text-to-sql编码器和text-to-sql解码器对问题-模式序列进行sql解析。

7、根据本发明上述技术方案的将自然语言文本转换为结构化查询语言的方法,还可以具有以下附加技术特征:

8、在上述技术方案中,所述互信息正则化器包括随机掩码模块,利用所述随机掩码模块在每次训练迭代中,对样本进行部分采样,并随机对样本进行掩码操作;

9、其中,采用平滑模型替换基础模型。

10、在上述技术方案中,所述采用平滑模型替换基础模型,包括:

11、采用平滑分类器替换给定的基分类器,所述基分类器用于对随机屏蔽的词进行分类;

12、所述基分类器的表达式为:

13、

14、所述平滑分类器的表达式为:

15、

16、其中,表示给定的基分类器;表示被掩码后的输入;表示平滑分类器;表示输入样本;argmax表示平均归一化函数;表示类别;表示标签空间;表示模型预测结果的概率;表示被屏蔽样本空间;表示一组指标表示是否在中均匀抽样;表示的长度,表示未屏蔽的字数,由[]计算而来,表示能够被掩盖的单词的百分比,表示文本随机掩码操作;

17、用表示在随机屏蔽之后,返回类的信息量,则有:

18、

19、其中,表示信息量。

20、在上述技术方案中,所述最大化局部扰动特征与全局特征之间的互信息,包括:

21、通过最大化局部扰动特征与最终放进分类头的的互信息,使信息在扰动攻击下能够正常传递,包括:

22、

23、其中,表示最大化函数,表示正常样本信息量,表示被屏蔽的样本信息量;表示基于输入样本x模型预测结果的概率;表示基于标签空间y模型预测结果的概率,表示联合概率。

24、在上述技术方案中,估计信息量时,不直接对互信息进行估计,采用变分近似方法来求得互信息的下界作为近似;其中,采用infonce损失函数估计信息量,包括:

25、

26、其中,表示x和的infonce损失;表示变分下界函数;表示由神经网络近似的临界函数;x表示输入序列;表示从局部扰动特征和全局表示的联合分布中提取的正样本,是从扰动和无用特征的分布中提取的负样本,i表示样本编号。

27、在上述技术方案中,采用学习型模式链接模块注释模式链接数据集,并基于transformer模型同时学习表和列的嵌入,包括:

28、将模式链接定义为一个分类任务,学习目标是根据自然语言查询和数据库模式识别模式链接;其中,q表示自然语言查询集合,表示一个自然语言查询,表示自然语言查询集合的长度,表示表的集合,表示列的集合,表示预测的表模式链接,表示预测的列模式链接;

29、采用监督学习使模型学习到自然语言查询和模式之间存在的潜在模式链接链接关系;

30、所述学习型模式链接模块包括链接注释、表示层和密集层。

31、在上述技术方案中,所述链接注释用于在训练学习型模式链接模块之前,定义标签的匹配规则;其中,依靠自然语言查询集合q和数据库模式的链接关系进行匹配,包括:

32、给定一个自然语言查询集合和相应的数据库模式,其中,,,t表示一个表,表示一个字段,表示表的数量;表示字段的数量;

33、将输入表示为;目标是根据标注模式链接标签,其中,表示中表被问题链接的标签集合,=1表示表t通过自然语言查询链接,否则为0;表示中的字段被问题链接的标签集合,=1表示该列通过自然语言查询链接,否则为0。

34、在上述技术方案中,所述表示层用于基于transformer模型同时学习表和列的嵌入,包括:

35、给定一个输入序列,表示层的目标是获得拟合标签的表嵌入和对应的列嵌入,其中,表示隐藏层大小,表示列的数量,表示全体实数,表示列对应的表,i表示列的下标;将表示为一个输入序列,定义如下:

36、

37、其中,|表示分隔符,表示输入序列,[cls] [sep]表示样本分隔符,qi表示第i个问题,t表示表,c表示列,表示列的个数,表示表的个数;

38、将输入序列由transformer块编码,其中,编码核心为加权注意力的计算,该计算是由三矩阵得到的查询矩阵,键矩阵和值矩阵,定义如下:

39、

40、其中,m表示查询向量的个数,n表示键向量或值向量的个数,表示查询矩阵或键矩阵的维数,表示值矩阵的维数,表示归一化指数函数;

41、根据自然语言查询和数据库模式不同位置的上下文信息,为输入序列中每个词分配不同的权重;将每个头部的注意力输出串联起来得到,包括:

42、

43、

44、

45、

46、其中,表示多头注意力机制函数;表示头的大小;为,,的索引,将输入映射到查询,键值对;表示函数;表示前馈神经网络;表示多头注意力的输出;表示第1个头注意力;表示连接操作;表示注意力的权重矩阵;表示单个头注意力;,,分别表示矩阵q,矩阵k和矩阵v的权重。

47、利用双向长短期记忆网络bilstm通过捕获序列中的表和列的长期依赖关系,捕捉全局特征,并与注意力结合,使模型在不同层次上进行层次性的特征提取,包括:

48、

49、

50、其中,表示表的嵌入,表示列的嵌入,表示一个两层双向长短期记忆网络,表示一个非线性全连接层;

51、将列嵌入注入到相应的表嵌入之中得到最终的表嵌入,包括:

52、

53、

54、其中,表示最终的表嵌入。

55、在上述技术方案中,所述密集层用于将表嵌入和列嵌入映射到输出结果,包括:

56、创建两个不同的mlp模块将嵌入特征转换为一维向量,并将这些一维向量用于最终的分类任务,包括:

57、

58、

59、其中,和分别表示表和列预测的概率;表示归一化函数;,表示表的学习参数;,表示表的学习权重,,表示列的学习参数,,表示列的学习权重,以上参数均为mlp模块中可训练的参数;

60、使用焦点损失作为学习型模式链接模块的损失函数,包括:

61、

62、其中,表示学习型模式链接模块的损失函数,表示焦损函数,表示表中第个真实的标签,表示列中第个真实的标签。

63、在上述技术方案中,所述使用模式链接编码器获得重排序后的问题-模式序列,包括:

64、使表示问题的非重叠跨度序列,初始化学习型模式链接模块获得模式链接集合,包括:

65、

66、其中,表示学习型模式链接模块;

67、根据输入序列和模式链接集合获得排序后的输入序列:

68、

69、其中,表示排序算法;

70、所述使用text-to-sql编码器和text-to-sql解码器对问题-模式序列进行sql解析,包括:

71、在text-to-sql编码器中使用基于指令微调的文本到文本传输转换器语言模型flan-t5对排序后的输入序列进行编码,包括:

72、

73、其中,表示基于指令的微调,表示文本到文本传输转换器语言模型,表示编码结果;

74、使用mir模块对ts编码器添加正则化,包括:

75、

76、其中,表示互信息正则化器;表示添加正则化后的编码结果;

77、在text-to-sql解码器中,首先解析框架,然后解析sql查询;其中,采用序列到序列模型seq2seq进行解析,所述序列到序列模型seq2seq的目标函数为:

78、

79、其中,表示文本到sql实例的数量,表示第i个实例的输入顺序,表示序列问题、排序模式序列和可选的外键关系,表示从骨架l提取出来的sql关键字,表示预测概率。

80、综上所述,由于采用了上述技术特征,本发明的有益效果是:

81、本发明从理论角度设计了一种可证明的鲁棒性text-to-sql新颖架构(简称为infosql);主动将输入序列进行随机屏蔽从而得到局部扰动特征,然后最大化局部扰动特征与全局特征之间的互信息。

82、此外,本发明还提出一种学习型模式链接模块(tsl),注释了一个新的模式链接数据集,并基于transformer同时学习表和列的嵌入以改善模型在鲁棒场景下的问题-模式对齐。能有效的预测跨域模式,改进了在鲁棒场景下的问题-模式对齐.进一步提升鲁棒性。

83、infosql在鲁棒性text-to-sql基准spider-dk,spider-syn,spider-realistic和dr.spider这四个数据集上实现了优越的鲁棒性分数。

84、本发明的附加方面和优点将在下面的描述部分中变得明显,或通过本发明的实践了解到。


技术特征:

1.一种将自然语言文本转换为结构化查询语言的方法,其特征在于,包括:

2.根据权利要求1所述的将自然语言文本转换为结构化查询语言的方法,其特征在于,所述互信息正则化器包括随机掩码模块,利用所述随机掩码模块在每次训练迭代中,对样本进行部分采样,并随机对样本进行掩码操作;

3.根据权利要求2所述的将自然语言文本转换为结构化查询语言的方法,其特征在于,所述采用平滑模型替换基础模型,包括:

4.根据权利要求3所述的将自然语言文本转换为结构化查询语言的方法,其特征在于,所述最大化局部扰动特征与全局特征之间的互信息,包括:

5.根据权利要求4所述的将自然语言文本转换为结构化查询语言的方法,其特征在于,估计信息量时,不直接对互信息进行估计,采用变分近似方法来求得互信息的下界作为近似;其中,采用infonce损失函数估计信息量,包括:

6.根据权利要求1所述的将自然语言文本转换为结构化查询语言的方法,其特征在于,采用学习型模式链接模块注释模式链接数据集,并基于transformer模型同时学习表和列的嵌入,包括:

7.根据权利要求6所述的将自然语言文本转换为结构化查询语言的方法,其特征在于,所述链接注释用于在训练学习型模式链接模块之前,定义标签的匹配规则;其中,依靠自然语言查询集合q和数据库模式的链接关系进行匹配,包括:

8.根据权利要求7所述的将自然语言文本转换为结构化查询语言的方法,其特征在于,所述表示层用于基于transformer模型同时学习表和列的嵌入,包括:

9.根据权利要求8所述的将自然语言文本转换为结构化查询语言的方法,其特征在于,所述密集层用于将表嵌入和列嵌入映射到输出结果,包括:

10.根据权利要求9所述的将自然语言文本转换为结构化查询语言的方法,其特征在于,所述使用模式链接编码器获得重排序后的问题-模式序列,包括:


技术总结
本发明提供了一种将自然语言文本转换为结构化查询语言的方法,涉及自然语言处理技术领域,该方法包括:采用互信息正则化器将输入序列进行随机屏蔽从而得到局部扰动特征,并最大化局部扰动特征与全局特征之间的互信息;采用学习型模式链接模块注释模式链接数据集,并基于Transformer模型同时学习表和列的嵌入;基于互信息正则化器和学习型模式链接模块构建Text‑to‑SQL模型,Text‑to‑SQL模型包括第一阶段学习任务和第二阶段学习任务;第一阶段学习任务包括:使用模式链接编码器获得重排序后的问题‑模式序列;第二阶段学习任务包括:使用编码器和解码器对问题‑模式序列进行SQL解析。采用本发明方法可有效解决目前大模型所面临的序列扰动攻击问题和问题‑模式链接问题。

技术研发人员:廖海,肖芸,乔治锡,廖若飞,张俊晖,宋荣卫,云贵全,李武,张倩莉,张国丽,李焘焘,蒋小辉,高斌,林勤花,李焕玲,张光辉,俞天均,杨锦滔,赵妮妮,吴志毅
受保护的技术使用者:四川信息职业技术学院
技术研发日:
技术公布日:2024/12/17
转载请注明原文地址:https://xbbs.6miu.com/read-22088.html