本发明属于自然语言处理,具体涉及一种基于图注意力扩散的text-to-sql方法。
背景技术:
::1、在自然语言处理领域中,有一种将问题与数据库相结合的任务,称之为text-to-sql。text-to-sql是一项生成任务,旨在根据用户提出的问题和数据库的表模式,生成该问题对应的sql语句,将sql语句放入数据库中执行,即可获得问题的答案。2、现有的text-to-sql任务采用的方法都是基于异构图的注意力模型,可以大致描述为下列流程:3、1.数据准备:数据收集与标注,其中问题语句带有对应的sql查询语句。此数据集随后会被划分为训练集、验证集以及测试集,以确保模型的准确性和可泛化性。4、2.数据预处理:将输入的问题text和数据库表模式schema编码为一个异构图g,其中图节点为问题单词、数据库表名和数据库列名,通过简单的字符匹配建立问题节点和数据库模式节点之间的连接。5、3.构建深度学习模型:本阶段的任务是构建一个深度学习模型,该模型利用问题和数据库模式的联系,以输出问题对应的sql查询语句。6、4.模型训练和评估:在训练阶段,现有模型大都采用encoder-decoder模型,在编码过程中使用关系图注意力网络计算异构图g中节点之间的注意力分数,在解码过程中使用基于语法的解码器生成查询目标的抽象语法树。训练过程中使用优化算法如随机梯度下降来最小化text-to-sql任务的损失函数。在模型训练完成后,利用验证集对模型的超参数进行微调,例如学习率、层数、隐藏单元数等。最终,模型性能在测试集上进行评估,通常采用准确率进行度量。7、4.模型预测与应用:通过使用训练完成的text-to-sql模型,可以对新的问题需求进行自动输入sql查询语句。这一能力可以应用于数据库管理、问答系统、数据分析等多个自然语言处理应用领域。8、但是上述流程存在以下缺点:9、1.在进行异构图构建时,仅仅考虑了问题和数据库模式的简单字符匹配,建立了问题节点到数据库模式节点之间的连接。实际上,问题的语义信息也会对sql语句的生成产生影响,缺少对语义的考虑可能会导致sql语句的逻辑错误。10、2.在使用关系图注意力网络计算注意力分数时,仅仅考虑了节点之间的单跳注意力,并没有考虑节点与节点之间的间接联系(即多跳注意力)。另一方面,对所有的单跳关系使用相同的权重,平等地对待所有节点,可能会导致过平滑问题。技术实现思路1、针对上述问题,本发明提出一种基于图注意力扩散的text-to-sql方法。在异构图构建时,采用了sdp语义分析,丰富了建图结果,获得了更多有利的边关系。在关系图注意力网络中,增加了注意力扩散机制,将单挑节点之间的注意力扩散为多跳节点之间的注意力,加强了模型的考虑范围,使得模型在跨领域的情况下也能获得很好的效果。2、本发明采用的技术方案是:3、一种基于图注意力扩散的text-to-sql方法,其特征在于,包括以下步骤:4、s1、利用已知数据库构建训练数据,具体为将数据处理为一个问题、与问题相关的表格、一个标签的格式作为一条训练数据;5、s2、从训练数据中抽取问题、表格,使用词嵌入模型进行处理,将得到的编码后的每个单词作为异构图g中的节点xi;6、s3、构建异构图中各个节点之间的关系rij,具体为,对问题进行sdp语义分析,通过将动词或谓词的主要论元或主语进行连接、动词或谓词的次要论元或宾语进行连接、两个或两个以上单独的词组成的复合词进行连接,建立由问题得到的节点之间的连接;对表格进行结构分析,通过将同一表格中不同的列进行连接,建立由表格得到的节点之间的连接;对问题和表格进行字符匹配,通过将完全匹配的由问题获得的单词与由表格获得的单词进行连接,建立由问题获得的节点和表格获得的节点之间的连接;最终得到构建好的异构图g(即模型输入);7、s4、构建图注意力扩散text-to-sql模型,具体为使用encoder-decoder框架,包括编码层和解码层。其中编码层通过关系图注意力网络层(relation graph attentionnetwork,rgat)和注意力扩散层进行编码,具体为:8、关系图注意力网络的计算方法是:9、10、11、12、13、其中,wq、wk、wv表示参数矩阵,函数ψ(rij)返回关系rij的特征向量,d代表了特征维度,h代表注意力头数;最后计算得出的ai为异构图g节点之间的单跳注意力矩阵。14、注意力扩散层的计算方法为:15、16、17、其中,i表示两个节点在途中的距离,θi是注意力衰减因子并且θi>θi+1,这里采用几何分布,θi=α(1-α)i,α∈(0,1];通过对路径模式长度差异的偏好,距离越远的目标节点在信息聚合中被赋予的权重越小;h(l)代表的l层神经网络的输入,通过扩散因子d计算得出下一层的状态。18、解码层采用基于语法的神经解码器,具体为:19、计算每个时间步的输出向量ot:20、ot=woht+bo21、其中,wo表示参数矩阵,ht表示输入,bo表示偏置;根据输出向量,对每个可能的sql元素,计算一个得分,表示当前步骤生成该元素的可能性,整个sql输出序列的计算方式为:22、23、其中,y是输出序列,x是输入序列,aj是输出序列中的第j个元素。24、s5、利用训练数据对构建的text-to-sql模型进行训练,采用的损失函数为:25、26、其中yi∈[y1,…,y|y|]代表解码过程中使用的真实标签。27、s6、将自然语言问题和相关数据库信息输入text-to-sql模型,得到输出结果,通过下式输出对应sql语句:28、y=argmaxy′p(y′∣x)29、y表示最有可能的sql语句。30、进一步的,步骤s3中关系链接有以下3种类型:1)问题单词之间的连接,包括:①arg1:动词或谓词的主要论元或主语;②arg2:动词或谓词的次要论元或宾语;③compound:两个或两个以上单独的词组成的复合词。2)表格结构分析,包括:①t-has-c:表格t包含列c;②c-cm-c:两个不同表的列互为外键。3)问题和表格的字符匹配,包括:①q-tpm-t:问题单词与表格单词部分匹配;②q-tem-t:问题单词与表格单词完全匹配。31、进一步的,步骤s4中的解码器,在每个时间步,有两种输出的可能:1)applyrule操作,对生成的抽象语法树进行扩展;2)selecttable或selectcolumn操作,从数据库模式中选择特定的表或列。根据最终模型生成的语法树,即可获得该问题所对应的sql语句。32、本发明的有益效果为,相较于传统的方法,本发明首次在text-to-sql模型上加入注意力扩散机制,在跨领域的情况下有效提高判断效果。首先是对问题使用了语义分析,提高了模型对问题的理解,丰富了异构图的构造;其次是对原本rgat计算得出的单跳注意力,使用注意力扩散,可以计算不同路径跳数的节点之间的注意力。当前第1页12当前第1页12
技术特征:1.一种基于图注意力扩散的text-to-sql方法,其特征在于,包括以下步骤:
技术总结本发明属于自然语言处理技术领域,具体涉及一种基于图注意力扩散的Text‑to‑SQL方法。本发明在异构图构建时,采用了SDP语义分析,丰富了建图结果,获得了更多有利的边关系。在关系图注意力网络中,增加了注意力扩散机制,将单挑节点之间的注意力扩散为多跳节点之间的注意力,加强了模型的考虑范围,使得模型在跨领域的情况下也能获得很好的效果。
技术研发人员:席瑞,曹秦臻,刘记博,李怡,石微微,聂晓文,侯孟书
受保护的技术使用者:电子科技大学
技术研发日:技术公布日:2024/4/29