掌桥专利:专业的专利平台
掌桥专利
首页

表格预训练模型的训练方法、装置、设备及介质

文献发布时间:2023-06-19 19:30:30


表格预训练模型的训练方法、装置、设备及介质

技术领域

本公开涉及计算机技术领域,尤其涉及人工智能、深度学习技术领域。

背景技术

在网页和各种行业文档种存在大量的表格,这些表格数据量庞大且结构多变,目前可采用表格理解技术从表格中获取所需的信息。例如可以将表格展开表示为自然语言,将该自然语言输入文本预训练模型,基于文本预训练模型得到与该表格对应的向量表示,然后借助该表格对应的向量表示从表格中抽取所需的信息。

发明内容

本公开提供了一种表格预训练模型的训练方法、装置、设备及介质。

根据本公开的一方面,提供了一种表格预训练模型的训练方法,包括:

将预训练任务包括的样本数据处理为样本序列,所述样本数据包括表格;

通过所述表格预训练模型的嵌入层对所述样本序列和所述样本序列中各元素在所述表格中的位置信息进行嵌入编码,得到所述样本序列中的每个元素的元素向量;

通过所述表格预训练模型的多头注意力层针对所述样本序列中各元素的分组信息,计算每个元素向量在每一分组中的注意力结果,以得到每个元素的表示向量;

基于每个元素的表示向量得到所述预训练任务对应的输出结果,基于所述输出结果对所述表格预训练模型进行训练。

根据本公开的第二方面,提供了一种表格预训练模型的训练装置,包括:

处理模块,用于将预训练任务包括的样本数据处理为样本序列,所述样本数据包括表格;

编码模块,用于通过所述表格预训练模型的嵌入层对所述样本序列和所述样本序列中各元素在所述表格中的位置信息进行嵌入编码,得到所述样本序列中的每个元素的元素向量;

计算模块,用于通过所述表格预训练模型的多头注意力层针对所述样本序列中各元素的分组信息,计算每个元素向量在每一分组中的注意力结果,以得到每个元素的表示向量;

训练模块,用于基于每个元素的表示向量得到所述预训练任务对应的输出结果,基于所述输出结果对所述表格预训练模型进行训练。

根据本公开的第三方面,提供了一种电子设备,包括:

至少一个处理器;以及

与所述至少一个处理器通信连接的存储器;其中,

所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行第一方面所述的方法。

根据本公开的第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行第一方面所述的方法。

根据本公开的第五方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现第一方面所述的方法。

应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。

附图说明

附图用于更好地理解本方案,不构成对本公开的限定。其中:

图1是本公开实施例提供的表格预训练模型的训练方法流程图;

图2是本公开实施例提供的对样本序列进行嵌入编码的示例性示意图;

图3是本公开实施例提供的一种多头注意力层的示例性示意图;

图4是本公开实施例提供的一种编码器的示例性示意图;

图5是本公开实施例提供的一种表格预训练模型的训练装置的结构示意图;

图6是用来实现本公开实施例的表格预训练模型的训练方法的电子设备的框图。

具体实施方式

以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。

通常文本预训练模型是基于语义连贯的自然语句训练得到的,因此文本预训练模型可以根据自然语句中连贯的上下文来理解整个语句和语句中的词语。

而针对表格数据,由于表格中不存在连贯的上下文,需要结合表格的结构和单元格中的内容进行理解,如表1所示。

表1

对于表格,表格中的每个单元格都是一个独立的单元,将各单元格中的内容与表格的特定结构相结合才能理解表格反应的内容。例如,根据表1中的每行的结构和单元格中的文本内容,可以得到:甲在6月1日借阅了A,借阅费用为10元;乙在6月1日借阅了B,借阅费用为10元;丙在6月1日借阅了C,借阅费用为10元;丁在6月2日借阅了D,借阅费用为10元;戊在6月3日借阅了E,借阅费用为10元。

此外,相同的词语在不同的表格中会有不同的含义,如表2和表3所示。

表2

表3

以苹果为例,在表2中,与苹果处于同一列的单元格中分别包括香蕉、火龙果和青提,根据同一列中其他词语的语义倾向,可以理解出该苹果的语义倾向于水果。在表3中,与苹果处于同一列的产品分别为A电脑、B电脑和C电脑,根据同一列中其他词语的语义倾向,可以理解出该苹果的语义倾向于电子产品。可见对表格中内容的理解依赖于表格的结构。

为了更好的理解表格,本公开实施例提供了一种表格预训练模型的训练方法,该方法可以应用于电子设备,如图1所示,该方法包括:

S101、将预训练任务包括的样本数据处理为样本序列,样本数据包括表格。

其中,本公开实施例可以包括多种预训练任务,每种预训练任务包括一个样本集,样本集中的每条样本数据均包括表格。

S102、通过表格预训练模型的嵌入层对样本序列和样本序列中各元素在表格中的位置信息进行嵌入编码,得到样本序列中的每个元素的元素向量。

电子设备可以将样本序列和样本序列中各元素在表格中的位置信息输入表格预训练模型,进而表格预训练模型的嵌入层可输出每个元素的元素向量。

