Contextualized Visual Personalization in Vision-Language Models

something wrong...

2602.03454 Contextualized Visual Personalization in Vision-Language Models

[TOC]

Intro

  • 目标:情境化视觉个性化

    • 整合了先前观察到的图像与相关的个人文本信息
    • 解读新视觉输入时能够有效利用这段历史
  • 贡献

    • CoViP:一个通过个性化图像描述基于强化学习的后训练以及描述增强生成的框架
    • 情境化视觉个性化的evaluation tasks
  • 先前工作注重explicit personalization(从上下文中检索<sks>这样的名字、表层属性)
    • 缺乏深层次的语义推理
    • CoVip研究在交错的多模态信息中,更加真实和具有挑战性的implicit personalization
      • 必须从视觉信息中推理得到

Method

Definition: Contextualized Visual Personalization

  • VLM通过对视觉输入和用户特定的交互历史进行联合推理来生成个性化响应的能力
$$ y = f_\theta(c,x,p) $$
  • $c$:过去的视觉-文本交互记录
  • $x$:query image
  • $p$:user prompt

由于user prompt非常open,基于当前的上下文可以任意变化,因此y的输出空间非常大

因此:

  • 直接对下游任务做优化或许很难鲁棒
  • 有监督的训练无法穷尽所有个性化行为

paper做出假设:所有的下游任务共享一个底层过程

无论下游任务如何,VLM在产生响应之前,都必须首先根据用户过去的经验解释查询图像

为了清晰刻画这个过程,paper将内在机制也分成两个stage

  • $z = h_\theta(c,x)$​
    • $h_\theta$定义为一个contextual visual encoder,生成潜在表示
  • $y=g_\theta(z,p)$​
    • $g_\theta$是特定任务专用的生成器

$g_\theta$根据不同任务p变化时,$h_\theta$不会发生变化

同时,paper选用图像描述任务作为潜在个性化表示$z$的代理

  • 不需要思考、推理的基本生成任务
  • 直接反应模型对于用户的上下文理解

Benchmark

Dataset Construction

最后的输出:

  • 上下文:多组对话,每组对话是6轮文本交互 + 1张概念图像
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
concept_0(Krystal)

对话:
用户:我记得去年夏天在社区花园里见过 Krystal。她总是在花坛边跳来跳去,特别好奇。
模型:听起来那段时光很安静美好。她一直都那么机警吗?还是有一个最喜欢休息的地方?
用户:她最喜欢苹果树下的阴凉处。我会坐在那儿看书,她会靠得很近,几乎像在听我读一样。
模型:画面感太好了——像是她也融进了那些安静的时刻。她有没有靠得更近过?
用户:有一次她竟然直接跳到我腿上。我完全没想到,但她又暖又软。
模型:那一定是个特别的瞬间——像是她完全信任你一样。难怪你会一直记得她。

concept_1(Joshua)

对话:
用户:我记得第一次把 Joshua 带回家,是四月一个下雨的星期二晚上。
模型:听起来很安静、很有仪式感——下雨天总能让初次相遇更温暖。他那晚是什么样子?
用户:他很小也很紧张,但一直在新笼子的角落到处嗅来嗅去。
模型:小动物探索新世界的方式真可爱——像是用鼻子在给自己的地盘“画地图”。
用户:我下班后每天晚上都会坐在笼子旁,看他在跑轮上跑。
模型:那一定成了很平静的习惯——像是你能透过一个小窗口进入他的世界。
用户:我很想念那些安静的夜晚。他已经陪我五年了。
模型:五年能共享这么多温柔的时刻,真的很久。Joshua 听起来像个真正的伙伴。
  • 查询图像(Query Image):由样本概念合成的图像( 1~4 个概念)

构造流程

  1. 数据准备
    • 开源的真实图片库(例如Unsplash)
      • 最终:单概念图像库,总计 188 张(123 human / 34 object / 31 pet)
    • 多概念交互场景模板(这里未给出来源,某人/某物/某物体在某情景中共现):e.g. A person sits and relaxes in the kitchen.

