想象一下你有一个包含数千张照片的数字相册。你想找一张你家宠物狗“Fido”接飞盘的照片。你在搜索栏中输入“Fido 接飞盘”。

像 CLIP 这样的标准视觉-语言模型 (VLMs) 与标准物体检测器不同,因为它们可以理解开放式的文本。然而,它们有一个主要的局限性: 它们知道一只狗长什么样,但它们不知道你的狗 Fido 长什么样。

为了解决这个问题,我们需要 个性化视觉-语言检索 (Personalized Vision-Language Retrieval, PerVL) 。 这项任务涉及仅通过少量参考图像 (通常是 3 到 5 张) 教预训练模型一个新的、特定的概念,以便它能在各种上下文中识别该概念。

这是一个机器学习中的经典困境: 可塑性 (Plasticity) vs. 稳定性 (Stability)

  • 可塑性: 模型必须足够灵活以学习新概念 (“Fido”) 。
  • 稳定性: 模型必须不忘记其通用知识 (“接飞盘”是什么样子的) 。

如果模型过于关注 Fido,它可能会检索出每一张 Fido 的照片,而忽略查询中的“飞盘”部分。如果它过于关注通用知识,它可能会检索出随机的狗接飞盘的照片。

在这篇文章中,我们将深入探讨一篇介绍 POLAR (PersOnalized Low-rank Adaptation for Retrieval) 的研究论文。该方法提出了一种外科手术式的方法: 它不是将新词强行塞进模型的字典里,而是利用正则化的低秩更新,温和地调整模型的内部“大脑布线”。

现状: 文本反转 (Textual Inversion)

在理解 POLAR 之前,我们需要了解它试图取代的主流方法: 文本反转 (Textual Inversion)

在像 PALAVRA 或 Textual Inversion 这样的方法中,研究人员不会触碰神经网络的内部权重。相反,他们冻结模型并“学习”一个新的词向量。他们找到一个伪词标记 (通常表示为 \(V^*\)) ,当将其输入文本编码器时,会产生一个接近个人概念图像的嵌入。

基本上,他们试图找到一个对模型来说意味着“Fido”的魔法词。

图 1: 文本反转与 POLAR 的比较。左图: 文本反转学习一个标记输入。右图: POLAR 更新内部参数。

图 1 (左) 所示,文本反转在查询中插入了一个学习到的伪标记。提示变成了“一张 [紫色向量] 的照片”。

问题:

  1. 干扰: 这个学习到的标记与文本编码器的每一层进行交互。它可能会主导整个句子,导致模型忽略上下文 (“接飞盘”) 。
  2. 优化速度: 寻找这个标记需要通过整个文本编码器进行反向传播,这可能很慢。
  3. 存储: 这些标记可能是高维的,并且如果没有大规模的预训练,很难进行优化。

POLAR 方法: 内部参数更新

POLAR 背后的研究人员提出了一个不同的问题: 如果我们不寻找魔法词,而是稍微调整模型的思考方式呢?

他们从 低秩适应 (LoRA) 中获得了灵感,这是一种在微调大型语言模型 (LLMs) 和扩散模型中流行的技术。POLAR 对文本编码器应用了秩为 1 的参数更新。

1. 架构

POLAR 专注于 CLIP 架构,该架构由图像编码器和文本编码器组成。目标是最大化查询的文本嵌入 (包含个人概念) 与目标图像的图像嵌入之间的相似性。

图 2: POLAR 架构概览。

图 2 所示,POLAR 完全冻结了图像编码器。它还冻结了几乎所有的文本编码器。唯一发生变化的是文本编码器 最后一层 中的一组特定权重。

2. 低秩适应 (LoRA) 的数学原理

标准微调涉及更新权重矩阵 \(W\)。

\[ W_{new} = W + \Delta W \]

在深度学习中,\(W\) 是巨大的。在少量图像上更新整个矩阵会导致严重的过拟合 (灾难性遗忘) 。LoRA 假设权重的变化 (\(\Delta W\)) 不需要是满秩的。它可以通过两个非常小的矩阵 \(B\) 和 \(A\) 相乘来近似。