S103、通过表格预训练模型的多头注意力层针对样本序列中各元素的分组信息,计算每个元素向量在每一分组中的注意力结果,以得到每个元素的表示向量。

可以理解的是,电子设备还需将样本序列中各元素的分组信息输入表格预训练模型。多头注意力封可以分别计算每个元素向量在每一分组中的注意力结果,进而针对每个元素,对该元素的元素向量对应的多个注意力结果进行softmax处理,得到该元素的表示向量。

S104、基于每个元素的表示向量得到预训练任务对应的输出结果,基于输出结果对表格预训练模型进行训练。

其中,本公开实施例中的预训练任务可以为有监督任务和无监督任务,电子设备可基于每种预训练任务的要求对表格预训练模型进行训练,直至该表格预训练模型收敛。

采用上述技术方案,可以通过表格预训练模型的嵌入层对样本序列和样本序列中各元素在表格中的位置信息进行嵌入编码,从而使得每个元素的元素向量均可融合元素在表格中的位置信息。后续多头注意力层计算每个元素向量在每一分组中的注意力结果,进而得到的每个元素的表示向量也能够融合元素在表格中的位置信息。且由于在计算注意力结果时,只需将每个元素向量与同一分组内的其他元素向量计算注意力结果,无需计算单个元素向量与所有元素向量的注意力结果,如此可以降低显存开销,使得表格预训练模型能够支持对表格对应的样本序列的全量处理。如此,通过该方法能够训练得到能够结合元素在表格中的位置信息进行表格理解的预训练模型,可以提高对表格理解的准确性。

本公开实施例中的预训练任务可以为有文本交互的预训练任务和无为本交互的预训练任务。

其中,有文本交互的预训练任务的样本数据包括输入文本和表格,该输入文本可以为查询语句(query)和/或表名语义信息。

无文本交互的预训练任务的样本数据包括表格,且不包括输入文本。

在本公开的一些实施例中,样本序列中依次包括第一元素序列、第二元素序列和表格对应的第三元素序列。

第一元素序列中第一个元素为文本起始元素,后续元素依次为查询语句中的每个文字。

其中,文本起始元素为[@TEXT],[@TEXT]是一种特殊的token,用于表示后续的元素为查询语句中的文字。例如,若查询语句为“二班作业任务”,则第一元素序列为“[@TEXT]二班作业任务”。

可选的,第一元素序列的长度为预设长度,若文本起始元素和查询语句中的文字的长度之和小于预设长度,可在第一元素序列中填充指定填充符,以将第一元素序列补齐至预设长度。作为示例,预设长度可以为32个字符的长度。

第二元素序列中第一个元素为表名语义起始元素,后续元素依次为表名语义信息包括的每个文字。

其中,表名语义起始元素为[@CAPTION],[@CAPTION]是一种表示表名的特殊token,用于表示后续的元素为表名语义信息。

第三元素序列中的第一个元素为表格起始元素,后续元素依次为表格每行中各单元格中的每个文字,且每个单元格对应的首个文字元素之前包括一个单元格起始元素。

其中,表格起始元素为[@TABLE],[@TABLE]是一种用于表示表格的特殊token。单元格起始元素为[@CELL],[@CELL]是一种用于表示单元格的特殊token,作为一个单元格文本范围的起始token。

在表格中包括合并单元格的情况下,合并单元格对应的文字元素在第三元素序列中出现一次,例如某一合并单元格位于第一列中的第1至3行,则将该合并单元格中作为第一行第一列单元格加入到第三元素序列中,在将表格的第2行和第3行转换为序列时,可直接忽略该单元格。如此,可以避免合并单元格中的内容被重复输入表格预训练模型,使得表格预训练模型支持对复杂结构表格的处理。

作为一种可选实施方式,上述样本序列可以适用于有文本交互的预训练任务和无文本交互的预训练任务。

在样本数据中包括查询语句和表名语义信息的情况下,可按照上述实施例中介绍的第一元素序列和第二元素序列的格式,将查询语句转换为第一元素序列,并将表名语义信息转换为第二元素序列。

在样本数据中不包括查询语句的情况下,第一元素序列中除第一个元素之外的元素均为指定填充符。

在样本数据不包括表名语义信息的情况下,第二元素序列中除第一个元素之外的元素均为指定填充符。

如此,可以使得各类预训练任务使用相同格式的样本序列,进而使得训练得到的表格预训练模型同时支持处理有文本交互的表格理解任务和无文本交互的表格理解任务,使得表格预训练模型的适用范围更广。

作为示例,样本序列的格式为:[CLS][@TEXT]Query...[PAD]...[PAD][@CAPTION]Caption...[PAD]...[PAD][@TABLE][@CELL]c1[@CELL]c2......[@CELL]cN。

其中,[CLS]为分隔符。“[@TEXT]Query...[PAD]...[PAD]”为第一元素序列,query为查询语句,[PAD]为指定填充符。

“[@CAPTION]Caption...[PAD]...[PAD]”为第二元素序列,Caption为表名语义信息。

