多模态概述

多模态

一、多模态应用

以最热门的Visual-Language这类模型为例(即Image-Language), 排在前面的任务依次是图文检索(Iamge-Text Retrieval)、文本生成图像(Image Generation from Text)、图片描述(Image Captioning)、
视觉问答(Visual Question Answering)、文本加图像翻译(Multi-Model Machine Translate)、视觉语言导航(Vision and Language Narigation)、多模态对话(MultiModel Dialog)。

其中应用最广泛的要数图文检索,毕竟是搜索任务嘛,各大云厂商也有把这个功能做成一个通用服务。其次学术上最热的无疑要数文本生成图像了,最近大火的模型有CLIP、DALL-E等,依赖搜索引擎,也取得了不错的进展。
其他的例如图片描述、视觉问答、文本图像翻译、视觉语言导航和多模态对话等,感觉还是不太成熟,或者说是应用场景受限。

从实际应用来看, 某种意义上说, 多模态multi-model还是比较昂贵的, 目前应用似乎并不广泛。

二、多模态概述

2.1 多模态的优势

    1. 多模态学习可以聚合多源数据的信息,使得模型学习到的表示更加完备。
    1. 潜表示空间的质量决定了多模态模型的效果,数据量达到一定规模,模态种类越完整,多模态模型的效果越好。

2.2 多模态总体架构

在这里插入图片描述

视觉-语言预训练模型(Visual-Language-Model, VLM)通常有五大结构:文本编码(Text-Encode)结构、图像编码(Image-Encode)结构、多模融合(Multi-Modal-Fusion)结构、解码(Decode, 可选)结构、以及预训练任务(PreTrain-Task)。

  • Text-Encode: NLP领域的预训练模型以及很成熟了,BERT、RoBERTa、ELECTRA、ALBERT、DeBERTa、MacBERT、UNILM等经典预训练语言模型结构,其中RoBERTa最稳定。
  • Image-Encode: CV领域的预训练模型也渐入佳境,主要包括OD-based Region Features、CNN-based Grid Features、ViT-based Patch Features三种方法。OD-based使用OCR技术提取识别的region表示作为输入。CNN-based使用ResNet等经典CNN模型提取信息并将特征平铺成序列作为输入。Patch-based则是使用分块patch embedding的方法提取提取特征作为输入。其中Swin效果很好。
  • Multi-Modal-Fusion: 融合Text和Image信息的方式主要有两种,Merge-Attention与Co-Attention。Merge-Attention是在Embedding处融合,例如Text-Embed + Image-Embed;而Co-Attention是在Transformer中的Attention进行融合(cross-attention),例如Text的Query, Image的Key和Value。
  • Decode(可选): 一般的多模态模型结构仅为Encode,当然也有Encode-Decode的,例如LayoutLM。
  • PreTrain-Task: 多模态模型的预训练目标也很关键,经典的有MLM(Mask-Language-Model, 遮挡Token)、MIM(Mask-Image-Model, 遮挡Region或者Patch)、ITM(Image-Text-Matching, 图文匹配)。其他的还有ITCL(Image-Text-Contrastive-Learning, 图文对比学习)、WRA(Word-Region-Aligment, 块对齐Word和Region)、VQA(Visual-Question-Answer, 视觉问答).

概括的说,根据多模融合(Multi-Modal-Fusion)结构的不同,VLM预训练模型可以分为单流模型和双流模型。依据图像编码(Image-Encode)结构的不同,VLM预训练模型可以分为OD-based、Grid-based、Patch-based、CLIP系列等。

三、经典模型

在这里插入图片描述

3.1 基于目标检测(Object-Detect-based Region Features)

3.1.1 VisualBERT

在这里插入图片描述

VisualBERT是早期多模态的经典之作,单流模型,一种模仿BERT的、结构简单,即text-embedding与image-embedding拼接起来输入Transformer,在VQA、VCR、NLVR数据集上取得了不错的效果。

VisualBERT流程主要是:1.单流嵌入层(文本和图像拼接起来作为输入, 类似BERT的text-embedding, Faster-RCNN抽取region特征) -> 2.编码层(Encode层为Transformer) -> 3.预训练任务目标为MLM(Masked Language Model)、SIP(Sentence-Image Prediction, 文本-图像匹配, 类似NSP)。

3.1.2 VL-BERT

在这里插入图片描述

VL-BERT是早期引入视觉语言学的工作,单流模型,重点是引入了Visual Feature Embedding模块,即除了OD-based Region Features,还有一个整张图片的Embedding。在视觉常识推理、视觉问答和指称表达理解取得了不错的效果。

VL-BERT流程主要是:1.单流嵌入层(文本和图像拼接起来作为输入, 其中image-embedding有Faster-RCNN抽取的region、以及全图mask掉region后进行FC操作) -> 2.编码层(Encode层为Transformer) -> 3.预训练任务目标为MLM(Masked Language Model)、MRIC(Masked RoI Classification, ROI回归与分类)。

