text-video 论文阅读记录

这里先开一个新栏目,把我读过的论文,都写一个1000字左右的读后感,记一下它的主要方法,与要点。

1.Prompt Switch: Efficient CLIP Adaptation for Text-Video Retrieval:t2v: 47.8   2023

论文:[2308.07648] Prompt Switch: Efficient CLIP Adaptation for Text-Video Retrieval (arxiv.org)

动机:作者从利用CLIP的图像编码器有效地捕获视频内部丰富语义出发,针对目前的大多数方法,都会把文本信息融入到视频帧中,导致计算量过大,于是就提出了如何进行离线视频计算,即不利用文本。

方法:论文有Prompt Switch Prompt Aggregation Auxiliary Captioning Head

Prompt Switch Prompt Aggregation:论文提出了一个Prompt Cube,$P \in R^{N_{f}*N_{f}*D}$,它就直接可以插在每一帧视频后面,视频帧的长度为L+N_{f},直接进入ViT里面进行计算,然后在每一个自注意力层之前做:

T=[V;P]\rightarrow [V;P^{_{T}}]

这样子就可以交换所有帧之间的信息了,例如Prompt Cube中P_{i,j}可以实现第i帧与第j帧的通信

后续把Prompt Cube与class token进行一个多头,$c \in R^{1*D}$

p = LN(c_{i} + MHA(c_{i} , P , P) ) )

总体上是对视频编码器进行了一个修改

后面那个Auxiliary Captioning Head没有看懂,先不写了

想法:这个方法角度很新,也很巧妙,但是很奇怪就是它的效果会随着挑选的帧数的增加先上升后下降

2.Text Is MASS: Modeling as Stochastic Embedding for Text-Video Retrieval:t2v: 50.2  2024

动机:现有数据集中的文本内容普遍短小精悍,难以完整描述视频的冗余语义。作者提出了一个随机文本建模的办法T-MASS,来丰富语义。

方法:首先提出了一个随机文本嵌入t_{s} = t + R*\varepsilon ,\varepsilon \in P

t是由clip得到的文本特征,\varepsilon是一个符合正态分布的随机向量,R这里被视为半径。具体计算为:

1)视频的每一帧都与文本特征进行了一次计算,得到相似度

