作者:Monica Alfaro、Albert Aparicio、Francesc Guitart、Marc Junyent、Pablo Pernias、Marcel Porta 和 Miquel Àngel Farré(前高级技术经理)

简介

在迪士尼媒体与娱乐发行 (DMED) 负责的众多事务中,包括管理和发行大量媒体资产,包括新闻、体育、娱乐和专题节目、系列节目、营销和广告等等。

我们的团队专注于媒体注释,这是 DMED Technology 内容平台部门的一部分。在我们的日常工作中,我们会自动分析各种内容,这些内容不断挑战我们机器学习工作流程的效率和模型的准确性。

我们的一些同事最近讨论了通过切换到使用 PyTorch 的端到端视频分析管道所实现的工作流程效率,以及我们如何处理动画角色识别。我们邀请您阅读之前的帖子,详细了解这两方面。

虽然转换为端到端 PyTorch 管道是任何公司都可能受益的解决方案,但动画角色识别是迪士尼独有的概念和解决方案。

在本文中,我们将重点介绍活动识别,这是跨行业的普遍挑战,但在媒体制作领域加以利用时,会带来一些特定的机遇,因为我们可以结合音频、视频和字幕来提供解决方案。

多模态实验

处理多模态问题会增加常用训练管道的复杂性。每个示例有多种信息模式意味着多模态管道必须具有特定的实现方式来处理数据集中的每种模式。通常,在此处理步骤之后,管道必须合并或融合输出。

我们最初的多模态实验是使用 MMF 框架完成的。MMF 是一个用于视觉和语言多模态研究的模块化框架。MMF 包含最先进的视觉和语言模型的参考实现,并且还为 Meta AI Research 的多个研究项目提供支持(如在 PyTorch 生态系统日 2020 上展示的这份海报 中所示)。随着 TorchMultimodal 的最新发布,TorchMultimodal 是一个用于大规模训练最先进的多模态模型的 PyTorch 库,MMF 突显了人们对多模态理解日益增长的兴趣。

MMF 通过对管道所有元素(从模式处理到处理后信息的融合)进行模块化管理来解决这种复杂性,其中使用了各种不同的特定模块实现方式。

在我们的场景中,MMF 是进行多模态实验的绝佳切入点。它使我们能够通过组合音频、视频和隐藏式字幕快速迭代,并使用某些多模态模型在不同规模级别进行实验,从单个 GPU 转移到 TPU Pod。

多模态 Transformer

借助基于 MMF 的工作台,我们的初始模型基于来自每个模态的特征的串联,逐步发展为包含基于 Transformer 的融合模块的管道,以组合不同的输入模式。

具体而言,我们使用了与 Meta AI Research 团队合作开发的名为 MMFTransformer 的融合模块。这是基于 VisualBERT 的实现,并添加了必要修改,使其能够处理文本、音频和视频。

尽管使用开箱即用的 MMFTransformer 获得了不错的结果,但我们仍然离目标相去甚远,而且基于 Transformer 的模型需要的数据比我们可用的数据还要多。

寻找数据需求量更低的解决方案

为了寻找数据需求量更低的解决方案,我们的团队开始研究 MLP-Mixer。这种新架构由 Google Brain 团队提出,它为计算机视觉任务中已确立事实标准的架构(如卷积或自注意力机制)提供了替代方案。

MLP-Mixer

混合变体背后的核心思想是用多层感知器替换 Transformer 中使用的卷积或自注意力机制。架构中的这种变化有利于模型在高数据机制中的性能(尤其是相对于 Transformer 而言),同时也引发了一些关于卷积和自注意力层中隐藏的归纳偏差的问题。

这些方案通过将图像分割成块,将这些块展平为一维向量,然后将它们传递到一系列 Mixer 层中,从而在解决图像分类任务方面表现出色。

受到基于 Mixer 的架构优势的启发,我们的团队搜索了与我们在视频分类中尝试解决的问题类型的相似之处:具体而言,我们拥有一组需要分类的帧,而不是单个图像,以及音频和隐藏式字幕形式的新模式。

活动识别重新诠释 MLP-Mixer

我们的方案采用了 MLP-Mixer 的核心思想 — 在序列和转置序列上使用多个多层感知器,并将其扩展到多模态框架中,使我们能够使用相同的架构处理视频、音频和文本。

