多模态预训练模型指北——LayoutLM

news/2024/4/29 4:06:04/文章来源:https://blog.csdn.net/c9Yv2cf9I06K2A9E/article/details/126925543

d8112afd77d567a9316fb5241a3fe19a.gif

©PaperWeekly 原创 · 作者 | 杨希

单位 | 中国移动云能力中心

研究方向 | 自然语言处理

fb842c932cc81768f00753f5877e3d81.png

引子

LayoutLM 从提出到现在已经有 2 年多的时间了,多模态的文档、表单类的识别任务也逐渐走向成熟,在上一期《多模态预训练模型指北——LayoutLM(一)》笔者详细介绍了微软提出的 LayoutLMv1 以及对应的升级版 LayoutLMv2。在此基础上,本期简单的介绍一下微软在 2022 年新提出的 LayoutLMv3。

从笔者的理解来看,LayoutLMv3 [1] 更像是集成了这两年在多模态任务中非常有效的 Trick,并在文档 AI 这个领域上重新进行了试水,就发表了 v3 版本,其中参考的主要包括 BEiT [2]、ViLT [3] 等,下面就简单介绍一下微软的 LayoutLMv3。

9d4373b37dd3e5c7871d736b0cf21e9f.png

正文

2.1 贡献

作者认为 LayoutLMv3 的主要贡献主要在于以下几点:

1. 首次提出了一种 Document AI 领域不需要预训练 backbone(包括 CNN、Faster R-CNN)的多模态模型。

2. 提出了一种 word-patch alignment,可以用于学习文本与图像之间关联关系。

3. LayoutLMv3 可以同时适用于以文本为主的任务以及以图像为主的 Document AI 任务(一般多模态任务都会这么写,估计是为了内容更加充实而增加的贡献点)。

2.2 预期

476f153eb3131e7d6ae7e0f9d8d9c9bc.png

如在 ViLT 中将现有多模态任务大致分成了四个类型,成熟的多模态模型应该是更趋向于(d)的类型。如果做一个对应的话,LayoutLMv1 属于(b),LayoutLMv2 属于(c),那么自然而然的可以想到,LayoutLMv3 更像是从(b)到(c),然后到(d)的演进。

2.3 模型

具体的,LayoutLMv3 模型主要是在图像特征表示,文本与图像联合学习上做了进一步的改进,其整体结构如下:

d264cce0599e923ce96b5a890b7c686e.png

v3 版本,采用了更简单的图像特征输入方式,并且结合新的图像特征的输入方式设计了一种新的任务用于构建文本与图像之间信息的融合与交互。

1. 使用更简单的图像特征表示方法:

LayoutLMv3 也没有让人意外,其提出的第一个创新点就是参考 ViT [4] 中图像的编码方法。其编码方法结构非常简单,其过程大体如下:

10a54c26faecb88df4c66583a6919d47.png

只需要将 Patch 的像素全部拉平就可以得到对应的图像特征(特征维度为 P),为了和语义的特征对齐(比如常见的 BERT 模型,语义特征维度为 768),那么需要增加一层线性变换使得语义特征与图像特征的维度一致。

而比较有意思的是,在实际实现的时候 [5][6],并没有用这种拉平加线性变换的形式,而是非常取巧的使用了一个简单的二维卷积,很显然这也同样能够达到相同效果。使用该方式进行特征值的抽取,其计算复杂度要远小于基于预训练的 Faster-RCNN 等模型。

491b58bd3a5248672d43fdeb593348fd.png

2. 使用新的文本图像的关联任务(WPA)

在多模态任务中,必然会有一个任务是可以将文本与图像产生联系的。回顾 v2 版本的模型,主要采用的方法是将通过将不同行的图像文本进行覆盖(实际覆盖的范围是一个 bbox) ,然后通过预测未覆盖文本对应的图像片段是否被覆盖来产生文本与图像的关联性。但在 v3 中所有的图像都是通过 patch 的方式直接映射为图像特征,mask 的最小单位不再是 bbox,而是 patch 本身。那么把 v2 的任务进行简单的转换,v3 版本的 WPA 就是预测未覆盖文本对应的 patch 是否被覆盖。

3. MLM && MIM