“[@TABLE][@CELL]c1[@CELL]c2......[@CELL]cN”为第三元素序列,c1,c2……cN,为表格中N个单元格包括的内容。

以下结合具体例子进行说明,假设样本数据中包括以下表4。

表4

其中,表4中的每个单元格对应一个索引,表4中各单元格对应的索引如表5所示。

表5

可以看出,表4中的两个合并单元格的索引分别为6和7,两个合并单元格中的文本内容在样本序列中只会出现一次,不会重复出现。

假设预训练任务为完形填空任务,预训练数据包括表格和查询语句,该表格为表4,可以将表4中部分单元格的内容进行遮盖(blank),然后将遮盖掉的其中一个单元格中的内容作为查询语句,该单元格所表示的语义作为表名语义信息,目的是使得表格预训练模型判断查询语句应该被填入被遮盖掉的哪一单元格。

在表4中,假设遮盖“07”单元格、“曲目”单元格、“《有了你》”单元格以及“11”单元格。并将“07”作为查询语句,将“07”单元格对应的“再向虎山行”作为表名语义信息。

结合表5所示的索引,则可将该样本数据转换为以下样本序列:

[CLS][@TEXT]07[PAD][PAD][PAD][PAD][PAD][PAD][PAD][PAD][PAD][PAD][PAD][PAD][PAD][PAD][@CAPTION]再向虎山行[PAD][PA D][PAD][PAD][PAD][PAD][PAD][PAD][PAD][PAD][@TABLE][@CELL]艺人[@CELL]发行日期[@CELL]序号[@CELL][@BLK][@CELL]序号[@CELL]曲目[@CELL]张三[@CELL]1982年12月01日日[@CELL]01[@CELL]《再觅你心头梦》[@CELL]02[@CELL]《天苍苍》[@CELL]03[@CELL]《风生水起》[@CELL]04[@CELL]《逝水》[@CELL]05[@CELL][@BLK][@CELL]06[@CELL]《无题》[@CELL][@BLK][@CE LL]《再向虎山行》[@CELL]08[@CELL]《留步》[@CELL]09[@CEL L]《离情》[@CELL]10[@CELL]《青草的故事》[@CELL][@BLK][@CELL]《水茫茫》[@CELL]12[@CELL]《海澜江畔的春天》。

其中,[@BLK]用于遮挡单元格的文本内容。

后续表格预训练模型可以计算得到样本序列中的每个元素的表示向量,其中,[@CELL]的表示向量能够表示整个单元格的语义信息以及单元格的位置信息,[@TABLE]的表示向量能够表示整个表格的语义信息。

采用本公开实施例,在样本序列中包括第一元素序列、第二元素序列和第三元素序列的情况下,使得表格预训练模型可以输出查询语句对应的每个元素的表示向量,表名语义信息对应的每个元素的表示向量以及表格中每个元素的表示向量,使得该表格预训练模型可以灵活支持多种下游任务。并且,因第三元素序列中还包括表格起始元素和单元格起始元素,进而也可得到表格起始元素的表示向量和单元格起始元素的表示向量,使得该表格预训练模型支持元素级(即token级)、单元格级以及表格级的表示向量,并且基于元素级的表示向量还可以得到行列级的表示向量,可见本公开实施例的表格预训练模型支持输出多种粒度的表示向量,从而可以适配更多类型的表格理解任务,适用范围较广,通用性好。

在本公开的一些实施例中,在预训练任务均为无文本交互的预训练任务的情况下,样本序列为表格对应的第三元素序列。

第三元素序列中的第一个元素为表格起始元素,后续元素依次为表格每行中各单元格中的每个文字,且每个单元格对应的首个文字元素之前包括一个单元格起始元素。

关于第三元素序列的具体介绍可参考上述实施例中的相关描述,此处不在赘述。

在无需处理有文本交互的表格理解任务的场景下,样本序列可以只包括表格对应的第三元素序列,如此可以减少不必要的输入信息,节省计算量。

在上述实施例的基础上,上述S102、通过表格预训练模型的嵌入层对样本序列和样本序列中各元素在表格中的位置信息进行嵌入编码,得到样本序列中的每个元素的元素向量,具体可以实现为:

步骤1、通过嵌入层(embedding)将样本序列包括的每个元素编码为词向量。

步骤2、通过嵌入层基于样本序列中各元素在表格中的位置信息,编码得到每个元素的位置编码、行编码和列编码。

步骤3、通过嵌入层基于样本序列包括的每个元素在样本序列中的位置,编码得到每个元素的段编码。

其中,样本序列中可以包括多个域,每个域对应一个段编码。例如,若样本序列包括第一元素序列、第二元素序列和第三元素序列,则第一元素序列、第二元素序列和第三元素序列各自对应一个域,第一元素序列中的元素的段编码可以均为0,第二元素序列中的元素的段编码可以均为1,第三元素序列中的元素的段编码可以均为2。

