当前位置: 首页 > 网络应用技术

M-SQL:超级多任务代表学习方法,您应得的!

时间:2023-03-07 18:08:23 网络应用技术

  国际实践,首先来到(bai)公义(du)仪表(bai):键:顾名思义的文本tosql是根据用户在给定数据库的前提(或表)的问题基于用户的问题生成SQL语句(或表)。。数学描述如下:

  令X表示用户的自然语言问题,D表示与该问题相关的数据库(或表),而Y表示其相应的SQL语句。

  SQL语句生成任务可以表示为:对于相应y的每组独立(x,d,y),(x,d)。

  以每个人都熟悉的场景为例。Pupsose我们有一个学生信息表,我们可以用自然语言询问:谁年龄在18岁以上,该模型需要返回与之相关的SQL语句,然后:

  从学生信息中选择名称> 18岁

  SQL有很多类别的文本,其中之一是由问题进行分类:

  一个是上下文。

  一个与上下文有关(两个问题之间存在一定的关系):sparc

  “上下文无关紧要”意味着问题之间没有联系,而“与上下文相关”是在两个问题之前和之后之间的联系。有一些参考或某个连接。

  同样,让我们举一个简单的例子来解释:

  问题1:预约的医生ID是什么?

  预约医师

  问题2:他们叫什么名字?

  选择t2. name被任命为t1加入医师作为t2 ont1.physician = t2.empoyeeid

  以上是与上下文相关的示例。第一句话决定了医生的ID,第二句话根据医生的ID确定医生的名字。

  另一个是根据字段进行分类:**单个字段或多场

  如果所有问题都是关于航空的,那么这是单个字段中的数据集。交叉域数据集可能在培训集中有许多区域,并且测试集中有许多区域。

  第三是根据数据库进行分类:

  单个表数据库:WikisQL,问题仅适用于一个表,或者数据库中只有一个表

  多表数据库:蜘蛛,问题数据库中有许多表。它产生的SQL语句可能涉及多个表之间的连接。

  第四类是根据标签类型对:

  最终结果:wikiblesquestion

  SQL语句:Wikisql,蜘蛛

  一些数据集没有给出相关的SQL语句,而是直接给出结果。以先前的示例为例,“谁已经有18岁以上”,输出可以给出SQL语句或最终结果:列出这些人名称,但没有给出SQL陈述,其中包括其中,其中,其中,其中,其中没有给出。其中,涉及的“弱监督学习”并不能解释这次。

  这次要解释的论文使用表格数据集,这也是一个表数据。也就是说,每个问题只问一个表格,与TableQQA和WikisQL有很多相似之处,但是存在某些差异,如图所示,下图:

  引入数据集后,我们将简单地介绍本文中提出的模型。

  首先,考虑一下这样一个问题:通过自然语言在SQL语言中可以是什么?实际上,最简单的想法:输入终端是自然语言句子,输出端是相应的SQL语句(根据SQL语句根据令牌和一个令牌)。

  例如,在我们面前的示例,编码器是“年龄超过18岁的人”,输出端是xx表y条件中的选择名称。

  此方法非常简单,但也伴随着一些问题:SQL语句是结构化查询语言。它具有一定的结构。这与一般语言生成任务不同。

  对于一般语言生成任务,如果更改了一个或两个单词,则其语义可能不会改变太大。但是对于SQL语句,如果单词不同,则可能无法继续执行。因此,我们需要充分利用在SQL语句中的某些语法信息中,即结构信息。根据其结构来生成,这是本文提出的,并且是根据SQL的框架生成的。

  因为TableQA数据集仅针对单个表,该表等效于省略。它可以分为两个部分,因此一个是SELECT子句,部分是where子句。

  其中,选择句子有两个部分:一个是所选表的名称,另一个是聚合操作。例如,如果我们要求列的最大,最小值或最小值或总和,我们需要收敛。

  对于部分条款,让我们详细介绍它:

  $ WOP:关键连接的位置(和 /或 /null)

  $ COLMN:数据库的名称

  $ agg:选定列的操作(null,avg,max,min,count,sum)

  $ op:Where子句中的列值

  根据TableQA数据集的统计数据,选择和最多3个条件的最大3个条件仅限于选择:最多3个条件:

  选择(Colorn)*

  Colorn Value)*

  该模型可以大致分为从底部到顶部的三个部分。

  编码器:代码输入;使用简单的BERT模型,该版本为wwwm-ext.wwm意味着它使用完整的单词覆盖范围,而EXT扩展其训练集并增加了训练部署。

  它的输入部分包括:问题和名称。将先前的“年龄超过18岁的人”为例,您可以看到上图中所示的图,T1到TL,然后在问问的每个列的名称中。表格,例如表格中的名称,学校数字或年龄。此外,与Bert输入不同,它使用[XLS]替换[Cls]。

  列表示:增强列的表示;由于每列,它可能由多个令牌组成,例如名称“名称”,这可能是两个单词。这两个单词分别具有两个嵌入。因此,如何合并这两个嵌入列以列为列的列?我们可以使用上一个XLS的指数来增强列。具体做法如下:

  首先,按照先前的XLS表示,计算所有令牌表示以计算注意力。在计算注意力之后,加上在上一个XLS中表达的嵌入后,两者的总和构成了该列的增强表示。

  在上述步骤之后,我们获得了每个令牌的表达,并在形式中获得了每列的表示。

  Sub -Model:这8个子模型的8个子模型和1个多任务。

  如前所述,我们可以将SQL语句分为不同的部分,然后分别生成每个部分,因此我们可以获得8个子任务,即:

  接下来,我们将向这8个子任务介绍他们的方法。

  任务1:s-num:列出现在选择中的列数。[1,2](2个类别)

  第一个是出现在select的列数。对于tableqa数据集,Select中的列数可能仅为一个或两个列,因此我们可以用作双阶级分类问题:使用XLS的嵌入来使线性线性转化,然后获得乙状结肠的概率。

  任务2:w-num-op:w-num中的连接和条件。[null-1,and-1,-1,-1,and-and-and-and-os-2,or-2,and-3,or-3](7类)

  第二个任务是位置中的连接和条件数。条件的数量是指“ >>”和“”<”、“=”等等条件的个数。我们可以将他们分成了7个类别,“-”前面的就是连接符,“-”后面的这些就是条件的个数。当然也可以把这两个任务进行分开,但是如果把这两个任务进行分开的话,效果与两个任务一起做相比,会大打折扣。

  那么总共是有7个类型,就可以看成是7分类的问题,因此还是 XLS表示过一个线性变换,然后再经过softmax,就可以得到这7个类别上的概率分布。

  第三个和第四个子任务是Select字句和Where字句当中出现的列。我们前面已经预测了Select当中的例数,以及Where当中的例数,那么在这一部分我们分别预测每一例所出现的概率即可。

  任务三:S-col:Select 中出现的列

  Select中出现的列:利用我们之前每一列得到增强的表示,经过一个线性变换,再过一个softmax就可以得到这一列所出现的概率。

  任务四:W-col:Where 条件中出现的列

  对Where条件当中出现的列:同样,利用不同的线性变化来进行得到这一列它所出现的概率。

  任务五:S-col-agg:Select 中出现的列的操作符

  [Null, AVG, MAX, MIN, COUNT, SUM](6分类)

  第五个任务是Select当中出现的这些操作符,这些操作符也被称为是聚合操作。比如说,我们可以求这一列当中所有数据的最大值、最小值或者求平均、求和等等。

  在TableQA当中,5种操作符加上NULL一共是6种,我们可以将其看到是一个6分类的问题。同样,我们对每一列的增强的表示做一个线性变换,然后再经过softmax就可以得到每一类的概率分布。

  任务六:W-col-op:Where 条件中出现的列对应的条件运算符

  [> / / / / < / == / !=](4分类)

  对于Where条件当中出现的这些运算符也是一样。这些运算符,包括这一类大于一个数或者小于一个数,或者是等于某个值,或者不等于某个值,一共是4类,我们可以看作是一个4分类的问题。做法和之前的Select当中的运算符一致,也是给列的增强表示过一个线性映射再经过softmax得到4类的每一类的概率分布,从中的选取最大的作为这一列的运算符。

  最后两个子任务就是服务于条件值预测。同样以我们前面的例子为例,“大于18岁的学生都有谁”。最后的结果应该是Where条件当中有一个age > 18,那么我们应该如何得到它?作者解决了两个子任务:

  任务7:从问题中说出可能是价值价值的值

  使用0/1在问题中标记令牌(1代表值,0表示非值),并且每组连续1个标记令牌的标记为一个整体使用

  第一步是从问题中提取可能是价值的短语。例如,“谁已经有18岁以上”的问题,那么此子任务是从问题中撤出“ 18”。可以采用的是标记问题中出现的令牌,例如“谁大于18”中的“ 18”,我们将标记为1,然后所有其他令牌都会在0上bem绕,并有一个我们在问题中的令牌表达的线性转换,使用Sigmoid预测它是1还是0。

  任务8:匹配出现在其中的提取短语和列

  根据任务7,我们需要匹配出现在哪里的列。

  在上一步中,我们标记为“ 18”至1,因此我们生成了“ 18”令牌序列。它是可能出现在一定条件下的值,但是在哪个列出现后,它是确定的内容这个步骤。

  匹配出现在何处的漫长说法,如果它是由短语中的多个令牌组成的,则平均表达所有令牌的文本。如下图所示,此公式等同于寻求短语和短语之间的相似性在哪里,然后通过Sigmoid。先前的U是一个学习的参数。Sigmoid后,您可以获得短语和列的匹配:如果匹配,则可以将短语用作列表。例如,18岁的年龄匹配,然后我们可以写年龄> 18岁。

  我们已经简要介绍了上面的8个子任务。通过这8个子任务,我们可以获得SQL语句并确保它与语法规则保持一致。但是它产生的SQL语句仍未执行。

  因为内部SQL语句中可能存在一些限制:

  在这些限制下,我们可以采用执行指导解码的方法:在解码过程中,删除那些无法执行的SQL语句,例如SQL语句执行的结果,或者根本无法执行它,这就是这样,这就是这样被执行,因此正在执行。我们可以在这些SQL语句中直接放弃,并选择具有符合上述条件的最大概率的SQL语句。

  接下来是实验结果。

  首先,简要介绍其采用的评估指标,即LX,X和MX。

  LX是其逻辑形式的准确性。如果有稍有不同的内容,例如“>”是错误的,或者此列是错误的,那么此示例就是此示例ISMistake。

  X是其执行结果的准确性。如果两个SQL语句可能不同(这两个SQL可能有一些差异),但是其执行结果是一致的,那么预测是正确的。

  MX是以前的LX和X的平均值。它有两个模型,一个是单个模型,另一个是一个集成模型(背后的ENS)。多个训练的结果是通过合奏集成的,更好的结果是最终获得的。从图中,我们可以看到它比以前模型的结果更好。

  由于先前的模型是基于WikisQl实现的。我们使用的TableQA与WikisQL不同,并且它比WikisQL更加困难,因此这些模型的先前模型在数据集上的TableQA上不是很好。

  下图比较了8个不同的子模型的性能:

  我们可以看到,在每个子模型上,其效果非常好。现在,它可以在合奏后取得更好的结果。

  在实验的最后一部分中,我们进行了一系列消融实验。

  从实验结果中,我们可以看到Bert-wwm-ext的版本比Bert-Base更好。最好将XLS用作前部的正面。我们将在下面为您提供更详细的介绍。

  接下来,我们将在重复过程中介绍一些细节。

  第一个是数据预处理部分。对于此数据集,其数据不标准化,并且可能发生以下情况(括号的歧义部分):

  以前的问题可以根据某些规则直接转换;可以通过通过数据库查找相关类别单词来代替以下内容。

  在“值提取”部分中,我们尝试了许多方法,例如BERT+CRF,BERT+BILSTM+CRF和BERT+半贫穷的方法。在末尾使用0/1的方法,因为其效果是因为其效果是最好的。

  如何实现0/1的方法?问题是“ Qingxiu Nancheng Department Store Co.,Ltd。在哪里?”?例如,详细说明。

  查询:Qingxiu Nancheng百货公司有限公司在哪里?

  bert_tokenizer:[[xls]','绿色','show','southern','city','00','''','have'have'','limite'','public','where'''','?'[九月]']

  价值:Qingxiu South City百货商店有限公司

  标签:[0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0]

  首先,令牌,然后获取令牌序列。如果“ Qingxiu Nancheng Department Store Co.,Ltd。”出现在SQL语句中,令牌标记为1;对于未出现在SQL语句中的另一个,如果它未出现在SQL语句中0。0。

  值检索

  因为当值提取时,提取的值可能不标准化,或者与数据库中的数据库不一致。例如,下图中的“每个人”和“ Renren.com”:

  查询1:每个人的上升和下降是多少?

  价值:大家

  在这种情况下,我们需要检索出现在值和SQL列中的所有值,然后选择最接近的单词作为最终值。然后,如果您搜索,我们可以选择许多方法,例如匹配l匹配方法和机器学习的几种方法:逻辑回归,SVR和贝叶斯。通过效果的比较,我们可以发现逻辑回报是最佳方法,其准确性为97%。

  桌列信息增强:

  在最后一部分中,表的内容已增强到列。

  如上所示,例如,区域类别从中随机选择一个列值,例如“ uguangxi”,我们的列表示为“区域,uguangxi”作为整个列的表示,并将其发送到输入端,然后进一步获得列表示。在这种方式上,列的增强最终可以提高0.4的效果。

  1.数据集未标准化。建议提取一些指定的数据进行培训和预测;

  2.不要从0中复制0。您可以根据现有模型参考现有代码。

  M-SQL:一种多任务表示方法,将自然语言转换为SQL语句

  查看本期视频和算法链接的解释,请单击:MarketPlace.huaweicloud.com/markets/aihub/artail/artail/detail/?content_id = D5F27A62-43CB-6BB5C5C068