Cross-modal Pretraining in BERT(跨模态预训练)

news2024/11/17 5:37:25

在这里插入图片描述
BERT以及BERT后时代在NLP各项任务上都是强势刷榜,多模态领域也不遑多让…仅在2019 年就有8+篇的跨模态预训练的论文挂到了arxiv上…上图是多篇跨模态论文中比较稍迟的VL-BERT论文中的比较图,就按这个表格的分类(Architecture)整理这几篇论文吧。

预训练优势?

  • 可以从无标注数据上更加通用的知识迁移到目标任务上,进而提升任务性能
  • 学习到更好的参数初始点,使得模型在目标任务上只需少量数据就能达到不错的效果

多模态优势?

  • 学到不同模态之间的语义对应关系。

预训练技术上首先是BERT的基础公式,不做赘述。所有的论文都是基于BERT做改装或者暴力组合的,如果按上图的Architecture可以分为one single和two single,one single会把text和visual融合到一个模型中,two single是分别处理text和visual(early fusion和late fusion)。

在这里插入图片描述


One Single
VideoBERT
VideoBERT: A Joint Model for Video and Language Representation Learning
主要思路是改进 BERT 模型。 从视频数据的向量量化和现有的语音识别输出结果上分别导出视觉帧token和语言学词 token,然后在这些 token 的序列上BERT。
在这里插入图片描述
值得注意的模型细节:

  • 为了将BERT扩展到视频(这其实是8+篇里面唯一一份做视频的paper),以便仍然可以利用预先训练的语言模型和可伸缩的实现进行推理和学习,作者首先将原始视觉数据(整个视频)成一个离散的图片帧 token序列,以得到“visual words”。
  • 文本和视频的语义对齐存在困难,因为即使在教学视频中,演讲者也可能指的是视觉上不存在的东西。解决方案:1随机地将相邻的句子连接成一个长句子,以允许模型学习语义对应,即使两者在时间上没有很好地对齐。2即使是相同的动作,状态转换的速度也会有很大的变化,我们随机为视频令牌选择1到5步的次采样速率。 这不仅有助于该模型对视频速度的变化具有更强的鲁棒性,而且还允许该模型捕获时间动态 在更大的时间范围内学习更长的状态转换。
  • 3种训练任务。 text-only, video-only,和video-text。对于单模态任务,用标准的BERT打上mask进行预测,对于跨模态任务,用语言-视觉对齐任务,即使用[CLS]的最终隐藏状态来预测语言句子是否在时间上与视觉句子对齐。

使用该预训练模型可以实现从video到text,也可以从text到video的各种任务。文章中主要验证了两个任务:zero-shot action classification和video captioning。

B2T2
Fusion of Detected Objects in Text for Visual Question Answering
应用领域是视觉问答中的检测到物体的文本融合,尝试通过BERT利用了在同一个统一架构中把单词指向图像中的一部分的参考信息。
在这里插入图片描述
值得注意的模型细节:

  • 评估了两种主要的体系结构:“双编码器(Dual Encoder)”,一种late fusion的结构,其中图像和文本被单独编码,score被计算为内积(BERT结构的[CLS]输出端引入整个图像的特征,判断图文是否匹配),如左图。而右图是完整的B2T2模型, 一种early fusion结构,其中视觉特征嵌入在与输入字标记相同的级别上,值得注意的是图像不是单独一边输入的,而是在“Mx”即masked的词位置输入改词的局部区域特征。
  • 两个预训练任务: (1) impostor identification and (2) masked language model prediction.
  • 只有一个下游任务就是它自己的应用领域VQA。

VisualBERT
VISUALBERT: A SIMPLE AND PERFORMANT BASELINE FOR VISION AND LANGUAGE.
改装BERT,以将输入一段文本中的元素(词)和一张相关的输入图像中的区域(局部)隐式地对齐起来。
在这里插入图片描述
值得注意的模型细节:

  • 输出使的三种embedding信息的增加,分别是position,segment,token/image。position是目标检测得到的局部位置or 句子词的位置;segment表示是图像嵌入or 文本嵌入;词or视觉特征。
  • 两种训练任务:(1)部分文本被屏蔽,模型学习根据剩余文本和视觉上下文预测屏蔽词;(2)确定所提供的文本是否匹配图像。
  • 预训练任务:VQA,VCR,NLVR,和Entities。
  • 设备:4 Tesla V100s each with 16GBs