步骤4、通过嵌入层基于样本序列中的各数字元素在同一行单元格中的大小顺序,得到每个数字元素的行次序编码,并基于样本序列中的各数字元素在同一列单元格中的大小顺序,得到每个数字元素的列次序编码;其中,非数字元素的行次序编码和列次序编码均为0。

例如,若一行中包括两个数字元素,分别为100和200,则可按照从大到小的顺序排序并进行列次序编码,例如200对应的列次序编码为0,100对应的列次序编码为1。

其中,步骤1至步骤4可并行执行。

步骤5、针对每个元素,通过嵌入层将该元素的词向量、位置编码、段编码、行编码、列编码、行次序编码和列次序编码进行相加,得到该元素的元素向量。

以下结合具体例子进行介绍,以样本数据包括表6,和查询语句“query?”为例。

表6

基于样本数据生成的样本序列如图2中的第一行所示,每个字符(token)对应一个样本序列中的一个元素。图2仅为示例,图2中省略了部分元素。

从图2中可以看出,“[CLS]”在位置(position)、段(segment)、列(column)、行(row)、列次序(col-rank)和行次序(row-rank)维度的编码均为0。

“Query”在position维度值的编码为1,代表该元素在查询语句中排在第1位。“Query”在segment、column、row、col-rank和row-rank维度的编码均为0。

“?”在position维度的编码为2,代表该元素在查询语句中排在第2位。“?”在segment、column、row、col-rank和row-rank维度的编码均为0。

“[@TABLE]”在position、segment、column、row、col-rank和row-rank维度的编码均为0。

“[@CELL]”在position、col-rank和row-rank维度的编码均为0,在segment、column、row维度的编码均为1,代表着该[@CELL]表示表格中的第一行第一列的单元格。

“班”在position、segment、column、row维度的编码均为1,代表着“班”为第一行第一列的单元格中的第一个元素。由于“班”不是数字,所以在col-rank和row-rank维度的编码均为0。

“组”在position维度值为2,在segment、column、row维度的编码均为1,代表着“组”为第一行第一列的单元格中的第2个元素。由于“组”不是数字,所以在col-rank和row-rank维度值均为0。

类似的,后续的“[@CELL]”在position、col-rank和row-rank维度的编码均为0,在segment和row维度值均为1,在column维度的编码为2。

“二”在position、segment和row维度的编码均为1,在column维度的编码为2,在col-rank和row-rank维度的编码均为0。

“班”在position和column维度的编码均为2,在segment和row维度的编码均为1,在col-rank和row-rank维度的编码均为0。

“确”在position和segment维度的编码均为1,在row维度的编码为5,在column维度的编码为3,在col-rank和row-rank维度的编码均为0。

“认”在position维度的编码为2,在segment维度的编码为1,在row维度的编码为5,在column维度的编码为3,在col-rank和row-rank维度的编码均为0。

“[SEP]”在position、column、col-rank和row-rank维度的编码均为0,在segment和row维度的编码均为1,[SEP]为分隔符(separation)。

进而对于每个元素,分别将该元素在各维度的编码相加,即可得到各元素的元素向量。

采用该方法,通过行编码和列编码引入了表格的结构特征,通过行次序编码和列次序编码引入了表格的数值排序特征,使得表格预训练模型可以学习到表格的结构特征和数值排序特征,从而可以更深度地理解表格,更准确的得到表格的表示向量。

在本公开的一些实施例中,上述S103中的分组信息包括行分组、列分组和单元格分组;每个行分组中包括同一行单元格在样本序列中对应的元素;每个列分组中包括同一列单元格在样本序列中对应的元素;每个单元格分组中包括同一单元格在样本序列中对应的元素。

其中,每个行分组中具体可以包括同一行单元格在样本序列中对应元素的编号,例如,样本序列中第5至10个元素对应于表格中的同一行,则行分组中包括编号5至10。

同理,每个列分组中具体可以包括同一列单元格在样本序列中对应的元素编号。每个单元格分组中具体可以包括同一单元格在样本序列中对应元素的编号。

在此基础上,上述S103、通过表格预训练模型的多头注意力层针对样本序列中各元素的分组信息,计算每个元素向量在每一分组中的注意力结果,包括:

针对同一行分组中的每个元素,通过多头注意力层分别计算该元素与该行分组信息对应的每个元素之间的注意力结果。

针对同一列分组中的每个元素,通过多头注意力层分别计算该元素与该分组信息对应的每个元素之间的注意力结果。

针对同一单元格分组中的每个元素,通过多头注意力层分别计算该元素与该分组信息对应的每个元素之间的注意力结果。

采用该方法,可以对互相之间有语义关联的元素之间计算注意力结果,而对不具有语义关联的元素之间计算注意力结果,可以降低多头注意力层的空间复杂度,提升支持处理的表格长度。

在另一实施方式中,样本数据还包括查询语句和/或表名语义信息;相应的,分组信息还包括非表格分组,非表格分组中包括查询语句对应的第一元素序列和/或表名语义信息对应的第二元素序列中的元素。

基于此,上述S103,通过表格预训练模型的多头注意力层针对样本序列中各元素的分组信息,计算每个元素向量在每一分组中的注意力结果,除了包括计算上述实施例中介绍的三种注意力结果之外,还包括:

