动机
  1. 本文目标是生成一个段落(多个句子),条件是输入具有几个预定义的事件片段的视频。为视频生成多句子描述是最具挑战性的任务之一,因为它不仅要求视频的视觉相关性,而且要求段落中句子之间基于语篇的连贯性。
  2. 最近,Transformer已被证明比RNN更有效,在许多顺序建模任务中展示了卓越的性能。之前将transformer模型引入视频段落captioning任务的方法,Transformer操作在分离的固定长度的段上,没有跨段的任何信息流。Transformer架构仍然不能很好地建模历史信息。因此,为了生成更加连贯的视频段落,必须建立一个能够跨越多个视频片段并捕获更长范围依赖关系的模型。
方法
简介

作者提出了记忆增强递归Transformer模型(MART模型),这是一个基于Transformer的模型,它使用一个共享的编码器-解码器结构,加上一个外部记忆模型,以实现对视频片段和句子的先前历史的建模。与vanilla transformer视频段落captioning模型相比,作者的第一个架构变化是统一的编码器-解码器设计,即MART中的编码器和解码器使用共享的transformer层,而不是独立的Transformer层。这种统一的编码器-解码器设计灵感来自最近的transformer语言模型,以防止过拟合和减少内存使用。此外,记忆模块作为记忆更新器工作,该记忆更新器使用当前输入和先前的记忆状态来更新其记忆状态。记忆状态可以被解释为高度概括的视频段和caption历史信息的容器。在编码阶段,使用交叉注意力从上一步骤的记忆状态来增强当前视频片段表示。因此,当生成一个新的文本时,MART能够意识到先前的上下文信息,并且能够生成具有更高连贯性和更低重复性的段落captions。

Transformer-XL是最近提出的一种transformer语言模型,它也使用了递归,并且能够解决用于语言建模的上下文片段问题(即每个语言片段都被单独建模而不知道其周围的上下文,从而导致无效的优化和较低的性能。)。与MART使用高度概括的存储器(它在传递有用的语义或未来句子的语言线索时比Transformer-XL更有效。)来记住他的历史信息不同,Transformer-XL直接使用以前片段中的隐藏状态。作者为了视频段落captioning任务,修改了Transformer-XL框架,并将其作为一个额外的比较呈现出来。作者基于两个标准数据集对MART进行基准测试:ActivityNet Captions和YouCookII。自动评估和人工评估都表明,对比以前的基于LSTM的方法和基于Transformer的方法,MART生成了更令人满意的结果。特别是,MART可以生成更连贯的段落(例如,共指和顺序),更少的冗余段落,而不损失段落的准确性(视觉相关性)。

问题描述

虽然作者的方法提供了一个通用的时间多模态学习框架,但作者主要针对视频段落captioning任务。给定一个视频V,有几个按时间顺序排列的事件片段[e1, e2, …, eT],任务是生成一个由多个句子[s1, s2, …, sT]的连贯的段落来描述整个视频,其中句子st应该描述片段et中的内容。

生成没有递归结构的句子的基线Transformer

Vanilla Transformer视频段落captioning模型:N个编码器层和N个解码器层,每层编码器都把上一层的隐藏状态作为输入然后做self-attention,输出用一个前馈网络映射,每层解码器用masked multi-head attention编码上一层隐藏状态。每层编码器、解码器都用了残差连接和层归一化。缺点:编码器和解码器是分离的。

该体系结构的核心是缩放点积attention。给定查询矩阵Q、键矩阵K、值矩阵V,缩放点积attention的输出结果如下:

MART模型


如图2(左)所示,在MART中编码器和解码器共享,视频和文本输入首先被分别编码和归一化。然后,作者将这两个嵌入拼接起来,作为Transformer层的输入。作者还使用了两个可训练的token类型嵌入向量,以指示输入token是来自视频还是文本。作者在计算loss和生成单词时忽略视频token位置,只考虑文本token位置。vanilla transformer虽然是一种功能强大的方法,但由于不能利用视频片段和句子的历史信息,因此不太适合视频段落captioning。因此,给出了一个统一的编码器-解码器的Transformer,作者用一个外部的记忆模块来扩充它,有助于它利用视频序列和相应的caption历史来生成下一个句子。记忆模块的概览如图2(左)所示。在步骤t,即,解码第t个视频段,第l层利用一个多头注意力聚合来自它的中间隐态和来自上个步骤的记忆状态的信息。使用一个前馈层进一步编码记忆增强的隐藏状态,然后利用一个残差连接合并中间隐藏状态和层范数,以生成隐藏状态的输出。使用中间隐藏状态,记忆状态被更新。这个过程在记忆更新模块中进行,如图2所示。记忆更新模块的公式:

