预训练模型数据处理方法、电子设备及计算机存储介质转让专利

申请号 : CN202210478807.0

文献号 : CN114579606B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 惠彬原黎槟华李永彬孙健

申请人 : 阿里巴巴达摩院(杭州)科技有限公司

摘要 :

本申请实施例提供了一种预训练模型数据处理方法、电子设备及计算机存储介质,其中,预训练模型数据处理方法包括:获取训练样本数据,每个训练样本数据包括多轮表格问答训练样本,每轮表格问答训练样本包括自然语言查询语句和对应的数据库模式数据;将训练样本数据输入预训练模型进行特征提取,获得多轮表格问答训练样本对应的多个样本特征;基于多个样本特征和对应的正负例标签,以及预设的对比学习损失函数,对预训练模型进行训练,其中,所述正负例标签根据所述多个样本特征对应的多个数据库查询语句之间的相似度确定,所述正负例标签用于表征当前样本特征与所述多个样本特征中的其它样本特征是否语义相关。

权利要求 :

1.一种预训练模型数据处理方法,包括:

获取训练样本数据,其中,每个训练样本数据包括多轮表格问答训练样本,每轮表格问答训练样本包括自然语言查询语句和对应的数据库模式数据;

将所述训练样本数据输入预训练模型进行特征提取,获得多轮表格问答训练样本对应的多个样本特征;

基于所述多个样本特征分别对应的正负例标签,以及预设的对比学习损失函数,对所述预训练模型进行训练,其中,所述正负例标签根据所述多个样本特征对应的多个数据库查询语句之间的相似度确定,所述正负例标签用于表征当前样本特征与所述多个样本特征中的其它样本特征是否语义相关;

其中,所述多个样本特征分别对应的正负例标签通过以下方式确定:获取为所述多轮表格问答训练样本预先生成的多个数据库查询语句;

根据预设的杰卡德函数,计算所述多个数据库查询语句之间的相似度;

根据所述相似度,确定所述多轮表格问答训练样本分别对应的正负例标签;

将所述多轮表格问答训练样本分别对应的正负例标签,作为对应的所述多个样本特征的正负例标签。

2.根据权利要求1所述的方法,其中,所述基于所述多个样本特征分别对应的正负例标签,以及预设的对比学习损失函数,对所述预训练模型进行训练,包括:通过最小化所述预设的对比学习损失函数,拉近所述正负例标签中指示为正例的样本特征之间的距离,并且,拉远所述正负例标签中指示为负例的样本特征之间的距离;

根据所述对比学习损失函数经最小化处理后的损失值,对所述预训练模型进行训练。

3.根据权利要求1所述的方法,其中,所述将所述训练样本数据输入预训练模型进行特征提取,包括:将多轮表格问答训练样本中的自然语言查询语句进行第一拼接,获得第一拼接数据;

将多轮表格问答训练样本中的数据库模式数据进行第二拼接,获得第二拼接数据;

对第一拼接数据和第二拼接数据进行拼接,并且,在拼接后的自然语言查询语句之间、拼接后的数据库模式数据之间,以及所述自然语言查询语句和所述数据库模式数据之间均插入分隔符;

根据插入分隔符后的拼接数据,生成对应的拼接向量,并将所述拼接向量输入所述预训练模型,通过所述预训练模型进行特征提取。

4.根据权利要求1‑3任一项所述的方法,其中,所述方法还包括:基于训练完成的所述预训练模型的模型参数,进行从所述预训练模型至表格问答系统的模型迁移。

5.根据权利要求4所述的方法,其中,所述基于训练完成的所述预训练模型的模型参数,进行从所述预训练模型至表格问答系统的模型迁移,包括:通过将训练完成的所述预训练模型中的模型参数迁移至所述表格问答系统的自然语言理解部分,进行从所述预训练模型至表格问答系统的模型迁移。

6.根据权利要求5所述的方法,其中,所述方法还包括:

接收用户输入的当前自然语言查询请求,并获取当前自然语言查询请求之前的预设数量的历史自然语言查询请求,并基于当前自然语言查询请求和历史自然语言查询请求生成多轮自然语言查询请求;

通过所述表格问答系统的自然语言理解部分对所述多轮自然语言查询请求进行分析,确定所述多轮自然语言查询请求中与当前自然语言查询请求具有语义相关性的历史自然语言查询请求;

并根据历史自然语言查询请求和当前自然语言查询请求之间的语义相关性,为当前自然语言查询请求生成对应的数据库查询语句。

7.一种电子设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;

所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如权利要求1‑6中任一项所述的方法对应的操作。

8.一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现如权利要求1‑6中任一所述的方法。