针对非表格分组中包括的每个元素,通过多头注意力层计算该元素与样本序列中每个元素之间的注意力结果。

也就是说,对于查询语句对应的每个元素,可计算该元素与样本序列中每个元素之间的注意力结果,以得到查询语句中的每个元素与整个样本序列的语义关联。

对于表名语义信息对应的每个元素,可计算该元素与样本序列中每个元素之间的注意力结果,以得到表名语义信息中的每个元素与整个样本序列的语义关联。

采用该方法,相当于引入了行、列、单元格分组以及非表格分组的稀疏自注意力机制,四种分组的注意力计算可以并行进行,且无需计算不属于同一分组的元素之间的注意力结果,可以降低空间复杂度,进而降低显存开销。经试验,采用该方法可以将支持输入的最大元素数量由512个提升至4096个,可以支持对更长的表格的理解。

作为示例,以上述表6对应的样本序列为例,该样本序列中包括的元素的分组情况如图3所示,图3中的左侧图为行分组(也可称为多头行和列注意力层(Multi-Head Row&Column Attention)的行头(Row heads))的示例,右侧图为列分组(也可称为多头行和列注意力层的列头(Column heads))的示例。图3中对应于相同填充圆圈的元素属于同一组,作为示例,图3左侧图中,对应于实心圆圈的元素属于同一组,对应竖线填充圆圈的元素属于同一组。图3中的“X12”代表可以经过12层多头行和列注意力层的处理。

如图4所示,图4为本公开实施例提供的表格预训练模型中的编码器的示例性示意图,该编码器包括多头注意力层、残差连接和归一化网络(Add&Norm)和前馈网络(FeedForward)。该多头注意力层具体可以为多头行和列注意力层(Multi-Head Row&ColumnAttention),图4示例性的示出了一个多头行和列注意力层,实际实现中,可以包括多层多头注意力层,一层多头注意力层的输出可作为下一层多头注意力层的输入,从而使得多层多头注意力层迭代进行注意力计算,以得到更准确的表示向量。

作为示例,该编码器中可以包括12层多头注意力层。

残差连接用于解决随着模型中网络层的增加,出现的梯度消失的问题,归一化网络用于使计算得到的特征具有相似的尺度,以加快模型的收敛。前馈网络是一种神经网络模型,通过简单的非线性函数的多次复合,以实现输入到输出的复杂映射。

在本申请的一些实施例中,预训练任务可以包括元素级任务、单元格级任务、行列级任务以及表格级任务。

元素级任务用于基于预训练模型预测表格的指定单元格的指定位置包括的文字。

单元格级任务用于基于预训练模型进行以下至少一种预测:预测与查询语句相关的单元格、预测指定单元格中包括的文字、预测单元格类型、预测单元格之间的关系、预测表格中包括的错误单元格。

表格级任务用于基于预训练模型预测表格是否与查询语句相关,和/或预测表格类型,如此,基于上述预训练任务得到的表格预训练模型可以支持不同粒度的表示向量,因此采用该方法训练得到的表格预训练模型适用于元素级、单元格级、行列级以及表格级的表格理解任务,相较于现有技术中,表格预训练模型通常支持一种表格理解任务,该方法训练得到的表格预训练模型具有较广泛的适用性。

作为示例,本公开实施例中,电子设备可以基于从网络数据提取的表格数据,构建11种预训练任务。其中包括6种监督预训练任务和5种自监督预训练任务。

在有文本交互的场景下,基于从网络数据提取的表格数据,构建4种预训练任务,包括:

第一种预训练任务为:单元格检索(Cell Retrieval)任务,是监督预训练任务。

该任务具体为:表格预训练模型根据给定输入文本(query),找出表格中的答案单元格,该任务对应的表格预训练模型的输入数据的来源包括query和表格,表格中的标注单元格为与query对应的答案单元格,该任务对应的输出为表格中各个单元格为答案单元格的概率。

选择该任务的目的为:提升表格预训练模型在给定query的条件下,对单元格粒度的表示能力。

电子设备利用表格预训练模型之后的输出层输出的各个单元格为答案单元格的概率和输入该表格预训练模型的标注单元格,计算损失函数,进而调整表格预训练模型中的参数,直至表格预训练模型收敛。

例如,以样本数据包括表7为例,则输入的query可以为:二班作业任务,对应的标注数据为“道路整平”单元格,即“道路整平”单元格为答案单元格。

表7

第二种预训练任务为:问题解析(Question Parsing)任务,是监督预训练任务。

该任务具体为:表格预训练模型根据给定输入query,找出表格中与输入query相关的单元格,该任务对应的输入为输入数据的来源包括query和表格,表格中的标注单元格为与query相关的单元格,该任务对应的输出为每个单元格与query相关的概率。

选择该任务的目的为:提升表格预训练模型在给定query的条件下,对单元格粒度的表示能力。

电子设备可以利用表格预训练模型之后的输出层输出的每个单元格与输入query相关的概率以及实际的标注单元格,计算损失函数,进而调整表格预训练模型中的参数,直至表格预训练模型收敛。

