NLP高频面试题(三十一)——多模态预训练模型的主要结构、特征对齐与融合方法及对比损失函数详解

多模态学习的背景与挑战

多模态学习旨在让模型同时理解和融合来自不同模态(如图像和文本)的信息,以获得更全面的语义理解。在人类认知中,我们习惯将视觉、语言、听觉等多种信息共同处理,因此发展能够整合多模态数据的人工智能模型具有重要意义。近几年,随着深度学习在计算机视觉和自然语言处理领域的突破,研究者开始探索将视觉和语言模态进行联合预训练,希望模型能从海量未标注的图文数据中学习通用表示,从而在下游任务(例如视觉问答、图像字幕生成、跨模态检索等)中取得更佳性能。

然而,多模态学习面临诸多挑战:首先,不同模态的数据异构性很高——图像以像素网格或视觉特征表示,文本以离散的单词序列表示,两者的数据分布和语义表达方式截然不同,这使得模型很难在统一表示空间直接对齐。其次,模态间的信息丰富度不平衡:一幅图像往往包含丰富的细节,而对应的文本描述可能只提及其中一部分关键信息;反之,文本可能包含图像无法直接呈现的抽象概念。这种信息不对称导致语义一致性对齐变得困难。再次,将两个模态的数据融合后,模型的参数空间巨大,训练需要克服计算资源和高维优化的困难。此外,如何在融合过程中保留各模态的独特信息又不过度依赖某一模态,也是一个需要权衡的问题。

为应对上述挑战,多模态预训练模型应运而生。研究者构建了包含图像-文本对的大规模数据集,在此基础上训练模型同时理解图像和文本。这些预训练模型能够在下游任务中通过微调展现出卓越的性能。本文将详细介绍多模态预训练模型的主要架构类别、特征对齐融合方法,以及训练这类模型时常用的对比损失函数。我们将深入分析各类方法的核心机制、比较其优劣和适用场景,并展望多模态预训练未来的发展趋势。

多模态预训练模型的主要结构分类

当前多模态预训练模型的架构大致可以分为以下几类:单塔结构(Single-Stream)、双塔结构(Dual-Stream)、编码器-解码器结构以及图神经网络结构等。不同结构在模态融合的时机和方式上各有特点,决定了模型如何处理和融合图像与文本特征。

单塔结构(Single-Stream)

单塔结构指模型采用统一的编码器来同时处理图像和文本等多模态输入。在这种架构中,来自不同模态的特征通常在模型的早期就被拼接或融合,并一同输入后续的网络层进行处理。典型的单塔模型如早期的 ViLBERT 模型,它使用了双流Transformer但通过交叉注意力机制实现了图文特征的联合编码,本质上相当于一个融合后的单一模型。此外,VisualBERTUNITEROSCARViLT 等都是单塔思想的代表。单塔结构通常采用Transformer自注意力网络,将图像区域特征和文本token序列合并后送入多层Transformer,使模型可以在同一空间内建模图文之间的关系

单塔架构的优势在于能够进行深度的跨模态交互:由于图像和文本信息从一开始就在同一网络中融合,模型可以学习到细粒度的对应关系和联合表示,对于需要精细理解图文对应的任务(如视觉问答VQA、跨模态推理等)表现出色。例如,VisualBERT和UNITER模型在这些任务上取得了领先效果,部分原因即在于其单流Transformer能够捕捉到词语与图像区域之间的细致联系。然而,单塔模型也存在缺点。首先,计算成本较高:将图文一起输入同一Transformer意味着每对图文都需一起处理,缺乏共享计算,难以高效利用大规模对比学习进行语义对齐。与双塔模型相比,单塔模型要在训练中处理组合后的高维特征,训练和推理开销更大。其次,由于没有独立的图像或文本全局表示,单塔模型在检索场景中不直观:检索任务往往需要比较图像和文本的全局向量相似度,而单塔模型通常只在**[CLS]**等联合表示上学习全局语义,缺乏显式的图文独立嵌入,不利于高效检索。

尽管如此,改进的单塔模型通过预训练大数据集,已经证明其强大的跨模态理解能力。例如,UNITER模型将四个大型图文数据集联合预训练,通过遮盖语言模型(MLM)图文匹配(ITM)词-区域对齐等多任务训练,使单塔Transformer学习到通用的图文表示。这类模型在下游多种任务(如VQA、图文检索、图像描述)上均取得了当时的最佳成绩,展示了单塔架构在融合学习上的潜力。

双塔结构(Dual-Stream)