除此之外,文本与图像还分别使用了各自领域非常经典的无监督预训练任务包括 MLM(Masked Language Modeling)以及 MIM(Masked Image Modeling),其中 v2 其实也使用到了 MLM(变种),但在 v2 中文本图像是基于 bbox 一一对应的,为了避免在 mask 的时候图像泄露信息,在 v2 中对于图像特征也同步做了 mask。而 v3 文本对应的基本单位是 patch,所以不存在这样对应关系/泄露的可能性非常低,所以可以直接使用 MLM。

而 MIM 则是直接使用的 BEiT 中的 MIM 任务,通过 dVAE(discrete variational autoencoder)[2] 技术,实现图像 patch 的编码,然后对 image token 进行  mask,MIM 则是通过未被 mask 的图像来预测原先被 mask 的图像的图像编码。

2.4 实验

关于实验,作者主要在多模态任务、传统视觉任务、消融实验来证明 v3 模型的有效性,比较让人惊喜的是,还提供了对应的中文模型,以及在中文数据集上的测试验证。

LayoutLMv3 在多个多模态任务(FUNSD、CORD、RVL-CDIP、DocVQA)上进行 fine-tuning 上效果比对,其中在 FUNSD 上效果最为显著。此外,实验还从模式上对目前解决多模态表单类任务理解进行了细分的综合性比对:包括从模型的特征信息:文本(T)、Layout(L)、图像(I),以及图像的特征提取器 Faster R-CNN(R)、CNN Grid(G)、Linear Patch(P)。

1d4e9b8a77439aea93fef37b7644f763.png

2. LayoutLMv3 在传统的视觉任务(PubLayNet)上进行 fine-tuning 的效果。

a785308fc7a556f0491f107c723b5bf0.png

3. LayoutLMv3 使用消融实验来证明 MLM、MIM、WPA 几个任务的有效性。

06baf275d8607bdee17864197555291b.png

4. 令人比较惊喜的是,LayoutLMv3 还在中文的 EPHOIE 数据集上进行了验证,并与百度出品的 StructText [7] 进行了对比,取得了 SOTA,平均 F1 score 达到了 99.21%。

72adf60473f607d0730370471721de65.png

9ff6a76944c17201e2d58952ac958d61.png

总结

LayoutLM 很好的实现了表单数据中文本与图像特征的融合,擅长于处理各种表单的扫描件(财务报表、电子发票、审计报表等等)。虽然从创意的角度上不能说  v3 版本的模型具备什么颠覆性的创新,但是从实际使用的角度来说,剔除了  Faster R-CNN 这类图像的特征抽取网络之后,其性能更上了一个层级,理论上和  BERT 的性能可以基本达到一个水准,这也是非常有意义的。

除此之外,作者在未来的工作里面也提到了,在工业界使用的话基于 few-shot/zero-shot 表单信息抽取将会是一个非常有意思的课题。

outside_default.png

参考文献

outside_default.png

[1] Huang Y, Lv T, Cui L, et al. LayoutLMv3: Pre-training for Document AI with Unified Text and Image Masking[J]. arXiv preprint arXiv:2204.08387, 2022.

[2] Bao H, Dong L, Wei F. Beit: Bert pre-training of image transformers[J]. arXiv preprint arXiv:2106.08254, 2021.

[3] Kim W, Son B, Kim I. Vilt: Vision-and-language transformer without convolution or region supervision[C]//International Conference on Machine Learning. PMLR, 2021: 5583-5594.

[4] Dosovitskiy A, Beyer L, Kolesnikov A, et al. An image is worth 16x16 words: Transformers for image recognition at scale[J]. arXiv preprint arXiv:2010.11929, 2020.

[5] https://juejin.cn/post/7081894732233719822

[6] https://github.com/microsoft/unilm/blob/master/layoutlmv3/layoutlmft/models/layoutlmv3/modeling_layoutlmv3.py

[7] Li Y, Qian Y, Yu Y, et al. StrucTexT: Structured text understanding with multi-modal Transformers[C]//Proceedings of the 29th ACM International Conference on Multimedia. 2021: 1912-1920.

更多阅读

0ce92e960c5d31312734fd589e0b6d09.png

2926b25934f545b42ea340bbce8d8f67.png

9f4853432b05c7c81a34262a3b19de49.png