3.1.3 LXMERT

在这里插入图片描述

LXMERT是早期的双流多模态模型,重点是text-encode和image-encode分别采用了不同的编码器,紧接着融合cross-modality-encode,在VQA、VCR、NLVR数据集上实现了新的stoa,NLVR数据集上指标更是提高了22%。

LXMERT流程主要是:1.双流编码层(文本编码为Transformer(word+idx), 图像编码为Transformer(roi+pos)) -> 2.融合Multi-Modal-Fusion(两个Encode, Cross-Att + Self-Att + FFN, 即图像到文本/文本到图像) -> 3.预训练任务目标为MLM(Masked Language Model)、MRIC(Masked RoI Classification, ROI分类)。

3.2 基于CNN网格特征(CNN-based Grid Features)

3.2.1 Pixel-BERT

在这里插入图片描述

Pixel-BERT不同于以往的image-embedding采用目标检测方式的模型,它将图像像素与文本对齐,双流模型,在视觉问答、图文检索、视觉推理方面取得了不错的效果。

Pixel-BERT流程主要是:1.双流嵌入层(两个编码器, Text-Encode采用BERT-CLS-SEP形式拼接物体item; Image-Encode采用ResNet编码后随机采样100像素) -> 2.编码层(Encode层为Transformer, text和image拼接) -> 3.预训练任务目标为MLM(Masked Language Model)、ITM(Image-Text-Matching, 图文匹配)、MRIC(Masked RoI Classification, ROI回归与分类)。

特点:

    1. Pixel-BERT的像素、文本语义对齐语义,不同于之前的基于Region图像特征,解决了特定任务的视觉表征限制,同时减轻标注边界框的耗费。
    1. Pixel-BERT模型的方法效果远远低于OB-based的方法。

3.3 基于块嵌入(Patch-Embedding)

3.3.1 ViLT

在这里插入图片描述

ViLT着重于平衡Text-Embed、Image-Embed这两个Embedding,在图像侧采用了ViT中的patch-embedding方法提取图像信息,提升了图像侧的特征提取效率。

ViLT流程主要是:1.双流嵌入层(两个编码器, Text-Encode采用Word-Piece-Embedding; Image-Encode采用Linear Projection of Flatten Patchs) -> 2.编码层(Encode层为Transformer, text和image拼接) -> 3.预训练任务目标为MLM(Masked Language Model, Whole-Word全词遮挡语言模型)、ITM(Image-Text-Matching, 图文匹配)、WPA(Word-Patch-Alignment, 图文子集对齐)。

在这里插入图片描述

特点:

    1. ViLT引入Patch-Embedding, 使得双流模型的图像侧特征提取效率提高。
    1. ViLT引入的Path-Embedding只是线性变化, 在下游任务效果好于Grid-based方法, 但是明显不如OB-based的方法。

3.3.2 ALBEF

在这里插入图片描述

ALBEF通过引入对比损失,通过跨模态注意将图像和文本表示在融合前对齐(ALBEF),实现更扎实的视觉和文本表示学习,同时对图像标注、分辨率要求不高。

ALBEF流程主要是:1.双流编码层(两个编码器, Text-Encode采用Bert(6-Layer); Image-Encode采用ViT-B/16, 分别编码后即计算Image-Text Contrastive Loss) -> 2.编码层(Encode层为Transformer-6-Layer, text和image拼接) -> 3.预训练任务目标为MLM(Masked Language Model, Whole-Word全词遮挡语言模型)、ITM(Image-Text-Matching, 图文匹配)、ITC(Image-Text Contrastive Learning, 图文对比训练)。

特点:

    1. 图文对比学习,掩码语言建模,图文匹配任务都是追求互信息最大话方式的一种视角,将基于三种预训练任务进行了统一建模。
    1. 动量蒸馏, Momentum Distillation (MoD), 类似Mean-Teacher。

3.4 基于CLIP(Contrastive Language-Image Pre-Training)

3.4.1 CLIP

在这里插入图片描述

CLIP(对比图文多模态预训练模型)是近年来多模态方面的热点,其采用大量搜索引擎的图文数据进行对比学习预训练,在zero-shot上性能甚至可以匹敌众多数据集上的监督SOTA,可以说引领了data-based先河。

CLIP流程主要是:1.数据收集(搜索引擎搜索图-文对400M,batch-size批尺寸32768) -> 2.编码层(Text-Encode为Transformer, Image-Encode为改进ResNet/ViT) -> 3.双塔结构, 图文特征融合为 图片特征矩阵 x 文本特征矩阵, 损失函数为0-1交叉熵, 负样本为in-batch负采样。

特点:

  • CLIP为CV研究者打开了一片非常非常广阔的天地,跨过了奇点,真的把自然语言级别的抽象概念带到计算机视觉里了。
  • 在zero-shot、text生成image、工业化应用方面效果很好。

参考文献

猜你喜欢

转载自blog.csdn.net/rensihui/article/details/125855249