【技术实现步骤摘要】
基于双层多门控专家混合模型(MMOE)的多任务NL2SQL方法
[0001]本专利技术涉及本专利技术涉及人工智能、自然语言处理
、多任务学习领域,具体涉及基于双层多门控专家混合模型(MMOE)的多任务NL2SQL方法。
技术背景
[0002]人工智能是计算机科学的一个重要分支,主要包括图像识别,自然语言处理,知识图谱等多个研究范围,近年来,随着算力的不断提升,获取的数据不断增多,人工智能领域取得了突飞猛进的进展和极为广泛的应用,极大推动了新兴产业的深度融合,在各大领域已经初步具备了落地应用的条件。
[0003]关系数据库在许多实际应用中非常普遍。然而,通常情况下需要使用结构化查询语言(如SQL)与此类数据库进行交互。Text
‑
to
‑
SQL(文本到SQL语句)任务指将自然语言描述转化成对应的SQL查询语句,让用户可以通过自然语言直接与关系数据库进行交互,这项技术能够有效地辅助人们对海量的数据库进行查询,具有广泛的应用前景,比如基于数据库的自动问答等。
技术实现思路
[0004]专利技术目的:NL2SQL主要包含两方面的预测:SELECT和WHERE,如何学习SELECT和WHERE之间的相关性和差异性,是NL2SQL的一个核心问题。本申请借助于深度学习技术解决这一问题。为了学习子任务之间的相关性和差异性,提出了构建基于于双层多门控专家混合模型(MMOE)的多任务学习模型。本申请所提出的模型在真实的NL2SQL数据集上取得了显著效果,在自动问答系统领域 ...
【技术保护点】
【技术特征摘要】
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,...,z
n+m
)=BiLSTM(h1,...,h
n+m
)其中h
i
为第i个token的向量表示,BiLSTM为双向LSTM(BiLSTM)循环神经网络,z
i
为第i个token经过双向LSTM(BiLSTM)循环神经网络后的向量表示;为了获取不同类型的语义信息,设置三个这样的专家系统,每个专家系统都能学习到自己擅长的领域,将编码层的输出同时输入进三个的专家系统中,以获取不同类型的语义信息:Z1=BiLSTM(h1,...,h
n+m
)Z2=BiLSTM(h1,...,h
n+m
)Z3=BiLSTM(h1,...,h
n+m
)其中h
i
为第i个token的向量表示,BiLSTM为双向LSTM(BiLSTM)循环神经网络,Z
i
为问题和表模式的表示经过第i个双向LSTM(BiLSTM)循环神经网络后的表示;之后,设计一个门控系统,用来整合三个专家系统的输出,即生成三组权重,每组权重有三个权值,将三个专家系统的输出加权求和,这样就得到三个新的输出,使得这三个独立的专家系统在学习不同类型的语义信息的同时,又能学习相互之间的相关性,由于RoBERTa的池化输出向量p能整合输入问题和列的信息,利用该池化输出向量,将其与三个可训练的权重矩阵相乘,并经过Softmax层输出后得到三个权重向量,每个权重向量的每个值即为每个专家系统结果的权重,将其加权求和后得到三个新的问题和表模式的语义表示矩阵,并将其作为下一层的输入,
g1
i
=Softmax(pW
g1i
)E1
i
=∑g1
ij
Z
j
其中,p为RoBERTa的池化输出向量,W
g1i
为第i个可训练的权重矩阵,Softmax为Softmax函数,g1
i
为第i个权重向量,g1
ij
为第i个权重向量的第j个值,E1
i
为下一层(即多门控注意力池化混合层)第i个专家系统的输入矩阵。4.根据权利要求3所述的基于双层多门控专家混合模型的多任务NL2SQL方法,其特征在于:步骤3中多门控注意力池化混合层的构建步骤具体为:首先,设计一个池化专家系统,使用注意力机制来对上一层的表示进行加权求和,来获取问题的向量表示,首先初始化一个可训练的向量作为注意力机制的查询向量Q,将上一层的输出经过单层神经网络的输出作为键向量K,最终能获取最终的问题的向量表示h
c
k
ij
=ReLU(W
k
E1
ij
+b
k
)a
in+1
,...,a
in+m
=softmax(q*k
in+1
,...,q*k
in+m
)E2
i
=∑a
ij
E1
ij
其中,W
k
为权重,b
k
为偏差,E1
ij
为第i个专家系统的输入中第j个token的表示向量,ReLU为ReLU函数,k
ij
为第i个专家系统中第j个token的键向量,q为可训练的查询向量,softmax为softmax函数,a
ij
为第i个专家系统中第j个token的权重,E2
i
为第i个专家系统的输出向量;之后,使用三个这样的池化专家系统,将第一层的三个输出分别输入进对应的池化专家系统内,得到三个不同类型的向量表示,利用RoBERTa的池化输出向量,将其与七个可训练的权重矩阵相乘,并经过Softmax层输出后得到七个权重向量,每个权重向量的每个值即为每个子任务下的每个专家系统结果的权重,将其加权求和后得到七个子任务的输入;g2
i
=Softmax(pW
g2i
)task_input
i
=∑g2
ij
E2
j
;其中,p为RoBERTa的池化输出向量,W
g2i
为第i个可训练的权重矩阵,Softmax为Softmax函数,...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。