本周主要利用碎片化的时间阅读了导师推荐的两篇文章,分别是:
- SibNet: Sibling Convolutional Encoder for Video Captioning
- Towards Diverse Paragraph Captioning for Untrimmed Videos
第一篇文章主要针对现有方法在进行编码时常常使用 “single flow” 的方式,而为了更好地编码视频信息,本文提出了 “two-branch” 的方式。
第二篇文章提出了一个一阶段的段落字幕模型,避免了事件检测阶段,直接为未修剪的视频生成段落描述。
思考:
Towards Diverse Paragraph Captioning for Untrimmed Videos这篇文章在experiments章节给出的案例,很好地解决了其它视频字幕模型遇到的两个问题:
- 高频词问题,当(man 2.26% vs. woman 0.85%)时,模型倾向于生成字幕man。
- 冗余短语问题,不管视频内容如何,都生成了““speaking to the camera”字幕,这是训练集中频率最高的动词短语。
而上述两个问题在HMN模型中也十分常见,因此该方法对于解决HMN的痛点问题也显得十分有帮助。
学习内容:
- SibNet: Sibling Convolutional Encoder for Video Captioning
- Towards Diverse Paragraph Captioning for Untrimmed Videos
学习时间:
- 12.12 - 12.24
学习笔记:
SibNet: Sibling Convolutional Encoder for Video Captioning
1.Introduction
现有的方法在编码video的信息时,常使用“一条线”(single flow),本文为了更好的编码video信息,提出了“两条线”(two-branch)方法。其中:
- 第一个分支(内容分支,content branch)使用自编码器编码video的视觉内容。
- 第二个分支(语义分支,semantic branch)使用视觉-语义嵌入编码video的语义信息。
然后,使用soft-attention将二者联合,再使用RNN进行解码,得到最终输出。
2.Overview of the proposed SibNet
SibNet框架概览。它采用双分支架构来协作编码视频,损失函数包含三个部分:内容损失Lc、语义损失Ls和解码器损失Ld。利用自动编码器(Autoencoder)和视觉语义联合嵌入(visual-semantic joint embedding)来施加细粒度的正则化,该正则化推动内容分支(content branch,图中蓝色方框)来捕获视觉内容,并推动语义分支(semantic branch,图中黄色方框)来编码视频语义。
3.contribution
- 提出了Sibling Convolutional Encoder (SibNet),它由两个分支组成,内容分支负责捕获视觉信息,语义分支用于生成特定语义(semantic-specific)表示,这种表示可以捕获某些帧在语义上的重要性,为内容分支提供补充。
- 本文设计了新的损失函数,由三项组成,分别是:content loss、semantic loss、decoder loss。
4.Illustration of the proposed Sibling Convolutional Encoder (SibNet)
同级卷积编码器(SibNet)架构。其由内容分支和语义分支组成,分别表示为CNNc和CNNs。CNNc和CNNs分别通过堆叠三个和六个相同的时间卷积块(TCB)来构造这两个分支。在RNN解码器中采用了软注意机制(soft-attention)。
TCB模块图示如下:
TCB是内容分支和语义分支的基本组件。
5.Experiments
5.1 MSVD数据集实验结果
5.2 MSR-VTT数据集实验结果
5.3 消融实验
将第二小节 overview 图示中的分支结构拆分为两部分DL-3(Content branch)、DL-6(Semantic branch)分别在不同的数据集上进行实验;除此之外,还针对不同的loss进行消融实验,例如 Ours(DL)表示仅用解码器损失Ld来训练。实验结果如下图所示:
5.4 Qualitative comparison
“Single”、“Sib-DL”和“Ours”表示由名为Single(DL-3)、Ours(DL)和Ours(Full)的变体生成的字幕,“GT”表示真实数据说明。
Towards Diverse Paragraph Captioning for Untrimmed Videos
论文地址:https://arxiv.org/abs/2105.14477
代码地址:https://github.com/syuqings/video-paragraph
1.introduction
视频段落字幕(Video paragraph captioning)的目的是在未修剪的视频中描述多个事件。现有的方法主要包括事件检测和事件字幕两个步骤,而这种二阶段的方式使生成字幕的质量高度依赖于事件建议(event proposal)检测的准确性。
在本文中,作者提出了一种单阶段的段落字幕模型,旨在避免事件检测阶段而直接为未修剪的视频生成段落描述。为了确保描述的连贯性和事件的多样性,作者提出使用动态视频记忆来增强时间维度的Attention。通过逐步暴露新的视频特征,同时抑制过度访问的视频内容,来控制模型的视觉焦点。
此外,作者还提出了多样性驱动的训练策略,以提高字幕的多样性。考虑到未修剪的视频通常包含大量冗余的帧,作者进一步用视频编码器提取关键帧,提高了效率。
在ActivityNet和Charades数据集上的实验结果表明,作者提出的模型在不使用任何事件边界注释的情况下,在准确性和多样性度量上都显著优于目前SOTA模型的性能。
2.Overview of the proposed video paragraph captioning model
3.Illustration of proposed video paragraph captioning model
3.1 Keyframe-aware Video Encoder
未修剪的视频中有大量的冗余帧,这给解码器带来了巨大的注意力计算负担。因此,作者提出了在视频编码过程中显式地选择关键帧。用一个关键帧选择层来增强普通编码器,它根据其上下文表示来预测每个片段的信息量。在第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]个关键帧,以降低解码阶段的计算成本。
3.2 Attention with Dynamic Video Memories
利用编码的视频特征序列,解码器采用时间注意机制进行段落生成。然而,视频段落通常包含丰富的时间逻辑结构,传统的注意力机制很难从有限的训练样本中学习。因此,作者利用动态视频记忆增强了解码器中的时间注意机制。
本文的模型不是在每个解码步骤采用相同的特征序列,而是在每个步骤 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更新视频存储器,步骤如下:
- 在 p r o g r e s s i v e progressive progressive m e m o r y memory memory e x p o s u r e exposure exposure中的 “add” 操作,渐进地向存储器添加更多视频剪辑特征。
- 在 o v e r − a c c e s s over-access over−access m e m o r y memory memory d e c a y decay decay中的 “erase” 操作,以删除已经描述过的片段。
3.3 Diversity-driven Training
动态视频记忆机制(dynamic video memories)可以帮助模型描述不同的视频内容,而不同的语言表达也对段落的生成至关重要。
字幕模型的MLE和RL训练目标都迫使模型拟合ground-truth的分布,这使得解码器倾向于选择高频标记和短语。它不仅导致重复的表达,而且使模型产生错误的描述,忽略视频内容。
因此,作者利用标记级和短语级高频惩罚来改进训练目标。
3.3.1 Token-level Training
在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词的概率,而且通过惩罚降低了具有高频性质的错误候选词的概率。
3.3.2 Sequence-level Training
在序列级训练中,作者将短语级惩罚引入到了RL损失函数中。逆文档频率(IDF)分数可以表示n-gram的唯一性,并作为强化学习中的多样性奖励。
为了避免模型在注释中产生低频率、无意义的短语,作者将多样性奖励与CIDEr计算的相关性奖励结合起来。RL损失函数如下:
在整个训练过程中,首先用
L
m
l
e
L_{mle}
Lmle和视频概要损失训练整个模型:
然后在强化学习中用
L
r
l
L_{rl}
Lrl对模型进行微调。
4.Experiments
4.1 Comparison with the State-of-the-arts
从表中可以看出,使用ground-truth事件段(第1-4行)和使用自动生成事件段(第五行)的两阶段方法存在较大的性能差距,表明事件检测的性能差严重阻碍了段落描述生成的质量。
- 在ActivityNet数据集上,除METEOR外本文的方法都取得了最好的结果。
- 在Charades Captions数据集上,本文的方法也达到了SOTA的性能。
4.2. Trade-off of Efficiency and Performance
模型在不同关键帧选择率下的推理速度和字幕性能。
4.3. Ablation Studies
上表展示了不同模块的消融实验。其中:
- row 1 为baseline性能
- pme: p r o g r e s s i v e progressive progressive m e m o r y memory memory e x p o s u r e exposure exposure
- omd: o v e r − a c c e s s over-access over−access m e m o r y memory memory d e c a y decay decay
- token:标记性惩罚目标
- r r l v r_{rlv} rrlv:强化阶段关联性报酬
- r d i v r_{div} rdiv:强化阶段短语惩罚目标
4.4. Qualitative Analysis
5.Conclusion
在本文中,作者提出了一个单阶段视频段落生成框架。由于长视频形式的输入和段落形式的输出,想要高效地生成不同的段落字幕十分困难。因此,作者采用了一种关键帧感知视频编码器来提高训练效率,在次当中还提出了具有动态视频记忆的注意机制,以学习更多样化和连贯的视觉注意。
此外,作者还提出了一种多样性驱动训练目标,结合高频标记和短语惩罚来提高语言多样性。在ActivityNet数据集和Charades数据集上的实验结果表明,本文提出的模型在准确性和多样性指标上都优于现有模型。