标签:训练 Image token 文档 版式 Embedding LayoutLM
概述
LayoutLM是一个基于Bert,结合了文本和版式信息的文档预训练模型,在多个下游任务中都达到了当时SOTA的结果。
模型
模型的总体结构如图1所示:
图1 LayoutLM总体结构
LayoutLM在Bert的基础上添加了2-D Position Embedding和Image Embedding(图中虽然没有1-D Position Embedding和Segment Embedding,不过实际代码中是有的)。2-D Position Embedding用于建模文档中的空间相对位置关系,通过对文档使用OCR工具,可以得到每个token的bbox,将bbox的坐标标准化到0-1000后输入到embedding层,得到对应的embedding,其中x0,x
1共享一个embedding层,y0,y1共享一个embedding层。对于Image Embedding中token-level的特征,在对文档使用OCR工具后,可以得到每个token对应的图片区域,将这些小图输入到Faster R-CNN中,经过backbone的缩放并提取特征,再通过ROI Pooling或者ROI Align将提取出来的特征图缩放到同一大小,最后再经过全连接层将维度变换到和其它embedding层一样的大小;对于Image Embedding中doucument-level的特征,直接将整个文档作为ROI,输入到Faster R-CNN中,并将最后的结果作为Image Embedding中的“[CLS]” token。
需要注意的是,Image Embedding是在微调阶段加入的,而不是预训练阶段,这也是LayoutLM与LayoutLMv2有明显区别的地方。
预训练阶段
预训练阶段有两个目标:Masked Visual-Language Model和Multi-label Document Classification。
Masked Visual-Language Model
和Bert的MLM类似,不过是2D版本的,随机遮蔽一些token但保留2D Position Embedding,然后预测遮蔽的token,通过这个方式能够将视觉和语言两个模态结合起来。
Multi-label Document Classification
为了更好地适应文档理解任务,需要高层次的文档表示,因此在预训练时添加了这个多分类任务。论文中还提到这个是可选的,并且在以后不会使用这个任务预训练更大的模型(实际上从LayoutLMv2开始就没有使用这个目标函数了)。
微调阶段
论文对三类下游任务做了微调,分布是:表单理解、票据理解和文档图像分类。对于前两个任务,LayoutLM对每个token预测{B,I,E,S,O}以及实体的类别。对于最后一个任务,LayoutLM使用“[CLS]”预测文档的类别。
实验
表单理解的实验结果如图2所示(数据集是FUNSD):
图2 表单理解结果
LayoutLM超过了没有考虑版式信息的Bert和RoBerta很多,可以看出版式信息的文档预训练的重要性。在将MDC加入到预训练后,表单理解的召回率有所下降,这个任务可能对细粒度的下游任务有所损害。最后,在加入Image信息到微调阶段后,论文的精度达到了最高。
票据理解的实验结果如图3所示(数据集是SROIE):
图3 票据理解结果
LayoutLM仍然超过了Bert和RoBerta很多,再次验证了版式信息的重要性。不过在把Image信息添加到微调阶段后,精确率、召回率和F1分数全部下降了,可以看出将Image信息加入到微调阶段还需要改进。
文档分类的实验结果如图4所示(数据集是RVL-CDIP)
图4 文档分类结果
LayoutLM不仅超过了text-based模型(Bert等),也超过了image-based模型(VGG-16等),验证了LayoutLM方法的有效性。在文档分类任务下,之前的几个模块都有稳定提升。
最后是不同初始化方法对模型性能的影响,如图5所示:
图5 初始化方法对性能的影响
可以看到,初始化方法对LayoutLM性能的影响很大。
总结
LayoutLM是首次结合文本和版式信息的预训练模型,在当时达到了SOTA的性能。不过没有把图像信息加到预训练阶段中,这也是模型需要改进的地方。另外MDC对于某些下游任务并不好用,需要替换或者改进。
标签:训练,
Image,
token,
文档,
版式,
Embedding,
LayoutLM
From: https://www.cnblogs.com/SpicyWonton/p/16664252.html