双塔结构采用两个相对独立的编码器分别处理不同模态的数据,例如一个塔专门编码图像,另一个塔专门编码文本。每个模态的输入经过各自的网络编码后,得到各自的嵌入表示;接着再通过某种方式将这两种表示联系起来。经典的双塔模型是 OpenAI 提出的 CLIP(Contrastive Language-Image Pre-Training),它由一个图像编码网络(如ResNet或ViT)和一个文本编码网络(Transformer)组成,分别将图像和文本映射到同一个向量空间。模型通过对比学习使真实对应的图文向量在该空间中距离更近,非对应的更远,从而实现跨模态的隐式对齐

(image)图1:CLIP 的双塔架构示意图。文本通过Transformer编码为文本特征向量,图像通过卷积神经网络(或Vision Transformer)编码为图像特征向量。经过投影层,图文被映射到统一的嵌入空间,在训练时通过对比损失拉近匹配的图文对表示、区分非匹配样本。

双塔架构的优点在于对跨模态检索等任务非常高效。由于图像和文本各自编码,可以预先计算并存储大量图像和文本的特征向量库,在检索时只需计算向量相似度(如余弦相似度)即可快速找到匹配。这种先独立编码再比对的机制,非常适合海量数据的检索场景。例如,CLIP被证明能够在零样本条件下进行图文检索和图像分类,其原因正是双塔模型学到了一个共同的跨模态语义空间。双塔模型还能方便地利用单模态数据进行预训练或微调,因为两条网络相对独立,例如可以用纯图像数据预训练图像塔,用纯文本数据预训练文本塔,然后再进行跨模态训练。

但双塔结构也存在局限。由于图像编码器和文本编码器在抽取特征时彼此不交互,模型在编码阶段无法关注到另一模态的细节。这导致对于一些需要精细匹配的场景,双塔模型可能表现不佳。例如,当文本描述中涉及多个属性或关系时,双塔模型可能难以保证完全准确的匹配——在检索查询“黑色上衣、白色长裤”的图片时,双塔模型可能返回“白色上衣、黑色长裤”的结果,因为图像和文本特征在独立编码时缺乏直接交互,模型无法明确对应颜色和衣物类别的组合关系。这类细粒度语义组合往往需要通过后续的交互来 disambiguate。为弥补缺陷,一些双塔模型在输出阶段增加轻量的交互层或损失约束,但总体而言,其跨模态交互深度不及单塔架构。

编码器-解码器结构(如 ALBEF、BLIP)

编码器-解码器结构在多模态预训练中通常指同时包含双塔编码模块融合解码模块的架构,即先利用编码器对每个模态提取表示,再通过解码器(或多模态编码器)将两种模态的信息进一步融合,甚至生成目标模态的数据。这类架构结合了双塔和单塔的优点,被称为“先对齐、再融合”的设计思路。代表性工作包括ALBEF(Align Before Fuse)和BLIP(Bootstrapping Language-Image Pre-training)。

在 ALBEF/BLIP 这类模型中,首先有图像编码器文本编码器分别提取视觉和语言特征(这部分类似于双塔模型,用于语义对齐);随后,设置一个多模态Transformer模块,将图像和文本的表示输入其中,通过交叉注意力等机制实现更深层次的特征融合和推理;最后,根据任务需要,可以接一个文本解码器用于生成描述性文本(如图像字幕)【如果仅做理解任务则多模态Transformer本身就可看作解码融合模块】。例如,BLIP 模型就包含图像和文本两个编码器,以及一个可以作为解码器的多模态Transformer,用于在预训练阶段生成伪标签(如伪图像描述)来引导模型学习。
NLP高频面试题(三十一)——多模态预训练模型的主要结构、特征对齐与融合方法及对比损失函数详解_第1张图片
如图,模型包含图像编码器(左,下部使用ViT块表示)和文本编码器(右,下部Transformer块表示),以及上方的多模态Transformer(用于融合)。训练分两阶段:首先利用图像/文本编码器进行图文对比(ITC)以对齐嵌入空间,然后将挑选的难负样本与正样本一同输入多模态Transformer,通过交叉注意力层实现图文特征融合,并在多模态层上采用图文匹配(ITM)和遮盖语言模型(MLM)目标进行训练。右侧黄色部分表示动量更新的教师模型,用于提供更稳定的对比目标(蒸馏)。*

这种编码器-解码器架构的核心机制是在双塔模型基础上增加一个融合阶段:先通过对比学习显式对齐跨模态语义,再通过Transformer 显式融合语义。其优点是能够同时兼顾对齐融合:前段的双塔编码保证了图像和文本的全局表示对齐到位(有利于检索等任务),后段的多模态交互则细致整合了信息(有利于问答、描述等复杂推理任务)。以 ALBEF 为例,研究者首先用图文对比损失训练图像和文本编码器,使嵌入空间对齐;然后引入难负样本(hard negatives)和单塔Transformer,使模型在融合阶段进一步区分细粒度差异。实验显示,这种“先对齐、后融合”的混合塔方案在图文检索准确率和下游问答、Caption任务上都优于仅双塔或仅单塔的模型。

