CN115796029A - 基于显式及隐式特征解耦的nl2sql方法 - Google Patents

基于显式及隐式特征解耦的nl2sql方法 Download PDF

Info

Publication number
CN115796029A
CN115796029A CN202211502427.2A CN202211502427A CN115796029A CN 115796029 A CN115796029 A CN 115796029A CN 202211502427 A CN202211502427 A CN 202211502427A CN 115796029 A CN115796029 A CN 115796029A
Authority
CN
China
Prior art keywords
output
model
vector
expert system
function
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
Application number
CN202211502427.2A
Other languages
English (en)
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.)
Southeast University
Original Assignee
Southeast University
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 Southeast University filed Critical Southeast University
Priority to CN202211502427.2A priority Critical patent/CN115796029A/zh
Publication of CN115796029A publication Critical patent/CN115796029A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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

  • Devices For Executing Special Programs (AREA)

Abstract

本发明公开了基于显式及隐式特征解耦的NL2SQL方法,包括以下步骤:(1)构建特定子模块专家***的步骤;(2)结合多次随机失活和专家***步骤;(3)构建多次随机失活和专家***专用损失函数的步骤;(4)训练不同子***进行显式解耦步骤,包括将不同子***之间进行分别训练;(5)构建子***输出显式特征耦合专家***编码模型,包括构建子***输出显式特征耦合专家***编码模型,用于整合不同子***输出;(6)训练最终耦合的NL2SQL方法模型步骤,用于得到最终耦合完成的模型。本发明的实验结果,显示本发明的方法较之以往的模型在逻辑准确率方面有了很大的提升,本发明的模型对于NL2SQL任务有着显著的效果提升。

Description