合成数据

  1. 查询图像生成

    • 模型:Gemini2.5Flash
    • 根据准备好的交互场景的文字描述、随机一些概念图
    • 生成一张合成查询图像
    • 通过概念数量控制难度:1、2、3、4
  2. 质量过滤

    • 输入:查询图像 + 正样本图像 +生图的文字描述
    • 模型:Gemini2.5Flash
    • 输出:是否指令遵循 + 视觉忠实
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
您是一位评估专家。
提供的图像按顺序呈现:第一张为查询图像,随后是概念图像。
您的任务是判断所有概念图像是否都出现在第一张查询图像中。
查询图像由给定提示生成:{prompt}。  


[若出现以下任一情况则不符合要求]  
1. 任何概念图像在查询图像中被遮挡或未完全可见。  
2. 任何概念完全未出现在查询图像中。  
3. 查询图像中的任何物体或人物与对应概念图像存在显著差异。  

[回答规则]
仅当每个概念都出现在查询图像中时输出“是”。请仔细检查图像,最终结果仅输出“是”或“否”。

对话生成

  1. 对话生成(Qwen/Qwen3-VL-30B-A3B-Instruct-FP8)
    • 输入:单个概念
    • 输出:6轮对话
    • 约束:对话必须包含可验证的客观事实(地点、时间、事件/场景)
      • 确保后续可以进行判定与评估
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
你是一个既能感知图像又能与人类用户自然对话的AI模型
[目标] 
根据给定图像,生成一段虚构用户与模型之间的6轮简短对话。
对话应围绕图像中的主要对象(人物、动物、物品或地点)展开。

[给定]
主要对象的名称为:{名称} 

[指南] 

1. 主要对象的名称({名称})必须在整个对话中保持一致使用。
	• 不得编造或更改名称。

2. 用户应描述与{名称}相关的个人经历。
	• 经历中必须包含至少一个客观的上下文元素,例如具体的地点、时间、事件或情境(例如“去年夏天在河边”“在我大学第一年时”“在我祖母的后院”)。

3. 模型应以自然且共情的方式回应——表示认可、提出温和的问题或添加简短的思考。

4. 保持语气拟人化、平静且真实——避免过度情绪化或机械感。

5. 对话总共应有6轮(用户→模型→用户→模型→用户→模型)。

6. 避免百科全书式或事实性的世界知识。聚焦于个人联系与对对象的共同观察。

[输出格式] 对话: 用户:…… 模型:…… 用户:…… 模型:…… 用户:…… 模型:……

上下文

  1. 上下文构造

    • 对于一张查询图像以及其对应的概念集合(称为正样本)
      • 每个正样本通过CLIP-L/14检索top2图像作为负样本(1:2的比例)(不能出现在正样本中)
    • 乱序组装多个概念(正负样本)对应的对话以及对应的样本图片
    • context c = [d1, …, dN](图文交错,多概念、多干扰)
  2. 个性化问题生成(Qwen/Qwen3-30B-A3B-Instruct-2507-FP8)

    • 对于每个对话组的每段对话,生成选择题
    • 生成三个选项,手动增加一个无法确定的选项
    • 记录来自正样本的问题or负样本的问题
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
您是一个人工智能模型,创建了事实性的多项选择题和答案。
【输入】
给定一个用户和一个关于特定对象(人、动物、物品、场所)的AI模型之间的对话。
对话中包含客观细节,如对象的名称、位置、时间或用户的相关经历等。

[目标]
生成3个多选问答对,这些问答对可以由一个人回答,这个人只能访问一个描述同一个对象(原会话在评估时不显示)的新图像的标题。

[指南] 
1.每个问题都必须针对对话(例如,名字、地点、时间、习惯/动作等)中出现的客观细节。
2. 避免情绪、观点或元对话。
3. 每个问题必须有3个选项:A、B、C。
4. A、B、C之间只有一个选项是正确的。
5. 使错误选项( A / B / C除正确外)似是而非
6. 不需要外部/世界知识;答案必须来自于对话。