对于每种模态,我们使用不同的提取器来提供描述内容的嵌入。给定每种模态的嵌入,MLP-Mixer 架构解决了确定哪种模态可能最重要的问题,同时还权衡了每种模态对最终标记的贡献程度。

例如,在检测笑声时,有时关键信息在音频或帧中,而在某些情况下,我们在隐藏式字幕中有一个强信号。

我们尝试使用 ResNet34 单独处理每个帧,并获得一系列嵌入,并使用名为 R3D 的特定于视频的模型,这两种模型分别在 ImageNet 和 Kinetics400 上进行了预训练。

为了处理音频,我们使用了预训练的 ResNet34,并移除了最后一层,以便能够从音频频谱图中提取二维嵌入(对于 224x224 图像,我们最终得到 7x7 嵌入)。

对于隐藏式字幕,我们使用的是预训练的 BERT-large,所有层都冻结,除了嵌入和 LayerNorms。

一旦我们从每种模态中提取了嵌入,我们就将它们连接成一个序列,并通过一组 MLP-Mixer 块传递;接下来,我们使用平均池化和分类头来获得预测。

我们的实验是在自定义的手动标记数据集上进行的,用于活动识别,包含 15 个类别,我们从实验中得知,这些类别很难,并非所有类别都可以使用单一模态准确预测。

这些实验表明,使用我们的方法,性能显着提高,尤其是在低/中数据机制(75K 训练样本)中。

当仅使用文本和音频时,我们的实验表明,与在最先进骨干网络提取的特征之上使用分类器相比,准确率提高了 15%。

使用文本、音频和视频,我们发现与 Meta AIFacebook 的 MMF 框架相比,准确率提高了 17%,MMF 框架使用类似 VisualBERT 的模型,通过更强大的最先进骨干网络来组合模态。

目前,我们已将初始模型扩展到涵盖多达 55 个活动类别和 45 个事件类别。我们希望在未来改进的挑战之一是包括所有活动和事件,即使是那些不太频繁发生的活动和事件。

解读 MLP-Mixer 模式组合

MLP-Mixer 是多层感知器的串联。这可以非常粗略地近似为线性运算,从某种意义上说,一旦训练完成,权重是固定的,输入将直接影响输出。

一旦我们假设这种近似,我们还假设对于由 NxM 个数字组成的输入,我们可以找到一个 NxM 矩阵(当按元素相乘时)可以近似 MLP-Mixer 对某个类别的预测。

我们将此矩阵称为模板,如果我们有权访问它,我们可以找到输入嵌入的哪些部分负责特定预测。

您可以将其视为在特定位置有孔的穿孔卡片。只有这些位置的信息才会通过并有助于特定预测。因此,我们可以测量这些位置的输入强度。

当然,这是一种过度简化,并且不会存在完美代表输入对类别的所有贡献的唯一模板(否则,这意味着问题可以线性解决)。因此,这应该仅用于可视化目的,而不是作为准确的预测器。

一旦我们为每个类别获得一组模板,我们就可以轻松地测量输入贡献,而无需依赖任何外部可视化技术。

为了找到模板,我们可以从“随机噪声”模板开始,并对其进行优化,以通过仅通过 MLP-Mixer 进行反向传播来最大化特定类别的激活。

通过这样做,我们可以得到许多有效的模板,我们可以通过使用 K-means 将它们聚类为相似的模板并对每个集群求平均值,从而将它们减少到几个。

使用 Mixer 获取两全其美的效果

MLP-Mixer 用作没有卷积层的图像分类模型时,需要大量数据,因为归纳偏差的缺乏(模型的整体优点之一)在低数据域中工作时是一个弱点。

当用作组合先前由大型预训练骨干网络提取的信息的方式时(而不是用作完整的端到端解决方案),它们会大放异彩。Mixer 的优势在于发现不同输入之间的时间或结构一致性。例如,在与视频相关的任务中,我们可以使用强大的预训练模型从帧中提取嵌入,该模型了解帧级别正在发生的事情,并使用 Mixer 以顺序方式理解它。

这种使用 Mixer 的方式使我们能够在有限的数据量下工作,并且仍然获得比使用 Transformer 获得的结果更好的结果。这是因为 Mixer 在训练期间似乎更稳定,并且似乎关注所有输入,而 Transformer 倾向于崩溃并且仅关注序列的某些模态/部分。

致谢:我们要感谢 Meta AI Research 和合作伙伴工程团队的合作。