TUTA

论文:TUTA: Tree-based Transformers for Generally Structured Table Pre-training (arxiv.org)

code:microsoft/TUTA_table_understanding(github.com)

Abstract

近期对表理解的尝试主要集中在关系表上,而忽略了其它的表结构。

本文提出了一个统一的,用于理解一般结构化表的预训练架构——TUTA.

在该架构中,为理解空间、层次结构以及语义信息,我们使用三种新奇的结构感知机制改进Transformer:

  1. 设计了一种统一的基于树的结构——二维坐标树,并用来描述一般结构化表的空间信息和层次信息
  2. 提出了基于树的注意机制和位置嵌入来更好地捕获空间和层次信息
  3. 设计了三个渐进的预训练目标,以实现在token、cell和table级别上的表示

1 Introduction

不同于自然语言文本,表格通常以二维矩阵的形式组织单元格,并且具有诸如边界、合并、对齐、粗体等风格的格式,以下是四种不同风格的表格:

图1 四种不同风格的表格

表理解任务包括实体链接、列类型标识、回答表上的自然语言问题以及为表生成数据分析。然而目前的工作只聚焦在关系表上,这些关系表只占一般web表的0.9%。这导致了前沿表理解技术和各种结构的现实世界表之间的很大的差距。

  • 诸多尝试通过识别表的层次结构和单元格类型,从各种结构化的表中提取关系数据。不过,为结构化信息打标签是件非常耗时费力的事,标签短缺给机器学习方法带来了巨大挑战。
  • 由于大规模预训练语言模型在许多自然语言任务中的成功,缓解标签短缺挑战的一个有效方法是在大量未标签表上进行自监督预训练

预训练语言模型

  • TABERTTAPAS通过对表及其文本描述的联合预训练,通过关系表回答目标问题。
  • TURL尝试在关系表上预训练嵌入信息来增强表知识匹配与表扩充。

然而,由于结构简单的原因,这些预训练方法仍然只针对关系web表。在关系表中,每一列是异构的,并且由一个列名描述,因此TABERT使用相应的列名来扩充每个数据单元格,TURL控制每个单元格仅从其行和列中聚合信息。


因此,我们致力于提出一种结构感知的方法,完成一般结构表的预训练。

三个主要贡献

  1. 对于一般结构化的表,我们设计了一个二维树来定义一般结构化表中的单元格坐标和单元格距离。基于二维树,我们提出了TUTA,一种具有距离感知自注意的结构感知预训练方法。为了更好地结合空间和结构信息,我们设计了两种关键的技术,称为树的位置嵌入和基于树的注意,这在整个实验中被证明是非常有效的。
  2. 我们在TUTA中采用了三种新的预训练任务,包括token级别的屏蔽语言模型(MLM)、cell级别的多选择完形填空(CLC)和table级别的上下文检索(TCR)。
  3. 为了证明TUTA的有效性,我们在表结构理解中的两个关键任务上对预先训练好的模型进行了微调:cell类型分类(CTC)和table类型分类(TTC)。它在五个被广泛研究的数据集上达到了SOTA。

2 Preliminaries

2.1 Dataset construction

增大容量与多样性的两种途径:

  1. 结构上,除了关系表外,还包含其他结构,例如矩阵表
  2. 文件类型上,还包括电子表格

2.2 Bi-dimensional coordinate tree

Tree-based position

我们将二维坐标树定义为有向树,其中每个节点都有一个唯一的父节点和一个有序的有限子节点列表。

  • 它有两个正交的子树:一个top tree和一个left tree
  • 对于一个节点的位置,可以从它到top/left tree root的path中得到
  • 它的顶部和左节点的位置组合成一个唯一的二维树坐标。

Tree-based distance

我们定义把两个节点的top/left tree distance记为最短路径的步数。

  • bi-tree distance则是top tree distance与left tree distance之和

另外,我们的二维坐标可以同时应用在层次表与扁平表。在扁平表上,树坐标退化为矩形笛卡尔坐标,并且同一行/列两个单元格的距离为2,否则为4。标题以及环绕的自然语言描述因为都是全局的信息,距离设置为0.

Tree extraction

树提取包括两个步骤:(1)检测表中的header区域(2)从头中提取层次结构

  1. 本文使用基于CNN的方法检测header
  2. 本文基于人工格式的常见用法,整合了有效的启发式方法来提取header层次结构,例如顶部标题中的合并单元格和左侧标题中的缩进级别。

3 TUTA Model

我们的TUTA模型基于BERT模型,主要在四方面进行了增强:

  1. 在表语料库的通用源上构建第一个专用词汇表,以更好地在现实世界的表中编码通用token
  2. 引入基于树的位置嵌入来联合 单元格位置以及header层次结构 的信息。
  3. 提出一种结构感知注意机制,以促进结构相邻上下文的语义流
  4. 设计三个预训练目标,逐步学习token、cell和table级别的表征。

