344. The 3rd YouTube-8M Video Understanding Challenge | youtube8m-2019
祝贺所有的获奖者,也感谢 Google Research 提供了这样一个有趣的视频理解挑战。我想在这里分享我的解决方案。下表显示的分数均为私有分数,包括私有 MAP,它们比公共排行榜上的分数低约 0.01。
我们首先使用 2018 年的数据预训练基础模型,然后使用片段级损失函数在所有片段(2019 年数据)上对这些模型进行微调。最后,细化推理策略同时利用视频级预测和片段级预测,以获得细化的片段级预测。
我们将混合结构(去年的第三名方案)与不同的视频分类模型相结合。
帧级模型:Mix-[NeXtVLAD, nonlocal-LightNetVLAD, nonlocal-EarlyNetVLAD, GatedDBOF, SoftDBOF, NetFV, GRU]。
视频级模型:Mix[ResNetLike]
我们使用 2018 年大规模 YouTube-8M 视频级标注数据训练模型。训练后的模型在去年的视频标签预测任务中进行了评估。如下表所示,大多数具有混合结构的帧级模型可以在排行榜上获得高分,这些模型的简单等权集成在私有 GAP 上可以达到 0.88932,这是一个很高的分数(尽管我们没有考虑模型大小限制)。这些单一模型被视为“基础模型”,并在今年的时序定位任务中进行了评估。它们的 MAP 分数显示在第二列中。Mixture-SoftDBOF 取得了最好的 MAP,其次是 Mixture-GatedDBOF 和 Mixture NeXtVLAD 模型。
微调损失函数:对于某个片段,假设 A 是 1000 个片段级类别的集合,B 是标注的片段类别,C 是该片段所在视频的标注视频级类别的集合。交叉熵函数表示为 CE。我们在最终的损失函数中加入了一些弱监督信息,如下所示。在我们的实验中,α 简单地设为 1.0。
Loss = Σi∈B CE(p(i), L(i)) + α * (Σi∈(A \ C) CE(p(i), 0) / |A \ C|)
全量数据:为了利用所有的标注数据,我们为每个模型设置两组实验。我们首先使用 5/6 的片段数据作为训练集,1/6 的数据作为验证集来训练模型。通过验证结果,可以估计在使用全量数据作为训练集时的良好模型步长间隔。最后,我们使用随机权重平均(SWA)技术将这些模型合并为一个。一方面,训练步长间隔的估计提高了模型选择的容错率。另一方面,SWA 操作提高了模型的鲁棒性,并能获得更高的分数。
推理方法的基本版本为片段级预测创建 1000 个最小堆。每个片段的预测被推入各自类别的堆中。一旦堆大小溢出最大阈值,堆中预测概率最小的片段将被弹出。最后,通过对堆中的置信度进行排序,可以将片段分类预测转换为最终的时序定位结果。
基本推理策略忽略了全局视频信息的强大指导作用。在这一部分,我们将利用视频级预测来改进片段级预测。
考虑到这样一个事实:如果一个实体出现在视频中的置信度非常低,那么它也不太可能出现在该视频的任何片段中。基于这一一致性观察,我们为片段分类建立了一个候选标签列表。候选标签列表来源于预训练模型预测的视频标签,这在消除视频片段上的假阳性预测方面非常有效。
Top k 排名
我们的第一个想法是选择视频数据上的前 k 个预测结果。这些选定的类别