BLIP 模型在 ALBEF 基础上更进一步,引入了自举(bootstrapping)策略:利用模型自身生成的伪文本描述来逐步提升对图像细节的捕捉,并包含一个GPT样式的文本解码器,实现图像到文本的生成。在预训练中,BLIP 同时进行了图文对比学习和图文生成任务,使编码器-解码器能够统筹判别式(检索、匹配)和生成式(描述、问答)的能力。总的来说,编码器-解码器结构提升了模型的多样性泛化能力,特别适用于需要跨模态生成的场景(如图像字幕生成、开放式问答),同时在检索与理解任务上也保持了高性能。不过,这种架构相对更复杂,训练时需要平衡对比、匹配、生成等多种目标,模型参数规模也更大(因为既有编码部分也有解码部分)。

图神经网络结构(如 UNITER)

图神经网络结构是指将多模态数据显式建模为图结构,通过图神经网络(GNN)或类似机制来融合信息。在该思路中,图像的关键区域和文本的语言单元可以被视作图中的节点,节点之间的边表示跨模态或同模态的关系。通过在图上运行消息传递或注意力,模型更新节点的表示,从而达到融合理解的目的。值得注意的是,不少视觉-语言预训练模型虽然未明确声明为“图神经网络”,但其本质与图结构高度相似。例如,前述单塔Transformer模型可以被看做是一种特殊的完全图结构:UNITER 等模型将图像区域特征和文本token都作为节点输入Transformer,自注意力机制使每个节点都能与其他所有节点直接交互,这等价于在完整图上做消息传递。因此,UNITER 实际上实现了一个全连接跨模态图的表示学习,被视作图神经网络思路在Transformer框架内的应用。

UNITER(UNiversal Image-TExt Representation)模型是微软提出的一种通用图文表示学习模型【采用Transformer实现】。它的架构将图像region(通过目标检测提取,如Faster R-CNN的区域特征)和文本token共同输入多层自注意力Transformer。由于Transformer的自注意力会计算任何两点之间的相关性,可以理解为构建了图像区域和文本词之间的完全双向连接图。UNITER 在预训练时设计了多种任务来强化图结构中的显式对齐关系:例如,它增加了词语-图像区域对齐(通过预测某词是否描述某图像区域)这样的预训练目标。通过这些辅助任务,UNITER在图结构中学到了细粒度的跨模态对应。实验结果表明,UNITER 相比同时期的 ViLBERT、LXMERT(这两个使用了部分交互的双流架构)取得更优性能,说明了充分连接的“图”结构在跨模态特征融合上的威力。

除了Transformer方式,一些研究也直接使用图神经网络单元来融合多模态信息。例如,有的方法会先构建图像中对象之间以及对象与文本词之间的关系图(基于空间关系或语义相似度),再使用图卷积网络(GCN)或图注意力网络(GAT)迭代更新节点表征。这种方式可以融入先验的结构知识(如物体的空间邻接关系、句法依存树等)来指导跨模态交互。但在通用的预训练模型中,Transformer架构因其强大的表示能力和并行效率,更为常用。因此,“图神经网络结构”在本文更多是指以图论视角看待多模态模型的架构设计——将多模态融合过程视作在一个异质图上进行节点信息交换。UNITER 恰恰是这方面的代表:虽未显式声明为GNN,但其多模态Transformer实现了同样的功能和效果。优点是模型能够灵活刻画任意模态单元之间的关系,无论是区域与区域、词与词还是词与区域,都在统一框架下处理。这使其在需要复杂关系推理的任务上具备优势。劣势则在于完全图的计算开销较大,而且如果没有引导,注意力可能关注无关节点,需要借助预训练任务或先验约束来学习有意义的图谱结构。

综上,各种架构在多模态预训练中各有特色:单塔强调深度融合、双塔强调高效对齐、编码器-解码器兼顾理解与生成、图结构方式提供了关系建模的视角。实际模型设计中,这些思路并非相互排斥,许多现代方案综合运用了其中多种机制,以追求更好的性能和更广的适用性。

多模态特征对齐方法