3.1 Vocabulary construction

与NL文档中的长文本不同,表格中的单元格字符串通常具有较短的长度和简洁的含义,构成了与NL文档中的非常不同的单词分布。

image-20221006233201970

我们使用WordPiece模型构建了第一个表的专用词汇表,除了已经在BERT中的令牌之外,还获得了9,754个新令牌。

3.2 Embedding layer

嵌入信息来自多个部分:in-table $E_{t_pos}$,in-cell $E_{c_pos}$,token semantics $E_{tok}$,numerical properties $E_{num}$,formatting features $E_{fmt}$

In-table position

  • 对于不同深度的树获得统一长度的坐标,我们将top/left tree坐标扩展到预定义的最大长度L

3.3 Tree attention

基于bi-tree坐标和距离,我们提出了基于树的attention

通用的Self-attention因允许每个token关注其它所有token,容易注意力发散。

对于局部的cell而言,空间信息和层次化信息对去芜存菁非常重要。

我们的目标就是设计一种结构感知的注意力机制。

TUTA架构

结构感知的实现也很简单,就是添加一个可见性矩阵来实现masked attention:

其中该矩阵M是一个对称矩阵,对于第i个token $tok_i$与它的邻域$SN_i$,当$tok_j \in SN_i$,设置$M_{i,j}=1$,否则$M_{i,j}=0$。邻域的定义是通过tree distance和一个预定义的阈值D得到的,当tree distance小于D认为两个cell是相邻的。

3.4 Pre-training objectives

三个递进的级别:token,cell,table

  1. Masked language modeling(MLM):对于token级别,我们采用在自然语言预训练中最常见的掩蔽语言建模目标。
  2. Cell-level Cloze(CLC):对于cell级别,我们设计了cell完形填空目标。
  3. Table context retrieval(TCR):对表上下文是否相关的判断。

预训练任务示例

TURL

论文:TURL: Table Understanding through Representation Learning (arxiv.org)

code:“TURL: Table Understanding through Representation Learning” (github.com)

词汇表征: Word representation

输入嵌入: Input Embedding

关系Web表:relational Web table,指在HTML代码的帮助下展现在网络上的具有行列结构的表格。

关系Web表示例图

Abstract

在本文中,我们提出了TURL,一个新的框架,它引入了关系Web表的预训练/微调范式。

在预训练期间,我们的框架以一种无监督的方式学习关系Web表上的深度上下文表征。它的通用模型设计与预训练的表征可凭借最小的任务特定的微调应用于广泛的任务。

具体来说,我们提出了一个【结构感知】(Structure-aware)的Transformer编码器来建模关系Web表的行-列结构,并提出了一个新的掩蔽实体恢复(MER)预训练目标,以捕获大规模未标记数据中的语义和知识。

1 Introduction

一方面,在关系Web表数据集上的工作通常依赖于复杂设计的特定于任务的方法,有着以下的缺点:

  • 简单的特性只捕获浅层模式,并且通常无法处理Web表中的灵活模式和各种表达式
  • 特定于任务的特性和模型架构需要努力进行设计,并且不能很好地跨任务进行泛化

另一方面,预训练/微调范式在非结构化文本上取得了成功,但几乎没有扩展到对关系Web表这种范式研究上。

此外,像Word2Vec这样的浅层神经模型的学习能力相对有限,这阻碍了对关系Web表中包含的复杂语义知识的捕获。

综上所述,为填补空白,我们提出了新框架TURL,通过无监督方式的预训练和特定任务的微调来学习关系Web表上的深度上下文表征。

两个主要挑战:

  1. Relational table encoding:挑战在于开发一种建模行和列结构的方法,以及集成来自表的不同组件的异构信息。
  2. Factual knowledge modeling:关系Web表包含大量关于实体的事实知识,现有的语言模型无法直接捕获

Relational table encoding

我们将来自不同表组件的信息编码到单独的输入嵌入中,并将它们融合在一起。接下来我们使用了带有掩码自监督的结构感知Transformer编码器。

我们通过限制每个元素只聚合来自其他结构相关元素的信息,来显式地对行和列结构进行建模。为实现这一点,我们构建了一个基于表结构的可见性矩阵,并将其作为自注意层的附加掩模。

Factual knowledge modeling

我们首先在预训练学习每个实体的嵌入。然后,我们在可见性矩阵的帮助下,对同一行或列中的实体之间的关系进行建模。

最后,我们提出了一个掩蔽实体恢复(MER)预训练的目标。该技术随机屏蔽表中的实体,目的是基于其他实体和表上下文恢复屏蔽项。

我们的贡献主要有以下三点:

  1. TURL是第一个向关系Web表引入预训练/微调范式的框架
  2. 我们提出了一种结构感知的变压器编码器来建模关系Web表中的结构信息。我们还提出了一个新的屏蔽实体恢复(MER)预训练目标,以学习关系Web表中的语义和关于实体的事实知识。
  3. 为了促进这个方向的研究,我们提出了一个包含6个不同任务的表解释和增强的基准。