基于显式及隐式特征解耦的NL2SQL方法
技术领域
本发明涉及人工智能、自然语言处理技术领域,具体涉及基于显式及隐式特征解耦的NL2SQL方法。
技术背景
人工智能是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用***的一门科学。其主要应用包含自然语言处理,计算机视觉等,随着大数据的广泛应用、计算能力显著提高、深度学习算法提出和不断更新,人工智能理论和技术日益成熟,应用领域也不断扩大,并已经用于部分生成生活实际场景之中。
自然语言生成SQL(Structured Query Language)语句(NL2SQL)技术,能使用户通过自然语言的描述生成SQL语言并查询数据,NL2SQL是自然语言处理技术的一个研究方向,可以将人类的自然语言利用自然语言处理的技术转化为相应的SQL语句(结构化查询语言),进而与数据库直接交互查询、获得查询的结果。NL2SQL作为新兴研究领域,以自然语义理解为技术底层,将机器学习和深度学习应用于语义理解的广泛讨论。NL2SQL技术让非专业人士,不需要学习和掌握数据库程序语言,就可以自由地查询各种丰富的数据库。NL2SQL的实现,运用了大量前沿的人工智能算法模型,比如运用了大型预训练语言模型,让AI来理解自然语言的底层逻辑进而读懂用户语言,通过这种技术,能更加有效的对于大型数据库进行管理,对于数据库操作的便捷化和高效性提供了有利的保障。
发明内容
发明目的:在实际数据库的使用中,如何准确地将用户问题转换为正确的SQL查询语句,并返回用户所需要的答案,是NL2SQL的一个核心问题。本专利申请借助于深度学习技术解决这一问题。为了解决子任务编码过程中出现的不同子任务对其他子任务的影响以及单纯线性层难以捕获子任务输出的特点,本申请提出了一种新的结合多次随机失活硬解耦的语义编码模型,分别用于进行SQL查询语句中子任务的语义提取;为了有效整合不同子任务的相关性语义特征,本申请提出了利用专家***和子***加权输出的语义编码模型。本申请所提出的模型在真实的NL2SQL数据集上取得了显著效果,在浏览器搜索,数据库构建,自动问答,智能语音助手,智能搜索***领域有很大的应用前景。
技术方案:为实现上述目的,本发明采用的技术方案为:
一种基于显式及隐式特征解耦的NL2SQL方法,包括以下步骤:
步骤1:构建特定子模块专家***的步骤,用于根据已有的语言模型捕获其中隐式特征,分层提取其输出中的关键信息来进行不同子***的构建。
步骤2:结合多次随机失活和专家***步骤,包括将模型的多次输出与随机失活和子任务的特定提取隐式特征专家***进行结合。
步骤3:构建多次随机失活和专家***专用损失函数的步骤,包括利用多次随机失活使模型向正确的方向收敛。结合专家***来提取子任务隐式特征。构建多次随机失活和专家***专用损失函数,包括利用Kullback-Leibler散度,即KL散度,来对输出进行约束,提高模型准确率并使模型脱离局部最优点。
步骤4:训练不同子***进行显式解耦步骤,包括将不同子***之间进行分别训练,用于进行完全的显式特征的硬解耦,消除不同子任务的相互干扰。
步骤5:构建子***输出显式特征耦合专家***编码模型步骤,包括构建子***输出显式特征耦合专家***编码模型,用于整合不同子***输出。
步骤6:训练显式及隐式特征解耦的NL2SQL方法步骤,用于得到最终耦合完成的模型。
术语解释:
硬解耦:在一个多任务***中,耦合是指多个任务偏向于两者或多者的彼此影响,而解耦就是要解除这种影响,增强各自的独立存在能力,可以降低不同任务存在的耦合度,但不能根除,否则就失去了彼此的关联,失去了存在意义。
BI-LSTM:BI-LSTM是Bi-directional Long Short-Term Memory的缩写,是一种特殊的RNN网络,由前向LSTM与后向LSTM组合而成,适用于处理时序信息,因此BI-LSTM在自然语言处理任务中都常被用于建模上下文信息。
RoBERTa:RoBERTa的全称为Bidirectional Encoder Representation fromTransformers,是一个预训练的语言表征模型。它强调了不再像以往一样采用传统的单向语言模型或者把两个单向语言模型进行浅层拼接的方法进行预训练,而是采用新的maskedlanguagemodel(MLM),以致能生成深度的双向语言表征。
显式特征:在本任务中不同子任务单独输出的特征,是一种被严格区分的特征,其在向量形式上有着很大的不同,例如不同子***之间可以被认为具有不同的显式特征,可以认为具有不同显式特征的子***之间相关性趋于0。
隐式特征:在本任务中由一个子***内部多个子任务输出的某种不可以被直接输出的相应向量的特征,例如一个子***中不同子任务之间的输出关系,可以认为是隐式特征。
该方法的每个实施步骤具体如下:
如图1所示,具体步骤如下:
步骤1:构建特定子模块专家***的步骤,具体为:
针对于语言模型的初步输入,构建提取子模块隐式特征专家***。
专家***利用了Transformer机制和Bi-LSTM网络,通过输入自然语言的模型输出作为输入,进行相应自然语言编码向量的计算,在本任务中,专家***被用作捕获不同子任务之间的隐式特征,专家***具体的公式为:
(z1,...,zn+m)=Bi-LSTM(h1,...,hn+m)
其中,h1,...,hn+m为RoBERTa的bert_output输出,Bi-LSTM为双向长短记忆网络,z1,...,zn+m为RoBERTa输出向量经过双向Bi-LSTM循环神经网络后的向量表示,然后利用注意力机制进行加权求和,将RoBERTa的输出作为query向量;并将Bi-LSTM的输出作为key向量,来获取该项子任务上的value向量。
qi=Wi*zi+bi
ki=Tanh(qi)
ai=softmax(qi*ki*maski-c*(1-maski))
hc=∑ai
其中,qi为权重向量,zi为RoBERTa输出向量经过双向Bi-LSTM循环神经网络后的向量表示,Wi为提前设定的参数向量,bi为偏移量,ki为经过Tanh处理后的向量,maski为RoBERTa的segemnt的embedding输出,c为一个常量用作系数,Tanh为tanh函数,ai为softmax输出向量,softmax为softmax函数,hc为专家***输出。
在***中添加了一个参数向量gates作为特定子***和专家子***的加权向量,在子***的前向传播中,公式为:
outi=Linear(gi,0*ei+gi,1*et)
其中,gi,0,gi,1为参数向量内的相应加权值,而ei为子任务专用的专家子***,et为该任务模块共享的专家***,其总体损失仍然为子任务交叉熵损失之和,Linear为线性层分类函数,outi为分类结果。
RoBERTa模型是本发明提出的显式硬解耦子***模型的基础,RoBERTa的输入由三部分组成:词嵌入(Token Embedding)、片段嵌入(Segment Embedding)、位置嵌入(Position Embedding)。这三个向量进行向量的线性运算即可得到句子中每个词的词向量,将句子的词向量拼接合成矩阵,就是句子的输入。RoBERTa的输入进行若干次多头注意力机制(Multi-Head Attention)、层归一化(Layer_Norm)以及前馈网络层之后得到输出。RoBERTa的输出如下所示:
E=RoBERTa(Input)
其中,RoBERTa为RoBERTa模型,Input为输入的语言资料,E为最终输出的语言向量表示。
步骤2:结合多次随机失活和专家***步骤,具体为:
多次随机失活,是一种利用神经网络中,随机失活的随机性,来针对于同一种模型进行多次失活,并根据其不同输出来进行前向传播,在本模型通过对比两次专家***前向传播之后的数据,使模型向着更优点进行梯度下降,结合已有的R-drop方法,对于语言模型进行了两次输出,其具体公式如下:
Xp0=drop(X0),Xp1=drop(X1)
outi0=Linear(f(Xp0))
outi1=Linear(f(Xp1))
其中,X0,X1为语言模型的输出,Xp0,Xp1为随机失活完毕后语言模型的输出,drop为Drop_out随机失活函数,outi0和outi1为线性层输出,f(Xp0)和f(Xp1)为专家***的函数,Linear为线性层分类函数,在求得模型的输出之后,利用其输出outi0和outi1来进行损失函数的具体计算,通过将多次随机失活和专家***相结合起来,有利于专家***更有效的捕获不同子任务之间的隐式特征。
步骤3:构建多次随机失活和专家***专用损失函数的步骤,具体为:
子任务采用的都是分类模型,执行文本的分类任务。在模型训练的过程中,模型的目标函数就是所有子任务损失函数的总和,通过最小化该损失函数总和来进行模型参数的优化。
对于子任务输出outi0和outi1,设任务的具体标签为Y,采用针对于该任务的优化建立了一个新型的损失函数,损失函数则由两部分组成,前一部分损失为lossnormal由两次输出计算其交叉熵损失并求和构成,后一项是衡量两次输出之间的KL散度,其公式如下:
lossnormal=0.5*(CrossEntropy(outi0,Y)+CrossEntropy(outi1,Y))
Figure BDA0003968294240000051
Figure BDA0003968294240000052
Figure BDA0003968294240000053
在上述公式中,N为子任务类别数,lossnormal为约束损失,
Figure BDA0003968294240000054
为子任务的KL散度损失,
Figure BDA0003968294240000055
为语言模型输出的散度损失,losstotal为子任务的最终整体损失,其中outi0,outi1为模型的预测输出,X0,X1为语言模型的输出,Y为相关任务的真实标签,ai和b均为模型的具体系数,CrossEntropy为交叉熵计算公式,klloss(outi0,outi1)为计算outi0,outi1之间的KL散度的公式,klloss(X0,X1)为计算X0,X1之间KL散度的公式,CrossEntropy用分类模型中最常采用的交叉熵损失函数,公式如下:
Figure BDA0003968294240000056
其中num表示分类的类别数,yj表示第j类的标签值,取值为1或0,P(xj)表示第j类预测值,loss(P(x),y)为损失函数的总和。
KL散度为度量两个概率之间分布差异的公式,KL散度的公式如下:
Figure BDA0003968294240000057
其中,xj为随机变量的取值,P(xj)为xj的分布概率一,Q(xj)为xj的分布概率二,num为xj可能取值的数量,D(P||Q)代表得到的P,Q两个概率之间的KL散度。
在上述损失函数中,可以认为lossnormal是一个可以被优化减少的偏差,同时
Figure BDA0003968294240000061
则通过计算KL散度来减少两次不同输出之间的偏差,有利于模型保留最优的参数,而由于Drop_out函数随机性的存在,认为
Figure BDA0003968294240000062
是一种随机损失,但是随着模型保留其最优参数,这项损失也会减少,但是减少幅度不如前两项剧烈,这种改进的损失函数和输出两次有利于模型保留更多有用的参数并在一定程度上避免过拟合。
步骤4:训练不同子***进行显式解耦步骤,具体为:
在本模型中,子***网络被分为了3个不同的模块,依次为S模块、W模块、SW模块。其中,S模块负责编码以及优化SELECT部分的子任务SELECT-COL,W模块负责编码以及优化WHERE部分的子任务WHERE-COL、WHERE-NUM、WHERE-OP、WHERE-VALUE,而SW模块负责初步的编码SELECT-COL、WHERE-COL、WHERE-NUM、WHERE-OP、WHERE-VALUE等任务,上述三个模块在执行的任务上有很大的不同,因此可以将上述模块进行硬解耦,将上述模块利用已有的隐式特征解耦的专家***以及改进损失函数来捕获语言模型输出的隐式特征,构建其优化函数和损失函数来进行训练。
通过将上述已有的模块分离进行训练,让处理不同子任务的模块分离进行训练,可以达到模型所需要的显式特征解耦功能,防止不同的子任务在接下来的训练中互相干扰降低整体的准确率。
步骤5:构建子***输出显式特征耦合专家***编码模型,具体为:
子***输出耦合编码模型的优化目标包含S模块的输出pooled-out、bert_output、agg、column_funcs,W模块的输出pooled-out、bert-out、column_funw、op、where_num,以及SW部分的输出pooled-out,bert-out以及value-start和value-end,不同模块的输出,为显式解耦的输出。
将SW模块的输出和W模块的输出bert_output拼接为向量OW,将SW模块的输出pooled_output和W模块的输出pooled_output拼接为向量POW,然后将OW输入到针对于WHERE任务的专家***之中,其公式如下:
(z1,...,zn+m)=Bi-LSTM(ow1,...,own+m)
qi=Wi*zi+bi
ki=Tanh(qi)
ai=softmax(qi*ki*mask_owi-c*(1-mask_owi))
how=∑ai
其中,ow1,...,own+m为OW的输入,z1,...,zn+m为Bi-LSTM网络的输出向量,Bi-LSTM为BI-LSTM循环神经网络,ki为经过Tanh处理后的向量,qi为加权完毕的权重向量,ai为Softmax输出后的向量,Wi为提前设定的参数向量,zi为向量OW经过双向Bi-LSTM循环神经网络后的向量表示,bi为偏移量,mask_owi为OW的segemnt的embedding输出,c为一个常量用作系数,Tanh为tanh函数,softmax为softmax函数,how为专家***的输出,输出的向量how被输入到相应的线性层,线性层的计算公式如下:
outTaskW=Linear(how+0.5*POW)
其中,POW为上述已得到的POW向量。Linear为线性分类函数,how为已有专家***输出,outTaskW线性层输出的相应任务的概率,根据线性层输出来预测WHERE子任务,包括WHERE-COL、WHERE-NUM、WHERE-OP、WHERE-VALUE等任务。
将SW模块的输出和S模块的输出bert_output拼接为向量OS,将SW模块的输出pooled_output和S模块的输出pooled_output拼接为向量POS,然后将OS输入到针对于SELECT任务的专家***之中,其公式如下:
(z1,...,zn+m)=Bi-LSTM(os1,...,osn+m)
qi=Wi*zi+ci
ki=Tanh(qi)
ai=softmax(qi*ki*mask_osi-b*(1-mask_osi))
hos=∑ai
其中,os1,...,osn+m为OS的输入,z1,...,zn+m为Bi-LSTM网络的输出向量,Bi-LSTM为BI-LSTM循环神经网络,qi为加权完毕的权重向量,Wi为提前设定的参数向量,zi为向量OS经过双向Bi-LSTM循环神经网络后的向量表示,ci为偏移量,ki为经过Tanh处理后的向量,mask_osi为OS的segemnt的embedding输出,b为一个常量用作系数,Tanh为tanh函数,softmax为softmax函数,ai为softmax输出后的向量,hos为专家***的输出。
输出的向量hos被输入到相应的线性层,线性层的计算公式如下:
outTaskS=Linear(hos+0.5*POS)
其中,POS为上述已得到的POS向量,Linear为线性分类函数,hos为已有专家***输出,outTaskS线性层输出的相应任务的概率,根据线性层输出来预测SELECT子任务,包括SELECT-COL,SELECT-AGG等任务。
步骤6:训练最终耦合的NL2SQL方法模型步骤,具体为:
上述所有的子任务采用的都是分类模型,在模型训练的过程中,模型的目标函数就是所有子任务损失函数的总和,通过最小化该损失函数总和来进行模型参数的优化,耦合模型应用的损失函数为子任务交叉熵。
最终模型使用的求和函数是利用子任务的输出与线性的softmax函数线性求和相加所得,其各项子任务计算公式如下:
Figure BDA0003968294240000081
Figure BDA0003968294240000082
Figure BDA0003968294240000083
其中,Pc为argmax函数,outop T、outnum T、outagg T为专家***输出,
Figure BDA0003968294240000084
为相应线性层权重,Woutop、Woutnum、Soutagg为相应专家***输出,Woutop和Woutnum是由W模块直接输出的相应向量,而Soutagg是由S模块直接输出的相应向量,
Figure BDA0003968294240000085
为相关op,num,agg预测的具体概率,通过这种方法进行加权求和来得到最终的预测概率。
本发明模型的整体目标函数L是所有子任务损失函数之和。
构建优化函数,优化函数为Adam函数。
本文使用的深度学习模型都是基于预训练模型RoBERTa加上任务特定的分类层微调(fine-tuning)训练所得的,在训练的过程当中为了避免破坏原预训练模型的表征能力,因此设计了较少的迭代,迭代次数设置为5次。各深度学习模型都是基于深度学习框架Pytorch实现的,训练过程中设置的学习率为3.5e-5,批量大小(batch size)为256,优化器为AdamW,正则化方法使用Dropout来防止过拟合。
本发明的模型和最近一些先进的方法进行了比较,实验结果显示本发明的方法较之有了显著的提升。尤其是在查询匹配正确率上的提升尤为显著,说明本发明的模型对于NL2SQL数据集有显著的效果提升以及有效解决TEXT to SQL问题中准确率不足的问题。
相对于现有技术,本发明的优点如下:
1、本发明采用硬解耦的方法能够有效地对多任务学习中不同子任务进行训练并能防止不同子任务在模型的训练中进行干扰。
2、本发明采用专家***来对于子任务进行编码的方法能够有效地捕获子任务隐含信息并进行解耦用于捕获其语义特征和关键信息。
3、本发明提出将多次随机失活与专家***相结合,能够有效使模型尽可能地保留有效参数,提取提高模型的准确率,并能起到防止过拟合的作用。
4、本发明提出使用Kullback-Leibler散度改进损失函数,并将两次专家***的输出利用Kullback-Leibler散度进行约束,提高模型准确率并使模型脱离局部最优点。
5、本发明提出采用专家***来对于不同子模型的输出进行约束和耦合,用于对于子模型输出进行约束,防止子模型之间的输出不匹配,并提高模型的最终准确率。
6、本发明利用显式解耦的方法来对于不同子***进行训练,通过显式解耦来防止不同子***之间的信息相互干扰,来达到子***之间准确率的提升,并有利于之后的耦合***捕获不同子***输出的隐含特征。
7、本发明定义并实现了一套完整的显式及隐式特征解耦的NL2SQ模型完整的训练步骤。
附图说明
图1为一种基于显式及隐式特征解耦的NL2SQL方法的流程图;
图2为构建子***专家***的流程图;
图3为结合子***专家***并结合随机失活模型的流程图;
图4为子***整体的结构示意图;
图5为构建针对子***输出的耦合模型专家***流程图;
图6为耦合模型结构的结构示意图;
图7为一种基于显式及隐式特征解耦的NL2SQL方法的结构示意图。
具体实施方式
下面结合附图和具体实施例,进一步阐明本发明,应理解这些实例仅用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价形式的修改均落于本申请所附权利要求所限定的范围。
实施例1:一种基于显式及隐式特征解耦的NL2SQL方法,包括以下步骤:
如图1所示,具体步骤如下:
步骤1:构建特定子模块专家***,
针对于语言模型的初步输入,构建提取子模块隐式特征专家***。
专家***利用了Transformer机制和Bi-LSTM网络,通过输入自然语言的模型输出作为输入,进行相应自然语言编码向量的计算,在本任务中,专家***被用作捕获不同子任务之间的隐式特征,专家***具体的公式为:
(z1,...,zn+m)=Bi-LSTM(h1,...,hn+m)
其中,h1,...,hn+m为RoBERTa的bert_output输出,Bi-LSTM为双向长短记忆网络,z1,...,zn+m为RoBERTa输出向量经过双向Bi-LSTM循环神经网络后的向量表示,然后利用注意力机制进行加权求和,将RoBERTa的输出作为query向量;并将Bi-LSTM的输出作为key向量,来获取该项子任务上的value向量。
qi=Wi*zi+bi
ki=Tanh(qi)
ai=softmax(qi*ki*maski-c*(1-maski))
hc=∑ai
其中,qi为权重向量,zi为RoBERTa输出向量经过双向Bi-LSTM循环神经网络后的向量表示,Wi为提前设定的参数向量,bi为偏移量,ki为经过Tanh处理后的向量,maski为RoBERTa的segemnt的embedding输出,c为一个常量用作系数,Tanh为tanh函数,ai为softmax输出向量,softmax为softmax函数,hc为专家***输出。
在***中添加了一个参数向量gates作为特定子***和专家子***的加权向量,在子***的前向传播中,公式为:
outi=Linear(gi,0*ei+gi,1*et)
其中,gi,0,gi,1为参数向量内的相应加权值,而ei为子任务专用的专家子***,et为该任务模块共享的专家***,其总体损失仍然为子任务交叉熵损失之和,Linear为线性层分类函数,outi为分类结果。
RoBERTa模型是本发明提出的显式硬解耦子***模型的基础,RoBERTa的输入由三部分组成:词嵌入(Token Embedding)、片段嵌入(Segment Embedding)、位置嵌入(Position Embedding)。这三个向量进行向量的线性运算即可得到句子中每个词的词向量,将句子的词向量拼接合成矩阵,就是句子的输入。RoBERTa的输入进行若干次多头注意力机制(Multi-Head Attention)、层归一化(Layer_Norm)以及前馈网络层之后得到输出。RoBERTa的输出如下所示:
E=RoBERTa(Input)
其中,RoBERTa为RoBERTa模型,Input为输入的语言资料,E为最终输出的语言向量表示。
步骤2:结合多次随机失活和专家***,
多次随机失活,是一种利用神经网络中,随机失活的随机性,来针对于同一种模型进行多次失活,并根据其不同输出来进行前向传播,在本模型通过对比两次专家***前向传播之后的数据,使模型向着更优点进行梯度下降,结合已有的R-drop方法,对于语言模型进行了两次输出,其具体公式如下:
Xp0=drop(X0),Xp1=drop(X1)
outi0=Linear(f(Xp0))
outi1=Linear(f(Xp1))
其中,X0,X1为语言模型的输出,Xp0,Xp1为随机失活完毕后语言模型的输出,drop为Drop_out随机失活函数,outi0和outi1为线性层输出,f(Xp0),f(Xp1)为专家***的函数,Linear为线性层分类函数,在求得模型的输出之后,可以利用其输出outi0和outi1来进行损失函数的具体计算,通过将多次随机失活和专家***相结合起来,有利于专家***更有效的捕获不同子任务之间的隐式特征。
步骤3:构建多次随机失活和专家***专用损失函数的步骤,具体为,
子任务采用的都是分类模型,执行文本的分类任务。在模型训练的过程中,模型的目标函数就是所有子任务损失函数的总和,通过最小化该损失函数总和来进行模型参数的优化。
对于子任务输出outi0和outi1,设任务的具体标签为Y,采用针对于该任务的优化建立了一个新型的损失函数,损失函数则由两部分组成,前一部分损失为lossnormal由两次输出计算其交叉熵损失并求和构成,后一项是衡量两次输出之间的KL散度,其公式如下:
lossnormal=0.5*(CrossEntropy(outi0,Y)+CrossEntropy(outi1,Y))
Figure BDA0003968294240000121
Figure BDA0003968294240000122
Figure BDA0003968294240000123
在上述公式中,N为子任务类别数,lossnomal为约束损失,
Figure BDA0003968294240000124
为子任务的KL散度损失,
Figure BDA0003968294240000125
为语言模型输出的散度损失,losstotal为子任务的最终整体损失,其中oui0,outi1为模型的预测输出,X0,X1为语言模型的输出,Y为相关任务的真实标签,ai和b均为模型的具体系数,CrossEntropy为交叉熵计算公式,klloss(outi0,outi1)为计算outi0,outi1之间的KL散度的公式,klloss(X0,X1)为计算X0,X1之间KL散度的公式,CrossEntropy用分类模型中最常采用的交叉熵损失函数,公式如下:
Figure BDA0003968294240000126
其中num表示分类的类别数,yj表示第j类的标签值,取值为1或0,P(xj)表示第j类预测值,loss(P(x),y)为损失函数的总和。
KL散度为度量两个概率之间分布差异的公式,KL散度的公式如下:
Figure BDA0003968294240000127
其中,xj为随机变量的取值,P(xj)为xj的分布概率一,Q(xj)为为xj的分布概率二,num为xj可能取值的数量,D(P||Q)代表得到的P,Q两个概率之间的KL散度。
在上述损失函数中,可以认为lossnormal是一个可以被优化减少的偏差,同时
Figure BDA0003968294240000131
则通过计算KL散度来减少两次不同输出之间的偏差,有利于模型保留最优的参数,而由于Drop_out函数随机性的存在,认为
Figure BDA0003968294240000132
是一种随机损失,但是随着模型保留其最优参数,这项损失也会减少,但是减少幅度不如前两项剧烈,这种改进的损失函数和输出两次有利于模型保留更多有用的参数并在一定程度上避免过拟合。
步骤4:训练不同子***进行显式解耦,
在本模型中,子***网络被分为了3个不同的模块,依次为S模块、W模块、SW模块。其中,S模块负责编码以及优化SELECT部分的子任务SELECT-COL,W模块负责编码以及优化WHERE部分的子任务WHERE-COL、WHERE-NUM、WHERE-OP、WHERE-VALUE,而SW模块负责初步的编码SELECT-COL、WHERE-COL、WHERE-NUM、WHERE-OP、WHERE-VALUE等任务,上述三个模块在执行的任务上有很大的不同,因此可以将上述模块进行硬解耦,将上述模块利用已有的隐式特征解耦的专家***以及改进损失函数来捕获语言模型输出的隐式特征,构建其优化函数和损失函数来进行训练。
通过将上述已有的模块分离进行训练,让处理不同子任务的模块分离进行训练,可以达到模型所需要的显式特征解耦功能,防止不同的子任务在接下来的训练中互相干扰降低整体的准确率。
步骤5:构建子***输出显式特征耦合专家***编码模型,
子***输出耦合编码模型的优化目标包含S模块的输出pooled-out、bert_output、agg、column_funcs,W模块的输出pooled-out、bert-out、column_funw、op、where_num,以及SW部分的输出pooled-out,bert-out以及value-start和value-end,不同模块的输出,为显式解耦的输出。
将SW模块的输出和W模块的输出bert_output拼接为向量OW,将SW模块的输出pooled_output和W模块的输出pooled_output拼接为向量POW,然后将OW输入到针对于WHERE任务的专家***之中,其公式如下:
(z1,...,zn+m)=Bi-LSTM(ow1,...,own+m)
qi=Wi*zi+bi
ki=Tanh(qi)
ai=softmax(qi*ki*mask_owi-c*(1-mask_owi))
how=∑ai
其中,ow1,...,own+m为OW的输入,z1,...,zn+m为Bi-LSTM网络的输出向量,Bi-LSTM为BI-LSTM循环神经网络,ki为经过Tanh处理后的向量,qi为加权完毕的权重向量,ai为softmax输出后的向量,Wi为提前设定的参数向量,zi为向量OW经过双向Bi-LSTM循环神经网络后的向量表示,bi为偏移量,mask_owi为OW的segemnt的embedding输出,c为一个常量用作系数,Tanh为tanh函数,softmax为softmax函数,how为专家***的输出,输出的向量how被输入到相应的线性层,线性层的计算公式如下:
outTaskW=Linear(how+0.5*POW)
其中,POW为上述已得到的POW向量。Linear为线性分类函数,how为已有专家***输出,outTaskW线性层输出的相应任务的概率,根据线性层输出来预测WHERE子任务,包括WHERE-COL、WHERE-NUM、WHERE-OP、WHERE-VALUE等任务。
将SW模块的输出和S模块的输出bert_output拼接为向量OS,将SW模块的输出pooled_output和S模块的输出pooled_output拼接为向量POS,然后将OS输入到针对于SELECT任务的专家***之中,其公式如下:
(z1,...,zn+m)=Bi-LSTM(os1,...,osn+m)
qi=Wi*zi+ci
ki=Tanh(qi)
ai=softmax(qi*ki*mask_osi-b*(1-mask_osi))
hos=∑ai
其中,os1,...,osn+m为OS的输入,z1,...,zn+m为Bi-LSTM网络的输出向量,Bi-LSTM为BI-LSTM循环神经网络,qi为加权完毕的权重向量,Wi为提前设定的参数向量,zi为向量OS经过双向Bi-LSTM循环神经网络后的向量表示,ci为偏移量,ki为经过Tanh处理后的向量,mask_osi为OS的segemnt的embedding输出,b为一个常量用作系数,Tanh为tanh函数,softmax为softmax函数,ai为softmax输出后的向量,hos为专家***的输出。
输出的向量hos被输入到相应的线性层,线性层的计算公式如下:
outTaskS=Linear(hos+0.5*POS)
其中,POS为上述已得到的POS向量,Linear为线性分类函数,hos为已有专家***输出,outTaskS线性层输出的相应任务的概率,根据线性层输出来预测SELECT子任务,包括SELECT-COL,SELECT-AGG等任务。
步骤6:训练最终耦合的NL2SQL方法模型,
上述所有的子任务采用的都是分类模型,在模型训练的过程中,模型的目标函数就是所有子任务损失函数的总和,通过最小化该损失函数总和来进行模型参数的优化,本耦合模型应用的损失函数为子任务交叉熵。
最终模型使用的求和函数是利用子任务的输出与线性的Softmax函数线性求和相加所得,其各项子任务计算公式如下:R
Figure BDA0003968294240000151
Figure BDA0003968294240000152
Figure BDA0003968294240000153
其中,Pc为argmax函数,outop T、outnum T、outagg T为专家***输出,
Figure BDA0003968294240000154
为相应线性层权重,Woutop、Woutnum、Soutagg为相应专家***输出,Woutop和Woutnum是由W模块直接输出的相应向量,而Soutagg是由S模块直接输出的相应向量,
Figure BDA0003968294240000155
为相关op,num,agg预测的具体概率,通过这种方法进行加权求和来得到最终的预测概率。
本发明模型的整体目标函数L是所有子任务损失函数之和。
构建优化函数,优化函数为Adam函数。
本文使用的深度学习模型都是基于预训练模型RoBERTa加上任务特定的分类层微调(fine-tuning)训练所得的,在训练的过程当中为了避免破坏原预训练模型的表征能力,因此设计了较少的迭代,迭代次数设置为5次。各深度学习模型都是基于深度学习框架Pytorch实现的,训练过程中设置的学习率为3.5e-5,批量大小(batch size)为256,优化器为AdamW,正则化方法使用Dropout来防止过拟合。
本发明的模型和最近一些先进的方法进行了比较,实验结果显示本发明的方法较之有了很大的提升。尤其是在查询匹配正确率上的提升尤为显著,说明本发明的模型对于WikiSQL数据集有着显著的效果提升。
本发明的模型在WikiSQL数据集上取得优于先进模型的结果,具体见下表:
表1:WikiSQL子任务验证集的实验结果.
模型名称 sel-acc agg-acc wcn-acc wcc-acc wco-acc wcv-acc
HydraNet 97.8 91.1 98.7 95.7 97.8 96.2
HydraNet+EG 97.8 91.1 98.8 97.5 97.9 98.1
Our-model 98.0 91.4 98.8 96.3 98.0 96.7
Our-model+EG 98.0 91.4 98.9 98.0 98.2 98.3
表2:WikiSQL子任务测试集的实验结果.
模型名称 sel-acc agg-acc wcn-acc wcc-acc wco-acc wcv-acc
HydraNet 97.6 91.4 98.4 95.3 97.4 96.1
HydraNet+EG 97.6 91.4 98.4 97.2 97.5 97.6
Our-model 97.7 91.1 98.3 95.7 97.5 96.3
Our-model+EG 97.7 91.1 98.3 97.5 97.6 97.7
表3:WikiSQL测试结果.
Figure BDA0003968294240000161
本发明的模型和最近一些先进的方法进行了比较,实验结果显示本发明的方法较之有了很大的提升。尤其是在子任务准确率以及逻辑准确率方面的提升显著,说明本发明的模型对于WikiSQL数据集NL2SQL任务性能有着显著的效果提升。
子***中针对于其特定子任务的专家***构建单元,利用注意力机制,使用RoBERTa输出和BI-LSTM,对子任务进行编码,构建子任务的专家***。
结合多次随机失活和专家***构建单元,用于将已有的子***中包含的专家***和多次随机失活结合起来,使模型向着参数更优点进行收敛。
隐式特征解耦函数及专家***构建单元,用于利用多次随机失活和专家***之后的输出,结合KL散度,将引入一定的随机损失,有利于模型向更优值点进行收敛。
显式特征解耦的NL2SQL子***模型训练单元,用于构建优化的损失函数,构建优化函数,并冻结训练成功的子模型的参数。
整合不同结合多次显式特征及隐式特征解耦的NL2SQL子***模型的耦合模型构建单元,用于针对于不同任务的子***,将其输出的向量进行适当的拼接,并利用BI-LSTM神经网络来构建适合于不同整合完毕的向量来进行输出,之后对于专家***的输出和子***的相应输出进行加权求和,得到最终的返回值。
所述结合NL2SQL模型训练单元还包括:损失函数构建单元,模型的目标函数就是所有子任务损失函数的总和,通过模型训练来最小化这个总和的目标函数,优化函数构建单元,负责优化模型参数,调整模型中参数的更新。
以上所述仅是本发明的优选实施方式,应当指出:对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (7)