Unicoder-VL
Unicoder-VL: A Universal Encoder for Vision and Language by Cross-modal Pre-training
网络结构和训练策略与VideoBert大同小异,将视频片段帧特征换成了单图的局部区域。
在这里插入图片描述
值得注意的模型细节:

  • 预训练阶段使用三个任务,包括masked语言建模(MLM)、masked对象标签预测(MOC)以及视觉-语言匹配(VLM)。前两个任务会让模型学习从基于语言和视觉内容输入的联合 token 学习到内容相关的表征(都是15%masked之后,利用相应的上下文进行预测重构,其中MOC预测的不是特征而是区域的label);后一个任务尝试预测一张图像和一段文本描述之间是否相符。
  • 预训练下游任务:image-text retrieval,zero-shot image-text retrival。
  • 设备: 4 NVIDIA Tesla V100 GPU

VL-BERT
VL-BERT: PRE-TRAINING OF GENERIC VISUAL- LINGUISTIC REPRESENTATIONS
在VL-BERT中,视觉和语言的嵌入特征将同时作为输入,这些元素是在图像中的感兴趣区域(RoIs)上定义的特征 以及输入句子中的子词。 RoIs可以是由对象检测器产生的包围框,也可以是某些任务中的注释框。如下图的结构,不管是句子还是图片都有visual feature,用于捕捉视觉线索。
在这里插入图片描述
值得注意的模型细节:

  • 输入由四个部分构成,token embedding, visual feature embedding, segment embedding, and sequence position embedding。token和BERT一样,对于图像的输入给特殊的[IMG]token做标记;visual feature用于捕捉视觉线索,visual appearance feature用Faster-RNN抽取, visual geometry embedding是每个框的4-d位置信息然后做正弦余弦处理,最后用FC得到特征;segment标记是句子or图片,在不同任务中标记不同,如在VQA中A denotes Question, B denotes Answer, and C denotes Image,在caption中就只有A和C两种标记,position,标识输入序列中的顺序,由于image reginos不存在顺序,所以标记都是一样的(如图中的7)。
  • 三个预训练任务为:带有视觉线索的masked文字建模、带有语言线索的感兴趣区域RoI分类、句子-图像关系预测。
  • 设备:Pre-training is conducted on 16 Tesla V100 GPUs for 250k iterations by SGD。

UNITER
来自ECCV 2020的UNITER: UNiversal Image-TExt Representation Learning
文章的动机来源于:能否为所有V + L任务学习通用的图像文本表示形式?所以这篇文章最重要的贡献就是不再只单独mask某个模态,而是以一种混合学习的形式进行统一的表示学习。模型架构图如下,上半部分是UNITER的模型架构,会先对image和sentence用预训练模型抽特征然后再输入到Transformer中。下半部分则是作者提出的多个预训练模型。
在这里插入图片描述
值得注意的模型细节:

  • 提前预训练的效果比不使用预训练的特征效果要更好。
  • 四种预训练任务:以图像为条件的掩码语言建模(MLM),以文本为条件的掩码区域建模(MRM),图像文本匹配(ITM),字区域对齐(WRA)。前两种掩码训练中是只掩盖一个模态而保持另一个模态不变,而不是像其他预训练方法那样随机掩盖两个模态。后面两种任务解决跨模态对齐问题。
  • 然后还有三种MRM变体:掩码区分类(MRC),掩码区域特征回归(MRFR),具有KL散度的掩码区域分类(MRC-kl)。MRM本来是为了在给定其余区域的情况下重建掩码区域和所有单词,但与以离散标签表示的文本标记不同,被掩掉的视觉标记特征是高维且连续的,因此无法通过类可能性进行监督,所以新增这三种变体能够更好的学习。