2 Preliminary

表1 符号表

【定义一】给定一个关系Web表语料库,表征学习任务旨在以无监督的方式为所有Table caption 𝐶和Header 𝐻以及每个实体中的所有token(例如,所有实体单元𝐸和主题实体$e_t$)学习任务无关的上下文向量表征。

3 Related Work

Representation Learning

Word2Vec等工作在大规模文档上预训练分布式词汇表征,而词汇表征被广泛应用在输入嵌入中并取得了比随机初始化更优秀的表现。

然而潜在的一词多义问题,即在不同语境中模拟不同的词汇使用,激发了上下文化词汇表征的发展。

不同于学习每个词汇固定的嵌入,该工作建立了学习句子中联合分布概率的语言模型。这种语言模型在大量NLP任务中取得了SOTA的结果。


在知识库(Knowledge Base)表征学习方面,ERNIE利用预训练知识库嵌入和去噪实体自动编码器目标,将知识库信息注入到预训练过的BERT模型中,实验结果表明这一操作对实体链接、关系提取等任务有效。


尽管在文本和知识库上取得了表征学习的成功,但是关系Web表上下文表征学习的探索还彻底。先前NLP社区的两篇论文研究了对Web表的预训练,以帮助表上的语义解析【TABERT】或问题回答【TAPAS】任务。

在这项工作中,我们介绍了TURL,一种用于学习同时保留语义和知识信息的关系Web表的深度上下文表征的新方法。

Table Interpretation

表解释:旨在揭示关系表中包含的数据的语义属性,并将这些信息转换为机器可理解的知识。

这个任务通常在现有知识库帮助下完成,提取的知识可用于构建和填充知识库。

表解释主要有三个任务:

  1. 实体链接:进行特定实体的检测和歧义消除,这是表解释的关键步骤
  2. 列类型注释:用知识库类型注释列
  3. 关系提取:用知识库谓词来解释列对之间的关系

Table Augmentation

我们希望为用户在手动编写表格时提供一些智能的帮助,这推动了表扩充的研究。表扩充是指使用附加数据扩展种子查询表的任务。

对关系表,这可以分为三个子任务:

  1. 用于为主题列检索实体的行填充:搜索与种子实体语义相关的补体表,排名靠前的表用于填充。
  2. 填充给定主题实体的单元格值的单元格填充
  3. 提供推荐的Header,以完成表模式的模式扩增

Existing benchmarks

表解释的若干基准:

  1. T2Dv2
  2. Wikipedia from Limaye
  3. WikiGS
  4. SemTab 2019

表扩充几乎没有对应的基准

尽管这些基准已经被用在最近的研究中,但是它们仍存在缺点:

  1. 它们通常是具有有限注释的小的采样表集
  2. SemTab 2019包含了大量的实例;但是,它们中的大多数都是自动生成的,并且缺乏Web表的元数据/上下文

基于此,我们编译了一个更大的基准测试,包括表解释表扩充任务。


4 Methodology

图1 TURL 概览图

在本节中,我们将介绍TURL的框架,该框架可以在关系表上进行无监督表征学习。

首先,TURL将在无标签的关系Web表语料库上预训练,以学习单词的语义以及实体之间的关系知识。之后只需要进行微调即可满足各种下游任务。

4.1 Model Architecture

如概览图所示,TURL由三个模块组成:

  1. 将输入表的不同部分转换为输入嵌入的embedding layer
  2. 捕获文本信息以及关系知识的N个堆叠的结构感知Transformer编码器
  3. 用作预训练目标的投影层

图2 模型关于输入输出的演示

4.2 Embedding Layer

如图2所示,分别对token和entity进行编码。

  • token的表征为三项之和:
    • word embedding
    • type embedding
    • position embedding:提供在caption或header中的相对位置信息
  • entity的表征计算:

其中$e^e$是预训练学到的entity embedding,$e^m$是word embedding的平均值。

4.3 Structure-aware Transformer Encoder

  • 基于Transformer进行改造
  • 在Multi-Head Self-Attention上增加了可见性矩阵(visibility matrix)

公式

Visibility matrix

图3 可见性矩阵的图形化描述

为保持行/列结构,我们需要将位于同一行/同一列的信息关联起来,而不同行不同列的信息互不影响。

具体来说,就是让$M_{i,j}=1$,当且仅当第j个元素对第i个元素可见。

构建矩阵的两个规则:

  • 如果元素i是topic entity或者在表标题中的token,$\forall j,M_{i,j}=1$
  • 如果元素i与元素j是位于同一列或同一行的token或者entity,$M_{i,j}=1$

一个例子:

图4 使用可见性矩阵的自注意演示

