searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

ViLT:最简单的多模态Transformer

2023-05-26 01:51:53
199
0

1. 核心思想

ViLT: Vision-and-Language Transformer Without Convolution or Region Supervision

  • 目标:模态的特征抽取做到了极小化,主要的计算量放在后边的模态融合上,提高了推理速度。多模态领域里程碑式工作。将区域特征,region 从多模态框架中移除。
  • 1. 对文本来说,只需一个词嵌入Liner Embedding就够了;
  • 2. 而图像这边,ViLBERT需要经过CNN Backbone,和一个Region操作,其实就是一个目标检测任务;
  • 流程图:

visual embedding的方法总共有三大类,其中region feature方法通常采用Faster R-CNN二阶段检测器提取region的特征,grid feature方法直接使用CNN提取grid的特征,patch projection方法将输入图片切片投影提取特征。ViLT是首个使用patch projection来做visual embedding的方法。

之前提出的方法的缺点:目标检测这就耗费了大量的时候。例如下图UNITER整个运行时间900ms,处理文本只需15ms,大部分时间都用在了处理目标检测任务上,达到了810ms。

2. 详细过程

1)4种不同类型的Vision-and-Language Pretraining(VLP)

下图是4种不同类型的VLP模型示意图。其中每个矩形的高表示相对计算量大小,VE、TE和MI分别是visual embedding、text embedding和modality interaction的简写。

作者提出这4种类型的主要依据有两点:

1.在参数或者计算上,两种模态是否保持平衡。

2.在网络深层中,两种模态是否相互作用。

VSE、VSE++和SCAN属于(a)类型。对图像和文本独立使用encoder,图像的更重,文本的更轻,使用简单的点积或者浅层attention层来表示两种模态特征的相似性。

CLIP属于(b)类型。每个模态单独使用重的transformer encoder,使用池化后的图像特征点积计算特征相似性。

ViLBERT、UNTER和Pixel-BERT属于(c)类型。这些方法使用深层transformer进行交互作用,但是由于VE仍然使用重的卷积网络进行特征抽取,导致计算量依然很大。

作者提出的ViLT属于(d)类型。ViLT是首个将VE设计的如TE一样轻量的方法,该方法的主要计算量都集中在模态交互上。

2)ViLT

作者提出的ViLT可以认为是目前最简单的多模态Transformer方法。ViLT使用预训练的ViT来初始化交互的transformer,这样就可以直接利用交互层来处理视觉特征,不需要额外增加一个视觉encoder。

文本特征输入部分,将文本看成一个词序列,通过word embedding matrix转化成word embedding,然后和position embedding进行相加,最后和modal-type embedding进行concate。

图像特征输入部分,将图像切块看成一个图像块序列,通过linear projection转化成visual embedding,然后和postion embedding进行相加,最后和modal-type embedding进行concate。

其中word embedding和visual embedding通过可学习的modal-type embedding标志位来区分,其中0标志位表示word embedding部分,1标志位表示visual embedding部分。

word embedding和visual embedding分别都嵌入了一个额外的可学习[class] embedding,方便和下游任务对接。

Pretraining Objectives

ViLT预训练的优化目标有两个:一个是image text matching(ITM),另一个是masked language modeling(MLM)。

ImageText Matching:随机以0.5的概率将文本对应的图片替换成不同的图片,然后对文本标志位对应输出使用一个线性的ITM head将输出feature映射成一个二值logits,用来判断图像文本是否匹配。另外ViLT还设计了一个word patch alignment (WPA)来计算textual subset和visual subset的对齐分数。

Masked Language Modeling:MLM的目标是通过文本的上下文信息去预测masked的文本tokens。随机以0.15的概率mask掉tokens,然后文本输出接两层MLP与车mask掉的tokens。

Whole Word Masking:另外ViLT还使用了whole word masking技巧。whole word masking是将连续的子词tokens进行mask的技巧,避免了只通过单词上下文进行预测。比如将“giraffe”词tokenized成3个部分["gi", "##raf", "##fe"],可以mask成["gi", "[MASK]", "##fe"],模型会通过mask的上下文信息[“gi”,“##fe”]来预测mask的“##raf”,就会导致不利用图像信息。作者将这个单词全都mask掉,这样就需要借助图像的信息来还原单词。

3. 实验结果

如图所示,ViLT相比于region feature的方法速度快了60倍,相比于grid feature的方法快了4倍,而且下游任务表现出相似甚至更好的性能。

从table2、table3和table4中可以看出,相对于region和grid的方法,ViLT在下游任务表现出相似甚至更好的性能。

可视化:

通过可视化可以看出,ViLT学到了word和image patch之间的对应关系。

4. 结论

BERT和ViT给多模态Transformer提供了基础,通过巧妙的proxy task设计,ViLT成功将BERT和ViT应用于多模态Transformer。总体上来看基于patch projection的多模态方法速度优势非常大但是整体上性能还是略低于region feature的方法。

 

0条评论
0 / 1000
z****n
4文章数
0粉丝数
z****n
4 文章 | 0 粉丝
z****n
4文章数
0粉丝数
z****n
4 文章 | 0 粉丝
原创

ViLT:最简单的多模态Transformer

2023-05-26 01:51:53
199
0

1. 核心思想

ViLT: Vision-and-Language Transformer Without Convolution or Region Supervision

  • 目标:模态的特征抽取做到了极小化,主要的计算量放在后边的模态融合上,提高了推理速度。多模态领域里程碑式工作。将区域特征,region 从多模态框架中移除。
  • 1. 对文本来说,只需一个词嵌入Liner Embedding就够了;
  • 2. 而图像这边,ViLBERT需要经过CNN Backbone,和一个Region操作,其实就是一个目标检测任务;
  • 流程图:

visual embedding的方法总共有三大类,其中region feature方法通常采用Faster R-CNN二阶段检测器提取region的特征,grid feature方法直接使用CNN提取grid的特征,patch projection方法将输入图片切片投影提取特征。ViLT是首个使用patch projection来做visual embedding的方法。

之前提出的方法的缺点:目标检测这就耗费了大量的时候。例如下图UNITER整个运行时间900ms,处理文本只需15ms,大部分时间都用在了处理目标检测任务上,达到了810ms。

2. 详细过程

1)4种不同类型的Vision-and-Language Pretraining(VLP)

