[论文阅读] Hybrid Space Learning for Language-based Video Retrieval

Hybrid Space Learning for Language-based Video Retrieval

1. Motivation

​ 通过文字检索为标记的视频。

​ dual encoding 的方式和心理学的双重编码理论相统一。双重编码理论指出,词语和视频的信息是通过不同渠道处理的,在大脑中的表示形式也是分开的。随后,这些表示被用来检索之前存储在大脑中的信息。

​ latne space是不可解释的,到底哪个模型可以真正学习到也是不得而知的。

2. Contribution

  • 提出dual network,该网络对查询的语句或视频通过同样的方式进行编码,显示并逐步的学习视频和句子中全局,局部和时间模式。同时编码部分和公共空间的学习是正交的,以便于以后使用最新的公共空间的学习方法。
  • 提出了一种新的混合空间学习,该方法继承了潜在空间的高性能和概念空间的可解释性

3. Method

 Overview:
在这里插入图片描述

3.1 Video-side Multi-level Encoding

​ 首先,对于视频,每0.5s提取一帧。使用与训练的ImageNet CNN来提取帧的特征 { v 1 , . . . v n } \{v_1,...v_n\} {v1,...vn}。当认为每帧是独立的时候,可以使用3D CNNs来提取特征。

3.1.1 Level 1. Global Encoding by Mean Pooling

​ 使用Mean Pooling来捕获视频帧中的特征,因为在视频帧中重复出现的内容趋向于全局的特征(作者认为)。

f v 1 = 1 n ∑ t = 1 n v t (1) f_{v}^{1}=\frac{1}{n} \sum_{t=1}^{n} v_{t}\tag{1} fv1=n1t=1nvt(1)

3.1.2 Level 2. Temporal-Aware Encoding by biGRU

​ 使用biGRU可以更好的捕捉视频和文本中的时序信息,同时该结构有着更少的参数(和biLSTM比起来)。

h ⃗ t = G R U ‾ ( v t , h ⃗ t − 1 ) h ← t = G R U ← ( v n + 1 − t , h h t − 1 ) (2) \begin{aligned} \vec{h}_{t} &=\overline{G R U}\left(v_{t}, \vec{h}_{t-1}\right) \\ \overleftarrow{h}_{t} &=\overleftarrow{G R U}\left(v_{n+1-t}, \stackrel{h}{h}_{t-1}\right) \end{aligned}\tag{2} h th t=GRU(vt,h t1)=GRU (vn+1t,hht1)(2)

然后将前向和反向的结构concatenate到一起,从而得到 h v t = [ h ⃗ t , h ← t ] h_{v}^{t}=\left[\vec{h}_{t}, \overleftarrow{h}_{t}\right] hvt=[h t,h t],GRU的隐层参数设置为512,因此 h v t h_v^t hvt的大小是1024。所以可以得到1024 × \times × n的特征 H v = { h v 1 , h v 2 , … , h v n } H_{v}=\left\{h_{v}^{1}, h_{v}^{2}, \ldots, h_{v}^{n}\right\} Hv={hv1,hv2,,hvn}。biGRU的编码可以定义为 f v ( 2 ) f_v^{(2)} fv(2),同时在上做mean pooling:

f v 2 = 1 n ∑ t = 1 n h v t (3) f_{v}^{2}=\frac{1}{n} \sum_{t=1}^{n} h_{v}^{t}\tag{3} fv2=n1t=1nhvt(3)

3.1.3 Level 3. Local-Enhanced Encoding by biGRU-CNN

​ 之前对于biGRU的每步输出都认为是相同的,为了在局部上区分细微的差异,在biGRU上构建CNN。使用1-d CNN。输出CNN的是之前biGRU的释出 H v H_v Hv。使用 C o n v 1 d k , r Conv1d_{k,r} Conv1dk,r表示 r = 512 r=512 r=512个卷积核,大小为 k k k k ≥ 2 k\geq2 k2。使用ReLU作为激活函数,得到 n × r n\times r n×r的特征图。因为 n n n由视频决定,所以使用max pooling将输出 c k c_k ck的长度变为 r r r。以上的描述可以定义为:

c v k = max ⁡ − p o o l i n g ( ReL ⁡ U ( Conv ⁡ 1 d k , r ( H v ) ) ) (4) c_{v}^{k}=\max -\mathrm{pooling}\left(\operatorname{ReL} U\left(\operatorname{Conv} 1 d_{k, r}\left(H_{v}\right)\right)\right)\tag{4} cvk=maxpooling(ReLU(Conv1dk,r(Hv)))(4)