0f96225e8eece5ead264cb8439a3799e.gif

#投 稿 通 道#

 让你的文字被更多人看到 

如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。

总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。 

PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学术热点剖析科研心得竞赛经验讲解等。我们的目的只有一个,让知识真正流动起来。

📝 稿件基本要求:

• 文章确系个人原创作品,未曾在公开渠道发表,如为其他平台已发表或待发表的文章,请明确标注 

• 稿件建议以 markdown 格式撰写,文中配图以附件形式发送,要求图片清晰,无版权问题

• PaperWeekly 尊重原作者署名权,并将为每篇被采纳的原创首发稿件,提供业内具有竞争力稿酬,具体依据文章阅读量和文章质量阶梯制结算

📬 投稿通道:

• 投稿邮箱:hr@paperweekly.site 

• 来稿请备注即时联系方式(微信),以便我们在稿件选用的第一时间联系作者

• 您也可以直接添加小编微信(pwbot02)快速投稿,备注:姓名-投稿

354c9ff6ec60a312666701a60f9e6cd3.png

△长按添加PaperWeekly小编

🔍

现在,在「知乎」也能找到我们了

进入知乎首页搜索「PaperWeekly」

点击「关注」订阅我们的专栏吧

·

·

ed46388c18a4df43d4ca79c0e01e970e.jpeg

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_10128.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

virualBox虚拟机系统磁盘fdisk无损扩容

virualBox下系统磁盘扩容前言一、vmdk转vdi通过 VboxManager进行格式转换二、虚拟机设置1.虚拟机设置扩容2.fdisk 无损扩容前言 针对virualBox相较于VMwareWorkstation的磁盘扩容稍微复杂一些。需要明确一点:xxx.vmdk格式的硬盘文件是无法通过virualBox实现扩容的&…

Windows 下端口被占用的原因及解决办法

运行软件或者项目的时候,出现以下问题: panic: blademaster: listen tcp: 0.0.0.0:8080: listen tcp 0.0.0.0:8080: bind: An attempt was made to access a socket in a way forbidden by its access permissions. 第一种情况:确实被占用 1…

微信公众号题库

