CN115809314A - 基于双层多门控专家混合模型(mmoe)的多任务nl2sql方法 - Google Patents
基于双层多门控专家混合模型(mmoe)的多任务nl2sql方法 Download PDFInfo
- Publication number
- CN115809314A CN115809314A CN202211448380.6A CN202211448380A CN115809314A CN 115809314 A CN115809314 A CN 115809314A CN 202211448380 A CN202211448380 A CN 202211448380A CN 115809314 A CN115809314 A CN 115809314A
- Authority
- CN
- China
- Prior art keywords
- vector
- layer
- weight
- expert
- model
- 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.)
- Pending
Links
Images
Classifications
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了基于双层多门控专家混合模型(MMOE)的多任务NL2SQL方法,包括以下步骤:步骤1编码层构建步骤,用于获取问题和表模式的嵌入表示;步骤2多门控循环神经网络混合层构建步骤,用于利用多门控专家混合模型,进一步提取不同类型的语义信息,步骤3多门控注意力池化混合层构建步骤,用于利用多门控专家混合模型,获取不同子任务下的问题的向量表示;步骤4子任务学习层构建步骤,用于对各项子任务进行预测;步骤5多任务NL2SQL模型训练步骤,用于构建损失函数,构建优化函数。本发明在查询匹配正确率上的提升尤为显著,说明本发明的模型对于NL2SQL的数据集有着显著的效果提升。
Description
技术领域
本发明涉及本发明涉及人工智能、自然语言处理技术领域、多任务学习领域,具体涉及基于双层多门控专家混合模型(MMOE)的多任务NL2SQL方法。
技术背景
人工智能是计算机科学的一个重要分支,主要包括图像识别,自然语言处理,知识图谱等多个研究范围,近年来,随着算力的不断提升,获取的数据不断增多,人工智能领域取得了突飞猛进的进展和极为广泛的应用,极大推动了新兴产业的深度融合,在各大领域已经初步具备了落地应用的条件。
关系数据库在许多实际应用中非常普遍。然而,通常情况下需要使用结构化查询语言(如SQL)与此类数据库进行交互。Text-to-SQL(文本到SQL语句)任务指将自然语言描述转化成对应的SQL查询语句,让用户可以通过自然语言直接与关系数据库进行交互,这项技术能够有效地辅助人们对海量的数据库进行查询,具有广泛的应用前景,比如基于数据库的自动问答等。
发明内容
发明目的:NL2SQL主要包含两方面的预测:SELECT和WHERE,如何学习SELECT和WHERE之间的相关性和差异性,是NL2SQL的一个核心问题。本申请借助于深度学习技术解决这一问题。为了学习子任务之间的相关性和差异性,提出了构建基于于双层多门控专家混合模型(MMOE)的多任务学习模型。本申请所提出的模型在真实的NL2SQL数据集上取得了显著效果,在自动问答系统领域有很大的应用前景。
技术方案:为实现上述目的,本发明采用的技术方案为:
一种基于于双层多门控专家混合模型(MMOE)的多任务NL2SQL方法,包括以下步骤:
步骤1:编码层构建步骤,用于获取问题和表模式的嵌入表示
步骤2:多门控循环神经网络混合层构建步骤,用于利用多门控专家混合模型,进一步提取不同类型的语义信息
步骤3:多门控注意力池化混合层构建步骤,用于利用多门控专家混合模型,获取不同子任务下的问题的向量表示
步骤4:子任务学习层构建步骤,用于对各项子任务进行预测
步骤5:多任务NL2SQL模型训练步骤,用于构建损失函数,构建优化函数。
本发明的模型和最近一些先进的方法进行了比较,实验结果显示本发明的方法较之有了很大的提升。尤其是在查询匹配正确率上的提升尤为显著,说明本发明的模型对于NL2SQL的数据集有着显著的效果提升。
术语解释:
多任务学习是机器学习的一个子领域,旨在利用不同任务之间的相似性,同时解决多个不同任务。这可以提高学习效率和准确性。
双层多门控专家混合模型(MMOE),是一个经典的多任务学习模型,其在底层设置多个专家系统,每个专家系统都有自己擅长的领域,同时设置一个门控系统,为每个子任务生成一组权重,这样每个子任务可以根据自身的特点,将不同专家系统的输出加权求和作为自己的输入,这种模型可以有效的学习到不同子任务之间的相关性和差异性。
RoBERTa:RoBERTa是BERT的改进版,是一个预训练的语言表征模型。其建立在BERT的语言掩蔽策略的基础上,修改BERT中的关键超参数,包括删除BERT的下一个句子训练前目标,以及使用更大的bacthsize和学习率进行训练。RoBERTa也接受了比BERT多一个数量级的训练,时间更长。这使得RoBERTa表示能够比BERT更好地推广到下游任务。
所述方法的每个实施步骤如下:
具体步骤如下:
多任务NL2SQL模型构建步骤具体为:
步骤1:编码层的构建步骤具体为:
本发明以RoBERTa作为编码器,把表格中的每一列单独和问题一起输入进编码器中,进行若干次多头注意力机制(Multi-Head Attention)、层归一化(Layer_Norm)以及前馈网络层之后得到输出,作为问题和表模式的表示。
H=RoBERTa(Input)
其中,Input为列和自然语言问题,RoBERTa为RoBERTa预训练语言模型,H为问题和表模式的表示。
步骤2:多门控循环神经网络混合层的构建步骤具体为:
首先,本发明设计了一个专家系统,其使用双向LSTM(BiLSTM)循环神经网络,来进一步获取问题和表模式的语义信息:
(z1,...,zn+m)=BiLSTM(h1,...,hn+m)
其中hi为第i个token的向量表示,BiLSTM为双向LSTM(BiLSTM)循环神经网络,zi为第i个token经过双向LSTM(BiLSTM)循环神经网络后的向量表示。
为了获取不同类型的语义信息,本发明设置了三个这样的专家系统,每个专家系统都可以学习到自己擅长的领域,本发明将编码层的输出同时输入进三个的专家系统中,以获取不同类型的语义信息:
Z1=BiLSTM(h1,...,hn+m)
Z2=BiLSTM(h1,...,hn+m)
Z3=BiLSTM(h1,...,hn+m)
其中hi为第i个token的向量表示,BiLSTM为双向LSTM(BiLSTM)循环神经网络,Zi为问题和表模式的表示经过第i个双向LSTM(BiLSTM)循环神经网络后的表示。
之后,本发明设计了一个门控系统,用来整合三个专家系统的输出,即生成三组权重,每组权重有三个权值,将三个专家系统的输出加权求和,这样就可以得到三个新的输出,这样做可以使得这三个独立的专家系统在学习不同类型的语义信息的同时,又可以学习相互之间的相关性。由于RoBERTa的池化输出向量p可以较好的整合输入问题和列的信息,因此本发明利用该池化输出向量,将其与三个可训练的权重矩阵相乘,并经过Softmax层输出后得到三个权重向量,每个权重向量的每个值即为每个专家系统结果的权重,将其加权求和后得到三个新的问题和表模式的语义表示矩阵,并将其作为下一层的输入。
g1i=Softmax(pWg1i)
E1i=∑g1ijZj
其中,p为RoBERTa的池化输出向量,Wg1i为第i个可训练的权重矩阵,Softmax为Softmax函数,g1i为第i个权重向量,g1ij为第i个权重向量的第j个值,E1i为下一层(即多门控注意力池化混合层)第i个专家系统的输入矩阵。
步骤3:多门控注意力池化混合层的构建步骤具体为:
首先,本发明设计了一个池化专家系统,使用注意力机制来对上一层的表示进行加权求和,来获取问题的向量表示。首先初始化一个可训练的向量作为注意力机制的查询向量Q,将上一层的输出经过单层神经网络的输出作为键向量K,最终能获取最终的问题的向量表示hc
kij=ReLU(WkE1ij+bk)
ain+1,...,ain+m=softmax(q*kin+1,...,q*kin+m)
E2i=∑aijE1ij
其中,Wk为权重,bk为偏差,E1ij为第i个专家系统的输入中第j个token的表示向量,ReLU为ReLU函数,kij为第i个专家系统中第j个token的键向量,q为可训练的查询向量,softmax为softmax函数,aij为第i个专家系统中第j个token的权重,E2i为第i个专家系统的输出向量。
之后,本发明使用三个这样的池化专家系统,将第一层的三个输出分别输入进对应的池化专家系统内,得到三个不同类型的向量表示。并且,与上层所述的门控系统类似,本发明利用RoBERTa的池化输出向量,将其与七个可训练的权重矩阵相乘,并经过Softmax层输出后得到七个权重向量,每个权重向量的每个值即为每个子任务下的每个专家系统结果的权重,将其加权求和后得到七个子任务的输入。
g2i=Softmax(pWg2i)
task_inputi=∑g2ijE2j:
其中,p为RoBERTa的池化输出向量,Wg2i为第i个可训练的权重矩阵,Softmax为Softmax函数,g2i为第i个权重向量,g2ij为第i个权重向量的第j个值,task_inputi为第i个子任务的输入向量。
步骤4:子任务学习层的构建步骤具体为:
本发明共包含7个子任务,分别是:
SELECT部分有两个子任务,即预测SELECT的列名SELECT-COL和预测SELECT的操作SELECT-AGG。
WHERE部分有四个子任务,即预测WHERE的列名WHERE-COL、预测WHERE的数量WHERE-NUM、预测WHERE的操作WHERE-OP和预测WHERE的值WHERE-VALUE。
以及预测出现在SQL语句中的列名RELEVANCE-COL,即预测出现在SELECT-COL或WHERE-COL中的列名,用来综合SELECT和WHERE两方面的任务。
首先预测列名COL使用的数量WHERE-NUM,公式如下:
在预测完列名COL的数量之后,接下来需要预测对应数量使用的是哪些列名WHERE-COL,取值范围为当前数据表中的所有列名,公式如下:
在选定使用的列名COL后,还需要预测列名对应的比较操作WHERE-OP,取值范围为{“>”,“<”,“=”,“!=”,“>=”,“<=”},假设当前选中的列名COL为数据表T中的hi,分类概率分布公式如下:
通过对原始的自然语言查询进行序列标注,标注中包含<START>和<END>两个特殊标签,在这两个标签之间的文本就是获取的条件值,利用这个整体特征表达,对其构建分类模型,用于判断当前文本类型的VAL值构成的候选条件是否在SQL语句中
hstart=ReLU(task_inputiWs+bs)
hend=ReLU(task_inputiWe+be)
pstart=argmax(hstart*hn+1,...,hstart*hn+m)
pend=argmax(hend*hn+1,...,hend*hn+m)
其中,Ws、We为权重,bs、be为偏差,hstart为START信息的表示,hend为END信息的表示,argmax为argmax函数,pstart为<START>标签的预测位置,pend为<END>标签的预测位置。
在选定使用的列名COL后,还需要预测聚合操作SELECT-AGG,取值范围为{“NONE”,“MAX”,“MIN”,“COUNT”,“SUM”,“AVG”}
步骤5:多任务NL2SQL模型训练步骤具体为:
构建损失函数:
上述所有的子任务采用的都是分类模型,在模型训练的过程中,模型的目标函数就是所有子任务损失函数的总和,通过最小化这个总和的目标函数来进行参数更新。
本发明采用分类模型中最常采用的交叉熵损失函数,公式如下:
其中N表示分类的类别数,yj表示第j类的标签值,取值为0或1,P(xj)表示第j类预测的概率值,loss(P(x),y)为损失函数的总和构建优化函数:
本文使用的深度学习模型都是基于预训练模型RoBERTa加上任务特定的分类层微调(fine-tuning)训练所得的,在微调过程中为了避免破坏原预训练模型的表征能力,因此不需要训练太多周期,迭代次数设置为5次。各深度学习模型都是基于深度学习框架Pytorch实现的,训练过程中设置的学习率为3e-5,批量大小(batch size)为256,优化器为AdamW,正则化方法使用Dropout来防止过拟合。
本发明的模型和最近一些先进的方法进行了比较,实验结果显示本发明的方法较之有了很大的提升。尤其是在查询匹配正确率上的提升尤为显著,说明本发明的模型对于NL2SQL的数据集有着显著的效果提升。
相对于现有技术,本发明的有益效果如下:
技术效果:
1)本发明提出的专家系统,能够有效获取问题的向量表示。
2)本发明提出使用双层多门控专家混合模型(MMOE)多任务学习模型来学习SELECT和WHERE之间的相关性和差异性。
3)本发明定义并实现一套完整的多任务NL2SQL方法,在WikiSQL数据集上的实验结果表明,与现有方法相比,本发明在查询匹配正确率上有了0.2%的提升。
附图说明:
图1为一种基于双层多门控专家混合模型的多任务NL2SQL方法的构建步骤流程图;
图2为一种基于双层多门控专家混合模型的多任务NL2SQL方法的模型结构示意图。
图3为多门控循环神经网络混合层模型结构示意图。
图4为多门控注意力池化混合层模型结构示意图。
图5为多门控循环神经网络混合层与多门控注意力池化混合层的整体模型结构示意图。
具体实施方式
下面结合附图和具体实施例,进一步阐明本发明,应理解这些实例仅用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价形式的修改均落于本申请所附权利要求所限定的范围。
实施例1:如图1所示,一种基于于双层多门控专家混合模型(MMOE)的多任务NL2SQL方法,包括以下步骤:
步骤1:构建编码层,
本发明以RoBERTa作为编码器,把表格中的每一列单独和问题一起输入进编码器中,进行若干次多头注意力机制(Multi-Head Attention)、层归一化(Layer_Norm)以及前馈网络层之后得到输出,作为问题和表模式的表示。
H=RoBERTa(Input)
其中,Input为列和自然语言问题,RoBERTa为RoBERTa预训练语言模型,H为问题和表模式的表示。
步骤2:构建多门控循环神经网络混合层,
首先,本发明设计了一个专家系统,其使用双向LSTM(BiLSTM)循环神经网络,来进一步获取问题和表模式的语义信息:
(z1,...,zn+m)=BiLSTM(h1,...,hn+m)
其中hi为第i个token的向量表示,BiLSTM为双向LSTM(BiLSTM)循环神经网络,zi为第i个token经过双向LSTM(BiLSTM)循环神经网络后的向量表示。
为了获取不同类型的语义信息,本发明设置了三个这样的专家系统,每个专家系统都可以学习到自己擅长的领域,本发明将编码层的输出同时输入进三个的专家系统中,以获取不同类型的语义信息:
Z1=Bi-LSTM(h1,...,hn+m)
Z2=Bi-LSTM(h1,...,hn+m)
Z3=Bi-LSTM(h1,...,hn+m)
其中hi为第i个token的向量表示,BiLSTM为双向LSTM(BiLSTM)循环神经网络,Zi为问题和表模式的表示经过第i个双向LSTM(BiLSTM)循环神经网络后的表示。
之后,本发明设计了一个门控系统,用来整合三个专家系统的输出,即生成三组权重,每组权重有三个权值,将三个专家系统的输出加权求和,这样就可以得到三个新的输出,这样做可以使得这三个独立的专家系统在学习不同类型的语义信息的同时,又可以学习相互之间的相关性。由于RoBERTa的池化输出向量p可以较好的整合输入问题和列的信息,因此本发明利用该池化输出向量,将其与三个可训练的权重矩阵相乘,并经过Softmax层输出后得到三个权重向量,每个权重向量的每个值即为每个专家系统结果的权重,将其加权求和后得到三个新的问题和表模式的语义表示矩阵,并将其作为下一层的输入。
g1i=Softmax(pWg1i)
E1i=∑g1ijZj
其中,p为RoBERTa的池化输出向量,Wg1i为第i个可训练的权重矩阵,Softmax为Softmax函数,g1i为第i个权重向量,g1ij为第i个权重向量的第j个值,E1i为下一层(即多门控注意力池化混合层)第i个专家系统的输入矩阵。
多门控循环神经网络混合层的结构如图3所示:
步骤3:构建多门控注意力池化混合层
首先,本发明设计了一个池化专家系统,使用注意力机制来对上一层的表示进行加权求和,来获取问题的向量表示。首先初始化一个可训练的向量作为注意力机制的查询向量Q,将上一层的输出经过单层神经网络的输出作为键向量K,最终能获取最终的问题的向量表示hc
kij=ReLU(WkE1ij+bk)
ain+1,...,ain+m=softmax(q*kin+1,...,q*kin+m)
E2i=∑aijE1ij
其中,Wk为权重,bk为偏差,E1ij为第i个专家系统的输入中第j个token的表示向量,ReLU为ReLU函数,kij为第i个专家系统中第j个token的键向量,q为可训练的查询向量,softmax为softmax函数,aij为第i个专家系统中第j个token的权重,E2i为第i个专家系统的输出向量。
之后,本发明使用三个这样的池化专家系统,将第一层的三个输出分别输入进对应的池化专家系统内,得到三个不同类型的向量表示。并且,与上层所述的门控系统类似,本发明利用RoBERTa的池化输出向量,将其与七个可训练的权重矩阵相乘,并经过Softmax层输出后得到七个权重向量,每个权重向量的每个值即为每个子任务下的每个专家系统结果的权重,将其加权求和后得到七个子任务的输入。
g2i=Softmax(pWg2i)
task_inputi=∑g2ijE2j
其中,p为RoBERTa的池化输出向量,Wg2i为第i个可训练的权重矩阵,Softmax为Softmax函数,g2i为第i个权重向量,g2ij为第i个权重向量的第j个值,task_inputi为第i个子任务的输入向量。
多门控注意力池化混合层的结构如图4所示:
多门控循环神经网络混合层与多门控注意力池化混合层的整体结构如图5所示,
步骤4:构建子任务学习层,
本发明共包含7个子任务,分别是:
SELECT部分有两个子任务,即预测SELECT的列名SELECT-COL和预测SELECT的操作SELECT-AGG。
WHERE部分有四个子任务,即预测WHERE的列名WHERE-COL、预测WHERE的数量WHERE-NUM、预测WHERE的操作WHERE-OP和预测WHERE的值WHERE-VALUE。
以及预测出现在SQL语句中的列名RELEVANCE-COL,即预测出现在SELECT-COL或WHERE-COL中的列名,用来综合SELECT和WHERE两方面的任务。
首先预测列名COL使用的数量WHERE-NUM,公式如下:
在预测完列名COL的数量之后,接下来需要预测对应数量使用的是哪些列名WHERE-COL,取值范围为当前数据表中的所有列名,公式如下:
在选定使用的列名COL后,还需要预测列名对应的比较操作WHERE-OP,取值范围为{“>”,“<”,“=”,“!=”,“>=”,“<=”},假设当前选中的列名COL为数据表T中的hi,分类概率分布公式如下:
通过对原始的自然语言查询进行序列标注,标注中包含<START>和<END>两个特殊标签,在这两个标签之间的文本就是获取的条件值,利用这个整体特征表达,对其构建分类模型,用于判断当前文本类型的VAL值构成的候选条件是否在SQL语句中
hstart=ReLU(task_inputiWs+bs)
hend=ReLU(task_inputiWe+be)
pstart=argmax(hstart*hn+1,...,hstart*hn+m)
pend=argmax(hend*hn+1,...,hend*hn+m)
其中,Ws、We为权重,bs、be为偏差,hstart为START信息的表示,hend为END信息的表示,argmax为argmax函数,pstart为<START>标签的预测位置,pend为<END>标签的预测位置。
在选定使用的列名COL后,还需要预测聚合操作SELECT-AGG,取值范围为{“NONE”,“MAX”,“MIN”,“COUNT”,“SUM”,“AVG”}
步骤5:训练多任务NL2SQL模型,
构建损失函数
上述所有的子任务采用的都是分类模型,在模型训练的过程中,模型的目标函数就是所有子任务损失函数的总和,通过最小化这个总和的目标函数来进行参数更新。
本发明采用分类模型中最常采用的交叉熵损失函数,公式如下:
其中N表示分类的类别数,yj表示第j类的标签值,取值为0或1,P(xj)表示第j类预测的概率值,loss(P(x),y)为损失函数的总和
构建优化函数
本文使用的深度学习模型都是基于预训练模型RoBERTa加上任务特定的分类层微调(fine-tuning)训练所得的,在微调过程中为了避免破坏原预训练模型的表征能力,因此不需要训练太多周期,迭代次数设置为5次。各深度学习模型都是基于深度学习框架Pytorch实现的,训练过程中设置的学习率为3e-5,批量大小(batch size)为256,优化器为AdamW,正则化方法使用Dropout来防止过拟合。
本发明的模型在WikiSQL数据集上取得了优于先进模型的结果,具体见表1。
表1:WikiSQL上的实验结果.
本发明的模型和最近一些先进的方法进行了比较,实验结果显示本发明的方法较之有了很大的提升。尤其是在查询匹配正确率上的提升尤为显著,说明本发明的模型对于NL2SQL的数据集有着显著的效果提升。
以上所述仅是本发明的优选实施方式,应当指出:对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (6)
1.一种基于双层多门控专家混合模型的多任务NL2SQL方法,其特征在于,所述方法包括以下步骤:
步骤1:编码层构建步骤,用于获取问题和表模式的嵌入表示;
步骤2:多门控循环神经网络混合层构建步骤,用于利用多门控专家混合模型,进一步提取不同类型的语义信息;
步骤3:多门控注意力池化混合层构建步骤,用于利用多门控专家混合模型,获取不同子任务下的问题的向量表示;
步骤4:子任务学习层构建步骤,用于对各项子任务进行预测;
步骤5:多任务NL2SQL模型训练步骤,用于构建损失函数,构建优化函数。
2.根据权利要求1所述的基于双层多门控专家混合模型的多任务NL2SQL方法,其特征在于,步骤1中编码层的构建步骤具体为:
以RoBERTa作为编码器,把表格中的每一列单独和问题一起输入进编码器中,进行若干次多头注意力机制(Multi-Head Attention)、层归一化(Layer_Norm)以及前馈网络层之后得到输出,作为问题和表模式的表示,
H=RoBERTa(Input);
其中,Input为列和自然语言问题,RoBERTa为RoBERTa预训练语言模型,H为问题和表模式的表示。
3.根据权利要求2所述的基于双层多门控专家混合模型的多任务NL2SQL方法,其特征在于:步骤2中多门控循环神经网络混合层的构建步骤具体为:
首先,设计一个专家系统,其使用双向LSTM(BiLSTM)循环神经网络,来进一步获取问题和表模式的语义信息:
(z1,...,zn+m)=BiLSTM(h1,...,hn+m)
其中hi为第i个token的向量表示,BiLSTM为双向LSTM(BiLSTM)循环神经网络,zi为第i个token经过双向LSTM(BiLSTM)循环神经网络后的向量表示;
为了获取不同类型的语义信息,设置三个这样的专家系统,每个专家系统都能学习到自己擅长的领域,将编码层的输出同时输入进三个的专家系统中,以获取不同类型的语义信息:
Z1=BiLSTM(h1,...,hn+m)
Z2=BiLSTM(h1,...,hn+m)
Z3=BiLSTM(h1,...,hn+m)
其中hi为第i个token的向量表示,BiLSTM为双向LSTM(BiLSTM)循环神经网络,Zi为问题和表模式的表示经过第i个双向LSTM(BiLSTM)循环神经网络后的表示;
之后,设计一个门控系统,用来整合三个专家系统的输出,即生成三组权重,每组权重有三个权值,将三个专家系统的输出加权求和,这样就得到三个新的输出,使得这三个独立的专家系统在学习不同类型的语义信息的同时,又能学习相互之间的相关性,由于RoBERTa的池化输出向量p能整合输入问题和列的信息,利用该池化输出向量,将其与三个可训练的权重矩阵相乘,并经过Softmax层输出后得到三个权重向量,每个权重向量的每个值即为每个专家系统结果的权重,将其加权求和后得到三个新的问题和表模式的语义表示矩阵,并将其作为下一层的输入,
g1i=Softmax(pWg1i)
E1i=∑g1ijZj
其中,p为RoBERTa的池化输出向量,Wg1i为第i个可训练的权重矩阵,Softmax为Softmax函数,g1i为第i个权重向量,g1ij为第i个权重向量的第j个值,E1i为下一层(即多门控注意力池化混合层)第i个专家系统的输入矩阵。
4.根据权利要求3所述的基于双层多门控专家混合模型的多任务NL2SQL方法,其特征在于:步骤3中多门控注意力池化混合层的构建步骤具体为:
首先,设计一个池化专家系统,使用注意力机制来对上一层的表示进行加权求和,来获取问题的向量表示,首先初始化一个可训练的向量作为注意力机制的查询向量Q,将上一层的输出经过单层神经网络的输出作为键向量K,最终能获取最终的问题的向量表示hc
kij=ReLU(WkE1ij+bk)
ain+1,...,ain+m=softmax(q*kin+1,...,q*kin+m)
E2i=∑aijE1ij
其中,Wk为权重,bk为偏差,E1ij为第i个专家系统的输入中第j个token的表示向量,ReLU为ReLU函数,kij为第i个专家系统中第j个token的键向量,q为可训练的查询向量,softmax为softmax函数,aij为第i个专家系统中第j个token的权重,E2i为第i个专家系统的输出向量;
之后,使用三个这样的池化专家系统,将第一层的三个输出分别输入进对应的池化专家系统内,得到三个不同类型的向量表示,利用RoBERTa的池化输出向量,将其与七个可训练的权重矩阵相乘,并经过Softmax层输出后得到七个权重向量,每个权重向量的每个值即为每个子任务下的每个专家系统结果的权重,将其加权求和后得到七个子任务的输入;
g2i=Softmax(pWg2i)
task_inputi=∑g2ijE2j;
其中,p为RoBERTa的池化输出向量,Wg2i为第i个可训练的权重矩阵,Softmax为Softmax函数,g2i为第i个权重向量,g2ij为第i个权重向量的第j个值,task_inputi为第i个子任务的输入向量。
5.根据权利要求4所述的基于双层多门控专家混合模型(MMOE)的多任务NL2SQL方法,其特征在于:步骤4中子任务学习层的构建步骤具体为:
共包含7个子任务,分别是:
SELECT部分有两个子任务,即预测SELECT的列名SELECT-COL和预测SELECT的操作SELECT-AGG,
WHERE部分有四个子任务,即预测WHERE的列名WHERE-COL、预测WHERE的数量WHERE-NUM、预测WHERE的操作WHERE-OP和预测WHERE的值WHERE-VALUE,
以及预测出现在SQL语句中的列名RELEVANCE-COL,即预测出现在SELECT-COL或WHERE-COL中的列名,用来综合SELECT和WHERE两方面的任务,
首先预测列名COL使用的数量WHERE-NUM,公式如下:
在预测完列名COL的数量之后,接下来需要预测对应数量使用的是哪些列名WHERE-COL,取值范围为当前数据表中的所有列名,公式如下:
在选定使用的列名COL后,还需要预测列名对应的比较操作WHERE-OP,取值范围为{“>”,“<”,“=”,“!=”,“>=”,“<=”},假设当前选中的列名COL为数据表T中的hi,分类概率分布公式如下:
通过对原始的自然语言查询进行序列标注,标注中包含<START>和<END>两个特殊标签,在这两个标签之间的文本就是获取的条件值,利用这个整体特征表达,对其构建分类模型,用于判断当前文本类型的VAL值构成的候选条件是否在SQL语句中
hstart=ReLU(task_inputiWs+bs)
hend=ReLU(task_inputiWe+be)
pstart=argmax(hstart*hn+1,...,hstart*hn+m)
pend=argmax(hend*hn+1,...,hend*hn+m)
其中,Ws、We为权重,bs、be为偏差,hstart为START信息的表示,hend为END信息的表示,argmax为argmax函数,pstart为<START>标签的预测位置,pend为<END>标签的预测位置;
在选定使用的列名COL后,还需要预测聚合操作SELECT-AGG,取值范围为{“NONE”,“MAX”,“MIN”,“COUNT”,“SUM”,“AVG”}
6.根据权利要求5所述的基于双层多门控专家混合模型(MMOE)的多任务NL2SQL方法,其特征在于:步骤5中多任务NL2SQL模型训练步骤具体为:
构建损失函数,
上述所有的子任务采用的都是分类模型,在模型训练的过程中,模型的目标函数就是所有子任务损失函数的总和,通过最小化这个总和的目标函数来进行参数更新,
采用分类模型中最常采用的交叉熵损失函数,公式如下:
其中N表示分类的类别数,yj表示第j类的标签值,取值为0或1,P(xj)表示第j类预测的概率值,loss(P(x),y)为损失函数的总和
构建优化函数,
使用的深度学习模型都是基于预训练模型RoBERTa加上任务特定的分类层微调(fine-tuning)训练所得的,迭代次数设置为5次,各深度学习模型都是基于深度学习框架Pytorch实现的,训练过程中设置的学习率为3e-5,批量大小(batch size)为256,优化器为AdamW,正则化方法使用Dropout来防止过拟合。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211448380.6A CN115809314A (zh) | 2022-11-18 | 2022-11-18 | 基于双层多门控专家混合模型(mmoe)的多任务nl2sql方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211448380.6A CN115809314A (zh) | 2022-11-18 | 2022-11-18 | 基于双层多门控专家混合模型(mmoe)的多任务nl2sql方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115809314A true CN115809314A (zh) | 2023-03-17 |
Family
ID=85483546
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211448380.6A Pending CN115809314A (zh) | 2022-11-18 | 2022-11-18 | 基于双层多门控专家混合模型(mmoe)的多任务nl2sql方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115809314A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117235108A (zh) * | 2023-11-14 | 2023-12-15 | 云筑信息科技(成都)有限公司 | 一种基于图神经网络的nl2sql生成方法 |
-
2022
- 2022-11-18 CN CN202211448380.6A patent/CN115809314A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117235108A (zh) * | 2023-11-14 | 2023-12-15 | 云筑信息科技(成都)有限公司 | 一种基于图神经网络的nl2sql生成方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109992779B (zh) | 一种基于cnn的情感分析方法、装置、设备及存储介质 | |
CN110377686A (zh) | 一种基于深度神经网络模型的地址信息特征抽取方法 | |
CN109325231A (zh) | 一种多任务模型生成词向量的方法 | |
CN113255321B (zh) | 基于文章实体词依赖关系的金融领域篇章级事件抽取方法 | |
CN111274790A (zh) | 基于句法依存图的篇章级事件嵌入方法及装置 | |
CN112232087A (zh) | 一种基于Transformer的多粒度注意力模型的特定方面情感分析方法 | |
Elayidom et al. | A generalized data mining framework for placement chance prediction problems | |
Qian | Exploration of machine algorithms based on deep learning model and feature extraction | |
CN115809314A (zh) | 基于双层多门控专家混合模型(mmoe)的多任务nl2sql方法 | |
CN115221387A (zh) | 一种基于深度神经网络的企业信息整合方法 | |
Upreti | Convolutional neural network (cnn). a comprehensive overview | |
Lakizadeh et al. | Text sentiment classification based on separate embedding of aspect and context | |
Nematipour et al. | Relevance feedback optimization in content based image retrieval via enhanced radial basis function network | |
Sood et al. | Neunets: An automated synthesis engine for neural network design | |
CN114298233A (zh) | 基于高效注意力网络和师生迭代迁移学习的表情识别方法 | |
CN114510576A (zh) | 一种基于BERT和BiGRU融合注意力机制的实体关系抽取方法 | |
Li et al. | Multimodal fusion with co-attention mechanism | |
CN117349311A (zh) | 一种基于改进RetNet的数据库自然语言查询方法 | |
Guohao et al. | Competency analysis in human resources using text classification based on deep neural network | |
CN111753995A (zh) | 一种基于梯度提升树的局部可解释方法 | |
CN115796029A (zh) | 基于显式及隐式特征解耦的nl2sql方法 | |
CN111259106A (zh) | 一种结合神经网络和特征演算的关系抽取方法 | |
CN113342964B (zh) | 一种基于移动业务的推荐类型确定方法及系统 | |
Wang et al. | Study on the multi-task model for legal judgment prediction | |
CN115169429A (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 |