10月11日至17日,在2021国际计算机视觉大会International Conference on Computer Vision (ICCV 2021)上,腾讯QQ浏览器实验室团队参加了ICCV 2021视频多模态理解领域的VALUE Challenge,在Video Caption Track获得了冠军,总分遥遥领先其他团队,并且在各个子榜单上,也远远超出现有SOTA。该篇文章作者为腾讯研究员王占宇,内文详细介绍了其所在的QQ浏览器Lab的研发成果和经验分享。
VALUE Challege由 ICCV 2021: the Forth Workshop on Closing the Loop Between Vision and Language 举办,下设Retrieval,VQA,Video Captioning三个赛道,其中,Video Captioning赛道包含三个数据集,即TVC, YC2C和VATEX-EN-C数据集。Video Caption能够连接人类语言与视觉信息,在实际业务中,可以应用到视频生成标题,辅助视频检索等场景。在学术上,video caption有MSRVTT、MSVD,TVC、VATEX等多个不同的开源数据集。
一.Video Caption任务背景
今年初,OpenAI发表了CLIP和DALL-E,在图像-文本的跨模态语义匹配、文本生成图像等领域取得令人震惊的突破,与此同时,预训练技术研发新范式在NLP领域扎根之后正向CV领域全面渗透。如何将多模态预训练技术应用到视频领域,是一个重要技术课题,同时也对业务发展有重要影响。
Video Caption(视频描述)任务是给定一个视频片段,生成一行文字描述该视频。它属于视频-文本跨模态和文本生成领域。相对于image caption任务,视频还需要融合多帧序列中所包含的时序信息,这对生成准确的描述是一项重大挑战。
下图是一个实际例子,图片上侧是一段视频帧,下侧是对于视频的描述“a cake is being placed on a plate”。
二.VALUE Challenge介绍
众所周知,NLP领域的GLUE榜单集成了多种NLP任务和数据集,极大的推动了NLP预训练模型的发展。VALUE的目标就是希望成为视频-文本跨模态领域的GLUE,推动通用的视频-文本跨模态理解的发展。VALUE全称是Video And Language Understanding Evaluation,是由微软牵头设立的,包含了11个视频与语言任务的benchmark,涵盖了不同的数据集、视频类型以及难易程度和任务类型。
VALUE Challege由 ICCV 2021: the Forth Workshop on Closing the Loop Between Vision and Language 举办,涵盖Retrieval,VQA,Video Captioning三个赛道,其中,Video Captioning赛道包含三个数据集,即TVC, YC2C和VATEX-EN-C数据集。
TVC数据集是一个大型多模态的视频描述数据集,包含26w的视频描述以及10w的短视频段,下图是来自官方的数据集样例:
YC2C数据集是食谱教学数据集,包含了来自YouTube的2000段视频,下图是官方数据集样例:
VATEX-EN-C数据集是VATEX数据集的英文版本,VATEX数据集是大型多语言视频描述数据集,包含41250个视频,每个视频有10个中文描述以及10个英文描述,下图是官方数据集样例:
三.相关算法
早期的video caption采用了基于模板匹配的方法[1,2,3],将预测的单词与预定义的模板对齐。S2VT[4]提出了基于LSTM的视频描述Seq2seq模型,自此以后,采用Encoder-Decoder架构的序列学习方法成为了video caption的主流方法。[5]将image caption中的attention机制引入到video caption中,对视频的帧序列应用attention。RecNet[6]提出用解码器隐状态重建视觉特征,从而强制让解码器保留更多原视觉特征中的信息。[7]通过多任务学习优化视频描述,腾讯QQ浏览器Lab设置的三个训练任务分别是video predication、video captioning、entailment generation。在近年来的研究中,一些研究者也成功地运用vision-language(VL) 预训练进行VL理解,在image caption等下游任务中取得了显著突破[8,9,10]。
本次腾讯QQ浏览器Lab在VALUE Challenge中的解决方案主要基于CVPR 2020的image caption模型X-LAN[11]和X-Transformer,它们都是经典的Encoder-Decoder架构,分别使用LSTM和Transformer序列模型,这篇paper最主要的改进点是引入了X-Linear Attention替代经典的Attention结构。不过在实验中,这个attention网络的影响并不大,在模型中充分而合理的利用预训练模型CLIP feature带来了显著的指标增长。
四.模型训练
下图是方案的框架图,QQ浏览器Lab使用两阶段方式训练模型。
第一阶段:训练原始的X-LAN或者X-Transformer网络。视频特征经过双模态融合之后,利用X-Linear attention block对视频帧特征序列进行编码,使得帧特征序列之间具有更高阶的信息交互,得到增强的视频特征序列。根据增强的视频特征,在解码器中进一步使用x-Linear attention block挖掘不同模态之间的交互信息,并解码为最终输出的句子。
在第二阶段:使用self-critical sequence training(SCST)继续训练(continue training)。Caption模型在训练阶段使用“Teacher-Forcing”的方式训练,每个时刻中输入的单词是来自ground-truth的单词,测试的时候依赖的是自己生成的单词,测试阶段生成的不好会导致误差累积;另外,模型训练使用cross entropy loss,evaluation使用的却是BLEU、ROUGE、METEOR、CIDEr等指标,模型的优化方向与评价指标之间存在不一致。SCST利用policy gradient,使用训练阶段生成的caption的CIDEr作为reward,使用当前模型在测试阶段的reward作为reward的baseline,可以使模型直接优化CIDEr并鼓励模型在训练、测试阶段表现一致。第二阶段的训练使用第一阶段最好模型初始化,在第二阶段中模型CIDEr指标取得了显著提升。
五.主要改进措施
1.使用CLIP feature替代传统的图像特征
CLIP[12]是经过4亿个图像-文本对预训练的图文跨模态模型。CLIP4Clip[14]证明了CLIP feature对video retrieval任务有巨大的效果提升(接近翻倍),这是因为CLIP通过预训练,在image层面已经将vision和language两个模态的向量空间对齐,多帧image融合成的video,也同样容易与language的向量对齐。一个自然而然的想法是在video caption任务中同样引入CLIP feature,QQ浏览器Lab在[20]中初步证明了CLIP feature对video caption的有效性,获得ACM MM Video Caption Track的第二名。具体做法是借鉴CLIP4Clip先用video retrieval模型finetune CLIP模型,然后每帧图像计算CLIP feature。我们使用了CLIP公开的3个预训练模型:CLIP(RN50x16),CLIP(ViT-B/32)和CLIP(ViT-B/16)。
在image caption领域,主要使用检测模型得到的local feature,这种local feature某种程度上含有语义信息,因为检测目标是有语义label的。在video caption中,local feature也经常使用,譬如VATEX Challenge 2020的冠亚军方案介绍[17,18]。QQ浏览器Lab废弃了local feature,一个原因是检测模型非常耗资源,另外,过程中发现实验发现影响不大,这可能是因为Lab引入的CLIP feature本身已经有很强的语义信息。
2.引入TSN[15]的抽帧方式
TSN是经典的视频动作分类模型,它的主要贡献之一是提出了一种稀疏采样训练方式:在训练阶段,将视频平均切分为K段,并在每段中随机采样一帧,这样每两个epoch输入的帧是不同的,取得了数据增强的效果。同时,一个视频只采样K帧,K的数值通常在10左右,计算量较小,速度很快。CVPR 2021的Best Student Paper: ClipBERT[16]更进一步指出,稀疏采样的端到端训练,相比于比稠密抽帧的离线特征,效果更好。
QQ浏览器Lab之前在腾讯信息流的视频分类模型中,也尝试了TSN抽样 + NeXtVLAD特征融合的方式训练[19],同样证明了这种抽帧方式对视频模型的有效性。在此次Video Caption任务中,团队同样采用TSN抽样方式,选取K=7,在训练阶段,每个视频均分为K段,每段中随机抽取一帧,最终输入7帧图像特征。
3.引入滑动窗口的SlowFast feature
CLIP feature毕竟只是单帧图像的2D feature,而为了刻画多帧时序间的运动特征,有必要引入3D feature。SlowFast[13] 是常见的视频3D模型,它通过慢通道(Slow pathway)捕捉低帧率、高分辨率下的视频静态内容,以及快通道(Fast pathway)捕捉高帧率、低分辨率下的视频动态语义。
针对CLIP feature,QQ浏览器Lab在训练时采用的是每秒10帧,并最终通过TSN采样方式抽取总共7帧特征。SlowFast feature需要在时间上与CLIP feature对齐,但是SlowFast本身需要较长时间的视频片段来计算feature,所以,团队设置了一个滑动时间窗提取视频片段,时间窗的长度为1.5秒,每次移动的步长为0.3秒。
4.双模态信息融合
如图所示,QQ浏览器Lab还利用了视频字幕生成双模态的video embedding。对于视频特征与视频字幕,团队分别使用了一个全连接层生成video embedding与text embedding,并将两种embedding拼接作为X-LAN的输入。为了区分视频与文本,将视频与文本分别表示为0、1并映射为type embedding,embedding与拼接后的视频文本embedding求和得到bimodal video embedding。
5.模型集成
QQ浏览器Lab应用了两种集成策略,分别从单词级别以及句子级别对多模型的预测结果进行集成:
1.Word-level ensemble:对decoder的每个步骤的softmax输出进行ensemble。在decoder阶段,模型根据每个step中模型softmax输出预测该步骤的单词,并将该单词作为下一步输入。团队在平均多模型的softmax输出,选择具有更高概率的单词,考虑多个模型的预测结果有更高概率选择正确的单词,从而减少错误结果对后续步骤的影响。
2.Sentence-level ensemble:对多个模型预测的描述句子进行ensemble。word-level ensemble策略可以有效的提升模型预测性能,其缺点是操作复杂,且由于需要同时加载多个模型到内存,使ensemble模型的数量受到限制。针对这个问题,团队设计了一种针对生成任务的sentence-level ensemble策略:使用CIDEr作为句子重要性的评价指标,对于T个模型预测的n*T个句子(n为样本数量),针对某一样本,各模型的预测结果质量可通过将该模型预测句子作为“candidate”, 其余模型预测句子作为“ground-truth”所计算的CIDEr分数得到,以及选择具有最高分数的n个句子作为sentence-level的ensemble结果。为了增加结果的多样性并让好的句子拥有更高的权重,团队将Word-level ensemble的结果加入到多个模型各自预测的结果当中,进行Sentence-level ensemble。
六.比赛结果
下图展示了QQ浏览器Lab各项改进措施产生的效能提升(所有gain都是相对于CLIP(ViT-B/32)+SlowFast(8×8)计算得到),CLIP feature远超在ImageNet上预训练的Resnet feature。
QQ浏览器Lab最终在VALUE Challenge的Video Caption Track获得了冠军,并超出第二名13.85分。并且在各个子榜单上,也远远超出现有SOTA。具体结果如下图所示:
ICCV,全称IEEE International Conference on Computer Vision(国际计算机视觉大会)由IEEE主办,在世界范围内每两年召开一次。其与计算机视觉模式识别会议(CVPR)和欧洲计算机视觉会议(ECCV)并称计算机视觉方向的三大顶级会议。
QQ浏览器内容算法研发团队是一支以信息流推荐为主战场,专注内容理解领域技术研发工作的技术团队,致力于通过精准的内容理解提升用户获取信息的效率,为用户创造价值。同时,团队成员总结抽象实践中遇到的技术问题,以论文或者技术分享的方式反哺学术界和相关行业,形成了较好的产研结合的发展路径,积极践行“学术有影响,工业有产出”。团队的多项工作,如荔枝/神舟预训练、篇章理解、人脸识别等能力均为腾讯PCG技术中台的核心技术,直接支持公司多个产品,如腾讯视频、微信公众号、浏览器搜索等,并且在顶会上发表多篇论文。
参考文献
[1]Guadarrama S, Krishnamoorthy N, Malkarnenkar G, et al. Youtube2text: Recognizing and describing arbitrary activities using semantic hierarchies and zero-shot recognition[C]//Proceedings of the IEEE international conference on computer vision. 2013: 2712-2719.
[2]Rohrbach M, Qiu W, Titov I, et al. Translating video content to natural language descriptions[C]//Proceedings of the IEEE international conference on computer vision. 2013: 433-440.
[3]Xu R, Xiong C, Chen W, et al. Jointly modeling deep video and compositional text to bridge vision and language in a unified framework[C]//Proceedings of the AAAI Conference on Artificial Intelligence. 2015, 29(1).
[4]Venugopalan S, Rohrbach M, Donahue J, et al. Sequence to sequence-video to text[C]//Proceedings of the IEEE international conference on computer vision. 2015: 4534-4542.
[5]Yao L, Torabi A, Cho K, et al. Describing videos by exploiting temporal structure[C]//Proceedings of the IEEE international conference on computer vision. 2015: 4507-4515.
[6]Yu H, Wang J, Huang Z, et al. Video paragraph captioning using hierarchical recurrent neural networks[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2016: 4584-4593.
[7]Pasunuru R, Bansal M. Multi-task video captioning with video and entailment generation[J]. arXiv preprint arXiv:1704.07489, 2017.
[8]Li X, Yin X, Li C, et al. Oscar: Object-semantics aligned pre-training for vision-language tasks[C]//European Conference on Computer Vision. Springer, Cham, 2020: 121-137.
[9]Zhou L, Palangi H, Zhang L, et al. Unified vision-language pre-training for image captioning and vqa[C]//Proceedings of the AAAI Conference on Artificial Intelligence. 2020, 34(07): 13041-13049.
[10]Li Y, Pan Y, Yao T, et al. Scheduled Sampling in Vision-Language Pretraining with Decoupled Encoder-Decoder Network[J]. arXiv preprint arXiv:2101.11562, 2021.
[11]Pan Y, Yao T, Li Y, et al. X-linear attention networks for image captioning[C]//Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2020: 10971-10980.
[12]Radford A, Kim J W, Hallacy C, et al. Learning transferable visual models from natural language supervision[J]. arXiv preprint arXiv:2103.00020, 2021.
[13]Feichtenhofer C, Fan H, Malik J, et al. Slowfast networks for video recognition[C]//Proceedings of the IEEE/CVF international conference on computer vision. 2019: 6202-6211.