1.一种基于显式及隐式特征解耦的NL2SQL方法,其特征在于,所述方法包括以下步骤:
步骤1:构建特定子模块专家***的步骤,用于根据已有的语言模型捕获其中隐式特征,分层提取其输出中的关键信息来进行不同子***的构建;
步骤2:结合多次随机失活和专家***步骤,包括将模型的多次输出与随机失活和子任务的特定提取隐式特征专家***进行结合;
步骤3:构建多次随机失活和专家***专用损失函数的步骤,包括利用多次随机失活使模型向正确的方向收敛,结合专家***来提取子任务隐式特征;
步骤4:训练不同子***进行显式解耦步骤,包括将不同子***之间进行分别训练,用于进行完全的显式特征的硬解耦,消除不同子任务的相互干扰;
步骤5:构建子***输出显式特征耦合专家***编码模型步骤,包括构建子***输出显式特征耦合专家***编码模型,用于整合不同子***输出;
步骤6:训练最终耦合的NL2SQL方法模型步骤,用于得到最终耦合完成的模型。
2.根据权利要求1所述的基于显式及隐式特征解耦的NL2SQL方法,其特征在于:步骤1中构建特定子模块专家***的步骤具体为:
针对于语言模型的初步输入,构建提取子模块隐式特征专家***,
专家***利用了Transformer机制和Bi-LSTM网络,通过输入自然语言的模型输出作为输入,进行相应自然语言编码向量的计算,在本任务中,专家***被用作捕获不同子任务之间的隐式特征,专家***具体的公式为:
(z1,...,zn+m)=Bi-LSTM(h1,...,hn+m)
其中,h1,...,hn+m为RoBERTa的bert_output输出,Bi-LSTM为双向长短记忆网络,z1,...,zn+m为RoBERTa输出向量经过双向Bi-LSTM循环神经网络后的向量表示,然后利用注意力机制进行加权求和,将RoBERTa的输出作为query向量;并将Bi-LSTM的输出作为key向量,来获取该项子任务上的value向量,
qi=Wi*zi+bi
ki=Tanh(qi)
ai=softmax(qi*ki*maski-c*(1-maski))
hc=∑ai
其中,qi为权重向量,zi为RoBERTa输出向量经过双向Bi-LSTM循环神经网络后的向量表示,Wi为提前设定的参数向量,bi为偏移量,ki为经过Tanh处理后的向量,maski为RoBERTa的segemnt的embedding输出,c为一个常量用作系数,Tanh为tanh函数,ai为softmax输出向量,softmax为softmax函数,hc为专家***输出,
在***中添加了一个参数向量gates作为特定子***和专家子***的加权向量,在子***的前向传播中,公式为:
outi=Linear(gi,0*ei+gi,1*et)
其中,gi,0,gi,1为参数向量内的相应加权值,而ei为子任务专用的专家子***,et为该任务模块共享的专家***,其总体损失仍然为子任务交叉熵损失之和,Linear为线性层分类函数,outi为分类结果,
RoBERTa模型是本发明提出的显式硬解耦子***模型的基础,RoBERTa的输入由三部分组成:词嵌入(Token Embedding)、片段嵌入(Segment Embedding)、位置嵌入(PositionEmbedding),这三个向量进行向量的线性运算即可得到句子中每个词的词向量,将句子的词向量拼接合成矩阵,就是句子的输入,RoBERTa的输入进行若干次多头注意力机制(Multi-Head Attention)、层归一化(Layer_Norm)以及前馈网络层之后得到输出,RoBERTa的输出如下所示:
E=RoBERTa(Input),
其中,RoBERTa为RoBERTa语言模型,Input为输入的语言资料,E为最终输出的语言向量表示。
3.根据权利要求2所述的基于显式及隐式特征解耦的NL2SQL方法,其特征在于:步骤2中结合多次随机失活和专家***步骤具体为:
多次随机失活,是一种利用神经网络中,随机失活的随机性,来针对于同一种模型进行多次失活,并根据其不同输出来进行前向传播,通过对比两次专家***前向传播之后的数据,使模型向着更优点进行梯度下降,结合已有的R-drop方法,对于语言模型进行了两次输出,其具体公式如下:
Xp0=drop(X0),Xp1=drop(X1)
outi0=Linear(f(Xp0))
outi1=Linear(f(Xp1))
其中,X0,X1为语言模型的输出,Xp0,Xp1为随机失活完毕后语言模型的输出,drop为Drop_out随机失活函数,outi0和outi1为线性层输出,f(Xp0)和f(Xp1)为专家***的函数,Linear为线性层分类函数,在求得模型的输出之后,利用其输出outi0和outi1来进行损失函数的具体计算,通过将多次随机失活和专家***相结合起来,有利于专家***更有效的捕获不同子任务之间的隐式特征。
4.根据权利要求3所述的基于显式及隐式特征解耦的NL2SQL方法,其特征在于:步骤3中构建多次随机失活和专家***专用损失函数的步骤具体为:
子任务采用的都是分类模型,执行文本的分类任务,在模型训练的过程中,模型的目标函数就是所有子任务损失函数的总和,通过最小化该损失函数总和来进行模型参数的优化,
对于子任务输出outi0和outi1,设任务的具体标签为Y,采用针对于该任务的优化建立了一个新型的损失函数,损失函数则由两部分组成,前一部分损失为lossnormal由两次输出计算其交叉熵损失并求和构成,后一项是衡量两次输出之间的KL散度,其公式如下:
lossnormal=0.5*(CrossEntropy(outi0,Y)+CrossEntropy(outi1,Y))
Figure QLYQS_1
Figure QLYQS_2
Figure QLYQS_3
在上述公式中,N为子任务类别数,lossnomal为约束损失,
Figure QLYQS_4
为子任务的KL散度损失,
Figure QLYQS_5
为语言模型输出的散度损失,losstotal为子任务的最终整体损失,其中outi0,outi1为模型的预测输出,X0,X1为语言模型的输出,Y为相关任务的真实标签,ai和b均为模型的具体系数,CrossEntropy为交叉熵计算公式,klloss(outi0,outi1)为计算outi0,outi1之间的KL散度的公式,klloss(X0,X1)为计算X0,X1之间KL散度的公式,CrossEntropy用分类模型中最常采用的交叉熵损失函数,公式如下:
Figure QLYQS_6
其中num表示分类的类别数,yj表示第j类的标签值,取值为1或0,P(xj)表示第j类预测值,loss(P(x),y)为损失函数总和,
KL散度为度量两个概率之间分布差异的公式,KL散度的公式如下:
Figure QLYQS_7
其中,xj为随机变量的取值,P(xj)为xj的分布概率一,Q(xj)为xj的分布概率二,num为xj可能取值的数量,D(P||Q)代表得到的P,Q两个概率之间的KL散度,
在上述损失函数中,认为lossnormal是一个可被优化减少的偏差,同时
Figure QLYQS_8
则通过计算KL散度来减少两次不同输出之间的偏差,有利于模型保留最优的参数,而由于Drop_out函数随机性的存在,认为
Figure QLYQS_9
是一种随机损失。
5.根据权利要求4所述的基于显式及隐式特征解耦的NL2SQL方法,其特征在于:步骤4中训练不同子***进行显式解耦步骤具体为:
在本模型中,子***网络被分为了3个不同的模块,依次为S模块、W模块、SW模块,其中,S模块负责编码以及优化SELECT部分的子任务SELECT-COL,W模块负责编码以及优化WHERE部分的子任务WHERE-COL、WHERE-NUM、WHERE-OP、WHERE-VALUE,而SW模块负责初步的编码SELECT-COL、WHERE-COL、WHERE-NUM、WHERE-OP、WHERE-VALUE等任务,上述三个模块在执行的任务上有很大的不同,因此将上述模块进行硬解耦,将上述模块利用已有的隐式特征解耦的专家***以及改进损失函数来捕获语言模型输出的隐式特征,构建其优化函数和损失函数来进行训练,
通过将上述已有的模块分离进行训练,让处理不同子任务的模块分离进行训练,可达到模型所需要的显式特征解耦功能,防止不同的子任务在接下来的训练中互相干扰降低整体的准确率。
6.根据权利要求5所述的基于显式及隐式特征解耦的NL2SQL方法,其特征在于:步骤5中构建子***输出显式特征耦合专家***编码模型具体为:
子***输出耦合编码模型的优化目标包含S模块的输出pooled-out、bert_output、agg、column_funcs,W模块的输出pooled-out、bert-out、column_funw、op、where_num,以及SW部分的输出pooled-out,bert-out以及value-start和value-end,不同模块的输出,为显式解耦的输出,
将SW模块的输出和W模块的输出bert_output拼接为向量OW,将SW模块的输出pooled_output和W模块的输出pooled_output拼接为向量POW,然后将OW输入到针对于WHERE任务的专家***之中,其公式如下:
(z1,...,zn+m)=Bi-LSTM(ow1,...,own+m)
qi=Wi*zi+bi
ki=Tanh(qi)
ai=softmax(qi*ki*mask_owi-c*(1-mask_owi))
how=∑ai
其中,ow1,...,own+m为OW的输入,z1,...,zn+m为Bi-LSTM网络的输出向量,Bi-LSTM为BI-LSTM循环神经网络,ki为经过Tanh处理后的向量,qi为加权完毕的权重向量,ai为Softmax输出后的向量,Wi为提前设定的参数向量,zi为向量OW经过双向Bi-LSTM循环神经网络后的向量表示,bi为偏移量,mask_owi为OW的segemnt的embedding输出,c为一个常量用作系数,Tanh为tanh函数,softmax为softmax函数,how为专家***的输出,输出的向量how被输入到相应的线性层,线性层的计算公式如下:
outTaskW=Linear(how+0.5*POW)
其中,POW为上述已得到的POW向量,Linear为线性分类函数,how为已有专家***输出,outTaskW线性层输出的相应任务的概率,根据线性层输出来预测WHERE子任务,包括WHERE-COL、WHERE-NUM、WHERE-OP、WHERE-VALUE等任务,
将SW模块的输出和S模块的输出bert_output拼接为向量OS,将SW模块的输出pooled_output和S模块的输出pooled_output拼接为向量POS,然后将OS输入到针对于SELECT任务的专家***之中,其公式如下:
(z1,...,zn+m)=Bi-LSTM(os1,...,osn+m)
qi=Wi*zi+ci
ki=Tanh(qi)
ai=softmax(qi*ki*mask_osi-b*(1-mask_osi))
hos=∑ai
其中,os1,...,osn+m为OS的输入,z1,...,zn+m为Bi-LSTM网络的输出向量,Bi-LSTM为BI-LSTM循环神经网络,qi为加权完毕的权重向量,ai为Softmax输出后的向量,Wi为提前设定的参数向量,zi为向量OS经过双向Bi-LSTM循环神经网络后的向量表示,ci为偏移量,ki为经过Tanh处理后的向量,mask_osi为OS的segemnt的embedding输出,b为一个常量用作系数,Tanh为tanh函数,softmax为softmax函数,hos为专家***的输出,
输出的向量hos被输入到相应的线性层,线性层的计算公式如下:
outTasks=Linear(hos+0.5*POS)
其中,POS为上述已得到的POS向量,Linear为线性分类函数,hos为已有专家***输出,outraskS线性层输出的相应任务的概率,根据线性层输出来预测SELECT子任务,包括SELECT-COL,SELECT-AGG等任务。
7.根据权利要求6所述的基于显式及隐式特征解耦的NL2SQL方法,其特征在于:步骤6中训练最终耦合的NL2SQL方法模型步骤具体为:
上述所有的子任务采用的都是分类模型,在模型训练的过程中,模型的目标函数就是所有子任务损失函数的总和,通过最小化该目标函数来进行模型参数的优化,耦合模型应用的损失函数为子任务交叉熵,
最终模型使用的求和函数是利用子任务的输出与线性的Softmax函数线性求和相加所得,其各项子任务计算公式如下:
Figure QLYQS_10
Figure QLYQS_11
Figure QLYQS_12
其中,Pc为argmax函数,outop T、outnum T、outagg T为专家***输出,
Figure QLYQS_13
Figure QLYQS_14
为相应线性层权重,Woutop、Woutnum、Soutagg为相应专家***输出,Woutop和Woutnum是由W模块直接输出的相应向量,而Soutagg是由S模块直接输出的相应向量,
Figure QLYQS_15
为相关op,num,agg预测的具体概率,通过此方法进行加权求和来得到最终的预测概率,
模型的整体目标函数L是所有子任务损失函数之和,
构建优化函数,优化函数为Adam函数。
CN202211502427.2A 2022-11-28 2022-11-28 基于显式及隐式特征解耦的nl2sql方法 Pending CN115796029A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211502427.2A CN115796029A (zh) 2022-11-28 2022-11-28 基于显式及隐式特征解耦的nl2sql方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211502427.2A CN115796029A (zh) 2022-11-28 2022-11-28 基于显式及隐式特征解耦的nl2sql方法

