文章目录
前言
关于多模态的串联讲解,我们已经进行了两期。此前的内容主要聚焦于多模态的特征提取与对齐技术。然而,正如Oscar和VILBERT所强调的,对于多模态而言,模态间的交互作用实则至关重要。因此本章也就开展基础篇的第三步,梳理主流多模态方法的融合方法。希望能给读者不一样的收获,若有疑问或者想探讨的朋友,欢迎指正和交流。欢迎大家关注微信公众号:智驭深研。
1. 模态融合
1.1 Encoder-Only架构
对应我们上篇文章(基础二)中所说,在模态的对齐发展中,对齐操作可以分为粗粒度对齐coarse-grained和精细化对齐fine-grained。而其中fine-grained的特点就是使用了预训练的目标检测提取视觉特征,而coarse-grained则更多的是基于ViT。下图来自论文《ViLT: Vision-and-Language Transformer Without Convolution or Region Supervision》。从图a中可以观察到,视觉端使用目标检测,所占参数量会非常大,因此融合阶段就只能做个简单的交互。在后续的工作中就逐步使用Transformer的Encoder(图c),或类似结构作为模态之间的交互,进一步提高了性能。
1.1.1 ViLT
对应首篇文章(基础一)中所说,多模态的融合可以区分为三个:早期融合(特征级)、晚期融合(决策级)和混合融合(逐级)。而CLIP(Learning Transferable Visual Models From Natural Language Supervision)模型采用的是晚期融合的一种变体,即双塔模型设计,也是上图中的 (b)。在CLIP中,图像和文本分别由两个独立的编码器(图像和文本)进行处理。在得到图像和文本的向量表示后,CLIP通过对比学习拉近图像文本在空间中距离,即计算这些向量之间的相似度来理解和匹配图像和文本。对于已经学习到很好的图文特征之后,CLIP只需做简单的点乘就完成了多模态任务。虽然CLIP没有在一个共同的编码器内部进行图像和文本的融合,但它在最终阶段通过计算相似度实现了模态间的融合,这种融合方式相对于在编码器内部进行的融合来说,可以视为一种较晚的融合策略。值得注意的是,CLIP在图文匹配或检索任务中,效果非常好,但对于其他任务来说,就稍显欠缺。
1.1.2 CLIP
与CLIP不同,ViLT模型采用的就是早期融合策略,也是图1中的 (d)。具体来说,ViLT通过融合编码器的设计,将图像和文本的输入表示拼接在一起,然后通过一个Transformer Encoder进行建模。在这个过程中,图像输入由符号和图像块组成,而文本输入则由符号和词元序列拼接而成。图像和文本的最终表示都是在同一个Transformer Encoder内部进行融合。
1.1.3 ALBEF
ALBEF通过多任务联合训练将类似CLIP的对比学习和类ViLT的交互融合范式统一到一个训练框架中。在基础(二)中已经做了较为详细的描述,在这就不赘言了。
Encoder-Only架构常用于各种下游任务的特征提取,比如分类、问答、命名实体识别等。
1.2 Encoder-Decoder架构
该架构主要由两大组件构成:Encoder与Decoder。Encoder负责将输入的序列转化为紧凑的中间表征,而Decoder则依据这一中间表征来生成目标输出序列。此架构特别适用于翻译、摘要生成、图像描述等任务,这些任务均需要深入理解并重构输入信息,进而产生新的序列。
1.2.1 BLIP
BLIP提出了一个统一的框架,用一个模型把所有任务都解决。对于图像它就有一个VIT,但是对于文本来说,它对应了三个模型,分别是一个标准的这个 text encoder,然后还有就是 image grounded text encoder 和 image grounded text decoder。
鉴于该方案由ALBEF的原开发团队提出,其在训练过程与模型架构上与ALBEF高度相似。如图左侧所示,包含一个完整的ViT模型,专门用于提取图像特征。而右侧则配置了三个针对文本的模型,它们根据具体任务目标,从大型模型中选取不同的组件来执行forward。
- 对于文本第一个模型,其内是一个N层的Transformer,得到文本特征后和视觉特征做ITC Loss。
- 对于文本第二个模型,采用的是ITM Loss。但值得注意的是,图中相同颜色代表共享参数。即相对于文本第一个模型,多了个Cross
Attention。 - 对于文本第三个模型,是为了解决生成任务,即decoder所在。因为文本生成不能看到完整句子,所以第一层使用了Casual
Self-Attention,去做一些因果推理。最后目标函数用的是GPT中的LM。
实际上,BLIP模型的一个更为关键的贡献在于其提出的CapFilt机制。为了应对网络大规模数据中普遍存在的图像与文本不匹配问题,BLIP创造性地引入了两个核心模块来优化字幕处理:字幕生成器与过滤器。具体内容可以抽一期具体讨论下。 - 字幕生成器,作为一个图像驱动的文本解码器,能够针对给定的网络图像生成合成字幕,这些字幕随后被用作额外的训练样本,丰富了数据集。
- 过滤器,则是一个基于图像内容的文本编码器,它的作用在于精准地识别并剔除那些与图像内容不相符的噪声文本,从而确保训练数据的纯净与质量。
1.2.2 CoCa
CoCa和ALBEF很类似,左侧为图像Encoder,右侧是文本Decoder,其中Unimodal Decoder用于抽取文本特征,Multimodal Decoder做多模态特征。其区别就是:
- 图像Encoder中的使用了可学的Attention Pooling。
- 文本一端采用的全为Decoder
2. 写在结尾
以上就是本篇全部内容啦。本篇了解了多模态的融合部分,下篇内容将围绕多模态,更详细地梳理下多模态的发展路线,作为基础篇的总结。作者能力有限,若文中有误,欢迎大家指导!