CapEval-QAs

main idea:如果能根据模型输出的caption正确回答个性化问题,说明caption含有个性化信息

  • 被测 VLM:输入(query image + 混合上下文)→ 输出一段图像描述

  • 裁判模型:只拿到图像描述,然后去回答所有问题

  • 评测正样本的问题准确率$Acc^+$和负样本的$Acc^-$

Training

RL:最大化期望,使用GSPO

Qwen3-VL-Instruct-8B

  • $s$:caption输出
  • $x$:查询图像
  • $c$:上下文
$$ \max_{\theta} \mathbb{E}_{(x,c) \sim D_{tr}} \mathbb{E}_{s \sim \pi_{\theta}} [ r(s, x, c)] $$
  • 识别能力:能从多张正负样本图中,确定哪些图出现在查询图中(正样本)
  • 检索能力:caption正确包含属于这些概念的对话事实,同时避免不相关

识别奖励

$$ r_{vis}(x, c) = F1(\hat{H}, H) = \frac{2|\hat{H} \cap H|}{|\hat{H}| + |H|} $$
  • $\hat H$:模型认为哪些概念出现在查询图中的集合
  • $H$:GroundTruth

确保猜对一部分也能得部分分

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
你被提供了多张图像。每张图像按顺序对应一个特定的视觉概念。

[任务] 

你还会收到一张最终的查询图像。
你的目标是识别查询图像中出现了哪些概念图像。

[约束]  
• 查询图像可能包含从给定概念图像中随机选取的至多四个概念。  
• 部分概念图像是无关的,不会出现在查询图像中。  
• 答案中请勿包含无关的概念图像。  

[回答规则]  
• 仔细观察所有概念图像及最终的查询图像。  
• 判断哪些概念图像出现在查询图像中。  
• 你可以用自然语言简要解释推理过程。  
• 然后,在单独一行中,以以下精确格式输出最终答案:  
答案:\boxed{[i1, i2, . . . ]}  

其中列表包含所选概念图像的索引。  
• 在 \boxed{} 内,仅包含用方括号表示的索引列表,不要添加任何额外文本。

检索奖励

  • 正样本问题:Judge模型需要正确回答 -> 说明caption的信息足够
  • 负样本问题:Judge模型需要回答”无法确定“的选项 -> 否则caption给出了超出查询图像的概念信息
$$ r_{\text{caps}}(s, c) = \begin{cases} -1, & \text{R}(s) > 0, \\ \sigma^+(s; QA^+) - \sigma^-(s; QA^-), & \text{otherwise.} \end{cases} $$

其中:

$$ \sigma^+(s, QA^+) = \sum_k \mathbb{I}[\mathcal{J}(\psi(s, q_k^+)) = a_k^+] $$
  • 也就是正样本答对的问题数量
$$ \sigma^-(s, QA^-) = \alpha \sum_\ell \mathbb{I}[\mathcal{J}(\psi(s, q_\ell^-)) \neq D]. $$
  • 负样本未回答"无法确定"的问题数量
  • $\alpha$是超参

引入了Degeneration filtering(公式中的$R$)

  • 防止模型通过“重复/灌水/模板化”来 reward hacking
  • 重复:只要把某些正概念的关键短语重复很多次,judge 更容易从 caption 中抓到证据,从而 Acc+ 上升
  • 灌水:生成极长 caption,把对话里所有可能被问到的细节都塞进去,甚至以“清单/百科式”输出
  • 模板化:例如每句都以“我确信…”开头、不断重申同一事实

检测通过三种duplication ratio和长度上限得到

  • 句子级别
  • n-gram级别(设定5-gram)
  • chunk级别(划定10、20、30的长度)