Pixel-BERT
Pixel-BERT: Aligning Image Pixels with Text by Deep Multi-Modal Transformers
其实这篇文章本质上与以上其他文章差距不是很多,之所以要叫pixel-BERT的原因是在得到图像特征的时候会多学一个 local feature patch,然后再拿这种pixel feature和semantic embedding相加一起作为图像的表示即可。
在这里插入图片描述
补充pixel feature好处是可以补充一些重要的视觉信息缺失,如物体的形状,空间关系等等,算是能够捕捉更细腻的信息吧。计算资源是64 张 V100 。

Oscar
也是来自ECCV20,Oscar: Object-Semantics Aligned Pre-training for Vision-Language Tasks
这篇文章比较有意思的是,首次引入目标检测的tag作为锚点以降低对齐的难度,并且也搭上了对比学习的车对正负例(词,目标标签,图像区域)的学习进行优化。如下图展示了word-tag-region的三元组应该如何对齐,以及它主要可以解决的下游任务。
在这里插入图片描述
模型图如下,Transformer的输入也是三个部分,其中tag是和word共享dictionary的。
在这里插入图片描述
然后就是两个任务Masked Token Loss (MTL) 和Contrastive Loss了。


Two Single
ViLBERT
两个BERT流中分别预处理视觉和文本输入,并在 transformer 层中进行交互(co-Transformer…),具体如下图。
在这里插入图片描述
所谓co-Transformer如下,将原encoder的部分,变成co-Attention的形式,分别向对方Query然后优化特征。
在这里插入图片描述
值得注意的模型细节:

  • 仍然是尝试masked图片局部和masked文字建模,与image-text pair。任务细节如下图,其中图片的区域的构造是5-d,多加入了 局部区域覆盖比(fraction of image area covered),对于图像BERT也是给的IMG token。
  • 下游任务:VQA,VCR,Grounding Referring Expressions,Caption-Based Image Retrieval,‘Zero-shot’ Caption-Based Image Retrieval。
  • We train on 8 TitanX GPUs with a total batch size of 512 for 10 epochs.
    在这里插入图片描述

LXMERT
LXMERT: Learning Cross-Modality Encoder Representations from Transformers
三个编码器:一个对象关系编码器、一个语言编码器和一个跨模态编码器(是cross-Transformer)。图像经过目标检测模型得到区域块的特征序列,并经过Transformer进一步编码;文本侧通过BERT结构得到文本的特征序列,最后两者做cross-Transformer进行多任务的预训练。
在这里插入图片描述
值得注意的模型细节:

  • 使用了 5 个不同的、有代表性的预训练任务:masked语言建模、masked对象预测(特征回归和标签检测)、跨模态对齐以及图像问答。
  • 在vision output会做RoI-Feature Regression和Detected Label Classification,cross output会做Cross-Modality Matching & QA,language output会做Masked Cross-Modality LM。
  • The whole pre-training process takes 10 days on 4 Titan Xp。 Adam,le-4,256.

ERNIE-ViL
Knowledge enhanced vision-language representations through scene graph
架构上也是对于图像和文本分别使用单模编码器进行编码,然后使用跨模态Transformer实现两个模态的信息交融。比较不一样的就是视觉场景图它来了,尝试把场景图中的关系知识融入多模态预训练中,使得模型更能精准把握图像和文本之间细粒度的对齐信息。
在这里插入图片描述
值得注意的模型细节:

  • 场景图预测(Scene Graph Prediction)预训练任务。即根据给定的一段文本解析出场景图结构,然后根据解析出的场景图设计三个子任务,分别是目标预测(object prediction)、属性预测(attribute prediction)、关系预测(relationship prediction),通过掩蔽图像和文本中场景图解析出来的目标、属性以及关系,使用模型进行预测,以让模型学习到跨模态之间的细粒度语义对齐信息。
  • 其他预训练任务:Masked Cross-Modality LM、Detected-Label Classification,Cross-Modality Matching