例如,以样本数据包括表8为例,输入的query为:二班作业任务。对应的标注单元格为“第二班组”单元格和“作业任务”单元格。

表8

第三种预训练任务为:表格检索(Table Retrieval)任务,是监督预训练任务。

该任务具体为:表格预训练模型根据给定输入query,判断表格与query是否相关,该任务对应的表格预训练模型的输入数据的来源为query和表格,被标注的表格为与query相关的表格。该任务对应的输出为表格和query相关的概率。

选择该任务的目的为:提升表格预训练模型在表格粒度的表示能力。表格预训练模型可以将query与query相关的表格映射到同一语义空间内,如此,在将表格预训练模型应用于涉及表格-文本联合建模的下游任务时,可以准确快速的完成表格和文本之间的内容迁移。

电子设备利用表格预训练模型之后的输出层输出的表格和query相关的概率,以及被标注的表格,计算损失函数,进而调整表格预训练模型中的参数,直至表格预训练模型收敛。

例如,以样本数据包括表9为例,输入的query为:“2022年1月14日二班组的工作负责人是谁?任务是什么?”对应的标注为该表格与query相关。

表9

第四种预训练任务为:单元格级完形填空(Cell-level Cloze)任务,是自监督预训练任务。

该任务具体为:遮挡表格中的N个单元格,将被遮挡的N个单元格中的文本作为候选文本,将其中一个候选文本作为查询语句,将表格和查询语句以序列的形式输入表格预训练模型,该任务对应的输出为查询语句应填入每个被遮挡单元格的概率。

选择该任务的目的为:使得表格预训练模型通过表格其他单元格信息为被遮挡的单元格选择合适的候选文本,以及学习单元格间联合文本分布,捕获单元格之间的关系。

例如,以样本数据包括表10为例,可以将文本内容“工作地点”作为查询语句,并将表10中的“工作地点”单元格和“道路”平整单元格进行遮盖,作为样本数据。

表10

另外,在无文本交互的场景下,可以构建7种预训练任务,包括:

第一种预训练任务为:单元格类型分类(Cell Type Classification)任务,是监督预训练任务。

该任务具体为:表格预训练模型预测单元格类型,该任务对应的表格预训练模型的样本数据为表格和标注单元格的单元格类型,该任务对应的输出为标注单元格属于某种单元格类型的概率。

选择该任务的目的为:使表格预训练模型在单元格能够构建单元格结构特征和文本特征到类型的映射,有助于下游任务迁移。

例如,以样本数据包括表11为例,表11中包括的单元格类型有:表头、表值和无用信息,其中工作地点单元格和道路整平单元格可作为标注单元格,工作地点单元格的单元格类型为表头,道路整平单元格的单元格类型为表值。

表11

第二种预训练任务为:单元格对关系分类(Cell Pair RelationClassification)任务,是监督预训练任务。

该任务具体为:表格预训练模型预测单元格之间的关系,该任务对应的表格预训练模型的样本数据为表格和标注单元格之间的关系类型,该任务对应的输出为标注单元格间的关系类型属于某种关系类型的概率。

选择该任务的目的为:提升表格预训练模型在单元格级的数据维度,对单元格关系的理解。

例如,样本数据可以包括表12,单元格关系可以包括:表头与子表头、表头与表值和无关。其中,开始时间单元格和2022.01.05单元格为标注单元格,标注单元格的关系类型为表头与表值。

表12

/>

第三种预训练任务为:错误单元格检测(Corrupt Cell Detection)任务,是自监督预训练任务。

该任务具体为:选取一部分单元格,对选取的单元格中的文本进行更改或交换后,将表格以序列的形式输入表格预训练模型,表格预训练模型预测表格中的单元格文本内容时是否存在错误,该任务对应的输出为每个单元格文本内容错误的概率。

选择该任务的目的为:提升表格预训练模型在单元格级的数据维度,识别部分和表格单元格分布的能力,提高表格预训练模型在语义层面对表格数据分布的认知。

例如,样本数据可以包括表13,将工作地点单元格中的文本内容“工作地点”,和道路整平单元格中的文本内容“道路整平”进行了交换。

表13

第四种预训练任务为:表格类型分类(Table Type Classification)任务,是监督预训练任务。

该任务具体为:表格预训练模型预测表格类型,该任务对应的样本数据包括标注表格和标注表格的表格类型,该任务对应的输出为标注表格的表格类型属于某种表格类型的概率。

选择该任务的目的为:提升表格预训练模型在表格级的数据维度,对表格的表示能力。

例如,表格类型包括:行表、列表、离散表和堆叠表等。输入序列中的标注表格如表14所示,表格中所有单元格均为标注单元格,表14的表格类型为行表。

表14

第五种预训练任务为:掩码语言模型(Masked Language Model,MLM)任务,是自监督预训练任务。

该任务具体为:遮挡一定数量的字符(token),表格预训练模型通过其他token预测被遮挡的token,该任务对应的样本数据为被遮挡一定数量token的表格,该任务对应的输出为表格中被遮挡的token为某个token的概率。