$$ \delta(y) = \mathbb{I} \left[ \rho_{sent} \geq \tau_s \lor \rho_{n-gram} \geq \tau_n \lor \max_{L \in \{10, 20, 30\}} \rho_{chunk}(L) \geq \tau_c \right] $$

阈值:$\tau_s = 0.3,\tau_n = 0.3,\tau_c = 0.2$

同时再加一个长度约束:令 $ |y| $ 为 tokenizer 后的长度,超过阈值 $ l $ 也算退化。

$$ R(y) = (\delta(y) = 1) \lor (|y| > l) $$

Caption-Augmented Generation

  • 先生成个性化的caption
  • 再生成下游任务
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
你是一个能够感知多段过往对话的AI模型,可以将这些对话作为记忆,用于个性化描述新图像。  

[背景]  
你将获得若干段过往对话。  
每段对话包含一张图像以及用户与你之间的对应交流。  
这些对话描述了特定对象(人物、动物、物品或地点)及其相关背景细节,如姓名、位置、时间和经历。  
整个上下文代表了你与用户之间先前的共同经历。  

[任务]  
现在,你将看到一张新图像,其中可能包含过往对话中提及的一个或多个相同对象。你的目标是通过整合上下文中的相关信息来描述这张新图像。  
请严格遵守以下规则:  

回忆并复用过往对话中的细节(对象名称、外观、地点、时间及关系)。  
– 将过往对话视为长期记忆。  
– 如果新图像中的对象与过往提及的对象相似,请使用相同的名称和背景信息进行指代。  

基于新图像的视觉内容进行描述。  
– 准确描述所见内容:构图、场景、光线及对象状态。  
– 随后自然地融入记忆中的细节。  

保持自然、拟人化的语气,如同向同一用户描述熟悉的事物。  

不要逐字复述过往对话,而是结合新图像的观察进行综合与延伸。  

以段落形式书写,而非对话格式。  

仅使用相关的记忆。  
– 如果过往对话中的对象或场景未出现在新图像中,请完全忽略。  
– 仅对实际出现的对象包含背景信息。  
– 避免提及无关的姓名、地点或事件。  

[输入]
上下文(过往对话 + 图像)  
查询图像(新图片)

Diagnostic Evaluation of General Personalization Capability

还需要验证模型是否对下游任务表现良好

但现有的benchmark没有做上下文这块

paper构造了三个诊断任务,排除捷径的情况下,只能通过上下文用户的视觉输入进行推断

数据准备

  • 从 MMPB 数据集中抽样 50 个人,每个人取 4 张图,共 200 张人像图

    • 1张做 query image3张放进上下文对话里
  • 每个上下文固定10段对话

    • 3段对话是query中的人
    • 7段对话是随机身份(49人中抽取)
  • 每个人固定作为10份上下文的query,故数据总量500份上下文

  • 每段对话同样由VLM生成

    • 给定:人名、地点、日期
    • 必须显式提及日期与地点(最好在同一轮),以便后续可被验证与抽取
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
你是一个既能感知图像又能与人类用户自然对话的AI模型。

[目标] 
根据给定图像,生成一段虚构用户与模型之间的简短6轮对话。
对话应围绕图像中的主要人物展开,描述一段可存储为个人记忆的特定过往相遇经历。

[给定信息] 
• 图像中人物的姓名:{姓名} 
• 用户见到{姓名}的日期:{相遇日期}
• 用户见到{姓名}的地点:{相遇地点} 

[准则] 
1. 对话中必须始终使用人物姓名({姓名}),不得编造、修改或省略该姓名。 

2. 用户必须描述一段与{姓名}相关的个人经历: 
	• 经历需至少包含一个具体事件或情境(例如:偶然相遇、简短交谈、注意到对方正在做什么)。 
	• 需包含至少一个感官或情境细节,使记忆显得真实可信。 

3. 用户必须明确提及日期和地点: 
	• 日期:{相遇日期} 
	• 地点:{相遇地点} 
	• 建议在同一轮用户对话中提及(例如:“我在{相遇日期}于{相遇地点}见到他们...”)。 