在多模态模型中,实现不同模态语义空间的对齐是关键步骤之一。所谓特征对齐,指的是让图像和文本的表示能够在某种共同空间中相比对,真正语义对应的内容距离更近。对齐方法大致可分为显式对齐隐式对齐两类:

  • 显式对齐(Explicit Alignment):通过模型结构或训练策略,在细粒度层面直接建立图像与文本元素之间的对应关系。例如,跨模态注意力(Cross-Modal Attention)机制就是一种显式对齐:文本作为查询去检索图像特征,或图像作为查询去检索文本特征,从而在计算注意力权重的过程中找出最相关的区域或单词。这种注意力权重实际起到了对齐作用——高权重连接的图像区域和词语被视为互相对应。ViLBERT、LXMERT 等模型通过双向的跨模态注意力,让每个模态的表示都参考另一模态的信息进行更新,从而在内部对齐了图文元素。

另一种显式对齐方式是标记/区域匹配(Token/Object Matching)。模型可以被训练去预测图像区域和文本片段的匹配关系。例如,给定一个图像区域特征,模型尝试从文本的单词序列中找出与之描述最相符的词;反之亦然。这种损失驱动模型学习明确的一一对应关系。在预训练中添加的词-区域对预测任务(如UNITER的Word-Region Alignment)正是如此:对于配对的图文,随机采样一些图像区域和文本词语,让模型判断它们是否互相关联。通过大量这种二分类对齐任务,模型的表示会逐渐调整,使得本来对应的图像局部与词语在表示空间中更接近。还有一些模型(如 OSCAR)干脆将检测得到的对象标签(如“狗”、“球”等)直接作为文本的一部分输入模型,让图像的信息以词的形式显式出现,从而简化了对齐过程。这也可被视为一种显式对齐策略:利用额外信息明确地桥接图文语义。

显式对齐的优点在于直观细粒度:模型有机会学习到具体的“哪一段文字对应图像的哪一部分”。这对于需要定位或指认的任务(例如指称表达理解,即根据描述在图中找出对应物体)尤为重要,因为模型已经内建了对应关系。显式对齐也提高了模型的可解释性,通过注意力热力图等可以部分观察到模型在对齐哪些内容。不过,显式方法通常需要复杂的模块(如双向注意力)或额外的监督信号(如成对标记的数据或检测标签),增加了模型和训练的复杂度。

  • 隐式对齐(Implicit Alignment):指不通过直接的一一对应建模,而是让模型自行调整内部表示,将跨模态的语义嵌入空间对准。最典型的做法是Embedding Space Alignment,即通过损失函数拉近正确的图文对全局向量,推远错误配对的向量,从而在隐空间实现语义一致。这一思想在对比学习中大量应用,例如CLIP使用的大批量对比损失就属于隐式对齐:模型并不显式告知哪部分图像对应哪部分文本,只是要求整体的图像向量和文本向量匹配时接近、不匹配时疏远。通过这样的目标,模型会自主地调整内部权重,使得图像编码器提取的特征和文本编码器提取的特征在共同空间中语义分布重合

隐式对齐通常借助对比损失函数(如后文详述的InfoNCE等)或度量学习损失来实现。它不需要显式标注图文细粒度对应,只需要成对数据的配对信息(例如知道某图和某句是匹配的即可)。模型自由地学习如何调整表示,只在最终度量空间上受到约束。这带来的好处是实现简单、可扩展性强,可以利用海量弱标注数据(例如从网络抓取的图文对)来学习。大量图文预训练模型(ALIGN、FILIP 等)都采用纯粹的隐式对齐,通过对比学习在千万级的数据上训练出强大的跨模态表示。

隐式对齐的优势是效率高且所需监督少。它尤其适合全局匹配或者检索类任务,因为embedding空间的距离直接反映语义相关度。但劣势在于缺乏细粒度保证:模型可能主要关注图文的整体主题匹配,却未必掌握精确的局部对应关系。例如,一个隐式对齐模型或许知道图片和某段文本描述“大体相关”,但如果文本里有具体细节(颜色、数量等),模型未必真的内部对齐了这些细节,只要这些细节不影响全局语义判断,它也许就被忽略。这在需要精准定位的任务上可能成为短板。

实际上,许多最优的多模态模型会结合显式和隐式对齐。比如上述的 ALBEF 模型,先用隐式的全局对齐(对比学习)让图文粗对齐,再在多模态Transformer中利用显式交叉注意力细调对齐关系。这样两种方法取长补短,使模型既有全局一致的嵌入空间,又不会丢失局部对应的细节。

特征融合策略

