论文精读:《TACO:用于视频-文本对齐的标记感知级联对比学习》

1,756 阅读4分钟

image.png

论文: arxiv.org/abs/2108.09…

代码: 还未开源

1. 创新点

提出了一种新的token感知级联对比学习(TACO)算法 该算法有两个创新点:

  • token感知的对比损失,是通过考虑单词的句法类别来计算的
  • 采用级联抽样的方法生成少量的hard negative,用来估计多模态融合层的损失 在YouCook2、MSR-VTT和ActivityNet的三个公共文本视频检索基准上设置了SOTA水平

2. 结论

作者提出了一种对比学习算法TACO,用于学习视频-文本对齐。作者的目的是解决当前对比学习中出现的两种问题:

  1. 缺少细粒度比对
  2. 多模式融合采样效率低下 通过比对,该实验结果是替代传统比对学习渠道的很好的选择

3. 实现方法

传统视频-文本对齐的做法是:使用对比学习在大量有噪声的视频-文本对上进行预训练,然后以Zero-Shot或者fine-turned用于各种下游任务。 而作者提出的TACO对传统视频-文本对齐改进了以下两点:

  1. token感知的对比损失,是通过考虑单词的句法类别来计算的 作者认为,在给定特定文本的情况下,动词和名词比虚词更能与视觉内容相对应
  2. 级联抽样方法,它为训练多模态融合层找到小部分的hard negative 给定一个batch的K个video-text对,对于每个video-text对,理想的情况下我们使用剩余的K-1个负视频或文本来计算多模态融合后的对比损失
    即:{video1:text1}被认定为正类,则{video2:text1}、{video3:text1}...{video_K:text1}被认定为负类
    或者{video1:text2}、{video1:text3}...{video1:text_k}被认定为负类。 而这种方式的计算量过大,传统的做法是采用随机采样。而 作者提出了一种如下所示的级联采样方法,而不是随机采样。它利用了在多模态融合层之前在L1和L2中计算的视频文本对齐分数,并帮助更有效地学习多模态融合层,而无需任何额外的开销 image.png

3.1 视频-文本对齐模型

由上图可知,该方法可以拆分为三个模块:

3.1.1 Video encoding module

视频编码模块由θv\theta_v参数化的自注意层实现。作者预先使用2D CNN或者3D CNN提取高维特征,之后通过一个线性层投影到和自注意力层相同的维度d上。作者使用x={x1,x2,...,xm}Rm×dx = \{ {x^1},{x^2},...,{x^m}\} \in {\mathbb{R}^{m \times d}}表示

3.1.2 Language encoding module

作者预先使用tokenizer和BERT对输入文本进行tokenize和提取文本特征,可以得到一个由n个文本特征组成更的序列y={y1,y2,...yn}Rn×dy = \{ {y^1},{y^2},...{y^n}\} \in {R ^{ n \times d}},训练过程中更新θt\theta_t适应特定于的文本

3.1.3 Multi-modal fusion module

多模态融合模块由具有可学习参数θm\theta_m的自注意层组成。它将两种独立模态的视频特征xRm×dx \in \R^{m \times d}和文本特征yRn×dy \in R^{n \times d}作为输入,然后输出特征z={z1,z2,...z(m+n)}R(m+n)×dz=\{z_1,z_2,...z_{(m+n)}\} \in R^{(m+n) \times d}
为区分视频token和语言token,作者采用了token类型嵌入层来学习两个嵌入。

3.2 token感知级联对比损失

给定K个视频-文本对{(vi,ti)}i=1K\{(v_i,t_i)\}^K_{i=1}的一个batch,并且先用fθtf_{\theta_t}获得视频特征X={x1,x2,...,xt}RK×m×dX = \{ {x_1},{x_2},...,{x_t}\} \in {R^{K \times m \times d}}和文本特征Y={y1,y2,...,yK}RK×n×dY = \{ {y_1},{y_2},...,{y_K}\} \in {R^{K \times n \times d}},之后平均一个视频片段viv_i的所有token得到xiR1×d\overline {x_i} \in {R^{1 \times d}},并且取每个文本的第一个[CLS]token得到yiR1×d\overline {y_i} \in R^{1 \times d }。基于xiR1×dyiR1×d\overline {x_i} \in R ^{1 \times d } 和 \overline {y_i} \in R^{1 \times d },句子级对比损失如下:

image.png 因为采用了第一个[CLS]token和视频token的平均,可能不会将特定的动词或名词token推向特定的视频帧,所以作者还引入了token级别的对比损失:

image.png 在上式需要决定在PiP_i中应该包含哪些token。本文的作者使用名词或动词作为目标。
对于“人”和“体操运动员”,后者包含的信息更多,所以作者采用逆文档频率(idf)分配单词的不同权重。
对于属于同一单词的token,作者分配相同的权重。
计算token感知的对比损失后,作者将来自不同模态的特征输入到多模态融合层。与之前的工作类似,作者在(m+n)个输出中采用了与“[CLS]”对应的特征。可以把这看作是两种模态的结合,然后计算对比损失:

image.png 为了降低计算成本,作者采用级联采样策略寻找hard negative。 具体做法是: 对于每个文本-视频(vi,ti)(v_i,t_i),作者取它们计算的全局相似性xiyi\overline {{x_i}} \cdot \overline {{y_i}}聚合tit_i中所有感兴趣的tokenpPis(xj,yip) \sum\limits_{p \in {P_i}} {s({x_j},y_i^p)},然后作者将这两个相似性相加为给定对的对齐分数。
对于每个文本,作者选择了前K{K^{'}}个对齐的负视频样本,反之亦然。然后得到的2K×(K+1)2K \times (K^{'}+1)个对被送入多模态融合层。有效的选择了hard negative。

4.目标

本文方法的训练目标是通过最小化上述三个对比损失的组合来找到最优的θ={θv,θt,θm}\theta = \{ \theta_v,\theta_t,\theta_m\}

image.png

下表展示了本文的方法在具有不同视频特征的YouCook2和MSR-VTT上的文本-视频检索性能。可以看出,在HowTo100M上预训练的S3D以巨大的性能优势优于其他特征 image.png