4. 模型应以自然且共情的方式回应,认可用户的经历或提出温和的后续问题: 
	• 不得引入用户提供信息之外的新事实内容。 

5. 保持语气平和、真实且拟人化,避免百科全书式或事实性描述。 
6. 对话必须严格包含6轮:用户→模型→用户→模型→用户→模型。 

[输出格式] 
对话: 用户:... 模型:... 用户:... 模型:... 用户:... 模型:...

TaskA. LSD(Last-Seen Detection):最后一次在哪见过这个人?

向模型提问query图中的人最后一次在哪见过

  • 输入:
    • context
    • Given a new query image
    • the user asks: “Where did I last see the person in this image?

因此模型本质上需要做到:

  • query中的是谁?
  • 从10段对话中找出3段属于query的这个人
  • 通过3段对话得出最后的地点

最终模型只需要输出一个词

  • 输出:地点

评估方式:word-level F1

TaskB. LAR(Last-Action Recall):上次提到这个人时,我正在做什么?

首先有一个动作库

1
2
3
4
• “Oh wait, I think I left my wallet at the Guess store, so I’m going back to check.” 
• “Oh wait, I realized I left my ID badge on my desk, so I need to run back to the office.”  
• “Oh wait, I need to drive by the taco place to pick up dinner for everyone.”
……

paper根据目标人物,在其最后一段对话的末尾

插入上述动作库中的一个句子

  • 输入

    • context(进行了插入操作)
    • query Image
    • “What was I doing the last time I mentioned the person in this image?”
  • 输出:模型输出回答

  • 评估方式:LLm as a Judge

    • correct/wrong
    • 统计acc

TaskC. ITR(Instruction-Triggered Recall):指令触发个性化

paper根据目标人物,在其最后一段对话的末尾

插入一个指令:

If this person ever shows up again, remind me by saying the keyword SKS.

这样模型在正常推理时,不只要回答,还要将上下文作为条件做生成

User: 我最后一次在哪里见过这张图里的人?

Model: 你最后一次是在 New Bobby 见到他的,SKS

计算SKS的输出率

Experiments

paper的方法主要与现有的Post-Training-based Personalized VLMs进行比较

  • RAP、RePIC

同时采用qwen3-vl-8B作为基座,重新训练了上述所有方法

CapEval-QAs

  • Gemini3Pro在闭源模型中领先
  • RAP甚至比未训练的Qwen3-VL-8B还差

先前工作并没有能够充分利用上下文信息

Downstream Tasks

  • CAG方法
    • 对于所有VLMs有效提高了LSD、LAR两个任务的性能
    • 但是对ITR任务有明显的下降(跌到20%以下)
      • 分析:ITR任务要求模型捕捉容易被忽略的关键触发词,而个性化的Caption无法带来收益,甚至损害
    • CoViP 的 caption 因为被训练成“必须覆盖对话里的可验证事实”,更可能把触发关键词也写进去

Caption Quality

希望证明CoViP没有丢失基本的描述能力

  • 详细图像描述能力(DOCCI)
    • 3000 张图,用 5 个“参考答案对齐”的指标评估 caption 质量:
      • BLEU、ROUGE-L、METEOR、SPICE、BERTScore
      • 结论大差不差

  • 幻觉评测:MMHal + POPE/CHAIR

Human Alignment of CapEval-QAs

用 CapEval-QAs 来打分“更好的个性化 caption”,是否真的符合人类偏好

参与者:21 人;总计 276 次人工判断

对比方式:每次给人看两条 caption(CoViP vs 某个 baseline),顺序随机

对比对象:GPT-5、Gemini-3.0 Pro、Qwen3-VL-8B (随机三选一)

  • Context Groundedness(上下文贴合度):caption 是否真正把对话/记忆里的关键信息用对、用得贴合;

  • New Image Description(新图描述质量):caption 对“当前这张新图”的客观描述是否到位。

使用 Hugo 构建
主题 StackJimmy 设计