​ 卷积核个数 k k k的含义是,有多少个相邻的行做信息交互。了得到更多维度表示,对1d-Conv分别使用 k = 2 , 3 , 4 , 5 k=2,3,4,5 k=2,3,4,5,将他们的结果concatenate到一起:

f v 3 = [ c v 2 , c v 3 , c v 4 , c v 5 ] (5) f_{v}^{3}=\left[c_{v}^{2}, c_{v}^{3}, c_{v}^{4}, c_{v}^{5}\right] \tag{5} fv3=[cv2,cv3,cv4,cv5](5)

​ 将得到的三个特征concatenate到一起:

ϕ ( v ) = [ f v 1 , f v 2 , f v 3 ] (6) \phi(v)=\left[f_{v}^{1}, f_{v}^{2}, f_{v}^{3}\right]\tag{6} ϕ(v)=[fv1,fv2,fv3](6)

3.2 Text-side Multi-level Encoding

​ 对于一个给定的文本序列 s s s,长度为 m m m,其中的每个词都被表示为一个one-hot向量 { w 1 , . . . w m } \{w_1, ... w_m\} {w1,...wm}。其中 w t w_t wt表示第 t t t个词。对序列中的每个vector使用average即可得到 f s 1 f_s^1 fs1,该方法等同于传统的bag-of-words的表示。

