联合嵌入使模型能够在共享向量空间中表示来自不同模态的数据(例如文本、图像或音频)。 这种方法通过将语义相关的概念映射到嵌入空间中的相似区域来对齐跨模态的概念。 例如,一张狗的图片和文本“一只棕色的狗在奔跑”将被编码成彼此接近的向量,即使它们来自不同的数据类型。 为了实现这一点,每种模态都由一个专用的编码器(例如,用于图像的 CNN,用于文本的 Transformer)处理,该编码器将原始数据转换为嵌入。 关键思想是训练这些编码器,使其输出可以直接比较,从而实现跨模态相似度计算。
训练联合嵌入通常依赖于配对数据集,例如带有标题的图像或带有转录的音频片段。 诸如对比损失或三元组损失之类的损失函数用于强制对齐:正对(例如,图像及其正确的标题)在嵌入空间中被拉得更近,而负对(例如,不匹配的图像和文本)被推开。 例如,OpenAI 的 CLIP 模型在数百万个图像-文本对上使用对比学习来对齐视觉和文本嵌入。 在训练期间,该模型计算批次中所有对之间的相似度得分,并调整编码器以最大化正确对的相似度并最小化不正确对的相似度。 此过程需要仔细平衡模态特定的架构和训练目标,以确保稳定收敛。
联合嵌入的应用包括跨模态检索(例如,根据文本查询查找图像)、零样本分类(例如,通过将嵌入与类的文本描述进行比较来标记图像)和多模态生成(例如,从文本提示创建图像)。 一个实际的例子是一个搜索引擎,当用户输入“红色运动鞋”之类的查询时,它会检索相关的产品图像。 挑战包括需要大型配对数据集以及训练多个编码器带来的计算成本。 然而,一旦经过训练,联合嵌入通过实现跨模态的直接比较,简化了下游任务,减少了对特定于任务的架构的需求。 这种灵活性使它们在集成各种数据类型的系统中非常有价值。