完成初步的表示对齐后,模型需要将多模态特征融合起来,以形成综合的理解。特征融合指将来自不同模态的表示合并,交互,从而提取跨模态的高级特征。根据融合发生的阶段不同,可分为早期融合中期融合晚期融合动态融合等策略。

  • 早期融合(Early Fusion):在模型的输入层面或最初几层就将不同模态的特征融合在一起。典型做法是将图像特征和文本序列直接拼接或通过简单变换组合,然后送入共享的后续网络。例如,VisualBERT 将图像区域特征和文本token序列在Embedding阶段就拼接输入同一个Transformer;又如 ViLT 模型直接将图像切成patch序列并附加在文本序列前后,一起喂入Transformer编码。早期融合使模型从一开始就对多模态信息进行联合建模,各模态特征能够同步地影响彼此的表示更新。这有助于模型学习到高度耦合的跨模态特征,对需要强依赖两种模态共同判断的任务(比如一句话和一张图共同决定一个分类标签)非常有效。

早期融合的优势在于信息交互充分。由于融合发生在网络最前端,后续层层计算过程中每个模态的信息都会反复结合,对齐,几乎相当于单塔结构的深度融合情形。因此,其对跨模态细节关系的建模能力最强。劣势在于这种方法通常增加了计算和存储负担——拼接后的序列更长、维度更高,每层的计算复杂度上升;并且对非配对推理不友好(例如无法单独得到图像或文本嵌入)。因此早期融合多用于需要强融合且数据量相对适中的场景。

  • 中期融合(Intermediate Fusion):在模型的中间层引入跨模态交互。在此策略下,模型起初可能对各模态分别编码若干层,以提取每个模态的中级表示;然后在中后段,将两路特征合并或通过注意力机制互相传递信息,完成融合。例如,LXMERT 模型首先有独立的视觉和语言自注意力编码层,然后在中期使用一系列跨模态注意力层让视觉和语言特征交互融合,再接若干联合Transformer层处理融合后的表示。ViLBERT 也是类似思想,在各自BERT流的每一层后增加一个Co-attention模块实现中期交互。

中期融合试图折中早期和晚期融合的优点:模型先单模态地提取低级特征(如图像的形状、颜色特征,文本的基本语义特征),再跨模态地结合高级语义。这样做的好处是模型可以充分利用每个模态自身的模式提取能力(如CNN提取图像局部模式,Transformer提取文本句法结构),在融合时带入的是更抽象、更精炼的特征,从而减轻融合难度。同时,中期融合相比早期融合减少了初始序列拼接长度,在计算上相对高效。在许多视觉问答模型中,中期融合是一种常见范式:先各自编码理解问题文本和图像内容,再在中部通过注意力引导模型将问题聚焦到图像相应区域。这使模型在复杂任务上表现良好,因为它既理解了单模态细节,又在中层结合它们回答了跨模态的问题。

  • 晚期融合(Late Fusion):将不同模态的信息在最终决策层才进行合并。也就是各模态特征几乎全程独立处理,直到输出前,才简单地融合(例如拼接两个模态的向量后接一个全连接分类器,或在推理时对两个模态的预测结果做加权平均)。这种方式在早期多模态研究中较为常见,例如将图像分类网络和文本分类网络各自输出的概率分布再融合,以决定一个多模态任务的结果。严格来说,预训练模型一般很少采用纯粹的晚期融合,因为缺乏在表示层面的交互,不利于学习统一的表示空间。

晚期融合的优点是实现简单、模块解耦,易于利用预训练的单模态模型直接组合。比如我们可以用一个预训练的ResNet和一个预训练的BERT,各自提取特征后合并推断。这在数据有限的情形下可以避免重新训练庞大的融合模型。但其明显弱点是缺乏跨模态的协同建模:模型直到最后一步才碰撞信息,往往不能充分理解模态间的细微关联。因此,晚期融合更多用于一些模态相关性较弱或者必须分别处理的场景,例如多模态分类里各模态贡献独立证据、最终拼接判断(有点类似模型集成的味道)。在高要求的跨模态理解任务上,单纯的晚期融合往往效果不佳。

  • 动态融合(Dynamic Fusion):指根据输入数据的内容或上下文,自适应地调整各模态融合的方式和比例。上述早期、中期、晚期融合都是固定策略,预先决定了在网络的哪一层融合以及如何融合。而动态融合希望模型能学会灵活决定何时以及怎样融合信息,以适应不同类型的输入或不同的任务需求。

动态融合可以通过多种机制实现。例如,设置门控单元(Gating)来控制来自不同模态特征通过的比例:当某一模态信息在当前任务更重要时,门控网络可以增强其权重,反之则降低。例如,在一个多模态情感分析任务中,如果图像几乎没有人脸而文本提供了情绪线索,模型可以经由门控更依赖文本模态。类似地,注意力机制本身也可以用来做动态融合:模型可以学会对图像特征和文本特征赋予不同的注意力权重,实现按需融合。还有一些分层融合的方法,允许模型在多个层次上反复进行视觉和语言的信息交换(如交替的多模态Transformer层),这些也可以被视作一种动态融合形式,因为模型可以在每一层根据当前表示调整融合力度。

