本文将分享使用多模态网络提高视频理解精度的解决方案,并在youtube-8m 数据集中取得较大提升。
现阶段视频分类算法,主要聚焦于视频整体的内容理解,给视频整体打上标签,粒度较粗。较少的文章关注时序片段的细粒度理解,同时也从多模态角度分析视频。本文将分享使用多模态网络提高视频理解精度的解决方案,并在youtube-8m 数据集中取得较大提升。
在视频分类人物中,nextvlad[1]被证明是一种高效、快速的视频分类方法。受resnext方法的启发,作者成功地将高维的视频特征向量分解为一组低维向量。该网络显着降低了之前 netvlad 网络的参数,但在特征聚合和大规模视频分类方面仍然取得了显着的性能。
rnn[2]已被证明在对序列数据进行建模时表现出色。研究人员通常使用 rnn 对 cnn 网络难以捕获的视频中的时间信息进行建模。 gru[3] 是 rnn 架构的重要组成部分,可以避免梯度消失的问题。 attention-gru[4]指的是具有注意机制,有助于区分不同特征对当前预测的影响。
为了结合视频任务的空间特征和时间特征,后来又提出了双流cnn [5]、3d-cnn [6]、以及slowfast[7]和vivit[8]等。虽然这些模型在视频理解任务上也取得良好的表现,但还有提升的空间。比如,很多方法只针对单个模态,或者只对整个视频进行处理,没有输出细粒度的标签。
本技术方案是旨在充分学习视频多模态(文本、音频、图像)的语义特征,同时克服 youtube-8m数据集样本极不均衡和半监督的问题。
如figure 1所示,整个网络主要由前面混合多模态网络(mix-multmodal network)和后面的图卷积网络(gcn[9])组成。mix-multmodal network 由三个差异化的多模态分类网络构成,具体差异化参数在table1中。
figure 1. 整体网络结构
bert | nextvlad | ||
layers | cluster size | reduction | |
multimodal net(1) | 12 | 136 | 16 |
multimodal net(3) | 12 | 112 | 16 |
multimodal net(3) | 6 | 112 | 8 |
table 1. 三个差异化的 multimodal net 的参数
如图figure 2所示,多模态网络主要理解三个模态(文本、视频、音频),每个模态都包含三个过程:基础语义理解、时序特征理解、模态融合。其中,视频和音频的语义理解模型分别使用的是efficientnet[10]和vggish,时序特征理解模型是nextvlad。而文本的时序特征理解模型为bert[11]。
多模态特征融合,我们采用的是senet[12]。senet网络的前处理需要将各个模态的特征长度强行压缩对齐,这样会导致信息丢失。为了克服这个问题,我们采用了多group的senet的网络结构。实验表明,多个group的senet网络相较于单个senet学习能力更强。
figure 2. 多模态网络结构
由于youtube-8m粗粒度标签全部标注,细粒度标签只标注了部分数据。因此,引入 gcn来进行半监督分类任务。基本思想是通过在节点之间传播信息来更新节点表示。对于多标签视频分类任务,标签依赖关系是一个重要信息。
在我们的任务中,每个标签将是图(graph)的一个节点(node),两个节点之间的线表示它们的关系[13][14]。所以我们可以训练一个矩阵来表示所有节点的关系。
以从我们的数据集中提取的一个简化的标签相关图 figure 3为例,label bmw --> label car,表示当 bmw 标签出现时,label car 很可能发生,但反之则不一定。标签 car 与所有其他标签具有高度相关性,没有箭头的标签表示这两个标签彼此没有关系。
figure 3. 标签相关性示意图
gcn网络实现如figure 4所示。gcn模块由两层堆叠的gcn(gcn(1) 和 gcn(2))组成,它们有助于学习标签相关图,以将这些标签表示映射到一组相互依赖的分类器中。是输入相关矩阵,由矩阵的值初始化。
和是将在网络中训练的矩阵。是gcn学习到的分类器权重。
figure 4. gcn网络结构
youtube-8m 视频分类任务是一个多标签分类任务,然而,注释数据仅选择多标签中的一个进行标注为1,其余标签均为0。也就是说,某一个视频片段除了可能是标注的还可能是其他置为0的标签。这个问题也是个弱监督问题。
针对此情况,我们提出了一种解决方法。在计算损失时给带注释的类赋予较大的权重,并为未注释的类赋予较小的权重[15]。这种加权交叉熵方法将帮助模型更好地从不完整的数据集中学习。
为了避免在训练模型时过拟合,我们添加了随机生成的高斯噪声并随机注入到输入特征向量的每个元素中。
如figure 6 所示,噪声将被添加到输入特征向量中,掩码向量随机选择 50% 的维度并将值设置为 1。这里的高斯噪声是独立的,但对于不同的输入向量具有相同的分布。
figure 6. 加高斯噪声
同时,为了避免多模态模型只学习某一个模态的特征,也就是在模态上过拟合。我们将模态特征也mask,保证输入中至少有某一个模态,如figure 7所示。这样就可以充分学习各个模态。
figure 7. 模态mask
为了验证多模态中每个模态的收益,我们做了消融实验,结果如table 2所示。单个模态作为特征时,video 的准确率最高,audio的准确率最低,text接近video。双模态时,video + text 由明显提升,再加上 audio后,提升有限。
modal | map@k | ||
video | audio | text | |
√ |
|
| 69.2 |
| √ |
| 38.1 |
|
| √ | 65.8 |
√ | √ |
| 71.3 |
√ |
| √ | 73.9 |
| √ | √ | 70.5 |
√ | √ | √ | 74.6 |
table 2. 多模态消融实验
同样为验证gcn的收益,我们也做了对比实验,其中阈值λ我们选择了两个,分别是 0.2和0.4。如table 3 所示,结果表明,原始模型(org)相比,gcn 生成的分类器有助于提高性能,特别时当λ=0.4时。
modal | map@k |
org | 74.0 |
友情链接