Transformer-XL是最近提出的基于Transformer的语言模型,它使用一种片段级递归机制来捕获上下文中的长期依赖关系。在图2(右图)中,作者展示了用于视频段落captioning的Transformer-XL的修改版本。在步骤t,在第l层,Transformer-XL将来自当前步骤和最后一个步骤的最后一层的隐藏状态作为输入。最后一个步骤的隐藏状态被作为停止梯度,用于节省GPU内存和计算。这里的多头注意力是和相对位置编码聚合到一起。两者都是为了利用Transformer-XL中在当前步骤的下一层的隐藏状态和前一个步骤的当前层的隐藏状态间的上下文、递归中的长期依赖。这种表示粒度的不匹配可能对学习过程有害,并影响模型性能。相反,在MART中的递归是在相同层的当前步骤的中间隐藏状态和前一步骤的记忆状态之间进行。此外,Transformer-XL直接使用最后一步中的所有隐藏状态去实现递归,这可能不太有效,因为相关性和重复性较低的信息也会被传递出去。与之相比,MART通过使用从前几步高度概括的记忆状态来实现递归,这有助于模型减少冗余,并且只保留前几步的重要信息。

实验
数据集

Datasets ActivityNet Captions包含train集中的10,009个视频,val集中的4,917个视频。train中的每个视频都有一个参考段落,而val中的每个视频都有两个参考段落。原始val集被拆分为两个子集:ae-val(包含2,460个用于val的视频)和ae-test(包含2,457个用于test的视频)。此设置确保在val中不会看到用于test的视频。YouCookII包含1,333个train视频和457个val视频。每个视频都有一个单独的参考段落。这两个数据集都带有时间事件段,并用人类书写的自然语言语句进行标注。ActivityNet captions中每个视频平均有3.65个事件片段,在YouCookII中为每个视频提供7.7个片段。

数据预处理

作者使用对齐的外观和2fps提取的光流特征来表示视频,具体地说,对于外观,使用来自ResNet-200中的‘Flatten-673’层的2048D特征向量;对于光流,使用了来自BN-Inception的“global pool”层的1024d特征向量。这两个网络都在ActivityNet上进行了动作识别的预训练。对于视频,作者截断比100更长的序列,对于文本,作者截断比20更长的序列,并且对于ActivityNet captions,作者将视频片段的最大数量设置为6个,对于YouCookII,作者将视频片段的最大数量设置为12个。实际上,作者根据ActivityNet captions至少出现5次和YouCookII至少出现3次的单词来构建词汇表。生成的词汇表包含3,544个单词用于ActivityNet captions,992个单词用于YouCookII。

评估指标(自动和人工)

作者在段落级别评估captioning性能,在标准计量标准上报告数字,包括Bleu@4,METEOR和CIDEr-D。由于这些计量标准主要关注生成的段落是否匹配GT段落,它们未能评估这些多句段落的冗余性。因此,作者遵循之前的工作使用R@4来评估重复。它测量描述中N-gram(n=4)重复的程度。除了自动化度量,作者还进行人工评估以提供方法之间的额外比较。作者在人工评估中考虑两个方面,相关性(即生成的段落caption与给定视频内容的相关性)和连贯性(即生成的段落caption在其多个句子上是否流利地阅读和在语言上的连贯性)。

实验细节

MART在PyTorch中实施。作者将隐藏尺寸设为768,Transformer层数设为2,attention头数设为12。对于位置编码,作者采用固定方案。对于记忆模块,作者将递归记忆状态的长度设为1,即Tm=1。作者遵循Bert的策略对模型进行优化。具体而言,作者使用Adam优化器,初始学习率为1e-4,β1=0.9,β2=0.999,L2权重衰减率为0.01,前5个epoch的学习率预热。作者对模型进行了最多50个epoch的训练,早期停止使用CIDEr-D,批处理大小为16。作者使用greedy解码,因为使用beam搜索,作者没有观察到更好的性能。