选择该任务的目的为:使得表格预训练模型学习表格中单元格内和单元格间的文本分布,提高对表格单元格中文本的理解能力。

例如,输入序列中的被遮挡一定数量token的表格如表15所示,[M]表示被遮挡的token:

表15

以表15为例,该任务对应的输出为A市[M]区C路中的[M]是B的概率是90%,是C的概率是10%,则可选取概率最高B作为该任务对应的最终预测结果。

第六种预训练任务为:完整单元格掩码(Whole Cell Masking)任务,是自监督预训练任务。

该任务具体为:选取一定数量的单元格,遮挡选取的单元格中的全部token,表格预训练模型通过其他token预测被遮挡的token,该任务对应的样本数据为一定比例单元格中的token被全部被遮挡的表格,该任务对应的输出为每个被遮挡的单元格中的全部token为某串token的概率。

选择该任务的目的为:使表格预训练模型通过表格中其他单元格的信息,预测被遮挡单元格的文本内容,学习单元格间联合文本分布和单元格间的关系。

例如,该样本数据如表16所示,[M]表示被遮挡的token。

表16

以表16为例,针对第二班组左边的[M][M][M][M],该任务对应的输出为[M][M][M][M]是作业班组的概率是70%,是工作班组的概率是30%,则可选取概率最高作业班组作为该任务对应的最终预测结果。

第七种预训练任务为:单元格键值恢复(Cell Value Recovery)任务,是自监督预训练任务。

该任务具体为:表格预训练模型根据单元格表示和位置嵌入(positionembedding),预测单元格中的第N个token具体是什么。该任务对应的样本数据包括表格,该任务对应的输出为指定单元格中第N个token为指定token的概率。

选择该任务的目的为:使得表格预训练模型在对样本序列中的元素进行复杂的交互计算后,单元格表示向量仍能表示该元素的语义信息,可以提高单元格表示和单元格中包括的token的相关性,能够使得表格预训练模型能够区分字面相似的文本。

需要说明的是,本公开实施例中的表格预训练模型用于对样本序列进行向量表示,在训练过程中,还需基于各预训练任务在该表格预训练模型后连接不同的解码层和输出层。

在完成表格预训练模型的训练后,可以进一步验证表格预训练模型对表格和单元格的表示能力。作为示例,基于实际应用中会出现的业务场景,本公开实施例中可以选择5种验证任务对表格预训练模型进行验证。

需要说明的是,本公开实施例中的表格预训练模型用于对样本序列进行向量表示,在训练过程中,还需基于各预训练任务的特点,在该表格预训练模型后连接不同的解码层和输出层,以完成各预训练任务。

本公开实施例中对表格预训练模型训练时所使用的表格,可以基于公开网页中的数据构建。例如,可以基于百科数据和各行业的公开数据,构建1.82M关系表数据、0.68M实体表数据、0.62M堆叠实体表数据和0.67M堆叠关系表数据,从而使用结构丰富、多行业的表格数据对表格预训练模型进行训练,使得表格预训练模型的适用范围更广。

作为示例,可以选择单元格检索(Cell Retrieval)任务、表格检索(TableRetrieval)任务、单元格类型分类(Cell Type Classification)、单元格对关系分类(CellPair Relation Classification)任务和表格类型分类(Table Type Classification)任务,其中前4种任务的样本数据均来自于实际业务数据,最后一种验证任务的数据可来自学界。

上述5种验证任务的具体内容与上述实施例中对应的预训练任务相同,可参考上述实施例中的相关描述,此处不在赘述。

通过5种验证任务,可以反应表格预训练模型对表格的理解能力,以及利用该表格预训练模型对下游业务的增益。

如表17所示,经验证,在单元格类型分类任务中,表格预训练模型Base-v1.0的业务实际收益相较于传统的模型底座ERNIE-3.0,效果提升3.3%;

在单元格对关系分类任务中,基于相同的数据集,该表格预训练模型Base-v1.0的业务实际收益相较于传统的模型底座ERNIE-1.0,效果提升6.8%;

在表格检索任务中,基于相同的数据集,该表格预训练模型Base-v1.0的业务实际收益相较于传统的模型底座ERNIE-1.0,效果提升4.6%;

在表格类型分类任务中,基于相同的数据集,该表格预训练模型Base-v1.0的业务实际收益相较于传统的模型底座ERNIE-2.0,效果提升8.7%,如此可见,采用本公开提供的方法,可以提高预训练模型对表格的表示能力。

表17

本公开的技术方案中,所涉及的样本数据的收集、存储、使用、加工、传输、提供和公开等处理,均符合相关法律法规的规定,且不违背公序良俗。

需要说明的是,本实施例中的样本数据来自于公开数据集。

基于相同的构思,本公开实施例提供一种表格预训练模型的训练装置,如图5所示,包括:

处理模块501,用于将预训练任务包括的样本数据处理为样本序列,所述样本数据包括表格。

编码模块502,用于通过所述表格预训练模型的嵌入层对所述样本序列和所述样本序列中各元素在所述表格中的位置信息进行嵌入编码,得到所述样本序列中的每个元素的元素向量。

