以往的文章更新过,背景就不再赘述:
- Cross-modal Pretraining in BERT(多模态预训练)
- CLIP,DALL-E
- 预训练新范式(Prompt-tuning,Prefix-tuning,P-tuning)
- 多模态预训练中的Prompt(MAnTiS,ActionCLIP,CPT,CoOp)
本篇文章继续整理几篇多模态的Prompt文章。
Align and Prompt: Video-and-Language Pre-training with Entity Prompts
尽管目前的视频文本预训练模型具有良好的性能,但作者认为仍存在一些局限性:
- 不同模态的特征位于不同的嵌入空间中,这种不对齐会使降低模态交互的效果。
- 很多预训练任务没有明确建模细粒度区域视觉信息,这对VQA等来说是很重要的。但如果一般使用现成的对象检测器的话,检测器本身有限的词汇量和昂贵的计算成本将成为瓶颈。
因此作者提出ALPRO模型(Align and Prompt),即对齐模态同时给细粒度提示,完整模型结构如上图,主要是结合Prompt和对比学习来实施目标软标签。就pre-training任务的话,除了常规的MLM和VTM(图文对齐)外,新增视频文本对比损失VTC,和提示实体建模PEM。其中,VTC强调捕获视频文本对的实例级对齐,PEM鼓励模型将局部视频区域与文本实体对齐。
- VTC在实例级别对齐单峰视频和文本的特征。主要由视频和文本对比损失由两个对称项组成,一个用于视频到文本的分类,一个相反。
- 然后为了更好地捕获细粒度视觉信息并加强区域实体对齐,PEM模块预测视频中出现的实体。即用和CLIP类似的Prompt方法:A video of { ENTITY }。最后生成的soft标签以对比自监督方式做细粒度对齐。
paper:https://arxiv.org/abs/2112.09583
code:https://github.com/salesforce/ALPRO
Multimodal Few-Shot Learning with Frozen Language Models
NIPS 2021。这篇文章主要关注few-shot和frozen language model,主要基于prefix-tuning,即Frozen language model之后就可以看成是一种image conditional下的prefix tuning,而连续的prompt特征学习变成是来自于图片的特征,如上图红色方块。需要注意的点主要有:
- 连续的图片prompts,由红色Vision Encoder编码之后得到图片特征,再映射为n个prompt向量。
- 训练时完全固定Language Model,如图上的雪花*表示冻结。因此反向传播只更新vision encoder的参数,目的是将visual特征拉到文本特征的空间中,实现两个模态的对齐。
同时由于Frozen这种快速适应新任务的能力,使得到的Frozen模型会是一个多模态的少镜头学习模型。
Prompting as Multimodal Fusing
补一篇。这篇文章接上一篇的Frazen,在上一篇的基础上解耦提取特征和对齐空间,即把visual encoder也固定,和Language Model一样只理解图像特征,而对齐空间则由prompt向量来做。
模型结构如上图,即在冻结文本的情况下,新增对齐空间的prompt,只有prompt参数可训练,可以使架构更模块化,并可以灵活调整和加入其他模态。
Prompting Visual-Language Models for Efficient Video Understanding
论文的动机是如何利用视觉语言预训练,并有效地调整它到特定的新视觉任务?因此和上面一些工作类似,还是任务迁移的问题。首先训练手段也较为类似,如上图左边,固定CLIP的image encoder和text encoder,训练时只更新prompt向量和轻量级的Transformer的参数。比较不一样的是,三个下游任务的prompt设计。
c
c
a
t
=
ϕ
t
e
x
t
(
T
O
K
E
N
I
S
E
R
(
“
t
h
i
s
i
s
a
p
h
o
t
o
o
f
[
c
a
t
]
”
)
)
c
d
o
g
=
ϕ
t
e
x
t
(
T
O
K
E
N
I
S
E
R
(
“
t
h
i
s
i
s
a
p
h
o
t
o
o
f
[
d
o
g
]
”
)
)
ccat = \phi_{text}(TOKENISER(“ this \ is \ a \ photo \ of \ [cat]”)) \\ cdog = \phi_{text}(TOKENISER(“ this \ is \ a \ photo \ of \ [dog]”))
ccat=ϕtext(TOKENISER(“this is a photo of [cat]”))cdog=ϕtext(TOKENISER(“this is a photo of [dog]”))
- Action Recognition。加在动作标签(e.g.“archery”)前后
- Action Localisation任务:先得到小片段,然后类似Action Recognition给得到的每个小片段预测动作类别。
- Text-Video Retrieval任务:类似Action Recognition,由句子作为标签(e.g.“the man
loves archery”)。
paper:https://arxiv.org/abs/2112.04478v1
code:https://ju-chen.github.io/efficient-prompt