Publications (1)

Publication Number Publication Date
CN115796029A true CN115796029A (zh) 2023-03-14

Family

ID=85442266

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211502427.2A Pending CN115796029A (zh) 2022-11-28 2022-11-28 基于显式及隐式特征解耦的nl2sql方法

Country Status (1)

Country Link
CN (1) CN115796029A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117612071A (zh) * 2024-01-23 2024-02-27 中国科学技术大学 一种基于迁移学习的视频动作识别方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117612071A (zh) * 2024-01-23 2024-02-27 中国科学技术大学 一种基于迁移学习的视频动作识别方法
CN117612071B (zh) * 2024-01-23 2024-04-19 中国科学技术大学 一种基于迁移学习的视频动作识别方法

Similar Documents

Publication Publication Date Title
CN113610126B (zh) 基于多目标检测模型无标签的知识蒸馏方法及存储介质
Jia et al. Label distribution learning with label correlations on local samples
CN110188358B (zh) 自然语言处理模型的训练方法及装置
CN113239700A (zh) 改进bert的文本语义匹配设备、***、方法及存储介质
CN112232087B (zh) 一种基于Transformer的多粒度注意力模型的特定方面情感分析方法
CN111782961B (zh) 一种面向机器阅读理解的答案推荐方法
CN112417894B (zh) 一种基于多任务学习的对话意图识别方法及识别***
CN111414749B (zh) 基于深度神经网络的社交文本依存句法分析***
CN111897944B (zh) 基于语义空间共享的知识图谱问答***
Lin et al. Temporal convolutional attention neural networks for time series forecasting
Dai et al. Hybrid deep model for human behavior understanding on industrial internet of video things
CN113239169A (zh) 基于人工智能的回答生成方法、装置、设备及存储介质
CN113627070A (zh) 一种短期光伏功率预测方法
CN111753995A (zh) 一种基于梯度提升树的局部可解释方法
Cui et al. Modelling customer online behaviours with neural networks: applications to conversion prediction and advertising retargeting
CN113935489A (zh) 基于量子神经网络的变分量子模型tfq-vqa及其两级优化方法
Zhao et al. Knowledge-aware bayesian co-attention for multimodal emotion recognition
CN115796029A (zh) 基于显式及隐式特征解耦的nl2sql方法
Zuo et al. Domain selection of transfer learning in fuzzy prediction models
CN115577111A (zh) 基于自注意力机制的文本分类方法
CN115809314A (zh) 基于双层多门控专家混合模型(mmoe)的多任务nl2sql方法
CN111274359B (zh) 基于改进vhred与强化学习的查询推荐方法及***
CN114529063A (zh) 一种基于机器学习的金融领域数据预测方法、设备及介质
CN112667788A (zh) 一种新型的基于bertcontext的多轮对话自然语言理解模型
Hsieh et al. Housing price prediction by using generative adversarial networks

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