计算模块503,用于通过所述表格预训练模型的多头注意力层针对所述样本序列中各元素的分组信息,计算每个元素向量在每一分组中的注意力结果,以得到每个元素的表示向量。

训练模块504,用于基于每个元素的表示向量得到所述预训练任务对应的输出结果,基于所述输出结果对所述表格预训练模型进行训练。

可选的,样本数据还包括查询语句和/或表名语义信息;分组信息还包括非表格分组,非表格分组中包括查询语句对应的第一元素序列和/或表名语义信息对应的第二元素序列中的元素。

计算模块503,还用于:

针对非表格分组中包括的每个元素,通过多头注意力层计算该元素与样本序列中每个元素之间的注意力结果。

可选的,样本序列为表格对应的第三元素序列。

第三元素序列中的第一个元素为表格起始元素,后续元素依次为表格每行中各单元格中的每个文字,且每个单元格对应的首个文字元素之前包括一个单元格起始元素。

可选的,样本序列中依次包括第一元素序列、第二元素序列和表格对应的第三元素序列。

第一元素序列中第一个元素为文本起始元素,后续元素依次为查询语句中的每个文字。

第二元素序列中第一个元素为表名语义起始元素,后续元素依次为表名语义信息包括的每个文字。

第三元素序列中的第一个元素为表格起始元素,后续元素依次为表格每行中各单元格中的每个文字,且每个单元格对应的首个文字元素之前包括一个单元格起始元素。

可选的,编码模块502,具体用于:

通过嵌入层将样本序列包括的每个元素编码为词向量。

通过嵌入层基于样本序列中各元素在表格中的位置信息,编码得到每个元素的位置编码、行编码和列编码。

通过嵌入层基于样本序列包括的每个元素在样本序列中的位置,编码得到每个元素的段编码。

通过嵌入层基于样本序列中的各数字元素在同一行单元格中的大小顺序,得到每个数字元素的行次序编码,并基于样本序列中的各数字元素在同一列单元格中的大小顺序,得到每个数字元素的列次序编码;其中,非数字元素的行次序编码和列次序编码均为0。

针对每个元素,通过嵌入层将该元素的词向量、位置编码、段编码、行编码、列编码、行次序编码和列次序编码进行相加,得到该元素的元素向量。

可选的,在样本数据中不包括查询语句的情况下,第一元素序列中除第一个元素之外的元素均为指定填充符。

在样本数据不包括表名语义信息的情况下,第二元素序列中除第一个元素之外的元素均为指定填充符。

可选的,在表格中包括合并单元格的情况下,合并单元格对应的文字元素在第三元素序列中出现一次。

可选的,预训练任务包括元素级任务、单元格级任务、行列级任务以及表格级任务。

元素级任务用于基于预训练模型预测表格的指定单元格的指定位置包括的文。

单元格级任务用于基于预训练模型进行以下至少一种预测:预测与查询语句相关的单元格、预测指定单元格中包括的文字、预测单元格类型、预测单元格之间的关系、预测表格中包括的错误单元格。

表格级任务用于基于预训练模型预测表格是否与查询语句相关,和/或预测表格类型。

根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。

图6示出了可以用来实施本公开的实施例的示例电子设备600的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。

如图6所示,设备600包括计算单元601,其可以根据存储在只读存储器(ROM)602中的计算机程序或者从存储单元608加载到随机访问存储器(RAM)603中的计算机程序,来执行各种适当的动作和处理。在RAM 603中,还可存储设备600操作所需的各种程序和数据。计算单元601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。

设备600中的多个部件连接至I/O接口605,包括:输入单元606,例如键盘、鼠标等;输出单元607,例如各种类型的显示器、扬声器等;存储单元608,例如磁盘、光盘等;以及通信单元609,例如网卡、调制解调器、无线通信收发机等。通信单元609允许设备600通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。

计算单元601可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元601的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元601执行上文所描述的各个方法和处理,例如表格预训练模型的训练方法。例如,在一些实施例中,表格预训练模型的训练方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元608。在一些实施例中,计算机程序的部分或者全部可以经由ROM 602和/或通信单元609而被载入和/或安装到设备600上。当计算机程序加载到RAM 603并由计算单元601执行时,可以执行上文描述的表格预训练模型的训练方法的一个或多个步骤。备选地,在其他实施例中,计算单元601可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行表格预训练模型的训练方法。

本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、复杂可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。

用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。

在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。

为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。

可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。

计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。

应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。

上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。

相关技术
  • 模型训练方法、装置、设备以及介质
  • 模型训练方法、广告推荐方法、相关装置、设备及介质
  • 机器学习模型训练方法、装置、存储介质和计算机设备
  • MR图像预测模型的训练方法、装置、设备及存储介质
  • CT图像预测模型的训练方法、装置、设备及存储介质
  • 表格结构识别及模型训练方法、装置、设备和存储介质
  • 无边框表格复原模型训练方法、装置、计算机设备和介质
技术分类

06120115935990