S_{i} = s( t , f_{i} ) , i = 1,...., T^{'}

2)将得到的S与一个全连接层进行计算,得到最后特征维度也为512 R = exp( S W) , S = [S_{1} , ... , S_{T^{'}}]

此外作者提出了一个新的损失函数

t_{sup} = t + \frac{v-t}{|v-t|}R                 \zeta _{total} = \zeta_{s} + \alpha \zeta_{sup}

按照论文里面的说法,这个是放置在文本块表面,作为文本块的移动与缩放的代理。

感想:看了代码之后,感觉就是用视频来丰富语义,与x-pool差不多,一次用一个文本嵌入一个视频语义作为表达,作者总说随机,但是无论是训练还是测试的过程,都没有体会到作者说说的随机,在训练时作者采用了正例来聚合文本语义,而在测试的时候为了避免数据泄露,就用所有视频都对文本进行了一次聚合。还有就是作者所提出新的损失函数,我现在也没有get到作者的点。

3. CLIP-VIP: ADAPTING PRE-TRAINED IMAGE-TEXT  MODEL TO VIDEO-LANGUAGE ALIGNMENT:t2v: 50.1     2023

动机:已有工作将图像表示迁移到视频领域,并取得了较好的效果。然而,将图像-文本预训练模型适应于视频-文本预训练(即预训练后)尚未显示出显著的优势,作者探索是什么阻碍了视频-文本预训练的性能,并且如何消除这些影响,把clip迁移到视频-文本预训中。

探索:作者首先是探索了不同的预训练数据集,最终选择了HD-VILA-100M,因为它的规模大,种类多。然后作者用NMI值来比较了预训练数据集与下游数据集(MSR-VTT,DiDeMo)的文本标签的差异,发现其值比较大,说明直接用预训练数据集的字幕会引入与下游任务的不一致性。

方法:

1. 域内辅助数据生成:作者受到前面的探索启发,将辅助字幕引入预训练的数据集中。作者引入了一个图像描述模型,为HD-VILA-100M每个视频中间帧生成一个字幕

2. 视频代理:这里作者以clip设计了一个新的视频编码器,抛弃了之前的一帧一帧的输入clip中,把所有的patch token+ proxy token 输入clip中,即T*N+M 个 tokens,首先对patch token加上时间与空间编码:

g(f_{t}^{n}) = Linear(f_{t}^{n} ) + Pos_{s}(n) +Pos_{t}(t),有t帧,每帧有n个patch。

然后作者设计了一种注意力掩码,使得patch token 只关注 proxy  token,而 proxy token 可以关注所有token。

M_{ViP}(q,k) = 1   如果 q或者k为 proxy tokens,或者 q , k都在同一帧中,否则为0

3. 全源跨模态学习

这里作者为了适应上面的方式,提出了一个新的损失函数这里V,F,S,C指视频,单帧,视频原来的字幕,生成的字幕有四种,分别为:\varsigma _{V\leftrightarrow S} + \varsigma _{F\leftrightarrow C}\varsigma _{V\leftrightarrow S} + \varsigma _{V\leftrightarrow C}\varsigma _{V\leftrightarrow S} + \varsigma _{V\leftrightarrow C} +\varsigma _{F\leftrightarrow C}\varsigma _{F\leftrightarrow C}+\varsigma _{V\leftrightarrow S,C}

思考:作者这篇论文确实很有启发性意义,但是为什么域内辅助数据生成会有效果呢,是对视频的一帧生成一句话,为什么可以减少下游的任务不一致性,不过,确实是很有效果,看到作者的实验

4. Improving Video-Text Retrieval by  Multi-Stream Corpus Alignment and Dual Softmax Loss:tv2: 47.3   2021

看这篇论文是因为当初看到CLIP-VIP的实验里,用了这篇论文的DSL方法,发现效果很好,这里也主要是关注这篇论文的DSL方法。

动机:提出DSL是为了避免以往对比方法中出现的单向最佳匹配。通过引入批处理中每一对的内在先验信息,DSL作为修正器对相似度矩阵进行修正,实现对偶最优匹配。

方法:论文提出的DSL方法作用在损失函数上,以往的损失函数一般是交叉熵损失,如下

L_{t}^{v2t} = -\frac{1}{B}\sum_{i}^{B}log\frac{exp(l*sim(v_{i},s_{i}))}{\sum _{j=1}^{B}exp(l*sim(v_{i} , s_{j}))}

L_{t}^{t2v} = -\frac{1}{B}\sum_{i}^{B}log\frac{exp(l*sim(v_{i},s_{i}))}{\sum _{j=1}^{B}exp(l*sim(v_{j} , s_{i}))}

L = \sum _{t} L_{t}^{v2t} + L_{t}^{t2v}

sim(v_{i} , s_{i}) = \frac{v_{i}*s_{i}}{ ||v_{i}||*||s_{i}||}

而这里DSL就是做了一点点改动,它引入了先验知识来修正相似度得分:

L_{t}^{v2t} = -\frac{1}{B}\sum_{i}^{B}log\frac{exp(l*sim(v_{i},s_{i})*Pr_{i,i}^{v2t})}{\sum _{j=1}^{B}exp(l*sim(v_{i} , s_{j})*Pr_{i,j}^{v2t})}

L_{t}^{t2v} = -\frac{1}{B}\sum_{i}^{B}log\frac{exp(l*sim(v_{i},s_{i})*Pr_{i,i}^{t2v})}{\sum _{j=1}^{B}exp(l*sim(v_{j} , s_{i})*Pr_{j,i}^{t2v})}

Pr_{i,j}^{v2t} = \frac{exp(temp*sim(v_{i} , s_{i}))}{\sum _{j=1}^{B}exp(temp*sim(v_{j} , s_{i}))}

Pr_{i,j}^{t2v} = \frac{exp(temp*sim(v_{i} , s_{i}))}{\sum _{j=1}^{B}exp(temp*sim(v_{i} , s_{j}))}

思考:作者这里的先验知识是干什么用的呢,说白了以往我们进行相似度计算的时候,都只有一个相似矩阵,这里可以看作它对那个相似度矩阵进行了修正。比如我们做视频检索文本的时候,即有sim(i ,j),它这里把它乘以了文本j对所有视频的softmax即Pr_{i,j}^{v2t},这里就是论文里面说的作用,突出了v2t与t2v都很高的那个,而这里关于它的使用在giithub上引起了讨论,因为它是对相似度矩阵进行了修正,那是不是可以用在测试中呢?虽然这样子不符合实际情况,但是这样子效果确实是好,按照论文里面的说法,只是用在损失函数中。但是个人觉得也是可以用在测试当中的

5. DGL: Dynamic Global-Local Prompt Tuning for Text-Video Retrieval:t2v:45.8 2024

动机:尽管像CLIP这样的预训练模型在这一领域显示出了令人印象深刻的潜力,但由于模型大小不断增加,完全微调这些模型的成本不断上升,仍然是一个问题。为了解决这一挑战,提示调优作为一种替代方案出现了。然而,现有工作在将预训练图像-文本模型适应下游视频-文本任务时仍面临两个问题:(1)视觉编码器只能编码帧级特征,未能提取全局级通用视频信息。(2)为视觉和文本编码器提供分离的提示,未能缓解视觉-文本模态差距。于是提出DGL,一种融合全局局部视频注意力的跨模态动态提示微调方法。

方法:提出的框架有:a local prompt generation module, a text  encoder, and a visual encoder。

在文本编辑器里有:文本前缀提示(prefix text prompts):T_{i}^{pre} = { {T_{i}^{pre;j} \in R^{d} | j \in N , i\leqslant j \leq n_{pre} } }

后缀文本提示(postfix text prompts ):T_{i}^{post} = { {T_{i}^{post;j} \in R^{d} | j \in N , i\leqslant j \leq n_{post} } }

i是第 i 层。

视频编码器:全局提示(global prompts):G = { G^{j} \in R^{d} | j \in N , i \leqslant j \leqslant n_{g}}

帧提示(frame prompts): F_{i}^{k} = { F_{i}^{k;j} \in R^{d} | j \in N , 1 \leq k \leqslant t , 1 \leq j \leqslant n_{f}}

Local Prompt Generation :
        现有Unified Prompt Transformer: U_{i} = [T_{i}^{pre} , T_{i}^{post} , F_{i}^{k} ]

然后Unified Prompt Transformer:T_{i}^{pre} = U_{linear}^{pre}(F_{i}^{k} ) 1 \leqslant i \leq N

T_{i}^{post} = U_{linear}^{post}(F_{i}^{k} ) 1 \leqslant i \leq N,这样子实现了文本特征与视频特征的跨模态对齐

文本编码器有:[ , W_{i} , ] = L_{i}^{t}( [T_{i-1}^{pre} , W_{i-1} , T_{i-1}^{post}] )

视频编码器:[ G_{i} , C_{i}^{k} , , E_{i}^{k} ] = L_{i}^{v}( [G_{i-1} , C_{i-1}^{k} , F_{i-1}^{k} , E_{i-1}^{k}] )

随后作者为了关注全局特征与局部帧级特征,设计了两种方式:

Local Frame Attention: 

Q_{i-1}^{loc} = [ C_{i-1}^{k} , F_{i-1}^{k} , E_{i-1}^{k} ]

K_{i-1}^{loc} = [ G_{i-1}^{k} , C_{i-1}^{k} , F_{i-1}^{k} , E_{i-1}^{k} ]

[C_{i}^{k} , F_{i}^{k} , E^{k}] = Att(Q_{i-1}^{loc} , K_{i-1}^{loc} , V_{i-1}^{loc} )

Global Video Attention:

Q_{i-1}^{glo} = [ G_{i-1} ]

K_{i-1}^{glo} = [ G_{i-1},... , X_{i-1}^{k} , V_{i-1}^{k} , E_{i-1}^{k} ]

G_{i}= Att(Q_{i-1}^{glo} , K_{i-1}^{glo} , V_{i-1}^{glo} )

作者用输出的第一个global prompt来代表视频特征,上述的全局注意力与局部注意力共享参数,在训练时候,冻结了文本编码器与视频编码器。

感想:作者将文本编码器与视频编码器交互提取特征的思路值得借鉴,可惜作者冻结了clip的参数,不知道如果不冻结,效果会怎么样,具体的实现,还要看一下具体的代码。

  • 6
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值