注:使用线段连接起来的token或entity是互相可见的


Masked Entity Recovery

这个可以之后来看…[待补充]

Tapas

论文标题:[2004.02349] TAPAS: Weakly Supervised Table Parsing via Pre-training (arxiv.org)

code:google-research/tapas: End-to-end neural table-text understanding models. (github.com)

Abstract

TAPAS是一种不生成逻辑形式来解决【表问答】(Table Q&A)问题的方法。它基于弱监督的方式,通过应用相应的聚合操作符来选择表单元格来进行预测。

在三种语义解析数据集上,SQA,WIKISQL,WIKITQ均取得了较好的结果。

1 Introduction

从半结构化表中回答问题通常被视为一个语义解析任务,其中问题被转换为一个逻辑形式,可以对表执行,以检索正确的表示。

  • 语义解析器依赖于有监督的训练数据,将自然语言问题与逻辑形式配对,但这些数据的注释代价昂贵。
  • 此外,语义解析应用程序只利用生成的逻辑形式作为检索答案的中间步骤。然而,生成逻辑形式会带来困难,例如保持足够表达性,服从解码约束等。

在本文中,我们提出了Tapas(表解析器),一个弱监督的问题回答模型,它对表进行推理,而不生成逻辑形式。因此,它可以从自然语言中学习操作,而不需要以形式主义来指定。

2 TAPAS Model

图1 模型架构

模型整体介绍

  • 本模型基于BERT的编码器,并添加了额外的位置嵌入来编码表型结构
  • 将表格扁平化成一系列单词,再将单词分割成单词块(token),并将问题的token连接到表的token之前
  • 额外添加两个分类层用来选择表中的单元以及对这些单元格进行聚合的操作符

Additional embedding

我们在问题与表中增添了一个分隔符,这些token嵌入的信息与表格感知的位置嵌入一起提供给模型。

  • Position ID
  • Segment ID
  • Column / Row ID
  • Rank ID:对可以解析成浮点数或日期的列值进行排序
  • Previous Answer

Cell selection

分类层将选择表单元格的一个子集。

  • 首先,我们在token的最后一个隐藏向量上使用一个线性层来计算其的logit。cell的logit是其含有token的logit的平均值。该线形层的输出为选择cell $c$的概率$p_s^{(c)}$。
  • 另外添加一个诱导偏差对在单个列中选择cell有益
    • 我们引入一个分类变量来选择正确的列。模型使用一个新线形层对指定的列上的cell embedding进行处理。
    • 我们也添加了一个额外的列logit值,来表示不选择任何列或任何cell
    • 那么这个线形层的输出是使用softmax处理列logit后选择列co的概率$p_{col}^{(co)}$,另外我们设置未被选中的列上的cell概率为0

Aggregation operator prediction

语义解析任务需要在表上进行离散推理,例如求和和计数。

为了不通过生成逻辑形式的方式解决上述任务,TAPAS在输出表单元格子集的同时,一并输出可选的聚合运算符。

这些运算符描述了应用在这些单元格子集上的操作,例如SUM,COUNT,AVERAGE,NONE

选择指定操作符,需要让最终隐藏向量的第一个token(特殊的[CLS]token)先经过一个线性层再通过softmax。

我们将这一层记作$p_a^{(op)}$,其中op是某个聚合运算符

Inference

我们预测了最有可能的聚合运算符和单元格的一个子集(使用cell selection layer)。为了预测一个离散单元格的选择,我们选择了所有其概率大于0.5的表单元格。然后,通过在选定的单元格上应用预测的聚合,对表执行这些预测来检索答案。

3 Pre-training

我们将预训练过程从单纯的自然语言文本扩展到结构化数据上,作为我们表解析任务的初始化。为此,我们在维基百科的大量表中预训练了TAPAS,这使得我们模型能够学到文本和表之间以及表的单元格和标题之间有趣的相关性。

  • 与TABERT一致,本文也采用了masked language model(MLM)预训练目标。
  • 我们将单词片段的序列长度控制在128以内,这需要我们对表进行适配。
    • 首先只添加每个列名和单元格的第一个单词。然后我们不断地添加单词,直到我们达到单词块预算(128)。
  • 我们遵循由BERT引入的掩蔽程序,使用 whole word masking

4 Fine-tuning

概览

  • 我们在弱监督设置中正式定义表解析:

给定一个含N个例子的训练集 $\{(x_i,T_i,y_i)\}_{i=1}^N$,其中,$x_i$是一个语句(utterance),$T_i$是一张表,$y_i$是一组相应的表示。我们的目的是学习一个模型,能够将语句x映射到一段程序z,其中z作用在对应的表T上可以得到正确的表示y