公式: 显示 W + BAx 的 LoRA 更新机制。

这里:

  • \(W\): 冻结的预训练权重。
  • \(x\): 层的输入。
  • \(A\): 将输入投影到低秩 (\(r\)) 的矩阵。
  • \(B\): 将其投影回原始维度的矩阵。

POLAR 将这一点发挥到了极致。他们设置秩 \(r=1\) 。 这意味着 \(A\) 和 \(B\) 本质上是向量。这最大限度地减少了学习参数的数量,作为一个瓶颈,迫使模型只学习个人概念最本质的特征。

3. 手术级精度: Value 变换

Transformer 块由注意力机制和前馈网络组成。在注意力机制内部,输入被转换为查询 (\(Q\))、键 (\(K\)) 和值 (\(V\))。

研究人员进行了消融实验 (测试哪些组件最重要) ,发现更新 最后一层 (第 12 层) 的 Value (\(V\)) 矩阵是最佳策略。

公式: 带有更新后 Value 变换的注意力机制。

为什么是最后一层?早期层处理语法和基本词汇关系。最后一层将这些信息聚合成高级语义表示。通过在这里调整 Value 矩阵,POLAR 就在模型做出最终决定之前注入了“Fido”的概念,最大限度地减少了对句子其余部分处理的干扰。

更新规则如下所示:

公式: Value 矩阵的具体更新规则。

4. 训练概念

为了训练模型,用户提供 \(\sim 5\) 张概念图像 (\(I^c\)) 和一个像 “An image of sks” 这样的占位符文本 (\(q^c\))。模型最小化文本嵌入和图像嵌入之间的均方误差 (MSE)。

公式: MSE 损失函数。

这个标准损失确保模型将 “sks” 识别为提供的特定视觉概念。

秘诀: 正则化

如果你只使用上面的 MSE 损失,模型会完美地学习“Fido”,但它很可能会忘记其他所有东西。它可能会开始认为每只狗都是 Fido,或者它可能会丧失理解像“坐在沙发上”这样的上下文的能力。

为了防止这种 灾难性遗忘 , POLAR 直接在 LoRA 矩阵上引入了一种巧妙的正则化策略。

公式: 包含正则化的总损失。

正则化包含两个部分:

  1. 约束 \(A\): 向量 \(A\) 被约束为具有单位范数 (\(||A|| = 1\))。
  • *解释: * \(A\) 充当“检测器”。它查看输入数据 \(x\) 并决定个人概念的相关性。通过固定其尺度,我们强制它关注方向 (相似性) 而不是幅度。
  1. 惩罚 \(B\): 损失包含对 \(B\) 的 L2 惩罚 (\(|B|^2\))。
  • *解释: * \(B\) 决定更新的“强度”。通过惩罚 \(B\),模型被鼓励尽可能保持更新向量接近于零。只有在为了最小化 MSE 损失绝对必要时,它才会增加权重。

这种组合确保了除非输入强烈触发个人概念检测器 (\(A\)),否则模型默认使用其预训练的通用知识 (\(B \approx 0\))。

处理多概念查询

如果你想搜索“Fido 玩我最喜欢的球”怎么办?在一个查询中有两个个人概念。

文本反转在这里很吃力,因为多个学习到的标记可能会以不可预测的方式相互作用。然而,POLAR 利用了其更新的线性特性。因为更新是低秩加法,你可以在前向传播过程中简单地将概念 1 和概念 2 的参数 相加

公式: 合并多概念查询的参数。

这允许用户动态地组合多个个人概念,而无需重新训练模型。

实验结果

研究人员在两个具有挑战性的基准测试上评估了 POLAR: DeepFashion2 (服装单品) 和 ConCon-Chi (复杂环境中的多样化物写) 。

定量性能

POLAR 取得了最先进的结果。在 DeepFashion2 上,它显著优于 PALAVRA 和 SEARLE (一个零样本基线) 。

表 1: DeepFashion2 结果比较。

表 1 中,我们看到 POLAR 实现了 34.82 的平均倒数排名 (mRR),而 PALAVRA 仅为 28.4。当扩展到更大的 ViT-L/14 架构时,性能跃升至 40.72