9.一种计算机程序产品,包括计算机指令,所述计算机指令指示计算设备执行如权利要求1‑6中任一所述的方法对应的操作。

说明书 :

预训练模型数据处理方法、电子设备及计算机存储介质

技术领域

[0001] 本申请实施例涉及表格问答技术领域,尤其涉及一种预训练模型数据处理方法、电子设备及计算机存储介质。

背景技术

[0002] 由于数据结构清晰、易于维护,表格/SQL数据库成为各行各业应用最普遍的结构化数据,也是智能对话系统和搜索引擎等的重要答案来源。传统表格查询需要专业技术人员撰写查询语句(如SQL语句)来完成,因门槛高,阻碍了表格查询的大规模应用。表格问答技术(也称为TableQA)通过将自然语言直接转换为SQL查询,允许用户使用自然语言与表格数据库直接交互,越来越被广泛使用。
[0003] 一个表格问答系统主要由三部分组成,包括自然语言理解部分、对话管理部分和自然语言生成部分。其中,自然语言理解部分主要执行语义解析算法,将自然语言问句转为对应可执行的SQL语句;对话管理部分执行多轮的状态跟踪和策略优化;自然语言生成部分则根据解析出的SQL语句和SQL的执行结果生成对应的回复。对于自然语言理解部分,目前多通过预训练模型的训练输出对后续表格问答系统的自然语言理解部分进行功能支持。预训练模型是一种迁移学习的应用,其通过自监督学习从大规模数据中获得与具体任务无关的模型参数,并且,在支持一个新任务时,只需要利用该任务的标注数据对预训练模型进行微调即可实现。
[0004] 但是,因目前研究较多的是单轮的 TableQA 问题,因此目前的预训练模型也基本都在解决单轮的情况。而在真实场景中,用户经常需要通过多轮询问才能获得期待的答案,所以多轮的 TableQA 问题越来越被关注,使得如何获得满足该场景下的预训练模型成为亟待解决的问题。

发明内容

[0005] 有鉴于此,本申请实施例提供一种预训练模型数据处理方案,以至少部分解决上述问题。
[0006] 根据本申请实施例的第一方面,提供了一种预训练模型数据处理方法,包括:获取训练样本数据,其中,每个训练样本数据包括多轮表格问答训练样本,每轮表格问答训练样本包括自然语言查询语句和对应的数据库模式数据;将所述训练样本数据输入预训练模型进行特征提取,获得多轮表格问答训练样本转换对应的多个样本特征;基于所述多个样本特征分别对应的正负例标签,以及预设的对比学习损失函数,对所述预训练模型进行训练,其中,所述正负例标签根据所述多个样本特征对应的多个数据库查询语句之间的相似度确定,所述正负例标签用于表征当前样本特征与所述多个样本特征中的其它样本特征是否语义相关。
[0007] 根据本申请实施例的第二方面,提供了一种电子设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如第一方面所述方法对应的操作。
[0008] 根据本申请实施例的第三方面,提供了一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现如第一方面所述的方法。
[0009] 根据本申请实施例的第四方面,提供了一种计算机程序产品,包括计算机指令,所述计算机指令指示计算设备执行如第一方面所述的方法对应的操作。
[0010] 根据本申请实施例提供的预训练模型数据处理方案,首先,训练样本数据中包括多轮表格问答训练样本,从而使得训练样本数据中携带表格问答上下文信息,基于该训练样本数据进行训练的预训练模型通过学习也将学习到这些上下文信息。其次,在进行损失计算时,由模型根据多个样本特征分别对应的正负例标签,基于该正负例标签进行训练,可以更清楚地区分出具有语义相关性的表格问答训练样本,以为模型更好地学习表格问答训练样本的语义和相互关系服务。再者,预训练模型的损失函数采用了对比学习损失函数的形式,通过该形式,可以从多轮表格问答训练样本中找到与当前训练样本最为相关的训练样本,即保留有用的训练样本,剔除无用的训练样本,达到了深层次理解上下文关系的效果。由上,使得训练完成的预训练模型可有效适用于多轮查询场景。当将其迁移至表格问答系统后,该表格问答系统同样可有效适用于真实的、用户需通过多轮查询来获得查询结果的场景。

附图说明

[0011] 为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
[0012] 图1为适用本申请实施例的预训练模型数据处理方法的示例性系统的示意图;
[0013] 图2为根据本申请实施例一的一种预训练模型数据处理方法的步骤流程图;
[0014] 图3A为根据本申请实施例二的一种预训练模型数据处理方法的步骤流程图;
[0015] 图3B为图3A所示实施例中的一种预训练模型的输入示例的示例图;
[0016] 图3C为图3A所示实施例中的一种场景示例图;
[0017] 图4为根据本申请实施例三的一种电子设备的结构示意图。