这段程序z包括一个表单元格的子集和一个可选的聚合运算符。表T将一个表单元格映射到它的值。

  • 在具体实现时,我们把表示y翻译成(C,s),其中C是单元格坐标,s是一个标量。我们可以根据(C,s)的内容指导训练:
    1. Cell Selection : s未填充(not populated)
    2. Scalar Answer : s被填充,C为空集

Cell Selection

Scalar Answer

Ambiguous Answer

image-20221002163526787

另外,TAPAS把Table QA问题分为了三类:

  1. cell selection:可以通过选择表中若干单元格解决问题

  2. scalar answer:可以通过在若干个单元格上进行聚合操作解决问题

  3. ambiguous answer:在某些情况下,是scalar answer,而其他情况下则是cell selection

TaBERT

论文标题

Tabert: Pretraining for joint understanding of textual and tabular data

arXiv:2005.08314

code:facebookresearch/TaBERT

Abstract

Recent years have witnessed the burgeoning of pretrained language models(LMs) for text-based natural language(自然语言) understanding tasks.

这些模型通常在形式自由的自然语言文本上训练,因此可能对于有结构的数据上的语义解析任务不适用,这种解析任务需要对形式自由的自然语言问题和结构化的表格数据进行推理。

本文我们提出了一种叫TABERT的预训练语言模型,它联合学习自然语言句子和(半)结构化表的表示。

TABERT在一个包含2600万张表的大型语料库及其英语上下文上接受训练。在实验中,使用TABERT作为特征表示层的神经语义解析器在具有挑战性的弱监督语义解析基准WIKITABLEQUESTIONS上取得了新的最佳结果,同时在text-to-SQL数据集SPIDER上也有一定的竞争力。

1 Introduction

近年来,提出了BERT等预训练语言模型,这些模型能够在进行下游任务的微调前,通过无监督学习捕获文章的语法与语义。

然而,如何预训练与微调同时具有自然语言句子和结构化表的问答任务仍是一个悬而未决的问题。

一个典型例子是访问数据库的语义解析任务,例如将自然语言句子(Which country has the largest GDP?)翻译为对数据库表的查询语句。这个应用场景的主要挑战不仅在于理解数据库表的结构化模式,还在于输入文本和模式之间的对齐方式,例如”GDP”指代Gross Domestic Product这一列。

因此,针对此任务定制的神经语义解析器试图学习自然语言语句和数据库表结构化模式的联合表示。然而,这种独特的设置给应用预训练语言模型带来了几个挑战:

  1. 储存在数据库表中的信息表现出强大的底层结构,而现有的语言模型仅为自然语言文本训练。
  2. 一个数据库表有大量的行,使用占用大量资源的语言模型简单地对所有行进行编码将会难以计算。
  3. 大多数基于文本的QA任务,可以设计为一个通用的答案跨度选择问题,并且可以用预训练模型与额外的分类层解决。但是,语义解析是高度特定于领域的,并且神经解析器的架构与其底层数据库的结构紧密耦合。

事实上,现有的系统已经试图利用BERT,但每个系统都有自己的特定于领域的内部策略来编码DB中的结构化信息,并且没有使用在结构化表上预训练的表示。这些挑战要求开发通用的预训练方法,用于学习自然语言话语和结构化数据库表的表示。

因此,本文提出了TABERT,它建立在BERT的基础上,并联合学习语句的上下文表示和DB表的结构化模式。特殊地,TABERT通过将表的结构线性化来适配基于Transformer的BERT模型。

为了处理大型表,我们提出了内容快照(content snapshots),这是一种编码与输入话语最相关的表内容子集的方法。该策略进一步与垂直注意机制结合,在不同行的单元格表示之间共享信息。

TABERT可以被插入到一个神经语义解析器中,作为一个通用的编码器来计算话语和表的表示。我们的关键见解是,尽管语义解析器是高度特定于领域的,但大多数系统依赖于输入话语和表模式来促进后续生成数据库查询,这些representations无论解析任务的域,都可以由TABERT提供。

我们将TABERT应用在两个语义解析范式:

  1. SPIDER,a test-to-SQL dataset
  2. WIKI TABLE QUESTIONS benchmark

我们证明了TABERT在这两种情况下都是有效的,表明它是解析器的原始编码器的一个可插入替换,用于计算自然语言话语和DB表的上下文表示。具体来说,使用TABERT增强的系统优于使用BERT的系统,在可用问题上得到了最先进的性能。

2 Background

Semantic Parsing over Tables

语义解析:自然语言的语句 u -> 正式意义表示(例如SQL查询语句) z

根据数据库使用的底层数据表示模式,表可以使用强类型和规范化内容进行完全结构化

Masked Language Models

给定一个自然语言token序列 x = $x_1,x_2,…,x_n$ ,MLM是一个使用掩蔽语言建模目标进行训练的语言模型。它的目的是从x中的一个【损坏的】通过随机屏蔽x中的某些标记的上下文中恢复原来的标记。

3 TABERT