ViLT: Vision-and-Language Transformer Without Convolution or Region Supervision
补上一篇ICML2021的文章。
首先作者归纳了一下,目前有的4种不同类型的Vision-and-Language Pretraining(VLP),如下图:
在这里插入图片描述

  • a。对图像和文本双流使用encoder,其中图像的更重,文本的更轻,然后使用简单的点积或者浅层attention层来表示两种模态特征的相似性。
  • b。每个模态单独使用比较重重的transformer encoder,然后使用池化后的图像特征点积计算特征相似性。
  • c。使用深层transformer进行交互作用,但是由于VE仍然使用重的卷积网络进行特征抽取,导致计算量依然很大。
  • d。这是作者自己提出的模型,目的是提出ViLT是首个将VE设计的如TE一样轻量的方法,该方法的主要计算量都集中在模态交互上。

如何实现这种轻量呢?如下图的模型图

在这里插入图片描述
主要是图像端VE使用预训练的ViT做patch projection。即直接将图像切块看成一个图像块序列,通过linear projection转化成visual embedding,然后和postion embedding进行相加,最后和modal-type embedding进行concate。然后做3个预训练任务:

  • ImageText Matching:随机以0.5的概率将文本对应的图片替换成不同的图片,然后判断图像文本是否匹配
  • Masked Language Modeling:随机以0.15的概率mask掉tokens,通过文本的上下文信息去预测masked的文本tokens
  • Whole Word Masking:将连续的子词tokens进行mask的技巧,而不使用图像信息

paper:https://arxiv.org/abs/2102.03334
code:https://github.com/dandelin/ViLT

在这里插入图片描述
UNIMO: Towards Unified-Modal Understanding and Generation via Cross-Modal Contrastive Learning
继续补文ACL2021的文章,这篇文章的重点是“统一模态”,即跨模态多模态模型能否同时做单模和多模场景呢?即多模态模型不应该对模态的缺失而那么的敏感。具体的模型如上图,思路仍然是依靠大量的数据+预训练任务,由于想同时处理单模和多模,所以任务分为这两种:

  • 视觉学习。mask掉区域,用剩下区域来还原该部分+用文本和剩下区域来还原该部分。
  • 文本学习。mask掉词,和视觉类似操作。另外为了让模型能同时支持生成和理解两类目标,UNIMO设计了双向预测(Bidirectional prediction)和 序列生成(Seq2Seq Generation)两种损失。
  • 跨模态学习。文本改写(Text Rewriting),从句子级(利用回译扩增)、短语级和词汇级别(利用场景图替换object)三个粒度进行了改写。
  • 跨模态学习。图文检索,分别对锚样本做图像检索和文本检索两个任务,得到loss为L C M C L ( V , W ) = − l o g p o s p + p o s I + p o s T ( n e g p + n e g I + n e g T ) + ( p o s p + p o s I + p o s T ) L_{CMCL}(V,W)=-log\frac{pos_p+pos_I+pos_T}{(neg_p+neg_I+neg_T)+(pos_p+pos_I+pos_T)}LCMCL​(V,W)=−log(negp​+negI​+negT​)+(posp​+posI​+posT​)posp​+posI​+posT​​
    按正负例样本对p o s p + p o s I + p o s T pos_p+pos_I+pos_Tposp​+posI​+posT​别代表强正例集合,图像检索的弱相关集合,文本检索的弱相关集合。n e g p + n e g I + n e g T neg_p+neg_I+neg_Tnegp​+negI​+negT​表示对应的负例集合。

paper:https://arxiv.org/pdf/2012.15409:
code:https://github.com/PaddlePaddle/Research/tree/master/NLP/UNIMO

在这里插入图片描述
M3P: Learning Universal Representations via Multitask Multilingual Multimodal Pre-training
继续补文CVPR2021,与前面的文章稍有不同的是,这篇文章主打的是多任务多语言多模态预训练的模型,即M3P模型。模型框架如上图,其实重要的部分主要是输入的那三块:多模态单语言,多模态混合语言,单模态多语言三个输入,然后做多个预训练任务,包括VLM,MRM,MLM,xMLM这些。其中混合语言通过code-switched来实现,即多语言相同词直接进行替换来提高丰富度。

paper:arXiv:2006.02635v4