具体实施方式

[0018] 为了使本领域的人员更好地理解本申请实施例中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请实施例一部分实施例,而不是全部的实施例。基于本申请实施例中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于本申请实施例保护的范围。
[0019] 下面结合本申请实施例附图进一步说明本申请实施例具体实现。
[0020] 图1示出了一种适用本申请实施例的预训练模型数据处理方法的示例性系统的示意图。如图1所示,该系统100可以包括服务器102、通信网络104和/或一个或多个用户设备106,图1中示例为多个用户设备。
[0021] 服务器102可以是用于存储信息、数据、程序和/或任何其他合适类型的内容的任何适当的服务器。在一些实施例中,服务器102可以执行任何适当的功能。例如,在一些实施例中,服务器102中设置有表格问答系统,以处理用户输入的涉及表格或数据库的查询请求,并返回查询结果。作为可选的示例,在一些实施例中,服务器102中还设置有预训练模型,该预训练模型也可称为表格预训练模型,以在完成训练后,迁移至表格问答系统使用。作为可选的示例,在一些实施例中,服务器102中的预训练模型基于多轮表格问答训练样本进行训练,在获得多轮表格问答训练样本对应的多个样本特征后,基于这些样本特征对应的正负例标签,该正负例标签可表征当前样本特征与其它样本特征之间的语义相关性;进而,基于多个样本特征和对应的正负例标签,以及预设的对比学习损失函数,对预训练模型进行训练,以使训练获得的预训练模型能够深层次理解查询语句上下文,挖掘有效信息,排除无用信息。
[0022] 在一些实施例中,通信网络104可以是一个或多个有线和/或无线网络的任何适当的组合。例如,通信网络104能够包括以下各项中的任何一种或多种:互联网、内联网、广域网(WAN)、局域网(LAN)、无线网络、数字订户线路(DSL)网络、帧中继网络、异步转移模式(ATM)网络、虚拟专用网(VPN)和/或任何其它合适的通信网络。用户设备106能够通过一个或多个通信链路(例如,通信链路112)连接到通信网络104,该通信网络104能够经由一个或多个通信链路(例如,通信链路114)被链接到服务器102。通信链路可以是适合于在用户设备106和服务器102之间传送数据的任何通信链路,诸如网络链路、拨号链路、无线链路、硬连线链路、任何其它合适的通信链路或此类链路的任何合适的组合。
[0023] 用户设备106可以包括与用户进行交互的设置和界面的任何一个或多个用户设备。在一些实施例中,用户设备106可以包括任何合适类型的设备。例如,在一些实施例中,用户设备106可以包括移动设备、平板计算机、膝上型计算机、台式计算机、可穿戴计算机、游戏控制台、媒体播放器、车辆娱乐系统和/或任何其他合适类型的用户设备。
[0024] 尽管将服务器102图示为一个设备,但是在一些实施例中,可以使用任何适当数量的设备来执行由服务器102执行的功能。例如,在一些实施例中,可以使用多个设备来实现由服务器102执行的功能。或者,可使用云服务实现服务器102的功能。
[0025] 基于上述系统,本申请实施例提供了一种预训练模型数据处理方案,以下通过多个实施例进行详细说明。
[0026] 实施例一
[0027] 参照图2,示出了根据本申请实施例一的一种预训练模型数据处理方法的步骤流程图。
[0028] 本实施例的预训练模型数据处理方法包括以下步骤:
[0029] 步骤S202:获取训练样本数据。
[0030] 因在表格问答系统中,模式链接(自然语言查询语句与数据库模式数据之间的联系)是其最为重要的部分之一,其需要基于自然语言查询语句与数据库模式数据进行建模。又因本申请实施例中的预训练模型后续将用于表格问答系统,因此,在对预训练模型进行训练时,其使用的每个训练样本数据包括多轮表格问答训练样本,每轮表格问答训练样本包括自然语言查询语句和对应的数据库模式数据。在具体进行训练时,多轮表格问答训练样本中的每轮都可轮流成为当前被处理的样本,结合其所属的多轮表格问答训练样本中的其它训练样本,进行训练。需要说明的是,本申请实施例中,“多轮”意指连续的多个,该多轮表格问答训练样本之间可能具有关联性,也可能不具有关联性,或者部分具有关联性部分不具有关联性。此外,还需要说明的是,本申请实施例中,若无特殊说明,“多轮”、“多个”等与“多”有关的数量均意指两个及两个以上。
[0031] 对于每轮表格问答训练样本来说,其包括自然语言查询语句和数据库模式数据两个不同部分。其中,自然语言查询语句可以为在用户数据被授权许可使用的情况下,获得的历史用户查询请求对应的数据;或者,也可以为基于部分历史用户查询请求对应的数据,按照一定的扩充规则生成的扩充数据与所述部分历史用户查询请求对应的数据的集合。对应地,每个自然语言查询语句都对应有其查询的数据库或数据表的数据库模式数据。数据库模式数据也称数据库的schema数据,是一组相互关联的数据库对象,用于表征如数据库中的表、表列、列的数据类型、索引、外键等信息。本申请实施例中,使用的数据库模式数据主要包括数据表的表名、列名、值的数据。基于此,可以将每组自然语言查询语句及其对应的数据库模式数据作为一个(一轮)表格问答训练样本。
[0032] 步骤S204:将训练样本数据输入预训练模型进行特征提取,获得多轮表格问答训练样本对应的多个样本特征。
[0033] 本申请实施例中,预训练模型可根据包括自然查询语句和数据库模式数据的表格问答训练样本,输出训练样本中的每一项对应的特征表征,即样本特征。在一种可行方式中,该预训练模型可基于Transformer结构实现。示例性地,可通过Transformer的Encoder对表格问答训练样本进行编码,生成编码向量,再由Transformer的Decoder解码出表格问答训练样本每一项对应的表征。
[0034] 步骤S206:基于多个样本特征分别对应的正负例标签,以及预设的对比学习损失函数,对预训练模型进行训练。
[0035] 其中,正负例标签根据多个样本特征对应的多个数据库查询语句之间的相似度确定。该多个数据库查询语句先根据训练样本中的自然语言查询语句生成,基于多轮表格问答训练样本对应的多个自然语言查询语句之间的相似度,即可确定多轮训练样本之间的正负例标签。又因通过预训练模型获得的样本特征与训练样本之间的对应关系,则可将多轮训练样本之间的正负例标签作为对应的多个样本特征之间的正负例标签。
[0036] 正负例标签用于表征当前样本特征与多个样本特征中的其它样本特征是否语义相关。例如,若某训练样本数据包括三轮表格问答训练样本,它们各自的自然语言查询语句分别为A、B和C,对应的数据库查询语句即SQL语句为A’、B’和C’。假设以自然语言查询语句A为基准,若A’和C’之间的语义相似度大于预设的相似度阈值,而A’和B’之间的语义相似度小于预设的相似度阈值,则相对于A,C为正例,B为负例。其中,预设的相似度阈值可由本领域技术人员根据实际需求设定,本申请实施例对此不作限制。示例性地,可以为0.5。类似地,若以自然语言查询语句C为基准,则相对于C,A为正例,B为负例。而若以自然语言查询语句B为基准,则相对于B,A和C均为负例。
[0037] 进一步地,若通过预训练模型进行特征提取,获得A、B和C所属的表格问答训练样本对应的样本特征分别为A1、B1和C1,则由上表格问答训练样本对应的正负例标签可知,相对于A1,C1为正例,B1为负例;相对于C1,A1为正例,B1为负例;相对于B1,A1和C1均为负例。
[0038] 此外,本申请实施例中,还使用了对比学习损失函数进行预训练模型的训练。对比学习损失函数是一种用于降维学习的损失函数,它可以学习一种映射关系,这种映射关系可以使得在高维空间中,相同类别但距离较远的点,通过函数映射到低维空间后距离变近,不同类别但距离较近的点,通过映射后在低维空间变得更远。这样的结果就是,在低维空间,同一种类的点会产生聚类的效果,不同种类的点会隔开。本申请实施例通过对比学习损失函数的该特性,将其应用于本申请实施例的预训练模型的训练中,从而使得语义相关的正例之间的距离更近,而语义不相关的负例之间的距离更远,以挖掘出有效信息,排除掉无用信息,达到深层次上下文理解的效果。
[0039] 基于此,通过样本特征、样本特征对应的正负例标签,结合预设的对比学习损失函数,获得对应的损失值。进而,基于该损失值对预训练模型进行训练,直到达到训练终止条件(如达到预设的训练次数或者损失值达到预设的阈值范围等)。
[0040] 可见,通过本实施例,首先,训练样本数据中包括多轮表格问答训练样本,从而使得训练样本数据中携带表格问答上下文信息,基于该训练样本数据进行训练的预训练模型通过学习也将学习到这些上下文信息。其次,在进行损失计算时,由模型根据多个样本特征分别对应的正负例标签,基于该正负例标签进行训练,可以更清楚地区分出具有语义相关性的表格问答训练样本,以为模型更好地学习表格问答训练样本的语义和相互关系服务。再者,预训练模型的损失函数采用了对比学习损失函数的形式,通过该形式,可以从多轮表格问答训练样本中找到与当前训练样本最为相关的训练样本,即保留有用的训练样本,剔除无用的训练样本,达到了深层次理解上下文关系的效果。由上,使得训练完成的预训练模型可有效适用于多轮查询场景。当将其迁移至表格问答系统后,该表格问答系统同样可有效适用于真实的、用户需通过多轮查询来获得查询结果的场景。
[0041] 实施例二
[0042] 参照图3A,示出了根据本申请实施例二的一种预训练模型数据处理方法的步骤流程图。
[0043] 本实施例的预训练模型数据处理方法包括以下步骤:
[0044] 步骤S302:获取训练样本数据。
[0045] 其中,每个训练样本数据包括多轮表格问答训练样本,每轮表格问答训练样本包括自然语言查询语句和对应的数据库模式数据,以及,每轮表格问答训练样本对应的正负例标签。
[0046] 示例性地,假设自然语言查询语句为“麻烦告诉我身高超过180的学生姓名”,其对应的数据库模式数据为“姓名 身高 性别”,则这一组数据可形成一轮表格问答训练样本,即“麻烦告诉我身高超过180的学生姓名/姓名 身高 性别”。多个类似的表格问答训练样本即可形成多轮表格问答训练样本。
[0047] 在一种可行方式中,每轮表格问答训练样本对应的正负例标签可通过以下方式获得:获取为多轮表格问答训练样本预先生成的多个数据库查询语句;根据预设的杰卡德函数,计算多个数据库查询语句之间的相似度;根据所述相似度,确定多轮表格问答训练样本分别对应的正负例标签。
[0048] 其中,预先生成的多个数据库查询语句可通过诸如人工标注等方式生成。
[0049] 因对于每两轮表格问答训练样本,其对应的SQL语句越相似,则这两轮表格问答训练样本就越语义相关。示例性地,假设两轮表格问答训练样本中的自然语言查询语句对应的SQL语句分别为A和B,则可通过下述公式计算A和B之间的Jaccard相似度:
[0050]
[0051] 上述公式中,将A(包括A的SQL语句中所有元素)和B(包括B的SQL语句中所有元素)的交集元素 在A,B的并集 中所占的比例,称为A和B的Jaccard相似系数,用符号J(A,B)表示。Jaccard相似系数是衡量A和B两个集合的相似度一种指标,即计算两个集合之间的相似程度,元素的“取值”为0或1。可选地,可将大于0.5的Jaccard相似度设定为语义相关的判定阈值。
[0052] 通过基于Jaccard函数获得的相似度来确定多个SQL语句之间的相似度,进而确定对应的表格问答训练样本的正负例标签的形式,可有效适用于本申请实施例只对多轮表格问答训练样本这种数据较为稀疏场景下的相似度评估,因传统的余弦相似度评估在数据稀疏场景中,往往会产生误导性结果。而采用Jaccard可全面且有效地利用该场景下所有数据的信息,从而获得较为准确的结果。该正负例标签可作为后续表格问答训练样本对应的样本特征的正负例标签。
[0053] 步骤S304:将训练样本数据输入预训练模型进行特征提取,获得多轮表格问答训练样本对应的多个样本特征。
[0054] 为了预训练模型更便于对训练样本数据的处理,在本申请实施例的一种可行方式中,可以将多轮表格问答训练样本中的自然语言查询语句进行第一拼接,获得第一拼接数据;将多轮表格问答训练样本中的数据库模式数据进行第二拼接,获得第二拼接数据;对第一拼接数据和第二拼接数据进行拼接,并且,在拼接后的自然语言查询语句之间、拼接后的数据库模式数据之间,以及自然语言查询语句和数据库模式数据之间均插入分隔符;根据插入分隔符后的拼接数据,生成对应的拼接向量,并将拼接向量输入预训练模型,通过预训练模型进行所述特征提取,进而获得多轮表格问答训练样本对应的多个样本特征。通过加入分隔符的方式,将多个自然语言查询语句、多个数据库模式数据,以及自然语言查询语句与数据库模式数据之间进行分隔,可以便于后续对它们的识别和处理,提高模型训练速度和效率。
[0055] 示例性地,一种预训练模型的输入如图3B所示,其简单示意为“[s]第一轮表格问答训练样本[/s]第二轮表格问答训练样本[/s]第三轮表格问答训练样本[/s]模式项1[/s]模式项2[/s]模式项3”。在一个具体示例中,假设第一轮表格问答训练样本为“麻烦告诉我身高超过180的学生姓名/姓名 身高 性别”;第二轮表格问答训练样本为“动画片‘灌篮高手’的导演是谁/动画片 导演 名称 灌篮高手”;第三轮表格问答训练样本为“这个导演还导演过什么动画片/动画片 导演 名称”。上述三轮表格问答训练样本示例中,“/”之前的表示自然语言查询语句,“/”之后的表示对应的数据库模式数据。对该三轮表格问答训练样本进行拼接并播放分隔符后,将获得“[s]麻烦告诉我身高超过180的学生姓名[/s]动画片‘灌篮高手’的导演是谁[/s]这个导演还导演过什么动画片[/s]姓名[/s]身高[/s]性别[/s]动画片[/s]导演[/s]名称[/s]灌篮高手”。上述示例中,[s]为开始符,[/s]为分隔符。需要说明的是,上述以[/s]为分隔符和以[s]为开始符仅为示例性说明,在实际应用中,本领域技术人员可根据实际需求采用其它形式的分隔符和开始符,本申请实施例对分隔符的具体实现形式不作限制。
[0056] 在获得加入了分隔符后的拼接数据后,将其转换为对应的向量形式即拼接向量,该拼接向量可被输入预训练模型。
[0057] 步骤S306:确定多个样本特征分别对应的正负例标签。
[0058] 如前所述,正负例标签根据多个样本特征对应的多个数据库查询语句之间的相似度确定。从本质上讲,因多个样本特征与多个表格问答训练样本一一对应,而多个表格问答训练样本与多个数据库查询语句一一对应,由此,可以将多个表格问答训练样本对应的多个数据库查询语句看作多个样本特征对应的数据库查询语句。进而,基于该多个数据库查询语句的相似度确定的多个表格问答训练样本的正负例标签,可直接对应至多个样本特征上,作为多个样本特征分别对应的正负例标签。也即,在确定了多轮表格问答训练样本分别对应的正负例标签后,可直接将多轮表格问答训练样本分别对应的正负例标签,作为对应的多个样本特征的正负例标签。
[0059] 其中,正负例标签用于表征当前样本特征与多个样本特征中的其它样本特征是否语义相关。通过正负例标签,可以确定某个样本特征相对于当前正在处理的样本特征为正例还是负例。其中,正例即样本特征之间具有语义相关性,负例即样本特征之间不具有语义相关性。
[0060] 步骤S308:基于多个样本特征分别对应的正负例标签,以及预设的对比学习损失函数,对预训练模型进行训练。
[0061] 在具有了正负例标签的情况下,对于某个样本特征,可以简单快速地确定与其语义相关的正例和/或与其语义不相关的负例的样本特征。进一步地,结合预设的损失函数即可获得损失值,基于该损失值对预训练模型进行训练。
[0062] 在一种可行方式中,本步骤可以实现为:通过最小化预设的对比学习损失函数,拉近正负例标签中指示为正例的样本特征之间的距离,并且,拉远正负例标签中指示为负例的样本特征之间的距离;根据对比学习损失函数经最小化处理后的损失值,对预训练模型进行训练。
[0063] 示例性地,对比学习损失函数可实现为如下公式:
[0064]
[0065] 其中,hi表示预训练模型针对第i个表格问答训练样本输出的样本特征,1≤i≤N(N为多轮表格问答训练样本的轮数);sim表示相似度函数(点积);e表示指数函数;hj表示预训练模型针对第j个表格问答训练样本输出的样本特征,1≤j≤N(N为多轮表格问答训练样本的轮数);h+表示h的正例,h‑表示h的负例;τ表示温度函数,用作归一化。
[0066] 通过最小化该对比学习损失函数,拉近正例之间的距离,拉远负例之间的距离,以找到与当前训练样本最为相关的训练样本,即保留有用的训练样本,剔除无用的训练样本,达到了深层次理解上下文关系的效果。
[0067] 对预训练模型的训练迭代往复,直到达到模型训练终止条件,如达到预设的训练次数或者损失值达到预设的阈值范围等。在终止条件达到后,即可认为模型训练完成。训练完成的预训练模型可有效理解各个自然语言查询语句的含义,尤其是针对包含有指代关系词的自然语言查询语句,可结合其对应的上下文,准确理解该指代关系,进而准确理解包含有指代关系词的整个自然语言查询语句的语义,输出更为准确的语义特征。
[0068] 在预训练模型训练完成后,可进行后续的迁移应用。为便于理解,本实施例中继续通过下述步骤S310对该迁移过程进行说明,但本领域技术人员应当明了的是,至步骤S308预训练模型的训练过程已形成完整方案,下述步骤S310为可选步骤。在实际应用中,步骤S308和步骤S310不必接续执行,本领域技术人员可根据实际需求,在任意时机,将训练完成的预训练模型迁移至表格问答系统。
[0069] 步骤S310:基于训练完成的预训练模型的模型参数,进行从预训练模型至表格问答系统的模型迁移。
[0070] 在一种可行方式中,本步骤可以实现为:通过将训练完成的预训练模型中的模型参数迁移至表格问答系统的自然语言理解部分,进行从预训练模型至表格问答系统的模型迁移。因自然语言理解部分包括对自然语言查询语句进行语义理解的部分,也包括将语义理解部分输出的特征转换为SQL语句的部分。因此,具体地,预训练模型中的模型参数可迁移至该语义理解的部分,并与后续的特征转换部分相结合,实现自然主义理解部分的Text‑to‑SQL的功能。
[0071] 因预训练模型本身即是针对表格问答系统进行的训练,因此,可直接将预训练模学习到的模型参数直接移植至TableQA的自然语言理解部分中的语义理解部分,借助于迁移来的模型参数,结合进行SQL语句转换的部分,自然语言理解部分不但可针对以自然语言输入的多轮查询语句执行语义解析,还可根据语义确定出相关联的查询语句,以进行深层次的上下文理解,进而基于具有语义关联的查询语句之间的语义信息,最终将这些查询语句转换为精准的、可执行的SQL语句。
[0072] 示例性地,该自然语言理解部分可实现为text‑to–SQL模型,具体可采用seq2seq神经网络模型的形式,输入多轮查询语句,提取出有语义关联的查询语句,排除无语义关联的查询语句,最终输出语义关联的查询语句对应的SQL语句。其中的语义理解部分可采用诸如Transformer的模型结构等。
[0073] 完成了模型迁移后的TableQA的自然语言理解部分,结合已训练完成的对话管理部分和自然语言生成部分,即可成为一个完整的表格问答系统,实现相应的表格问答功能。
[0074] 以下,通过可选步骤S312,并结合图3C,对通过上述表格问答系统进行表格问答的过程进行示意性说明。
[0075] 步骤S312:接收用户输入的多轮自然语言查询请求,并通过表格问答系统返回对应的查询结果。
[0076] 在一种可行方式中,本步骤可以实现为:接收用户输入的当前自然语言查询请求,并获取当前自然语言查询请求之前的预设数量的历史自然语言查询请求,并基于当前自然语言查询请求和历史自然语言查询请求生成多轮自然语言查询请求;通过表格问答系统的自然语言理解部分对多轮自然语言查询请求进行分析,确定多轮自然语言查询请求中与当前自然语言查询请求具有语义相关性的自然语言查询请求;并根据历史自然语言查询请求和当前自然语言查询请求之间的语义相关性,为当前自然语言查询请求生成对应的数据库查询语句。
[0077] 示例性地,如图3C所示,假设用户输入三轮自然语言查询请求,分别为:用户先问“哪些动画片是由知名导演Ben Jones或Brandon Vietti导演的”(第一轮自然语言查询请求);然后用户可能会围绕这个表格问其它的问题,比如“帮我展示出所有动画片的首播时间”(第二轮自然语言查询请求);然而当第三轮时,用户可能会接着第一轮的问题继续问,比如“知名导演的动画片的时长多长”(第三轮自然语言查询请求)。此种情况下,需要知道知名导演指的是BenJones或BrandonVietti,才能针对第三轮自然语言查询请求完成正确的解析。在包括上述三轮自然语言查询请求的一个对话session中,第一轮和第三轮是强语义相关的,而第二轮其实对于第三轮来说是冗余的信息。因此,需要表格问答系统能够识别出上述语义相关的自然语言查询请求,并对其进行正确的解析,以生成准确的SQL语句。
[0078] 基于此,当用户输入“知名导演的动画片的时长多长”的查询请求时,上述三轮自然语言查询请求均被输入表格问答系统,然后,通过其自然语言理解部分(可以实现为seq2seq模型,其参数由预训练模型的模型参数迁移而来)进行语义相关性的判定和处理,将把第二轮自然语言查询请求剔除,并基于第一轮和第三轮自然语言查询请求之间的相关性,确定第三轮自然语言查询请求中的“知名导演”意指“BenJones或BrandonVietti”,基于此将第三轮自然语言查询请求转换为SQL语句“SELECT 名字,时长FROM 动画片WHERE 导演=“Ben Jones” OR 导演=“Brandon Vietti””,其中,该斜体部分为根据第一轮和第三轮自然语言查询请求之间的语义相关性,对第三轮自然语言查询请求中的“知名导演”的信息进行补充后获得。可见,基于两者之间的语义相关性,使得转换生成的SQL语句,尤其是第三轮自然语言查询请求对应的SQL语句更为精准。
[0079] 进而,表格问答系统的自然语言生成部分基于上述SQL语句可访问相应的数据库,获得满足查询条件的、分别与第一轮和第三轮自然语言查询请求相对应的两个查询结果,进而可基于该两个查询结果生成与两轮查询请求相对应的回复,该回复可反馈给用户。
[0080] 由上可见,首先,训练样本数据中包括多轮表格问答训练样本,从而使得训练样本数据中携带表格问答上下文信息,基于该训练样本数据进行训练的预训练模型通过学习也将学习到这些上下文信息。其次,在进行损失计算时,由模型根据多个样本特征分别对应的正负例标签,基于该正负例标签进行训练,可以更清楚地区分出具有语义相关性的表格问答训练样本,以为模型更好地学习表格问答训练样本的语义和相互关系服务。再者,预训练模型的损失函数采用了对比学习损失函数的形式,通过该形式,可以从多轮表格问答训练样本中找到与当前训练样本最为相关的训练样本,即保留有用的训练样本,剔除无用的训练样本,达到了深层次理解上下文关系的效果。由上,使得训练完成的预训练模型可有效适用于多轮查询场景。当将其迁移至表格问答系统后,该表格问答系统同样可有效适用于真实的、用户需通过多轮查询来获得查询结果的场景,能够基于自然语言查询请求之间的语义相关性,转换生成更为精准的SQL语句,进而获得更为精准的查询结果。
[0081] 实施例三
[0082] 参照图4,示出了根据本申请实施例三的一种电子设备的结构示意图,本申请具体实施例并不对电子设备的具体实现做限定。
[0083] 如图4所示,该电子设备可以包括:处理器(processor)402、通信接口(Communications Interface)404、存储器(memory)406、以及通信总线408。
[0084] 其中:
[0085] 处理器402、通信接口404、以及存储器406通过通信总线408完成相互间的通信。
[0086] 通信接口404,用于与其它电子设备或服务器进行通信。
[0087] 处理器402,用于执行程序410,具体可以执行上述预训练模型数据处理方法实施例中的相关步骤。
[0088] 具体地,程序410可以包括程序代码,该程序代码包括计算机操作指令。
[0089] 处理器402可能是CPU,或者是特定集成电路ASIC(Application Specific Integrated Circuit),或者是被配置成实施本申请实施例的一个或多个集成电路。智能设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。
[0090] 存储器406,用于存放程序410。存储器406可能包含高速RAM存储器,也可能还包括非易失性存储器(non‑volatile memory),例如至少一个磁盘存储器。
[0091] 程序410具体可以用于使得处理器402执行前述多个方法实施例中任一实施例所描述的预训练模型数据处理方法对应的操作。
[0092] 程序410中各步骤的具体实现可以参见上述方法实施例中的相应步骤和单元中对应的描述,并具有相应的有益效果,在此不赘述。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的设备和模块的具体工作过程,可以参考前述方法实施例中的对应过程描述,在此不再赘述。
[0093] 本申请实施例还提供了一种计算机程序产品,包括计算机指令,该计算机指令指示计算设备执行上述多个方法实施例中的任一预训练模型数据处理方法对应的操作。
[0094] 需要指出,根据实施的需要,可将本申请实施例中描述的各个部件/步骤拆分为更多部件/步骤,也可将两个或多个部件/步骤或者部件/步骤的部分操作组合成新的部件/步骤,以实现本申请实施例的目的。
[0095] 上述根据本申请实施例的方法可在硬件、固件中实现,或者被实现为可存储在记录介质(诸如CD ROM、RAM、软盘、硬盘或磁光盘)中的软件或计算机代码,或者被实现通过网络下载的原始存储在远程记录介质或非暂时机器可读介质中并将被存储在本地记录介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件(诸如ASIC或FPGA)的记录介质上的这样的软件处理。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件(例如,RAM、ROM、闪存等),当所述软件或计算机代码被计算机、处理器或硬件访问且执行时,实现在此描述的方法。此外,当通用计算机访问用于实现在此示出的方法的代码时,代码的执行将通用计算机转换为用于执行在此示出的方法的专用计算机。
[0096] 本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及方法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请实施例的范围。
[0097] 以上实施方式仅用于说明本申请实施例,而并非对本申请实施例的限制,有关技术领域的普通技术人员,在不脱离本申请实施例的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本申请实施例的范畴,本申请实施例的专利保护范围应由权利要求限定。