我们首先介绍TABERT如何计算自然语言话语和表模式(3.1),然后描述预训练的过程(3.2)

3.1 Computing Representations

3.1.1 Content snapshot

给定一个语句 u (In which city did Piotr’s last 1st place finish occur?)和一个表 T,首先创建一个内容快照,如图1所示。

这个快照由采样的行组成,这些行总结了T中与输入话语最相关的信息。

图1 针对输入表的一个内容快照

为了减少计算开销,我们选择与输入话语最相关的几行作为内容快照。采用的策略是基于n-gram的字符匹配率选取Top-K,K的选取由查询文本与表格数据决定,在本文中选取$n\le3$。

3.1.2 Linearization

然后,该模型将快照中的每一行线性化,将每个线性化的行与话语连接起来,并使用连接的字符串作为Transformer(例如,BERT)模型的输入,该模型输出话语标记和单元格的行级编码向量。

图2 逐行编码示意图

具体来说,每个单元格由列的名称和数据类型表示,以及它的实际值,用一个竖条分隔。

然后,通过连接所有单元格的上述字符串编码,由[SEP]符号分隔。

3.1.3 Vertical Self-Attention Mechanism

这些编码会被输入到一系列垂直的自注意层中,其中,单元格表示(或话语标记表示)是通过关注同一列(或同一自然语言标记)的垂直对齐向量来计算的。

图3 垂直自注意层

为了允许信息在不同行的单元格表示之间流动,提出了垂直自注意。

如图3所示,TABERT有V个堆叠的垂直级的自注意层。为了给垂直自注意层生成对齐的输入,首先为每个单元格计算一个定长初始化向量,计算方法为对Transformer的输出向量序列采用平均值池化。之后,自然语言话语的单词向量序列(来自基本Transformer模型)与该单元的向量连接,作为垂直注意层的初始输入。

每个垂直注意层具有与Transformer层相同的参数化,但操作对象为垂直对齐的元素。这种垂直的自注意机制使模型能够聚合来自内容快照中不同行的信息,从而允许TABERT捕获对单元格的跨行依赖关系。

3.1.4 Utterance and Column Representations

representation $\pmb{c}_j$ 是从最后一个垂直层通过在其垂直对齐的单元格向量${\{\pmb{s}_{}:R_i\ in\ content\ snapshot \}}$ 上进行平均值池化来计算每一列 $c_j.$

自然语言语句的representation $\pmb{x}_j$ 在垂直对齐的标记向量上的计算方法类似。

这些表示方法将被下游的神经语义解析器使用。TABERT还使用前缀[CLS]符号的表示输出一个可选的固定长度table representation $\pmb{T}$,这对在多个数据库表上操作的解析器很有用。

3.2 Pretraining Procedure

3.2.1 Training Data

由于没有大规模的、高质量的自然语言文本和结构化表的并行语料库,因此我们改为使用通常存在于Web上的半结构化表作为替代数据源。具体来说,我们从英文维基百科和WDC网络表格语料库中收集表格及其周围的自然语言文本,这是一个来自CommonCrawl的大型表格集合。

3.2.2 Unsupervised Learning Objectives

我们应用不同的目标来学习自然语言上下文和结构化表的表示。对于自然语言上下文,我们使用标准的掩蔽语言建模(MLM)目标,在自然语言上下文中掩蔽率为15%。

对于学习列表示,我们设计了两个目标,其直觉是一个列表示应该包含列的一般信息(例如,它的名称和数据类型),以及与自然语言上下文相关的代表性单元格值。

Masked Column Prediction

掩蔽列预测(MCP)目标鼓励模型恢复掩蔽列的名称和数据类型。

Cell Value Recovery

确保内容快照中有代表性的单元值的信息在内容快照中经过额外的垂直自注意层后被保留。

image-20221003103634672

Appendix

n-gram模型

N-Gram是一种基于统计语言模型的算法。它的基本思想是将文本里面的内容按照字节进行大小为N的滑动窗口操作,形成了长度是N的字节片段序列。

Table Pre-training(零)综述

Table Pre-training

A Survey on Model Architectures, Pre-training Objectives, and Downstream Tasks

SOTA result:state-of-the-art result,指的是在该项研究任务中,目前最好的模型的结果/性能/表现。

T5 : Transfer Text-to-Text Transformer

Abstract

随着预训练范式在自然语言领域的成功,一系列表预训练框架被提出,并在各种下游任务上取得了新的技术水平,如表问答、表类型识别、表关系分类、表搜索和公式预测。

为了最好地利用结构化表的特性,人们探索了各种模型架构,特别是【单独设计的注意机制】(specially-designed attention mechanisms)。

此外,为了充分利用未标记表中的监督信号,我们设计和评估了不同的预训练目标,例如,【值单元去噪】(denoising cell values)、预测数值关系和学习一个神经SQL执行器。本调查旨在对模型设计、预训练目标和表格预训练的下游任务进行回顾,并进一步分享我们对现有挑战和未来机遇的看法。

