本周主要利用碎片化的时间阅读了导师推荐的两篇文章,分别是:
第一篇文章主要针对现有方法在进行编码时常常使用 “single flow” 的方式,而为了更好地编码视频信息,本文提出了 “two-branch” 的方式。
第二篇文章提出了一个一阶段的段落字幕模型,避免了事件检测阶段,直接为未修剪的视频生成段落描述。
思考:
Towards Diverse Paragraph Captioning for Untrimmed Videos这篇文章在experiments章节给出的案例,很好地解决了其它视频字幕模型遇到的两个问题:
而上述两个问题在HMN模型中也十分常见,因此该方法对于解决HMN的痛点问题也显得十分有帮助。
现有的方法在编码video的信息时,常使用“一条线”(single flow),本文为了更好的编码video信息,提出了“两条线”(two-branch)方法。其中:
然后,使用soft-attention将二者联合,再使用RNN进行解码,得到最终输出。
SibNet框架概览。它采用双分支架构来协作编码视频,损失函数包含三个部分:内容损失Lc、语义损失Ls和解码器损失Ld。利用自动编码器(Autoencoder)和视觉语义联合嵌入(visual-semantic joint embedding)来施加细粒度的正则化,该正则化推动内容分支(content branch,图中蓝色方框)来捕获视觉内容,并推动语义分支(semantic branch,图中黄色方框)来编码视频语义。
同级卷积编码器(SibNet)架构。其由内容分支和语义分支组成,分别表示为CNNc和CNNs。CNNc和CNNs分别通过堆叠三个和六个相同的时间卷积块(TCB)来构造这两个分支。在RNN解码器中采用了软注意机制(soft-attention)。
TCB模块图示如下:
TCB是内容分支和语义分支的基本组件。
将第二小节 overview 图示中的分支结构拆分为两部分DL-3(Content branch)、DL-6(Semantic branch)分别在不同的数据集上进行实验;除此之外,还针对不同的loss进行消融实验,例如 Ours(DL)表示仅用解码器损失Ld来训练。实验结果如下图所示:
“Single”、“Sib-DL”和“Ours”表示由名为Single(DL-3)、Ours(DL)和Ours(Full)的变体生成的字幕,“GT”表示真实数据说明。
论文地址:https://arxiv.org/abs/2105.14477
代码地址:https://github.com/syuqings/video-paragraph
视频段落字幕(Video paragraph captioning)的目的是在未修剪的视频中描述多个事件。现有的方法主要包括事件检测和事件字幕两个步骤,而这种二阶段的方式使生成字幕的质量高度依赖于事件建议(event proposal)检测的准确性。
在本文中,作者提出了一种单阶段的段落字幕模型,旨在避免事件检测阶段而直接为未修剪的视频生成段落描述。为了确保描述的连贯性和事件的多样性,作者提出使用动态视频记忆来增强时间维度的Attention。通过逐步暴露新的视频特征,同时抑制过度访问的视频内容,来控制模型的视觉焦点。
此外,作者还提出了多样性驱动的训练策略,以提高字幕的多样性。考虑到未修剪的视频通常包含大量冗余的帧,作者进一步用视频编码器提取关键帧,提高了效率。
在ActivityNet和Charades数据集上的实验结果表明,作者提出的模型在不使用任何事件边界注释的情况下,在准确性和多样性度量上都显著优于目前SOTA模型的性能。
未修剪的视频中有大量的冗余帧,这给解码器带来了巨大的注意力计算负担。因此,作者提出了在视频编码过程中显式地选择关键帧。用一个关键帧选择层来增强普通编码器,它根据其上下文表示来预测每个片段的信息量。在第i个编码层中,所编码的视频特征计算如下:
σ \sigma σ为sigmoid函数, s j i s^i_j sji 是预测第 j 个clip在第 i 个编码层所包含信息量的标量。
然而,仅依靠段落生成损失不能为关键帧选择提供足够的监督,视频特征选择不当会阻碍解码器的注意力学习。因此,作者提出在视觉-语义联合embedding空间中重建视频的高级语义embedding。
具体来说,就是利用视频文本检索任务作为代理任务来预训练视觉-语义联合embedding空间。首先将视频特征序列 X 0 X^0 X0和ground-truth段分别提供给GRU,得到每个序列的全局编码向量。然后将其映射到联合embedding空间,用hard negative triplet loss优化,以确保具有相似语义的视频/文本被embedding得更近。经过预训练后,固定GRU的参数,计算视频重建损失如下:
为了惩罚大量被选择的关键帧,进一步引入了一个稀疏性损失,如下:
其中,L为视频clip的总数, δ δ δ为表示关键帧的选择比例的超参数。在训练阶段,使用关键帧的soft selection来进行梯度反向传播;而在推理时,选择 T o p [ δ L ] Top[δ_L] Top[δL]个关键帧,以降低解码阶段的计算成本。
利用编码的视频特征序列,解码器采用时间注意机制进行段落生成。然而,视频段落通常包含丰富的时间逻辑结构,传统的注意力机制很难从有限的训练样本中学习。因此,作者利用动态视频记忆增强了解码器中的时间注意机制。
本文的模型不是在每个解码步骤采用相同的特征序列,而是在每个步骤 t 采用视频记忆 M t M_t Mt。这些步骤动态更新,使视觉注意在不同事件上移动。假设 α t α_t αt是第t步在视频记忆上的注意权重。我们利用 attention histories { α t − W , . . . , α t } \{α_{t-W},...,α_t\} {αt−W,...,αt} 和窗口W将 M t M_t Mt更新到 M t + 1 M_{t+1} Mt+1。
使用attention histories而不是 α t \alpha_t αt,是为了在生成一个完整的短语或句子时更新视频记忆。作者将attention histories聚合为 α ~ t \widetilde{\alpha}_t α t,以提高最近步骤的注意力重要性:
其中 w j w_j wj是历史衰减权重。然后,使用 α ~ t \widetilde{\alpha}_t α t更新视频存储器,步骤如下:
动态视频记忆机制(dynamic video memories)可以帮助模型描述不同的视频内容,而不同的语言表达也对段落的生成至关重要。
字幕模型的MLE和RL训练目标都迫使模型拟合ground-truth的分布,这使得解码器倾向于选择高频标记和短语。它不仅导致重复的表达,而且使模型产生错误的描述,忽略视频内容。
因此,作者利用标记级和短语级高频惩罚来改进训练目标。
在token级的训练中,作者用高频单词惩罚来增强MLE目标函数。考虑到以前的模型倾向于重复已生成的单词,作者将之前的上下文单词定义为当前训练对 ( v , y ∗ ) (v,y^*) (v,y∗)的高频token。因此,新的MLE损失函数为:
其中 C t = { y 1 ∗ , . . . , y t ∗ } / { y t ∗ } C^t=\{y_1^*,...,y_t^* \}/\{y_t^* \} Ct={y1∗,...,yt∗}/{yt∗}是要惩罚的候选词集。不仅提高了ground-truth词的概率,而且通过惩罚降低了具有高频性质的错误候选词的概率。
在序列级训练中,作者将短语级惩罚引入到了RL损失函数中。逆文档频率(IDF)分数可以表示n-gram的唯一性,并作为强化学习中的多样性奖励。
为了避免模型在注释中产生低频率、无意义的短语,作者将多样性奖励与CIDEr计算的相关性奖励结合起来。RL损失函数如下:
在整个训练过程中,首先用 L m l e L_{mle} Lmle和视频概要损失训练整个模型:
然后在强化学习中用 L r l L_{rl} Lrl对模型进行微调。
从表中可以看出,使用ground-truth事件段(第1-4行)和使用自动生成事件段(第五行)的两阶段方法存在较大的性能差距,表明事件检测的性能差严重阻碍了段落描述生成的质量。
模型在不同关键帧选择率下的推理速度和字幕性能。
在本文中,作者提出了一个单阶段视频段落生成框架。由于长视频形式的输入和段落形式的输出,想要高效地生成不同的段落字幕十分困难。因此,作者采用了一种关键帧感知视频编码器来提高训练效率,在次当中还提出了具有动态视频记忆的注意机制,以学习更多样化和连贯的视觉注意。
此外,作者还提出了一种多样性驱动训练目标,结合高频标记和短语惩罚来提高语言多样性。在ActivityNet数据集和Charades数据集上的实验结果表明,本文提出的模型在准确性和多样性指标上都优于现有模型。