多模态嵌入的对比学习技术旨在将来自不同模态(如文本、图像或音频)的数据对齐到一个共享的嵌入空间中,其中相关项彼此靠近,而不相关项则相距甚远。核心思想是使用成对的数据训练模型:正对(例如,图像及其标题)和负对(例如,图像和随机标题)。通过优化区分这些对的损失函数,模型学习将语义上相似的跨模态输入映射到嵌入空间中的附近点。这种方法被广泛使用,因为它不需要标记数据进行直接监督,而是依赖于模态之间固有的关系。
一种常见的方法涉及双编码器——用于每种模态的单独的神经网络——它们独立处理输入并生成嵌入。例如,文本编码器可能处理一个句子,而图像编码器处理相应的照片。然后,对比损失(例如 InfoNCE)衡量正对的嵌入与负对相比的匹配程度。在实践中,像 CLIP(对比语言-图像预训练)这样的模型使用这种设置:在训练期间,它最大化正确图像-文本对之间的相似性,同时最小化一个批次中不匹配对的相似性。另一种技术是数据增强,其中同一输入的变化(例如,裁剪图像或释义文本)被视为正对。这迫使模型关注跨模态的不变特征。例如,狗的照片和不同语言中的“狗”这个词应该映射到相似的嵌入,而不管表面上的差异如何。
挑战包括扩展到大型数据集和处理不平衡的模态。训练通常需要大批量采样足够的负对,这在计算上可能是密集的。诸如存储库或动量编码器之类的技术通过缓存嵌入来减少计算量。例如,MoCo(动量对比)使用缓慢更新的编码器来维护一致的负样本队列。应用范围从跨模态检索(查找与文本查询匹配的图像)到提高可访问性(为图像生成替代文本)。开发人员可以使用诸如 PyTorch 或 TensorFlow 之类的框架来实现这些方法,而 SentenceTransformers 等库提供预训练的双编码器。在简单性和性能之间取得平衡,对比学习仍然是无需大量监督即可对齐多模态数据的实用选择。