微软提出Layout,多模态任务也有预训练模型啦

每天给你送来NLP技术干货!


paper: https://arxiv.org/pdf/1912.13318.pdf 

code: https://github.com/microsoft/unilm/tree/master/layoutlm

layout系列的三个多模态预训练模型都是微软提出的,分别是:LayoutLM、LayoutLMv2、LayoutXLM

2020.06,MSRA提出多模态文档预训练模型LayoutLM(1.0版本),KDD2020

2021.01,MSRA提出LayoutLMv2,ACL2021

2021.06,MSRA提出跨语言的文档理解预训练模型LayoutXLM

想要理解layout模型的2.0版本,先理解版本1.0,本文是对Layout1.0的解读

引言

以BERT为首的NLP预训练模型,在文本任务上表现很好。但是对文档图像理解( document image understanding)任务来说,我们不仅要关注文本信息,更要关注布局和样式。本文针对这种文档级的多模态信息,首次提出了一种预训练模型Layout,对文本和布局进行联合学习。

同时,对于三个下游任务:【1.表单理解 2.发票理解 3.文档分类】,本文提出的预训练模型Layout表现优秀。

引言LayoutLM模型

总的来说,LayoutLM有2个预训练任务:

1.MVLM 

2.MDC

有3个微调任务,也就是下游任务:

1.表单理解 

2.发票理解 

3.文档分类

有3个微调数据集:

1.FUNSD 

2. SROIE 

3.RVL-CDIP 

(分别是对应上面三个下游任务的专用数据集)

由于LayoutLM是基于模型BERT的,所以先介绍BERT模型。

BERT模型

BERT是经典的文本预训练模型,原文:BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding

BERT是基于自注意力机制的双向语言模型,利用了大量的训练数据,且生成词向量时结合了上下文信息。BERT在预训练阶段使用两个任务:1.MLM(带有掩膜机制的语言模型) 2.NSP(下一句预测) ,且在下游任务上表现很好。

LayoutLM模型

整个模型结构如下:

微软提出Layout,多模态任务也有预训练模型啦_第1张图片

相对于BERT,添加了两个embedding:

1. 2-D位置信息的Embedding 

2.图像的Embedding

【位置信息】

某段文本在数据中的标记是带有边框的,边界框可以由(x0、y0、x1、y1)精确定义,其中(x0、y0)对应于边界框中左上角的位置,(x1、y1)表示右下角的位置。

【图像信息】

总的来说,根据OCR生成单词的边界框,将图像分块,输入到faster R-CNN生成区域特征,作为图像的token的词向量嵌入(包括[CLS] 字符),这样[CLS] 就可以带有图像的全文信息,方便我们做文档分类任务。

实验LayoutLM预训练

有两个预训练任务,分别是MVLM、MDC,对应的数据集为 IIT-CDIP Test Collection 1.0。

对此数据集,我们需要用ORC来识别,这样我们可以同时得到文本和位置信息,丰富我们的词向量表示。

任务1:MVLM(带有掩膜机制的视觉语言模型)

基于带有mask机制的语言模型(MLM),MVLM加入2D位置嵌入,和文本嵌入一起做预训练,跨越了视觉和文本两个模态中间的鸿沟

任务2:MDC(多标签文档分类)

文档分类需要高质量的文档向量表示,本文在预训练时对一个文档采用多个标签,进行预训练

实验LayoutLM的微调

微调任务有三个,分别是表单理解、发票理解、文档分类。上述三个任务分别有对应的数据集:1.FUNSD 2. SROIE 3.RVL-CDIP

任务
数据集
下载地址

表单理解

FUNSD

guillaumejaume.github.io

发票理解

SROIE

rrc.cvc.uab.es/?

文档分类

RVL-CDIP

docs.google.com/u/0/uc?

实验及结果分析

采用BERT的base版本来初始化LayoutLM模型的权重:12层Transformer模型。而large版本就是24层Transformer。且跟原始的BERT采取相同的掩码机制。

除此之外,我们加入了2-D位置信息的词嵌入,即 (x0, y0, x1, y1),也就是左上角、右下角的坐标对应的向量。

【FUNSD数据集下的实验结果】

表单理解的实验结果对比如下:

微软提出Layout,多模态任务也有预训练模型啦_第2张图片

不同的数据集和训练轮次数下,LayoutLM(BASE) 的效果对比:

微软提出Layout,多模态任务也有预训练模型啦_第3张图片

不同初始化方式下LayoutLM的性能对比:

微软提出Layout,多模态任务也有预训练模型啦_第4张图片

【SROIE数据集下的实验结果】

微软提出Layout,多模态任务也有预训练模型啦_第5张图片

【 RVL-CDIP数据集下的实验结果】

微软提出Layout,多模态任务也有预训练模型啦_第6张图片

结论和未来工作

本文提出了LayoutLM,一个处理多模态信息(文本和布局信息)的预训练模型,以Transformer为主干,同时利用了文本嵌入、位置坐标嵌入、图像嵌入。我们在三个下游任务表单理解、发票理解和文档分类上实验,均得到了SOTA的效果。

【补充】

微软研究院后续发布了Layout2.0和LyaoutXLM模型,之后会做下一步的论文解读。


投稿或交流学习,备注:昵称-学校(公司)-方向,进入DL&NLP交流群。

方向有很多:机器学习、深度学习,python,情感分析、意见挖掘、句法分析、机器翻译、人机对话、知识图谱、语音识别等。

微软提出Layout,多模态任务也有预训练模型啦_第7张图片

记得备注呦

整理不易,还望给个在看!

你可能感兴趣的:(机器学习,人工智能,深度学习,python,计算机视觉)