1 Introduction

表被广泛用于组织和呈现各种文档类型和数据库系统中的数据,如网页、电子表格、pdf和MySQL,因此越来越受到研究界的关注。

随着大规模的自然语言(NL)预训练的成功,一系列的研究工作被提出利用未标记的表进行自我监督的预训练,并在表类型分类等工作中取得有希望的结果。

一方面,与已经证明大规模预训练成功的NL类似,表格有密集的语义存储在表标题,列标题和注释中。

另一方面,与NL不同,表有不同的信息(直观的格式、组织良好的数值、公式等)。以及各种结构(关系表、实体表、矩阵表、表格等),因此需要特殊的模型架构和训练目标来达到最佳的结果。

为了最好地利用表的特性,同时维护理解表内外文本的功能,已经提出了许多 Tabular Language Models(TaLMs)进行表预训练:

  • Tabert
  • TaPas
  • TURL
  • TUTA
  • TaPEx
  • UnifiedSKG

我们相信,结构化表提供了一个独特的视角来探索前沿神经结构,并启发新的研究方向。由于表经常与SQL等编程语言和电子表格公式进行交互,因此它还产生了跨领域的应用程序,如语义解析、逻辑到文本和公式预测。

在本文中,我们首先在第2节中介绍了表类型、表结构、单元格信息和表语料库的初步内容。然后,我们在第3、4、5节中对表的建模架构、表的预训练目标和下游任务进行了全面的回顾。最后,我们在第6节中展现了我们的愿景。

2 Preliminaries

表大致可以分为三种形式

  • 结构良好的表:数据库表具有 有序定义 的关系模式,因此精确地支持SQL和R等形式语言的执行。
  • 半结构化表:使用标记语言或最终用户工具手工制作的,如HTML代码、Latex代码、电子表格和Word文档。它们具有灵活的结构,但缺乏元信息来记录它们,因此具有精确和自动信息检索的挑战。
  • 非结构化表:只记录原始RGB信息的图像表,例如,从书籍中扫描出来的表格,网络表格的屏幕截图,甚至是手写的草稿。

在进行任何更高层次的信息检索之前,都需要对它们进行数字化。

在本文中,我们主要关注半结构表结构良好的表。我们忽略了图像表,因为它们有明显的视觉挑战,并且希望单独讨论。

2.1 Table Structure

表是灵活的各种结构,包括关系表、实体表、矩阵表、布局表、表单等。它们也具有方向(水平/垂直方向)和层次结构(平面/层次结构)。

平面关系表的结构在类似数据库的形式中是明确和直接的,其中每一行是一条记录,每列是一个字段,没有层次结构。

一个实体表只需记录一个实体及其属性。矩阵表同时具有水平方向和垂直方向。

2.2 Cell Information

通常,单元格(cell)是表中一行和一列的交点。多个单元格可以合并成一个占据多行和列的更大单元格。单元格是记录文本、数值、格式、公式等的基本单位。

  • 文本:表中记录标题、注释、列标题、以及数据区域单元格中的元信息的关键组件。表格中的文本基本上是NL格式的,但通常长度短,含义简洁,以满足文档中的空间限制。
  • 数值:大部分单元格存储数值。与文本不同,数值可以有算术关系,如总和和比例,以及统计特征,如分布和趋势。
  • 可视化格式:表格有各种直观的格式来表示表格的结构或内容,如边框、对齐方式、背景颜色和字体
  • 公式:在一些流行的最终用户工具中,如Excel和谷歌Sheet,电子表格公式用于存储单元格之间的逻辑和数值关系
  • 其它元素,例如超链接,图像和图标也可以插入一个单元格中

2.3 Existing Large Table Corpus

  • Web Tables:WDC Web Table Corpus、Dresden Web Tables Corpus、WebTables、WikiTables
  • Spreadsheet Tables:FUSE、TUTA
  • CSV Tables:GitTable
  • Other Kinds of Tables:TableArXiv

3 Model

由于二维信息对于理解表结构至关重要,许多神经结构被提出来联合捕获结构和语义信息。

  • Table2Vec:采用 skip-gram 神经网络模型来训练具有行/列填充的单词嵌入
  • CNN:获取在二维表中的空间信息
  • Bidirectional RNN/LSTM :获取行/列的顺序
  • GNN:表的理解与问答

尽管上述模型已经广泛地运用在表的建模上,但是它们并不适用于大规模表的预训练。主要原因是它们中的大多数分开训练(或直接消耗)标记/单词嵌入,从而限制了模型理解单元格文本和表结构的能力。

最近,一系列的研究探索了使用基于Transformer的语言模型(LMs)进行表格预训练,我们称之为表格语言模型(TaLMs)。