动态融合策略的优势在于灵活性自适应性。不同样本可能需要不同的模态协作方式,动态融合能够让模型按输入“量身定制”融合方案。例如,在描述图片的任务中,若图片中有文字(如路牌),模型可能动态地调用一个OCR模块并融合识别出的文字与图像;若图片只有风景没有可读文字,则忽略OCR通道。这种机制提高了模型对多样化场景的适应能力。此外,动态融合还能在一定程度上缓解模态之间的冲突:当一模态信息质量不佳时(如图像模糊不清),模型可以倾向于另一模态,从而鲁棒性更好。

需要注意的是,动态融合通常也增加了模型结构和训练的复杂度。模型需要学习控制策略,即何时何模态应占主导,这相当于在训练中引入了额外的优化目标或更大的搜索空间。如果控制不当,可能出现模型过于偏重某一模态、或者融合方式不稳定等问题。因此,设计良好的动态融合模块和训练方案是当前研究的一个方向。例如,一些最新工作探索利用**混合专家模型(Mixture-of-Experts)**让不同专家负责不同模态融合模式,由门控网络软选择专家,这也是动态融合的思路之一。

综上,特征融合策略直接影响多模态模型如何整合信息。从浅到深、从固定到动态,各种策略各有适用之处:早期/中期融合适合需要紧密结合模态的任务,晚期融合简单但适用于一些对交互要求不高的情况,动态融合则面向复杂多变的场景寻求自适应的解决方案。在实际预训练模型中,中期融合和动态融合思路较为常见,与Transformer架构结合,实现多层次、多角度的模态交互。

常见的对比损失函数