总结:

  • 单模型主要改进BERT的输入,双模型主要做co/cross的BERT。
  • 全图片只能预测特征,masked的精髓在于图片的局部区域,可特征可label。
  • 预训练任务的单模态以mask为主,视频可以打乱帧时序,细化可以到object关系。多模态以语义对齐为主,一直做到caption的细粒度对齐。
  • 大规模,多任务的训练,多显卡高算力。可以看一下OpenAI发布的必看论文 CLIP,DALL-E,论文解读传送门。
  • 下游任务丰富。
  • 个人偏向于单流模型,参数较少较轻便且端到端,性能不差。

 

Cross-modal Pretraining in BERT(跨模态预训练)_上杉翔二的博客-CSDN博客_基于跨模态知识提取与融合的模型预训练方法 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[LeetCode 1781]所有子字符串美丽值之和

题目描述 题目链接:所有子字符串美丽值之和 一个字符串的 美丽值 定义为:出现频率最高字符与出现频率最低字符的出现次数之差。 比方说,“abaacc” 的美丽值为 3 - 1 2 。 给你一个字符串 s ,请你返回它所有子字符串的 美丽值…

微信小程序框架(五)-全面详解(学习总结---从入门到深化)

目录 UI框架_TDesign 引入TDesign UI框架_TDesign组件 Rate 评分 Toast 轻提示 UI框架_Vant 使用方式 引入组件 UI框架_Vant组件 Overlay 遮罩层 Grid 宫格 Card 商品卡片 UI框架_TDesign TDesign 企业级设计体系(前端UI组件库) 地址:…

影响项目进度的因素有哪些?如何跟踪项目计划?

影响项目进度的因素: 1、项目经理能力不足 一名优秀的项目经理,要对制定项目计划、安全、质量、成本管理等各项工作都熟悉,也要能管理好项目团队。 如果无法有效管理团队、没有完全掌握项目管理方法等都是项目经理能力不足的表现&#xff…

跳槽一次能涨多少?今天见识到跳槽天花板。

2022年马上就快结束了,最近内卷严重,各种跳槽裁员,相信很多小伙伴也在准备明年的金三银四的面试计划。 在此分享一套学习笔记 / 面试手册,年后跳槽的朋友可以好好刷一刷,还是挺有必要的,它几乎涵盖了所有的…

软件测试必须要加班吗?

我在面试时一般会问面试官:“公司每次迭代周期多久?加班多么?”这个问题一般都是看这家公司的上班节奏怎么样,加班多不多,自己能不能扛住加班的压力。一般来说,刚进公司,需要对环境、业务、代码…

10:30面试,10:31就出来了 ,问的实在是太...

从外包出来,没想到算法死在另一家厂子 自从加入这家公司,每天都在加班,钱倒是给的不少,所以也就忍了。没想到8月一纸通知,所有人不许加班,薪资直降30%,顿时有吃不起饭的赶脚。 好在有个兄弟内推…

CMake中target_include_directories的使用

CMake中target_include_directories命令用于向target中添加包含目录,其格式如下: target_include_directories(<target> [SYSTEM] [AFTER|BEFORE]<INTERFACE|PUBLIC|PRIVATE> [items1...][<INTERFACE|PUBLIC|PRIVATE> [items2...] ...]) 指定在编译给定targ…

MySQL 事务特性和事务隔离级别

1. MySQL 事务的四大特性 2. MySQL 事务的并发问题 3. MySQL 事务的隔离级别 --------------------------------------------------------- 1. MySQL 事务的四大特性 MySQL 事务具有四个特性&#xff1a;原子性、一致性、隔离性、持久性&#xff0c;这四个特性简称 ACID 特性…

写文章常用的几款软件

编写文章Typora Typora网址 就是一款非常优秀的桌面端笔记本软件, 支持实时预览的 Markdown 文本编辑器. 支持导出HTML, PDF, Word等格式 画图excalidraw excalidraw在线网址 一个开源免费的画图软件 目前看到的最舒服的画图软件, 拥有丰富的图库, 好看的风格 录制GIF的LICEc…

Go开发中如何进行自定义Response.go封装实现

自定义Respone好处 在写接口的时候&#xff0c;我们通过都需要将前端小伙伴发给我们的请求进行校验和返回数据&#xff0c;如果是正确的请求参数&#xff0c;那么也符合我们的校验&#xff0c;则需要返回数据给他们&#xff0c;并且给予提示&#xff1b;反之&#xff0c;如果请…

