关注公众号,发现CV技术之美
▊ 写在前面
对比学习已被广泛用于训练基于Transformer的视觉语言模型,用于视频-文本对齐和多模态表示学习。本文提出了一种token感知级联对比学习(TACo) 算法,该算法利用两种新技术改进了目前的对比学习。
第一个是token感知的对比损失 ,它是通过考虑单词的句法类来计算的。这是由于对于视频-文本对,文本中的内容词,如名词和动词,比功能词更有可能与视频中的视觉内容对齐。其次,作者采用了级联采样 方法生成一组少量hard negative样本,以有效地估计多模态融合层的损失。
为了验证TACo的有效性,作者为一组下游任务优化了预训练的模型,包括文本-视频检索(YouCook2、MSR-VTT和ActivityNet)、视频动作定位(CrossTask)、视频动作分割(COIN)。结果表明,与以前的方法相比,本文的模型在不同的实验设置中获得了一致的改进,在YouCook2、MSR-VTT和ActivityNet的三个公共文本视频检索基准上设置了SOTA水平。
▊ 1. 论文和代码
TACo: Token-aware Cascade Contrastive Learning for Video-Text Alignment
论文地址:https://arxiv.org/abs/2108.09980
代码地址:尚未开源
▊ 2. Motivation
在视觉语言(VL)研究的背景下,将语言与视频对齐是一个具有挑战性的任务,因为它需要模型来理解视频中呈现的内容、动态和因果关系。受BERT在自然语言处理方面的成功启发,人们对将基于Transformer的多模态模型应用于视频-文本对齐和表示学习越来越感兴趣。
这些模型通常使用对比学习对大量有噪声的视频-文本对进行预训练,然后以Zero-shot或Fine-tuning的方式应用于各种下游任务,如文本-视频检索、视频动作定位、视频动作分割等等。
在本文中,作者提出了一种新的对比学习变体,token感知级联对比学习(TACo) ,以改进大规模预训练和下游特定任务的视频-文本对齐。TACo对视频语言领域中使用的传统对比学习进行了两种修改。
第一个是token感知的对比损失 ,它是通过考虑单词的句法类来计算的。这是由于作者观察到,给定一个视频及其相应的文本,内容词,如名词和动词,比功能词更有可能与视频中的视觉内容对齐。传统的对比学习通常是在聚合视频中文本和帧中的所有单词后计算损失。
相比之下,token感知的对比损失只使用语法类属于预定义的词集(如名词和动词,比如上图中的“add”, “tomatos”,“pan”和“stir”)的一个子集来计算。
第二种技术是一种级联采样方法 ,以找到一组hard negatives来训练多模态融合层。对于每个视频-文本对,理想的情况是使用剩余的K−1个负视频或文本来计算多模态融合后的对比损失。
然而,当与多模态融合层耦合时,计算对比损失的成本就会变得非常高。解决这一问题的一种传统方法是使用随机抽样来选择负对的一个小子集。
在本文中,作者提出了一种如上图右上方所示的级联采样方法,而不是随机采样。它利用了在多模态融合层之前在L1和L2中计算的视频文本对齐分数,并帮助更有效地学习多模态融合层,而无需任何额外的开销。
▊ 3. 方法
从上图可以看出,本文的方法主要有三个模块组成:
视频编码模块由θ参数化的自注意层实现。输入的视频特征使用一些预先训练的模型提取,如2D CNN或3D CNN。给定输入的视频嵌入,视频编码器从一个线性层开始,将它们投射到与自注意层相同的维度d上。作者用m个特征的序列来表示视频编码器的输出,。特征的数量m取决于采样帧率的选择和视频特征提取器的选择。
作者分别使用预训练的 tokenizer和BERT对输入文本进行 tokenize和提取文本特征。给定一个原始句子,分别在开头和结尾追加一个“[CLS]”和“[SEP]”。在模型顶部,可以得到一个由n个文本特征组成的序列。这里保证了视频编码器的输出特征维数与语言编码器的特征相同。在训练过程中,更新语言编码器中的参数θ,以适应特定域的文本。
多模态融合模块由具有可学习参数θ的自注意层组成。它将两种独立模态的视频特征和文本特征作为输入,然后输出特征。
为了帮助区分视频和语言token,作者使用token类型嵌入层来学习两个嵌入,并将它们分别添加到视觉token和文本token中。与原始的Transformer类似,模型包含了一个位置嵌入层来编码输入序列中的绝对token位置。
上述三个模块组成了本文的视频-文本对齐模型,然后对该模型使用所提出的token感知级联对比损失进行训练。
给定一组N个视频-文本对,模型的目标是学习一个最优的评分函数s,这样配对的视频和文本的得分就高于所有其他不匹配的对。从概率的角度来看,将与对齐等价于最大化条件概率,同时最小化所有负对的概率。可以近似为:
其中,是v和t的对齐分数;分母是对所有可能视频的和。在上加入交叉熵损失,就可以推导出NCE损失:
上式中的分母需要对数据集中所有视频的求和,这在现实中是难以处理的。因此,通常会计算从整个数据集采样的一个mini-batch的K个视频文本对上的NCE损失。
理想情况下,希望学习模型的参数,以最小化上述NCE损失,在所有元组上最大化。
在以往的研究中,使用对比学习的方法存在两个问题。首先 ,通过在句子中取“[CLS]”token或句子中所有token的最大值来计算损失。显然,与功能词相比,内容词(如名词、动词)更有可能与视频中的视觉内容或概念保持一致。
其次 ,多模态融合层的高计算成本阻碍了大量负样本的使用,但这对对比学习至关重要。基于这两个问题,作者介绍了TACo ,这是一种简单而有效的方法来改进对比学习。
给定K个视频文本对的一个batch,作者首先使用视频编码器和语言编码器获得视频特征和文本特征。
然后,平均一个视频片段的所有token得到,并取每个文本的第一个‘[CLS]’ token得到。基于和,句子级的对比损失为:
其中,τ1是一个温度参数。视频和文本特征之间计算相似度的方式为点积。通过此方法,优化了θ和θ,以便将视频和文本样本投影到一个对齐的特征空间中。
“[CLS]” token和视频token的平均值忽略了token和帧之间的差异,因此可能不会将单个token(例如,名词和动词)推向特定视频内容帧。为了鼓励正确的对齐,除了句子损失之外,作者还引入了token级别的对比损失:
其中τ2是另一个温度参数;是在第i个文本中感兴趣的token的索引,是在第i个文本中嵌入的第p个token。度量了视频特征和特定token嵌入之间的相似性。首先计算和所有m个视频token之间的点积,然后取m个分数的最大值得到最终的对齐分数。
通过这种方式,该模型使用单个token作为锚点来与视频对齐,作为句子级别对比损失的补充。总的来说,这两个损失被用于以一种token感知的方式优化θ和θ。
上式中需要决定在中应该包含哪些token。在本文中,作者启发式地选择名词和动词作为目标,因为它们在视频中更“具体”。在实现中,名词或动词即使具有相同的类型,也具有不同的区别性。
例如,“人”是一个名词,但信息量比“体操运动员”少。为了反映这一点,作者通过计算它们的逆文档频率(idf)来进一步分配具有不同权重的不同单词。较高的idf意味着它在整个语料库中更独特,因此在计算token级对比损失时将会更重要。
计算损失的另一个问题是,由于BERT tokenizer,token通常是子字。因此,对于所有属于同一单词的token,作者将相应地分配相同的权重。
在计算了token感知的对比损失后,作者将来自不同模态的特征输入到多模态融合层,以使它们两者之间有更多的交互。与之前的工作类似,作者在(m+n)个输出中采用了与“[CLS]”对应的特征。可以把这看作是两种模态的结合,然后计算对比损失:
其中,是以和为输入的“[CLS]” token的多模态融合输出;是一个线性层中的参数。基于上面的目标,可以联合训练模型参数。
而一个实际的挑战是,由于多模态融合的高计算和显存成本,很难在mini-batch中使用所有(K−1)个负样本。自注意层的复杂性使得难以将所有K×K个对传递到多模态层中。
之前的工作通过随机采样将负样本的数量减少到来解决这个问题。然而,随机选择负样本可能会导致次优的学习。因此,作者引入了一种级联采样策略 来寻找hard negatives,而不是随机采样。
为了降低上式的计算成本,作者在所有可能的视频文本对中选择一个最困难的小子集。然而,使用上式来计算所有对的对齐分数,然后选择hard negatives是一个“鸡和蛋”的问题。因此,作者提出使用在融合之前的特征上计算的所有视频-文本对之间的相似性。
具体来说,对于每个文本-视频对,作者取它们计算的全局相似性和聚合中所有感兴趣的token。然后,作者将这两个相似性相加为给定对的对齐分数。
对于每个文本,作者选择了前个对齐的负视频样本,反之亦然。然后得到的个对被送入多模态融合层。通过这种策略,可以有效地选择negative samples,而无需额外的计算成本。由于多模态融合层具有更多的能力(参数)来区分这些hard negatives,因此本文的采样策略自然促进了三个对比损失之间的联合优化。
本文方法的训练目标是通过最小化上述三个对比损失的组合来找到最优的:
其中,λ是token级别损失的权重(默认值为0.5)。在推理过程中,作者通过将所有三个评分函数的对齐得分相加来进行预测。
▊ 4.实验
上表展示了本文的方法在具有不同视频特征的YouCook2和MSR-VTT上的文本-视频检索性能。可以看出,在HowTo100M上预训练的S3D以巨大的性能优势优于其他特征。
上表展示了不同损失函数和级联采样的消融实验结果,可以看出,本文提出的损失函数和级联采样对于性能的提升都是重要的。
上表展示了用不同的单词作为Tokens of Interest的结果,可以看出,使用动词和名词作为Tokens of Interest的实验结果是最好的。
上表展示了三个视频文本检索数据集上,本文方法和其他方法的实验结果对比。
上表展示了Zero-shot方案下和微调方案下,TACo和其他方法的比较。
上表展示了YouCook2和MSR-VTT数据集上,本文方法在zero-shot设置的性能。
为了验证本文方法的泛化性能,作者在CrossTask数据集上进行了action step localization任务,结果如上表所示。
▊ 5. 总结
本文介绍了TACo,一种简单而有效的学习视频-文本对齐的对比学习方法。它旨在解决当前对比学习pipeline中存在的两个问题:缺少细粒度对齐 和多模态融合的低效采样 。
在不引入任何额外参数的情况下,本文的方法在各种评估指标下的三个文本-视频检索基准上取得了良好的结果。作者进一步证明了学习到的表示可以有效地迁移到其他任务上,如动作定位和分割。基于所有这些结果,作者认为TACo是传统对比学习pipeline的一个很好的选择。
▊ 作者简介
研究领域:FightingCV公众号运营者,研究方向为多模态内容理解,专注于解决视觉模态和语言模态相结合的任务,促进Vision-Language模型的实地应用。
知乎/公众号:FightingCV
END
欢迎加入「视频检索」交流群备注:检索