An End-to-End Local Attention Based Model for Table Recognition(ICDAR 2023)

An End-to-End Local Attention Based Model for Table Recognition(ICDAR 2023)

一.前述

作者认为基于Transformer的表格识别模型很难处理大表格的识别,原因是受限于它的全局注意力global attention机制。

基于以上,作者提出了一种局部注意力local attention机制。作者也提出了一种端到端的基于局部注意力模型,去识别表格结构以及表格单元格内容。

所提出的方法主要由四个组成部分:

1)1个用于特征抽取的编码器;

2)3个解码器用于表格识别的3个子任务。

本方法在数据集PubTabNet与FinTabNet上取得了state-of-the-art。

二.概述

本文的主要贡献如下:

1.提出在编码器decoder中使用局部注意力local attention机制。

2.提出端到端的识别模型,便于训练和推理。

3.实验证明了局部注意力机制在表格识别中的有效性。

4.提出的方法在基准数据集上达到了state-of-the-art。

三.方法概述

1.局部注意力机制(Local Attention Mechanism)

一句话,局部注意力是利用窗口大小来使解码器更注重那些重要的tokens上。

(1).局部注意力的公式

以上公式是经典的transformer中的attention权重的计算。

为了实现局部注意力,文中定义了一个mask矩阵M,如上式,这M表示查询Q应该关注的键K的位置。当mask上的元素值1,表示注意力是活动的,如果是0表示不关注。

式中的w表示局部注意力窗口的大小。

上式是局部注意力最终的输出计算,括号内是逐元素相乘。

(2).mask多头注意力(Masked Multi-head Local Attention)

mask多头注意力通过不同的线性变换,对查询q,键k,值v映射h次,获得h个不同的表示(Q,K,V)。然后并行执行局部注意力,获得h个head输出值。

最后h个head的输出值串联起来,再经过一层线性变换,最终的公式如上所示。

(3).基于局部注意力编码层(Local Attention-Based Decoder Layer)

下图一目了然,无需再解析。

2.端到端模型

上图中的端到端模型主要由4个部分组成:基于CNN的特征抽取编码器;三个解码器,用于3个表格识别的子任务(表格结构识别、表格单元格检测以及表格单元格内容识别)。大体流程是:

A.输入一张表格图像

B.特征抽取编码成序列形式

C.序列特征输入到结构解码器structure decoder预测表格结构的token序列

D.当structure decoder产生表格单元格的token时,cell-bbox decoder和cell-content decoder就触动了,其使用structure decoder的隐状态来预测边框坐标以及单元格内容。

E.最后,每个单元格内容,被插入到结构token序列的相应单元格中,输出最终的表格表示。

(1).编码器(Encoder)

利用基于ResNet-31 backbone(对于每个残差块使用Multi-Aspect Global Context Attention)的网络模型抽取输入图像的特征

(输入编码器前图像要resize到520520),抽取的特征再经过一个位置编码层。最终输出固定大小的序列特征。输出的feature map的维度是6565

(2).结构解码器(Structure Decoder)

这部分由三层局部注意力解码器层后再跟一个线性层和一个softmax组成。文中説这里的局部注意力机制有助于结构解码器在预测一个结构token时更加注意其局部重要特征

(即更加注重邻居的tokens)。从图中可以看出三层的local attention的K和V向量都是来自编码层的输出。在训练时,输入的右移序列会经过embedding层和position层,

这里的输出作为Q向量,和前面的K,V一起进入局部注意力机制。推理时这里的输入是structure decoder的输出进行拼接。最后再经过线性层和softmax层,生成表格结构的token。

(3).单元格边框解码器(Cell-Bbox Decoder)

这部分由一个局部注意力解码层,一个线性层和一个sigmoid层组成。这部分会在structure decoder预测新的单元格时会被触发,它的输入一部分是由

structure decoder的隐状态作为Q向量,编码器的输出作为K和V向量,一起进入一个局部注意力机制,后跟一个线性层,经过sigmoid预测输出最终的4个单元格坐标。

(4).单元格内容解码器(Cell-Content Decoder)

这部分其实就是一个文本识别器,它由一个embedding层,一个position层,一个全局注意力层global attention-based decoder,后跟一个线性层和

softmax层组成(这里没有使用局部注意力,作者説是因为单元格里的内容远少于表格结构,所以利用全局注意力更容易学到重要特征)。当structure decoder

预测输出一个新的单元格时,cell-content decoder就触发了。它的输入一部分来自编码器的输出(作为K和V向量),一部分是右移的单元格里的内容序列

(经过embedding层和position位置编码,再加上相应对的单元格structure decoder的隐状态信息。)作为Q向量,最后经过一个线性层和一个softmax层,

预测输出单元格的文本内容。

(5).损失函数

上式中的ℒstruc. and ℒcont.是利用交叉熵cross-entropy分别实现的table结构识别损失和单元格内容预测损失,ℒbbox是利用L1 loss实现的单元格边框预测的损失。

𝜆1、𝜆2和𝜆3为权值超参数。

(6).相关参数设置

structure decoder和cell-bbox decoder所有的局部注意力local attention decoder层都是设置为8头,输入特征大小为512,前馈网络大小为2048。

所有的局部注意力机制的窗口大小window size设置为300。在解码过程中,structure token和cell token最大的序列长度分别是600和150。






相关推荐
千里码aicood33 分钟前
[含文档+PPT+源码等]精品大数据项目-基于Django实现的高校图书馆智能推送系统的设计与实现
大数据·python·django
happy_king_zi36 分钟前
Django-form表单
python·django·devops
luthane1 小时前
python 实现linear algebra线性代数算法
python·线性代数·算法
技术无疆1 小时前
【Python】Daphne:Django 异步服务的桥梁
开发语言·人工智能·后端·python·机器学习·数据挖掘·django
计算机编程-吉哥2 小时前
计算机毕业设计 基于爬虫与文本挖掘的网络舆情监控系统的设计与实现 Python+Django+Vue 前后端分离 附源码 讲解 文档
hadoop·爬虫·python·计算机毕业设计·计算机毕业论文·计算机毕业设计选题·软件工程毕业设计论文
hakesashou2 小时前
python如何判断图片路径是否存在
python
口_天_光健2 小时前
Pywinauto 快速学习指南
windows·python·microsoft·自动化
洛阳泰山2 小时前
Chainlit集成LlamaIndex并使用通义千问实现和数据库交互的网页对话应用(text2sql)
数据库·python·交互·text2sql·llamaindex·chainlit
计算机编程-吉哥3 小时前
计算机毕业设计 基于Python的摄影平台交流系统的设计与实现 Python+Django+Vue 前后端分离 附源码 讲解 文档
python·django·毕业设计·课程设计·毕业论文·计算机毕业设计选题·摄影平台
不会编程的程序員3 小时前
C++中set集合和Python中set集合的区别
java·c++·python