不知道WPS转PPT怎么转换?来看看我自用的两种方法就知道了

wps转ppt怎么转换 &#xff08;百&#xff09;wps转ppt怎么转换&#xff1f;分享这几种转换方法 &#xff08;搜&#xff09;WPS怎么转PPT&#xff1f;今天教你学会WPS转PPT &#xff08;企&#xff09;WPS如何转PPT&#xff1f;WPS转PPT转换方法分享 &#xff08;网&#xff…

Datax

1、Datax简要描述 DataX 是阿里云 DataWorks数据集成 的开源版本&#xff0c;在阿里巴巴集团内被广泛使用的离线数据同步工具/平台。DataX 实现了包括 MySQL、Oracle、OceanBase、SqlServer、Postgre、HDFS、Hive、ADS、HBase、TableStore(OTS)、MaxCompute(ODPS)、Hologres、…

ADI Blackfin DSP处理器-BF533的开发详解39:图像处理专题-图像灰度均衡处理(含源码)

硬件准备 ADSP-EDU-BF533&#xff1a;BF533开发板 AD-HP530ICE&#xff1a;ADI DSP仿真器 软件准备 Visual DSP软件 硬件链接 功能介绍 代码实现了图像灰度均衡&#xff0c;代码运行时&#xff0c;会通过文件系统打开工程文件根目下" …/ImageView"路径中的 tes…

ADI Blackfin DSP处理器-BF533的开发详解37:图像处理专题-YUV420 转 RGB565(含源代码)

硬件准备 ADSP-EDU-BF533&#xff1a;BF533开发板 AD-HP530ICE&#xff1a;ADI DSP仿真器 软件准备 Visual DSP软件 硬件链接 功能介绍 代码实现了将 YUV420 数据格式转为 RGB565 格式。YUV420 的数据格式必须是两度和色度分离的。 板卡液晶屏和 VDSP 软件商 Image Viewe…

【小甲鱼C语言】课后笔记第一章第三节——常量和宏定义

目录 1、常见的常量 2、宏定义&#xff08;符号常量&#xff09; 3、标识符 4、字符串常量 5、课后习题&#xff08;编程题&#xff09; 1、常见的常量 整型常量&#xff1a;520, 1314, 123 实型常量&#xff1a;3.14, 5.12, 8.97 字符常量 普通字符&#xff1a;L, o, v,…

基于短期的风力发电概率预测(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️❤️&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清…

Stm32旧版库函数5——ov2640通过nrf24l01发送图像

视频采集端&#xff1a; /******************************************************************************* // // 使用单片机STM32F100C8T6 8 // 晶振&#xff1a;8.00M // 编译环境 Keil uVision4 // 在3.3V的供电环境下&#xff0c;就能运行 // 波特率 115200 // 使…

PyTorch(六)网络模型

文章目录Log一、现有网络模型的使用及修改1. VGG① ImageNet 数据集下载② 模型加载③ 模型改造a. 添加一个线性层b. 插入一个线性层c. 修改一个线性层二、网络模型的保存与读取① 网络模型的保存a. 保存方式一b. 保存方式二② 网络模型的读取a. 读取方式一b. 读取方式二三、完…

微信公众号服务号配置对接在线客服系统教程

如果只需要实现微信公众号的关注自动回复&#xff0c;关键词自动回复功能&#xff0c;普通订阅号就可以 当需要对接实现公众号的模板消息提醒&#xff0c;模板消息与客服端H5的对接&#xff0c;访客在微信点击或扫码时获取到微信的昵称头像&#xff0c;需要网页授权功能。这种是…

Spring(一):Spring核心与设计思想(IoC、DI)

目录一、Spring是什么1.1 容器是什么&#xff1f;1.2 什么是IoC&#xff1f;1.3 理解Spring IoC1.4 DI是什么一、Spring是什么 我们这里所说的Spring指的是SpringFrameWork&#xff0c;是一个开源框架。Spring支持广泛的应用场景&#xff0c;它可以让Java企业级的应用程序开发…