1.之前模型的不足和本模型解决的问题
1.针对具体场景需要人工标注数据进行有监督的训练,没有利用大规模的无标注的数据,且无法泛化到其他的板式或者场景。(这里我不是很理解,从下图来看,模型输入的text embedding和position embedding不都是人工标记才能得到的吗。text embedding至少在模型的输入阶段,你应该要知道text具体是什么吧,不能识别错误吧,怎么保证呢,纯靠rec可以吗?不用人工标记吗?同理,这里的position embedding纯靠det能行吗。)
2.单一的使用cv或者nlp领域的预训练模型,没有考虑到文本与版面信息结合。
3.本模型解决了上述两个问题,即利用大规模无标注的数据,将文本与版面信息联合起来训练。
2.模型结构
1.LayoutLM模型很大程度上借鉴了bert模型。
在模型输入层面上:
LayoutLM在BERT采用的文本与位置特征(也就是上图中的text embeddings)基础上,还新增了两个特征:
1、2D位置特征
2D位置特征(也就是上图中的position embeddings)的目的在于编码文档中的相对空间位置关系。将一个文档视为一个坐标系,其左上角为坐标原点(0,0)。对于一个单词,他的包围盒能够以坐标(x0,y0,x1,y1)表示,其中(x0,y0)是左上角的坐标,(x1,y1)是右下角坐标。x 0与x1共享嵌入层参数X,y0与y1共享嵌入层参数Y。
特别地,整个文档图像的包围盒为(0,0,W,H),其中W与H分别表示文档图像的宽与高。
2、图像特征(就是上图中image embeddings)
根据单词的包围盒,LayoutLM利用ROI操作从Faster R-CNN的输出特征图中生成图像区域特征,与单词一一对应。对于特殊的[CLS]标记(第一个位置字符[CLS]对应Transformer输出的分类结果),则采用整图的平均特征作为该标记的图像特征。
应该注意的是LayoutLM在预训练阶段(就是上图中Pre-trained LayoutLM)并没有采用图像特征。图像特征仅在下游任务阶段可以选择性的加入,而生成图像特征的Faster R-CNN模型权重仅来自于预训练模型,并不做调整。
ps:图像的 ROI (region of interest) 是指图像中感兴趣区域、在 OpenCV 中图像设置图像 ROI 区域,实现只对 ROI 区域操作。
2.LayoutLM预训练
预训练任务1:掩码视觉语言模型MVLM。
在预训练阶段,随机遮盖掉一些单词的文本信息,但仍保留其位置信息,然后训练模型根据语境去预测被掩盖掉的单词。这点和bert一样。通过这个任务,模型能够学会理解上下文语境。并利用2D位置信息,从而连接视觉与语言这两个模态。
预训练任务2:多标签文档分类
文档理解的许多任务需要文档级别的表征。由于IIT-CDIP数据中的每个文档图像都包含多个标签,LayoutLM利用这些标签进行有监督的文档分类任务,以令[CLS]标记输出更为有效的文档级别的表征。但是,对于更大规模的数据集,这些标签并非总可获取,因此该任务仅为可选项,并且实际上在后续的LayoutLMv2中被舍弃。
模型预训练细节
1.除了2D positional embedding之外,其余的参数都使用bert base初始化。
2.预测15%的token,其中80%替换为[MASK],10%随机替换,剩下10%不变,这点和bert一样。
3.标准化所有坐标点为0~1000
4.使用ResNet-101作为Fatser R-CNN的backbone;
3.LayoutLM模型的微调
LayoutLM模型在三个任务上进行微调,分别为:表格理解、票据理解、文档分类。对于表格与票据理解的任务,模型为每个输入位置进行{B,I,E,S,O}序列标记预测,从而检测每个类别的实体。对于文档分类任务,模型利用[CLS]标记的输出特征进行类别预测。
ps:{B,I,E,S,O}是nlp领域的一种序列标注方法。
3.实验
LayoutLM模型具有和BERT一样的Transformer网络结构,因此采用BERT模型的权重进行初始化。
具体地,BASE模型为12层的Transformer,每层包含768个隐含单元与12个注意力头,共有113M参数;LARGE模型为24层的Transformer,每层包含1024个隐含单元与16个注意力头,共有343M参数。