对比学习损失在多模态预训练中扮演了关键角色,尤其在对齐图像和文本表示方面。通过对比损失,模型可以在没有显式监督的情况下学习到“哪些图文是匹配的,哪些不是”。以下是常见的几类对比损失函数:

  1. InfoNCE 损失 / NT-Xent 损失:InfoNCE(Information Noise-Contrastive Estimation)是一种广泛使用的对比损失,也被SimCLR等方法称为 NT-Xent(Normalized Temperature-scaled Cross Entropy)损失。其核心思想是:给定一对匹配的正样本(比如图像A和文本A),以及若干不匹配的负样本(图像A和文本B,图像A和文本C,…),通过一个softmax归一化的交叉熵,使模型最大化正样本对的相似度、最小化其余负样本的相似度。形式上,针对图像A,其对应正确文本为T,在包含T和其他N-1个干扰文本的集合中,InfoNCE损失一般写作:
    L I n f o N C E = − log ⁡ exp ⁡ ( sim ( A , T ) / τ ) ∑ j = 1 N exp ⁡ ( sim ( A , T j ) / τ ) L_{InfoNCE} = -\log \frac{\exp(\text{sim}(A, T)/\tau)}{\sum_{j=1}^{N} \exp(\text{sim}(A, T_j)/\tau)} LInfoNCE=logj=1Nexp(sim(A,Tj)/τ)exp(sim(A,T)/τ)

    其中 sim(·) 表示图像和文本向量之间的相似度(如点积或余弦相似度), τ \tau τ 是温度参数。这个损失会促使 sim ( A , T ) \text{sim}(A,T) sim(A,T) 相对其他 sim ( A , T j ) \text{sim}(A, T_j) sim(A,Tj) 更大,从而将A与其正确匹配T对齐。InfoNCE的特点是可以在一个minibatch内利用大量负样本(batch里的其他对都会被当作彼此的负样本),有效提高训练效率。CLIP等模型往往在每个批次中采样上千对图文,从而构造出上千的负例,比传统triplet方法更充分。NT-Xent与InfoNCE本质相同,只是不同论文的命名而已。它们目前是跨模态对比学习的事实标准,因其稳定有效。

  2. Triplet Loss(三元组损失):三元组损失是度量学习领域经典的方法。一个三元组由锚(anchor)正样本(positive)、**负样本(negative)**组成。对于多模态而言,可以视图像为锚,对应描述文本为正样本,不相关文本为负样本。Triplet Loss的形式通常为:
    L t r i p l e t = max ⁡ ( 0 ,    m + d ( a , p ) − d ( a , n ) ) L_{triplet} = \max(0,\; m + d(a, p) - d(a, n)) Ltriplet=max(0,m+d(a,p)d(a,n))

    其中 (d(a,p)) 表示锚和正样本之间的距离,(d(a,n)) 表示锚和负样本之间的距离,m是一个预设的边际(margin)超参数。当正样本距离不比负样本距离小m时,会产生损失并推动模型拉近正对、拉远负对。反之如果 (d(a,p) + m < d(a,n)),即负样本明显远离超过一定阈值了,则损失为0。三元组损失相比InfoNCE更简单直观,只考虑一对正负。然而,它在大型batch情况下效率较低,通常需要精心挑选难负样本才能有效训练,否则大多数易分类的负样本很快就满足边际条件,不再产生有用梯度。因此,早期的一些图文检索模型使用三元组损失,并辅以难负样本挖掘策略。例如,在图文检索训练中,每隔若干步骤就根据当前模型挑选最难区分的那几个错误匹配作为负样本,从而提高Triplet Loss的效果。

  3. Margin Ranking Loss(边际排序损失):边际排序损失与Triplet Loss思想相近,都是基于距离差的边际约束。不过Margin Ranking Loss通常表述为针对成对样本的排序:给定一个正对和一个负对,希望正对的相似度比负对高出至少margin,否则产生损失。例如,对于图像A-文本T(正)和图像A-文本T’(负),损失可以写为:
    L r a n k = max ⁡ ( 0 ,    m + sim ( A , T ′ ) − sim ( A , T ) ) L_{rank} = \max(0,\; m + \text{sim}(A,T') - \text{sim}(A,T)) Lrank=max(0,m+sim(A,T)sim(A,T))

    这等价于要求 sim ( A , T ) \text{sim}(A,T) sim(A,T) > sim ( A , T ′ ) + m \text{sim}(A,T') + m sim(A,T)+m。可见形式上Margin Ranking Loss与Triplet Loss只是重写了下,含义基本一致:鼓励正匹配的评分比负匹配高一定幅度。二者差别更多在实现细节上——Margin Ranking Loss常用于需要考虑多个负样本的场景(对每个正样本配多个负的loss求和)。在图文预训练中,如果不使用大批量InfoNCE,那么Margin Ranking也可以用于例如图文匹配(Image-Text Matching, ITM)任务的训练:随机挑选一个错误文本与图像配对,让模型判别正误并确保正配对评分更高。总体而言,边际类损失直观但在复杂场景下性能往往不如InfoNCE,因为后者利用了概率分布的区分信息而非固定边际。

  4. 多正负样本对比损失(如 SupCon):经典的对比损失大多假设每个锚只有一个正样本,其余均为负样本。然而在一些情况下,一个锚可能对应多个正样本集合,例如一张图像有多种不同文本描述,描述之间都算正确匹配;或者在有类别标签的监督对比学习中,同类的都可视为正样本。针对此类情形,提出了监督式对比损失(SupCon)【Supervised Contrastive Learning】等方法。SupCon扩展了InfoNCE,将每个锚视作具有P个正样本,公式中针对锚i的损失对所有正样本都进行拉近,对所有不属于该锚正集合的样本进行推远:

L S u p C o n = − 1 P ∑ p = 1 P log ⁡ exp ⁡ ( sim ( i , i p + ) / τ ) ∑ j ∈ { All } exp ⁡ ( sim ( i , j ) / τ ) L_{SupCon} = -\frac{1}{P} \sum_{p=1}^{P} \log \frac{\exp(\text{sim}(i, i^+_p)/\tau)}{\sum_{j \in \{\text{All}\}} \exp(\text{sim}(i, j)/\tau)} LSupCon=P1p=1Plogj{All}exp(sim(i,j)/τ)exp(sim(i,ip+)/τ)

其中 (i^+_p) 表示锚 i 的第 p 个正样本。同一锚的多个正样本互为对方的“positive”也互为对方的“negative”排除项,不彼此排斥。这样,模型会将属于同一语义组(如同一图像或同一类)的多条描述和图像都聚在一起,而不同组之间分开。在多模态预训练中,如果数据集每幅图像有多句描述,那么SupCon损失可以利用这一特性,让模型学到一对多的对齐关系,而不仅是一对一。另一些变体还考虑“多负”样本,即一次性处理多个负样本的贡献,但这些通常已经包含在InfoNCE的大batch策略中了。

除了上述主要类型,还有其他对比损失的变体和延伸,比如N-pairs Loss(类似于提高版Triplet,一次处理一个正对多个负)、圆弧损失(ArcFace/CosFace)等用于让相似度分布更均匀的目标等等。在多模态领域,核心思想都是利用这些损失约束嵌入空间:使匹配的图文对紧密聚团,不匹配的疏离开来。选择何种对比损失往往取决于任务需求和训练效率考虑。InfoNCE/NT-Xent凭借其批量高效性,已成为大多数多模态预训练的首选损失;Triplet和MarginRanking有时在微调阶段用于精调模型以提升检索的top-k指标;而SupCon等在有标注的情况下能进一步利用类别或组别信息,提升同义描述的聚合。

值得一提的是,对比损失通常与软max温度参数、采样策略(如全局队列、动量银行)等配合使用,以取得更好效果。例如CLIP中用到的温度系数就是一个可学习参数,调节对比学习的梯度强度;MoCo模型引入动量更新字典保持大量负样本。这些技巧都进一步加强了对比损失在大规模训练下的效果。

总结与未来趋势

多模态预训练模型通过创新的架构设计和训练策略,在跨模态理解和表示学习上取得了显著进展。从单塔双塔,从编码器-解码器混合图结构模型,研究者们探索了不同的模态融合途径;配合显式隐式对齐手段以及有效的对比学习损失,当前的多模态模型已经能够在图文检索、视觉问答、图像描述生成等任务上接近甚至超越专门的有监督模型。可以说,多模态预训练成为了继NLP和CV单模态预训练之后的又一个AI热点领域。

尽管如此,未来仍有诸多挑战与机遇:

  • 模型规模与泛化:与单模态的大型预训练模型类似,多模态模型的参数规模和训练数据规模在迅速增长。更大的模型(比如数十亿参数)有望具备更强的跨模态推理和生成能力。但随之而来的是训练成本的飙升,以及过拟合模式坍塌等风险。如何高效地训练多模态大模型、利用混合精度、分布式训练和自监督信号,是工程上的挑战。同时,模型需要在开放域下具备良好泛化,避免过度依赖数据集偏差。这可能需要引入更丰富多样的训练数据(包括多语言、多文化背景),以及更健全的训练目标来约束模型行为。

  • 细粒度对齐与推理:虽然当前模型在整体匹配上表现不错,但真正做到像人一样理解图文对应细节、进行复杂推理仍有难度。例如,对一幅图片和一段故事,模型是否理解了谁在做什么、因果关系如何?未来的研究需要让模型具备多跳推理关系理解能力。这可能涉及融合知识图谱逻辑约束甚至常识推理到多模态模型中,或者发展专门的模块处理诸如时间顺序、空间关系等信息。此外,为了评估模型的细粒度理解能力,新的基准任务和评测指标也将不断出现,推动模型在深层语义对齐上做得更好。

  • 多模态与大模型的结合:一个明显的趋势是多模态预训练正逐步与超大规模预训练模型(“大模型”)相融合。最新的发展如 OpenAI 的 GPT-4 将视觉输入引入了强大的语言模型,实现了图片到文本的复杂推理与对话;又如 Flamingo、PaLM-E 等模型尝试在大参数语言模型的基础上接入视觉模块,使之具备多模态能力。可以预见,未来的多模态模型将不再孤立地设计视觉和语言部分,而是融入一个统一的多模态大模型框架中。语言模型擅长的知识泛化生成能力可以赋予多模态模型更强的“思考”与描述能力;而视觉模型提供的感知能力又拓宽了语言模型的输入来源。两者结合有望产生1+1>2的效果。目前的一些工作(如 BLIP-2 将图像编码输出送入预训练语言模型进行问答)已经朝这个方向迈出一步。未来,我们可能看到视觉、文本、音频甚至更多模态融合在一个通用智能体中的景象。

  • 更多模态的融合:尽管图像-文本是当前研究的焦点,多模态预训练的思路同样适用于视频-文本音频-文本,甚至图像-文本-音频的多模态联合。未来模型可能需要同时处理视频中的视觉内容、语音对话以及对应的文本说明,这对模型架构提出了新的要求。例如,视频模态引入了时间维度,需要模型具备时序建模能力;音频模态可能需要结合语音识别和声音识别的特征。如何设计统一的模型来处理时空信息丰富的视频和语言,是一个开放问题。同时,多模态预训练也可能在决策AI(如机器人、自动驾驶)中发挥作用,让模型从多源传感器数据中学习。

  • 模型可解释性与偏见问题:随着多模态模型应用于越来越多敏感领域,其决策的可解释性公平性变得重要。多模态模型可能继承了训练数据中的偏见,比如某些图像内容与负面文本描述经常共现,导致模型输出带有偏颇的结果。未来的研究需要探索如何检测和缓解偏见,或通过对抗训练、规约数据等降低模型产生有害关联的概率。同时,利用多模态的线索提高模型决策的解释能力也是一个方向——比如让模型指出它根据哪些图像区域和文本片段得出了某结论,这对增进用户信任度有帮助。

你可能感兴趣的:(NLP常见面试题,自然语言处理,人工智能)