论文阅读笔记(一):Reading-strategy Inspired Visual Representation Learning for Text-to-Video Retrieval

视频文本检索

意义:网上的视频量越来越大,对于识别、描述、检索视频内容的需求也越来越大。
任务:给一个自然语言描述的文本,在大量未标记的视频中寻找与它语义最相关的视频。
难点:视频内容检索的难点在于怎样计算文本与视频之间的相似度。早期的工作主要是将视频和文本都在一个预定义好的概念空间(concept space)表示出来,然后使用概念匹配计算相似度。近年来,跨模态的表示学习方法逐渐被使用,它学习一个特征嵌入空间(embedding space)来进行相似度测量。

一、Introduction?

文章来源:TCSVT, 2022
目前关于视频特征提取的方法如下图所示,典型的方法先使用一个CNN网络提取每帧的特征,然后通过平均池化或最大池化来聚合一个视频级特征,最后使用全连接层将其映射到一个公共空间。这种方法不能得到视频的综合信息。另外多分支方法也经常被使用,通过多个分支提取不同类型的特征,可以获得更全面的信息。
视频特征提取方法

但是这些多分支方法之间是相互独立的,作者认为这会导致这些分支都学到主要特征而忽略掉细节信息。受到人类阅读方式的启发(先整体阅读得到大致信息,在根据大致信息进行精读),作者提出了相互依赖的双分支网络。首先一个轻量级分支(previewing branch)捕捉视频的整体信息,然后相对较深的分支(intensive-reading branch)捕捉更细的信息,关键一点是previewing branch捕捉到的信息要融入intensive-reading branch中。

文章贡献如下:
1.提出了一个相互依赖的双分支网络来提取视频特征
2.为了建模这种依赖关系提出Previewing-aware Attention(PaA),和自注意力不同的是,Q来自于previewing branch。

二、Proposed method

整体方法模型如下图所示
整体方法模型

1.帧级特征提取

视频首先要编码成为帧级特征 V = { v 1 , v 2 , . . . v m } V=\{v_1,v_2,...v_m\} V={v1,v2,...vm},这里 v i v_i vi代表第 i i i帧的特征, m m m是视频中总的帧数。

2.Previewing Branch

这一分支使用biGRU来提取被给视频的整体信息。当将特征序列 V V V放入GRU时,得到一个输出为 H = { h 1 , h 2 , . . . h m } H=\{h^1,h^2,...h^m\} H={h1,h2,...hm},它表示了视频的整体信息。之后使用一个平均池化来作为视频的特征表达 p = 1 m ∑ t = 1 m h t p=\frac{1}{m}\sum_{t=1}^mh^t p=m1t=1mht

3.Intensive-Reading Branch

3.1.多粒度分段表示

为了获得不同粒度的信息,这里采用视频分段方法。首先使用一个FC层将V映射到一个更低维度的空间 V ′ = { v 1 ′ , v 2 ′ , . . . , v m ′ } V'=\{v_1',v_2',...,v_m'\} V={v1,v2,...,vm}。然后使用CNN获取分段特征。具体来说使用不同尺寸的卷积核可以得到不同粒度信息。卷积核尺寸为n的分段特征可以表示为 C n = δ ( C o n v 1 D r , n , s ( V ′ ) ) C_n=\delta(Conv1D_{r,n,s}(V')) Cn=δ(Conv1Dr,n,s(V)),这里r,n,s分别代表卷积核个数、尺寸以及步长。最终得到的多粒度信息为: C = { C n ∈ R m n × r } C=\{C^n \in R^{m_n\times r}\} C={CnRmn×r}这里n表示卷积核尺寸, m n m^n mn表示段长为n(n帧特征聚合在一起)的段数量。

3.2 Previewing-aware Attention

与自注意力机制不同的是,Previewing-aware Attention使用Previewing branch中的p得到query,使用 C ′ ∈ C C' \in C CC得到keys和values。对于每个粒度的段,注意力计算如下:
{ A t t e n t i o n ( Q , K , V ) = S o f t m a x ( Q K T d k ) V , o = W 4 × A t t e n t i o n ( p W 1 , C ′ W 2 , C ′ W 3 ) , \begin{cases}Attention(Q,K,V)=Softmax(\frac{QK^T}{\sqrt{d_k}})V, \\ o=W_4\times Attention(pW_1,C'W_2,C'W_3),\end{cases} {Attention(Q,K,V)=Softmax(dk QKT)V,o=W4×Attention(pW1,CW2,CW3),
这里 W 1 ∈ R d × d k W_1\in R^{d\times d_k} W1Rd×dk, W 2 ∈ R r × d k W_2\in R^{r\times d_k} W2Rr×dk, W 3 ∈ R r × d v W_3\in R^{r\times d_v} W3Rr×dv为三个映射矩阵用于得到Q,K,V, W 4 ∈ R d v × d v W_4\in R^{d_v\times d_v} W4Rdv×dv用于得到最终输出。

获得输出 o o o后,利用残差连接获取该层的结果
o ′ = L N ( o + m a x p o l l ( C ′ ) ) o'=LN(o+maxpoll(C')) o=LN(o+maxpoll(C))
PaA模块最终的输出为:
P a A ( C ′ ; p ) = L N ( o ′ + M L P ( o ′ ) ) PaA(C';p)=LN(o'+MLP(o')) PaA(C;p)=LN(o+MLP(o))
由于有多个粒度的段,因此还需要将各个段的输出进行拼接。
g = C o n c a t ( P a A ( C n ; p ) ) g=Concat(PaA(C^n;p)) g=Concat(PaA(Cn;p))

三、视频文本匹配

1.文本表示

本文主要关注视频表示部分,对于文本表示,这里使用多层次文本编码和BERT来进行文本表示。多层次文本编码是基于Bag-of-Words (BoW), biGRU, biGRU-CNN提取三个层次的文本特征,然后将他们拼接在一起。BERT是使用预训练的模型将一个句子转为1024维的向量。最终表示文本的方法有两种,一种是只使用多层次文本编码,另一种是将多层次编码与BERT特征拼接在一起。文中默认采用多层次文本编码方法。

2.视频文本相似度学习

文中使用混合空间(Hybrid Spaces)来学习视频文本间的相似度。它既有概念空间(concept space)的可解释性又有潜在空间(latent space)的高性能。这里采用两个混合空间分别用于两个分支,最终的相似度有两个空间聚合而成。

混合空间由概念空间和潜在空间组成,在潜在空间中,使用三元组损失来拉近匹配视频文本对,拉远不匹配的视频文本对。在概念空间中,交叉熵损失和三元组损失被使用。

最终的相似度由两个空间的相似度相加得到:
s i m ( v , s ) = s i m p ( v , s ) + s i m g ( v , s ) sim(v,s)=sim_p(v,s)+sim_g(v,s) sim(v,s)=simp(v,s)+simg(v,s)
这里 v v v表示视频特征, s s s表示文本特征, s i m p , s i m g sim_p,sim_g simp,simg分别代表两个分支的相似度计算方法。

四、实验

1.实验设置

作者在三个数据集 MSR-VTT,VATEX和TGIF上做了实验。实验中,使用pytorch架构,评估指标选择Rank@k和mAP。

2.实验结果

MSR-VTT实验结果如下:
MSR-VTT实验结果
TGIF实验结果:
TGIF实验结果
VATEX实验结果
VATEX实验结果
从实验结果上来看,文中使用的方法在后两个数据集上有明显的提升,在第一个数据集上使用更少的特征(不需预训练,分支更少)取得了与在HowTo100M上预训练的Support-Set相当的结果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值