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):对表上下文是否相关的判断。

预训练任务示例