实验结果


自动评估。表1显示了MART和几种Transformer基线方法的结果。作者观察到在ActivityNet Captions和YouCookII数据集上语言度量(B@4,M,C)的性能更强或是可比较的。对于R@4,MART与三个transformer基线相比产生了明显更好的结果,显示了它在减少生成段落中的冗余方面的有效性。表2显示了MART与ActivityNet captions上的最新模型的比较。MART在CIDEr-D和R@4上都取得了最好的成绩,在B@4和Meteor上也有同样的表现。注意,最佳B@4模型GVDsup和最佳METEOR模型AdvInf都使用了强检测特征,GVDsup还使用了grounding监督。关于重复得分R@4时,MART的得分最高。即使在AdvInf使用额外检测特征的不公平比较中,它也优于强对抗性模型AvdInf。另外,AdvInf有一个耗时的对抗性训练和解码过程,其中一组判别器模型被训练并用于对候选句子进行重新排序,而MART只需greedy解码而不需要进一步的后处理就可以进行更快的推断。表1和表2中的比较表明,MART能够生成较少的冗余(因此更相关)的段落,同时保持与视频的相关性。


人工评估。除了自动度量之外,作者还使用200个从ActivityNet Captions ae-test split中随机抽样的视频在AMT上进行了人工评估,其中每个视频由三个不同的AMT工作人员进行评判。作者设计了一组成对实验,其中作者一次比较两个模型。AMT工作人员被指示选择哪一个caption更好,或者两个caption分别基于相关性和连贯性不可区分。模型被匿名化,预测被重置。作者总共有54项工作人员参加了MART vs.vanilla transformer的实验,47名工作人员参加了MART vs.Transformer-XL的实验。在表3中,作者显示了人类的评估结果,其中的分数被计算为投票某个选项的工作人员的百分比。由于它的句子级递归机制,MART在相关性和连贯性方面都明显优于Vanilla Transformer模型。与强基线方法Transformer-XL相比,MART在相关性方面具有相似的性能,但在连贯性方面仍有合理的更好的性能。

消融研究

模型消融。作者在表4中显示了模型消融。带递归的MART模型比不带递归的MART模型具有更好的整体性能,说明了作者的递归记忆设计的有效性。作者选择使用具有2个隐藏层和1个记忆状态长度的模型,因为它显示了性能和计算之间的良好平衡。

记忆消融。为了探索学习到的记忆状态是否能够记忆关于视频和captioning的有用信息,作者在ActivityNet captioning训练中进行了视频检索实验,在实验中作者提取了对于每个视频在训练好的MART模型的第一层中最后一步的记忆储状态作为其表示,以余弦相似度进行最近邻搜索。虽然没有经过明确的检索训练,但作者在实验中观察到了一些正例。作者在图4中展示了一个例子,临近帧大多显示相关的活动。

定性分析


定性示例。在图3中,作者展示了由vanilla Transformer、Transformer-XL和作者的方法MART生成的段落captions。与这两个基线相比,MART生成的段落更连贯,更少冗余。特别是,作者注意到vanilla transformer经常使用不连贯的代词/人称,而MART和Transformer-XL能够在句子中使用合适的代词/人称,从而提高段落的连贯性。通过与Transformer-XL的比较,作者发现MART生成的段落具有较少的跨句重复。作者把MART的成功归结为它的递归设计–高度概括了以前的记忆状态,在这种设计中,冗余信息被去除。虽然通过MART减少了句子间的冗余,如图3(左)所示,作者注意到单个句子中的重复仍然存在,这表明在减少单个句子生成中的重复方面要做进一步的努力。

小结

作者提出了一种新的方法,称为记忆增强递归Transformer(MART),它使用一个记忆模块来增强Transformer的结构。存储模块从视频片段和句子历史生成高度概括的存储状态,以便帮助更好地预测下一个句子(关于共指和重复方面),从而鼓励连贯的段落生成。对两个流行的数据集ActivityNet Captions和YouCookII进行的大量实验、人工评估和定性分析表明,MART比基线方法生成更连贯、更少重复的段落captions,同时保持与输入视频事件的相关性。

更多推荐

ACL 2020 MART: Memory-Augmented Recurrent Transformer for Coherent Video Paragra