微信公众号题库 本平台优点: 多题库查题、独立后台、响应速度快、全网平台可查、功能最全! 1.想要给自己的公众号获得查题接口,只需要两步! 2.题库: 查题校园题库:查题校园题库后台(点击跳转…

【STL源码剖析】vector类模拟实现 了解底层-走进底层-掌握底层【超详细的注释和解释】

今天博主继续带来STL源码剖析专栏的第二篇博客了! 今天带来vector的模拟实现! 其实在很多人学习C过程中,都是只学习一些STL的使用方式,并不了解底层的实现。博主本人认为,这样的学习这样的技术是不深的。如果我们想要熟…

超省钱的线上打印方法我找到了

有不少网友都发现这样一个现象,这就是当自己需要打印一些纸质资料的时候,例如孩子的学习资料、比较重要的一些办公资料等,在路边很难找到一家打印店。有时候好不容易找到一家打印店,却发现打印一张A4的纸质资料,需要一块钱。如果一份纸质资料一共有30页,打印30张A4格式的…

Delphi WebBrowser完成网页自动登录

订制一些WEB数据抓取项目时,会遇到需要先登录网站系统,这时候我们通常会做成由系统自动登录的方式。 分析网页 要完成这项功能,首先需要对项目的网页进行分析,找到关键数据项的ID。如下图中的。1、用户名的ID名称;2、密码对应的ID名称;3、登录按钮对应的ID名称。 完成自动…

Springboot毕设项目公职备考在线学习平台e1h19(java+VUE+Mybatis+Maven+Mysql)

项目运行 环境配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: Springboot mybatis Maven Vue 等等组成,B/…

递归回溯实战+思想

目录 排列(提供元素无重复,并且不可以重复选择) 排列(提供的元素重复了,但是同个位置的元素不能复选) 组合(提供的元素没有重复,并且可以重复选择相同位置元素) 子集…

进程关系~

进程关系一、进程组二、会话三、控制终端四、函数tcgetpgrp、tcsetpgrp和tcgetsid五、作业控制五、孤儿进程组一、进程组 每个进程除了有一进程ID之外,还属于一个进程组,进程组是一个或多个进程的集合。同一进程组中的各进程接收来自同一终端的各 种信号…

Eclipse2022创建SSM项目及问题解决

Eclipse2022创建SSM项目及问题解决 使用Eclipse创建SSM项目的过程中会遇到一些问题,相对于IDEA而言更为繁琐,该篇文章是在使用Eclipse2022,并且设备上已经安装、配置好了Tomcat和Maven的基础之上进行的,目的是为了记录在Eclipse上…

Windows部署JMeter的压力测试

1.安装Windows版本Java 直接下载Java exe格式程序包 官网下载 点击 2.下载JMeter的压缩包 官网下载地址请 点击 或者复制这个URL: https://dlcdn.apache.org//jmeter/binaries/apache-jmeter-5.5.tgz 在浏览器上,会自动下载 下载下来解压即可。 3.启动JMeter 进入…

Linux内核设计与实现 第十二章 内存管理

因为内核内存需要节省着用,内核处理内存分配错误比较麻烦等,所以内核中获取内存不用户空间获取内存复杂得多。 本章讨论内核是如何管理内存和内核之中获取内存的办法。 12.1页 a) 可以通过 getconf 命令来查看系统的page的大小: [wangyubi…

Linux开发_CentOS7.4服务器安装NFS、NGINX服务器,ffmpeg、Qt环境

1. 环境介绍 环境介绍:采用的是华为云的ECS弹性云服务器–镜像安装的CentOS7.4 64位 -----是服务器版,非桌面版哦。 在CentOS7.4服务器版本的环境下搭建NFS服务器、安装ffmpeg、安装nginx服务器、部署Qt编译环境。 (1)配置NGIN…

河北稳控科技几种振弦采集仪的主要区别是什么?

河北稳控科技几种振弦采集仪的主要区别是什么?VH系列属于手持系列,多用于振弦传感器现场单次测量使用;VH501TC采集读数仪,设备是专用的多类型传感器手持式读数仪,主测传感类型为单弦式振弦传感器,辅测传感类型为电压、电流传感。采用 32 位 ARM 处理器和大尺寸全彩屏、阵…

无人机群编队分析的定位问题 分析与思考-1(数学建模竞赛2022年B题)

2022年高教社杯全国大学生数学建模竞赛结束了,在此我们对 2022年 B题 进行一些分析与思考。 1. 初步印象 2022年 B题 (无人机遂行编队飞行中的纯方位无源定位)是一个有趣的题目。 随着无人机技术的快速发展,早已从高科技变做寻常…

【Java】运算符

我不去想是否能够成功 既然选择了远方 便只顾风雨兼程 —— 汪国真 目录 1. 认识运算符 1.1 认识运算符 1.2 运算符的分类 2. 算术运算符 2.1 四则运算符 2.2 复合赋值运算符 2.3 自增 / 自减 运算符 3.关系运算符 4.逻辑运算符 4.1 逻辑与 && 4.2 逻…

分库分表实践

分库分表实践 分库分表概念以及使用场景 分库分表用来解决单表数据量太大,引起的性能问题。使用分库分表后能够根据特定路由键值将数据分布在不同库以及不同表中,解决了单表数据量的性能、运维等问题。一般来讲,单一数据库实例的数据的阈值…

【网络】HTTP协议详解

😀大家好,我是白晨,一个不是很能熬夜😫,但是也想日更的人✈。如果喜欢这篇文章,点个赞👍,关注一下👀白晨吧!你的支持就是我最大的动力!&#x1f4…

svn 代码迁入gitlab

window中安装好git客户端,右键空白处,点选git bash here进入git界面,输入命令 将svn38163之后的所有记录都备份那:git svn clone -r 38163:HEAD svn地址 --no-metadata trunk(本地电脑目录名) --username *** 备份所有提交记录:git svn clone svn地址 --no-metadata …

Linux安装Python 以及过程中的命令详细介绍

下载源码包 打开 Python 官网 找到需要的安装包 获取了资源的链接后,进入Linux下载,wget意思是webget, 即下载 wget https://www.python.org/ftp/python/3.10.7/Python-3.10.7.tgz目录下会新增 这样源码包就下载好了。 如果下载太慢&…