下图是4种不同类型的VLP模型示意图。其中每个矩形的高表示相对计算量大小,VE、TE和MI分别是visual embedding、text embedding和modality interaction的简写。

作者提出这4种类型的主要依据有两点:

1.在参数或者计算上,两种模态是否保持平衡。

2.在网络深层中,两种模态是否相互作用。

VSE、VSE++和SCAN属于(a)类型。对图像和文本独立使用encoder,图像的更重,文本的更轻,使用简单的点积或者浅层attention层来表示两种模态特征的相似性。

CLIP属于(b)类型。每个模态单独使用重的transformer encoder,使用池化后的图像特征点积计算特征相似性。

ViLBERT、UNTER和Pixel-BERT属于(c)类型。这些方法使用深层transformer进行交互作用,但是由于VE仍然使用重的卷积网络进行特征抽取,导致计算量依然很大。

作者提出的ViLT属于(d)类型。ViLT是首个将VE设计的如TE一样轻量的方法,该方法的主要计算量都集中在模态交互上。

2)ViLT

作者提出的ViLT可以认为是目前最简单的多模态Transformer方法。ViLT使用预训练的ViT来初始化交互的transformer,这样就可以直接利用交互层来处理视觉特征,不需要额外增加一个视觉encoder。

文本特征输入部分,将文本看成一个词序列,通过word embedding matrix转化成word embedding,然后和position embedding进行相加,最后和modal-type embedding进行concate。

图像特征输入部分,将图像切块看成一个图像块序列,通过linear projection转化成visual embedding,然后和postion embedding进行相加,最后和modal-type embedding进行concate。

其中word embedding和visual embedding通过可学习的modal-type embedding标志位来区分,其中0标志位表示word embedding部分,1标志位表示visual embedding部分。

word embedding和visual embedding分别都嵌入了一个额外的可学习[class] embedding,方便和下游任务对接。

Pretraining Objectives

ViLT预训练的优化目标有两个:一个是image text matching(ITM),另一个是masked language modeling(MLM)。

ImageText Matching:随机以0.5的概率将文本对应的图片替换成不同的图片,然后对文本标志位对应输出使用一个线性的ITM head将输出feature映射成一个二值logits,用来判断图像文本是否匹配。另外ViLT还设计了一个word patch alignment (WPA)来计算textual subset和visual subset的对齐分数。

Masked Language Modeling:MLM的目标是通过文本的上下文信息去预测masked的文本tokens。随机以0.15的概率mask掉tokens,然后文本输出接两层MLP与车mask掉的tokens。

Whole Word Masking:另外ViLT还使用了whole word masking技巧。whole word masking是将连续的子词tokens进行mask的技巧,避免了只通过单词上下文进行预测。比如将“giraffe”词tokenized成3个部分["gi", "##raf", "##fe"],可以mask成["gi", "[MASK]", "##fe"],模型会通过mask的上下文信息[“gi”,“##fe”]来预测mask的“##raf”,就会导致不利用图像信息。作者将这个单词全都mask掉,这样就需要借助图像的信息来还原单词。

3. 实验结果

如图所示,ViLT相比于region feature的方法速度快了60倍,相比于grid feature的方法快了4倍,而且下游任务表现出相似甚至更好的性能。

从table2、table3和table4中可以看出,相对于region和grid的方法,ViLT在下游任务表现出相似甚至更好的性能。

可视化:

通过可视化可以看出,ViLT学到了word和image patch之间的对应关系。

4. 结论

BERT和ViT给多模态Transformer提供了基础,通过巧妙的proxy task设计,ViLT成功将BERT和ViT应用于多模态Transformer。总体上来看基于patch projection的多模态方法速度优势非常大但是整体上性能还是略低于region feature的方法。

 

文章来自个人专栏
深度学习算法
4 文章 | 1 订阅
0条评论
0 / 1000
请输入你的评论
0
0