使用Transformer的优点是,它们可以联合地预训练语义和结构表示,并继承现有的NL预训练模型的文本理解能力,如BERT。

UnifiedSKG和TableGPT等工作,没有特定表的预训练,直接微调表任务,取得了有效的,甚至SOTA的结果,表明预训练可以从文本转移到表,例如,在语言和世界知识方面。

考虑到使用基于Transformer的TaLM是表预训练的常见选择,在下面的小节中,我们将深入研究输入序列的串行化输入嵌入编码器和解码器架构注意力机制模型效率

3.1 Tabular Sequence Serialization

TaLM需要一系列的令牌来作为像LM这样的模型输入。

  • 一种简单而又常见的方法是逐行线性化原始表。大部分的工作都是使用这种方法,例如TaPas,MATE,TableFormer,TUTA和TURL。

  • 在TaPEx中,表依然被逐行线性化,但是它插入了若干特殊令牌来描述表的组件,例如[HEAD],[ROW]分别表示表头和行的区域。

  • TABBIE为两个Tranformer分别按行和列线性化表。
  • yTableGPT在相对简单的表上明显采用了基于模板的表序列化方法。
  • UnifiedSKG进行的实验表明,将外部文本(如问题)放在表格前面可以帮助T5在表格任务上更好地概括
  • 一些工作将表的特定部分进行线性化,例如,TaBERT将最相关的行线性化到输入语句中,而StruG和GraPPa只将头作为输入,没有数据单元。

3.2 Input Featurization and Embedding

Cell Text Encoding

  • 大多数表预训练方法使用WordPiece和学习到的标记嵌入来标记单元格文本,例如TaBERT,TaPas,MATE…
  • 少数使用BPE标记化,例如GraPPa和TaPEx
  • TURL由TinyBERT初始化,并基于实体词汇表学习嵌入
  • TUTA没有直接使用从NL语料库中解析出来的词汇表,而是使用基于大表语料库的WordPiece构建了一个特定于表的词汇表,并将其与BERT的词汇表合并。

Positional Encoding

在NL预训练的模型之后,大多数TaLM在序列化的表格序列中嵌入一维序列位置,例如,TaPas、MATE、StruG、GraPPa和TaPEx。

其他一些工作将整个序列划分为多个片段,分别计算每个单元中的位置: TUTA将每个单元作为一个独立的片段,并处理单元内标记的局部编码位置信息;TURL将表标题和标题视为两个独立的部分,然后使用两个局部位置编码。

表中还具有二维的行/列和层次结构信息。诸如TaPa、MATE和TUTA等工作,学习了基于列/行id的列/行嵌入,并显示出了更高的性能。

然而,考虑到层次结构,列/行编码只能提供有限的表示能力。TUTA进一步设计了基于显式/隐式树的位置嵌入来联合编码空间和层次位置,并在一般结构化的表上显示出显著的有效性。然而,它对只涉及平面表和关系表的下游任务没有帮助。

Numerical Encoding

大量的数值分布在表中,并为基于BERT的模型提出了学习最优表示的挑战,因为这些方法只是简单地以与NL文本相同的方式对数值进行标记化和编码。

它将数字的原始记录结构破坏成碎片,并引入了数字表示方面的困难。

最近,在NLP领域,对学习更好的数字表示的探索激增,而在表格数据方面很少尝试。TaPas和MATE设计了一个独特的排名嵌入为列数比较,在回答比较或最高级问题方面带来了改进。

FLAP添加了额外的特性编码来表示是否文本摘要中提到了这个值。

TUTA通过嵌入四个离散的数值特征来区分数值和纯文本:大小、精度、第一个数字和最后一个数字。在未来的工作中,我们非常希望探索更多的数值嵌入方法,例如,在算术和统计的角度。

Format Encoding

格式包含关于表结构和数据突出显示的有价值的提示,但只有少数TaLM考虑了它们。例如,TUTA学习了格式嵌入与转换器主干一起,以区分单元格是否有合并、边框、字体粗体、字体颜色和填充颜色。

3.3 Encoder and Decoder Architecture

4 Pretraining Objective

TaLM的预训练目标可分为两类:去噪自动编码器和任务特定目标。

遵循Masked Language Modeling(MLM)的想法,许多目标采用了TaLM的自监督标签来消除合成噪声作为自动编码器。同时,其他各种预训练目标从特定的下游任务中获得灵感来设计新的监督方式。

前者采用自监督学习,对表本身进行去噪,后者根据外部监督信号或具体任务建立监督。

4.1 Denoising Autoencoder Objectives

对于去噪自动编码器目标,TaLM接受部分损坏的输入并恢复原始输入。大多数TaLM以与NL序列相同的方式对表格序列应用令牌级MLM。更高级的去噪目标考虑了表结构,如单元格和列。

4.2 Task-specifific Objectives

为了在下游任务上实现SOTA的性能,去噪目标可能是不够的。