定性性能

数据固然重要,但视觉检索结果更能说明问题。在 图 3 中,我们看到了 POLAR 和 SEARLE 之间的比较。

图 3: 检索结果的视觉比较。POLAR vs SEARLE。

看第一行 (花卉短裤) 。

  • 查询: “An image of V*” (V* 是短裤) 。
  • SEARLE (红框): 检索出的图像颜色或氛围相似,但物体搞错了 (检索到了裙子或只是房间里的人) 。
  • POLAR (绿框): 正确识别了不同姿势下短裤的具体花卉图案和剪裁。

这展示了 POLAR 区分细粒度细节的能力,这对于个性化搜索至关重要。

保留通用知识

该论文的主要主张之一是 POLAR 比基于标记的方法更好地保留了通用知识。为了测试这一点,他们设计了一个巧妙的指标: VLM 标题召回率

他们使用个性化模型 (针对“Fido”进行了调整) ,并要求它根据视觉语言模型 (如 LLaVA) 生成的通用标题检索图像,这些标题与 Fido 无关 (例如,“有炉灶的厨房”) 。

如果模型因个性化而被“破坏”,它应该无法检索这些通用图像。

图 4: 通用知识保留。

图 4 显示,即使加载了个人参数,模型也能完美地检索通用概念,如“带有炉灶台面的厨房” (右栏) 。同时,它也能正确处理个人概念的上下文查询,如“V* 倒置在木质表面上” (左栏) 。

消融研究: 设计选择

为什么他们选择秩-1?为什么是第 12 层?作者通过广泛的测试证明了这些选择的合理性。

1. 更新的秩: 你可能认为更高的秩 (更多参数) 意味着更好的学习。然而, 表 11 (如下) 显示,将秩从 1 增加到 16 在上下文准确性上的收益微乎其微,但却损害了参数效率。秩-1 是学习单个概念且不过拟合的“最佳平衡点”。

表 11: LoRA 秩的消融实验。

2. 哪些层? 将更新应用于 所有 层实际上比仅应用于最后几层效果更差。

表 12: LoRA 层的消融实验。

表 12 (文中引用为表 5) 所示,更新第 11 和 12 层或仅更新第 12 层产生的结果最好。这支持了这样的假设: 个性化是一种高级语义调整,而不是低级特征提取的改变。

3. 哪些参数? 表 13 证实了 Value (V) 投影是注入更新的最有效位置。

表 13: LoRA 参数的消融实验。

更新查询 (Q) 或键 (K) 矩阵会导致较差的性能 (mRR 约为 16-23,而 V 为 52) 。这表明我们不应该改变模型看 哪里 (注意力权重) ,而应该改变它从该位置提取 什么 信息 (Values) 。

局限性

没有一种方法是完美的。POLAR 依赖于 CLIP 的 冻结的图像编码器 。 如果 CLIP 的图像编码器无法“看”出两个非常相似纹理之间的区别,POLAR 也无法奇迹般地学会它,因为它只更新文本端。

图 5: DeepFashion2 上的失败案例。

图 5 强调了这些失败案例。在第一行中,模型检索到的是蓝色条纹衬衫,而不是蓝色波点衬衫。对于冻结的 CLIP 图像编码器来说,这些看起来可能几乎相同。这是“仅文本编码器”微调的一个根本局限。

结论

POLAR 代表了我们在个性化大型预训练模型思维方式上的转变。POLAR 不是将模型视为一个固定的黑盒子并试图寻找完美的输入 (文本反转) ,而是将模型视为可塑的材料。

通过对 最终 Value 投影 应用 正则化的、秩为 1 的更新 , POLAR 达到了一种“恰到好处”的状态:

  1. 足够灵活 , 可以从 5 张图像中学习“Fido”。
  2. 足够稳定 , 记得“飞盘”是什么。
  3. 足够轻量 , 每个概念只存储一个微小的向量。

对于对应对高效微调感兴趣的学生和研究人员来说,这篇论文提供了一个大师级范例,展示了有针对性的、最小的架构更改往往能胜过复杂、笨重的方法。