​ 对于biGRU编码,每个词首先通过乘一个word embedding matrix被转化为dense vector(one-hot mul matrix)。该矩阵是预训练的一个word2vec模型。剩下的和video encoder相同。(这层的输出表示为 f s 2 f_s^{2} fs2

​ 对于biGRU-CNN的编码层表示为 f s 3 f_s^3 fs3,但是在这里使用 k = 2 , 3 , 4 k=2,3,4 k=2,3,4的1-d Conv。

​ 多层特征也是通过concatenate到一起:

ϕ ( s ) = [ f s 1 , f s 2 , f s 3 ] (7) \phi(s)=\left[f_{s}^{1}, f_{s}^{2}, f_{s}^{3}\right]\tag{7} ϕ(s)=[fs1,fs2,fs3](7)

此时得到的 ϕ ( v ) \phi(v) ϕ(v) ϕ ( s ) \phi(s) ϕ(s)是没有联系的,所以不同直接比较。所以将要映射到common space。

3.3 Hybrid Space Learning

​ 混合空间包含:latent space和concept space,其中latent space旨在有着更好的结果,concept space意味着更好的解释性。

3.3.1 Learning a Latent Space
3.3.1.1 Network

​ 仿射变换(affine transformations)其实就是一个Fully Connected(FC) layer。对于FC Layer使用BN是一个trick。所以在latent space中的视频特征 f ( v ) f(v) f(v)和句子特征 f ( s ) f(s) f(s)由:

f ( v ) = B N ( W 1 ϕ ( v ) + b 1 ) f ( s ) = B N ( W 2 ϕ ( s ) + b 2 ) (8) \begin{array}{l} f(v)=\mathrm{BN}\left(W_{1} \phi(v)+b_{1}\right) \\ f(s)=\mathrm{BN}\left(W_{2} \phi(s)+b_{2}\right) \end{array}\tag{8} f(v)=BN(W1ϕ(v)+b1)f(s)=BN(W2ϕ(s)+b2)(8)

得到。

​ 使用余弦相似度(cosine similarity)来衡量video-text的相似度:

sim ⁡ lat ( v , s ) = f ( v ) ⋅ f ( s ) ∥ f ( v ) ∥ ∥ f ( s ) ∥ (9) \operatorname{sim}_{\text {lat}}(v, s)=\frac{f(v) \cdot f(s)}{\|f(v)\|\|f(s)\|}\tag{9} simlat(v,s)=f(v)f(s)f(v)f(s)(9)

作者表示,之前尝试过Manhattan distance和Euclidean distance,但是都不如余弦相似度。

3.3.1.2 Loss Function

​ 使用增强的triplet ranking loss。该loss在一个mini-batch中,使用negative examples在作为惩罚项。

L lat ( v , s ) = max ⁡ ( 0 , m + sim ⁡ lat ( v , s − ) − sim ⁡ lat ( v , s ) ) + max ⁡ ( 0 , m + sim ⁡ lat ( v − , s ) − sim ⁡ lat ( v , s ) ) (10) \begin{aligned} \mathcal{L}_{\text {lat}}(v, s) &=\max \left(0, m+\operatorname{sim}_{\text {lat}}\left(v, s^{-}\right)-\operatorname{sim}_{\text {lat}}(v, s)\right) \\ &+\max \left(0, m+\operatorname{sim}_{\text {lat}}\left(v^{-}, s\right)-\operatorname{sim}_{\text {lat}}(v, s)\right) \end{aligned}\tag{10} Llat(v,s)=max(0,m+simlat(v,s)simlat(v,s))+max(0,m+simlat(v,s)simlat(v,s))(10)

其中, m m m是margin,是一个常数, s − s^- s v − v^- v表示sentence和video的反例(negative sample)。注意,这个反例不是随机选择的,而是在当前的mini-batch中,选择和正例最像的反例。

3.3.2 Learning a Concept Space

​ 学习一个concept space可以看作是一个多分类问题。

3.3.2.1 Network

​ 使用和Learning a Latent Space相似的网络将 ϕ ( v ) \phi(v) ϕ(v) ϕ ( s ) \phi(s) ϕ(s)映射到Concept Space:

g ( v ) = σ ( B N ( W 3 ϕ ( v ) + b 3 ) ) g ( s ) = σ ( B N ( W 4 ϕ ( s ) + b 4 ) ) (11) \begin{array}{l} g(v)=\sigma\left(B N\left(W_{3} \phi(v)+b_{3}\right)\right) \\ g(s)=\sigma\left(B N\left(W_{4} \phi(s)+b_{4}\right)\right) \end{array}\tag{11} g(v)=σ(BN(W3ϕ(v)+b3))g(s)=σ(BN(W4ϕ(s)+b4))(11)

注意和公式(8)不同的是,此处的激活函数 σ \sigma σ使用的是sigmoid(因为是个分类问题嘛),对于一个concept的索引序列 i = 1 , . . . K i=1,...K i=1,...K g ( v ) i g(v)_i g(v)i表示concept和视频 v v v的相关性。(对于文本,也有同样的定义,可以得到 g ( s ) i g(s)_i g(s)i

3.3.2.2 Loss Function

​ 由于余弦相似度是计算向量之间的距离,对于concept space的标量来说,这不是最佳的选择。所以作者使用Jaccard similarity来计算video-text的相似度:

sim ⁡ con ⁡ ( v , s ) = ∑ i = 1 K min ⁡ ( g ( v ) i , g ( s ) i ) ∑ i = 1 K max ⁡ ( g ( v ) i , g ( s ) i ) (12) \operatorname{sim}_{\operatorname{con}}(v, s)=\frac{\sum_{i=1}^{K} \min \left(g(v)_{i}, g(s)_{i}\right)}{\sum_{i=1}^{K} \max \left(g(v)_{i}, g(s)_{i}\right)}\tag{12} simcon(v,s)=i=1Kmax(g(v)i,g(s)i)i=1Kmin(g(v)i,g(s)i)(12)

注意,这里的 g ( v ) g(v) g(v) g ( s ) g(s) g(s)没有归一化。

3.3.2.3 Concept-level annotations

​ 假设每个视频有p个描述 { s 1 , . . . s p } \{s_1,...s_p\} {s1,...sp}。有人提出过,“出现在多个句子中的概念要比仅出现一次的概念更重要”,因此使用基于概念频率(concept frequency)的labels来代替二分类的labels。使用 K K K维的向量 y y y作为 v v v的真值。其第 i i i个维度 y i y_i yi的值定义为 i i i个概念出现的频率除以句子 p p p中所有概念的最大值。例如:
/Users/yangyang/Library/Application Support/typora-user-images/image-20210101213943710.png

3.3.2.4 Loss Function

​ 对于多分类问题,二值交叉熵(binary cross-entropy)是常用的损失函数。该论文的损失函数如下:

L b c e ( v , s , y ) = − ( 1 K ∑ i = 1 K [ y i log ⁡ ( g ( v ) i ) + ( 1 − y i ) log ⁡ ( 1 − g ( v ) i ) ] + 1 K ∑ i = 1 K [ y i log ⁡ ( g ( s ) i ) + ( 1 − y i ) log ⁡ ( 1 − g ( s ) i ) ] ) (13) \begin{aligned} \mathcal{L}_{b c e}(v, s, y)=&-\left(\frac{1}{K} \sum_{i=1}^{K}\left[y_{i} \log \left(g(v)_{i}\right)+\left(1-y_{i}\right) \log \left(1-g(v)_{i}\right)\right]\right.\\ &\left.+\frac{1}{K} \sum_{i=1}^{K}\left[y_{i} \log \left(g(s)_{i}\right)+\left(1-y_{i}\right) \log \left(1-g(s)_{i}\right)\right]\right) \end{aligned}\tag{13} Lbce(v,s,y)=(K1i=1K[yilog(g(v)i)+(1yi)log(1g(v)i)]+K1i=1K[yilog(g(s)i)+(1yi)log(1g(s)i)])(13)
​ 作者希望concept space不仅仅用于可解释性,同时也希望能够提高video-text matching。因此对于concept space使用triplet ranking loss:

L con,rank ( v , s ) = max ⁡ ( 0 , m + sim ⁡ con ⁡ ( v , s − ) − sim ⁡ con ⁡ ( v , s ) ) + max ⁡ ( 0 , m + sim ⁡ con ⁡ ( v − , s ) − sim ⁡ con ⁡ ( v , s ) ) (14) \begin{aligned} \mathcal{L}_{\text {con,rank}}(v, s) &=\max \left(0, m+\operatorname{sim}_{\operatorname{con}}\left(v, s^{-}\right)-\operatorname{sim}_{\operatorname{con}}(v, s)\right) \\ &+\max \left(0, m+\operatorname{sim}_{\operatorname{con}}\left(v^{-}, s\right)-\operatorname{sim}_{\operatorname{con}}(v, s)\right) \end{aligned}\tag{14} Lcon,rank(v,s)=max(0,m+simcon(v,s)simcon(v,s))+max(0,m+simcon(v,s)simcon(v,s))(14)

​ 所以,在concept space上最重的loss是:

L con ( v , s , y ) = L bce ( v , s , y ) + L con,rank ( v , s ) (15) \mathcal{L}_{\text {con}}(v, s, y)=\mathcal{L}_{\text {bce}}(v, s, y)+\mathcal{L}_{\text {con,rank}}(v, s)\tag{15} Lcon(v,s,y)=Lbce(v,s,y)+Lcon,rank(v,s)(15)

可以看到,在公式(15)中,如果没有 L b c e \mathcal{L}_{bce} Lbce,那么仅存的 L r a n k \mathcal{L}_{rank} Lrank机会退化为latent space的loss。

3.3.3 Joint Learning of the Two Spaces

​ 整个网络的损失函数如下:

argmin ⁡ θ ∑ ( v , s , y ) ∈ D L lat ( v , s ) + L con ( v , s , y ) (16) \underset{\theta}{\operatorname{argmin}} \sum_{(v, s, y) \in \mathcal{D}} \mathcal{L}_{\text {lat}}(v, s)+\mathcal{L}_{\text {con}}(v, s, y)\tag{16} θargmin(v,s,y)DLlat(v,s)+Lcon(v,s,y)(16)

除了提取视频特征的image CNNs,整个网络是使用端到端的方式训练的。

3.4 Video-Text Similarity Computation

​ video和text的相似度计算方式如下:

sim ⁡ ( v , s ) = α ⋅ sim ⁡ lat ( v , c ) + ( 1 − α ) ⋅ sim ⁡ con ⁡ ( v , c ) (17) \operatorname{sim}(v, s)=\alpha \cdot \operatorname{sim}_{\text {lat}}(v, c)+(1-\alpha) \cdot \operatorname{sim}_{\operatorname{con}}(v, c)\tag{17} sim(v,s)=αsimlat(v,c)+(1α)simcon(v,c)(17)

其中 α \alpha α是一个超参数,用来平衡两个空间的重要性,取值范围是[0,1]。需要注意的是 s i m l a t ( v , s ) sim_{lat}(v,s) simlat(v,s) s i m c o n ( v , s ) sim_{con}(v,s) simcon(v,s)的原始值位于不同的标度之中。(啥意思?)所以在组合之前需要对两者使用min-max normalization。还需要注意的是,在inference阶段,video encoder部分可以单独编码。所以,对于大量的视频数据集,他们的混合空间特征是可以预先计算出来的。所以可以及时回答ad-hoc查询。

4. Experiments

​ 有两种实验,首先是在三个数据集(MSR-VTT,TRECVID AVS 2016-2018,VATEX和MPII-MD)上和SOTA的模型进行对比;后者是进行ad-hoc查询。在介绍实验之前,作者介绍了实验的配置和预处理。

​ 对于文本的预处理,将文本转化为小写,在训练集上,将出现次数小于5次的,都替换为一个特殊的token。

​ 对于视频的预处理,在VATEX上,采用1024维的I3D特征。对于其他数据集,采用ResNeXt-101和ResNet-152,这两种特征concatenate到一起,得到4096维的CNN特征,称作ResNeXt-ResNet。

​ 对于概念词汇,在训练集上采用NLTK的词性标注工具包进行标注,保留名词,动词和形容词。同时对于单词进行词素化(lemmatize the words),即dog和dogs是相同的概念。最后,将前K = 512个常用词选为最终概念词汇。

​ 实验配置:triplet ranking loss 中的 m = 0.2 m=0.2 m=0.2 α = 0.6 \alpha=0.6 α=0.6,根据经验,将common space设置为2048维,concept space为512维,因此latent space为2048-512=1536维,优化器采用Adam,batch-size=128,learning rate = 0.0001,采用和之前工作一样的调整策略,即验证集上的损失在三个连续的epoch上不降的话,就将learning rate减半。如果验证集上的结果在连续的10个epoch上没有提升,就提前结束。Epoch设置为50,实际上,提前结束会发生在15个epoch之后。

4.1 Comparison with the State-of-the-art

4.1.1 Experiments on MSR-VTT

20210102103417749
​ 其中,MSR-VTT有三种划分,第一种是官方的,其他两种是[29]和[31]里的划分。结果中 ∗ * 表示原文的结果,其他则是使用ResNeXt-ResNet特征训练的。官方划分的测试集更大,所以结果会低一些。

4.1.2 Experiments on TRECVID AVS 2016-2018

​ 因为该数据集没有训练数据(都是查询数据),因此使用MSR-VTT和TGIF作为混合训练集。该文章使用推定的平均精度(infAP),这是TRECVID AVS任务使用的官方性能指标。 测量的总体性能以百分比(%)报告。 注意,TRECVID的ground-truth在shot-level部分可用。 任务组织者采用pooling的策略来收集ground truth,即通过收集来自每个提交的前1000个镜头来形成候选镜头池,并选择一个随机子集进行手动验证。 因此,ground truth有利于官方的参与者。 由于通过我们的方法发现的排名最高的项目可能不在子集中,因此我们的方法的infAP分数可能会被低估。
在这里插入图片描述

4.1.3 Experiments on VATEX

​ 该数据集中,视频来源于Youtube,每个视频有10个中文描述和10个英文描述,在这里使用英文描述。数据划分是将25991个视频用于训练集,1500个视频用于验证集,1500个视频用于测试集。这3000个视频是来自于官方的验证集随机划分得到的。
在这里插入图片描述

4.1.4 Experiments on MPII-MD

​ 为了验证该方法在特殊视频领域的结果,所以是用MPII-MD数据集。该数据集是一个电影描述的数据集。使用官方划分:56828条作为训练集,4929条作为验证集,6580条作为测试集。每条视频有一到两条文本描述。
在这里插入图片描述

结果较MSR-VTT来讲较差,是因为movie retrieval更具挑战性,如下:

在这里插入图片描述

4.2 Ablation Study

​ 在这个部分来验证该网络结构各个组成部分的效果。数据集是官方划分的MSR-VTT。

4.2.1 Multi-level Encoding versus Single-Level Encoding

在这里插入图片描述

​ 探究多级编码和单级编码的结果如上。可以看到Level 1+2+3是效果最好的。该文章还做了分别只对视频和文本做多级编码,对另一方使用mean pooling的方式,结果的SumR分别为194.5和191。

4.2.2 Hybrid Space versus Single Space

​ 分别多级编码模型在两个空间上单独训练。

​ 上图的结果可以看出,Latent Space的结果虽好,但是缺乏可解释性;而Concept Space虽然可解释,但是效果不好。而Hybrid 是即可解释,效果又好的。

​ 同样的,对于是否在Concept Space使用triplet ranking loss作者也做了相关的实验,实验结果表明,SumR从211.7降到了183.3。

​ 对于超参数 α \alpha α,作者给出的实验结果如下:
在这里插入图片描述

4.2.3 Multi-level Encoding for Image-Text Retrieval

​ 在VSE++模型上,使用提出的多级text encoder部分代替原来的text encoder部分,结果如下:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值