引言
迪士尼媒体与娱乐分销(DMED)负责管理并分销大量媒体资产,包括新闻、体育、娱乐和特色节目、连续剧节目、市场营销和广告等。
我们团队专注于媒体标注,作为 DMED 技术内容平台组的一部分。在我们的日常工作中,我们自动分析各种内容,这些内容不断挑战我们机器学习工作流程的效率和模型的准确性。
我们的一些同事最近讨论了我们通过切换到使用 PyTorch 的端到端视频分析管道所实现的流程效率,以及我们如何处理动画角色识别。我们邀请您阅读我们之前的帖子了解更多信息。
虽然将转换为一个端到端的 PyTorch 管道是一个任何公司都可能从中受益的解决方案,但动画角色识别是一个独特的迪士尼概念和解决方案。
在这篇文章中,我们将关注活动识别,这是一个跨行业的普遍挑战——但在媒体制作领域利用时,有一些特定的机会,因为我们可以将音频、视频和字幕结合起来提供解决方案。
多模态实验
在一个多模态问题上工作增加了通常训练管道的复杂性。对于每个示例有多个信息模式意味着多模态管道必须具有特定的实现来处理数据集中的每个模式。通常在处理步骤之后,管道必须合并或融合输出。
我们的多模态初始实验是使用 MMF 框架完成的。MMF 是一个用于视觉和语言多模态研究的模块化框架。MMF 包含最先进的视觉和语言模型的参考实现,并为 Meta AI Research 的多个研究项目提供了动力(如本海报在 PyTorch 生态系统日 2020 年所展示)。随着 TorchMultimodal 的最近发布,这是一个用于大规模训练最先进多模态模型的 PyTorch 库,MMF 突显了多模态理解日益增长的兴趣。
MMF 通过一套广泛的特定模块实现来管理管道的所有元素,从而以模块化的方式处理这种复杂性,这些实现从模态处理到处理信息的融合。
在我们的场景中,MMF 是一个很好的多模态实验起点。它使我们能够通过结合音频、视频和字幕以及在不同规模级别上使用某些多模态模型进行实验来快速迭代,从单个 GPU 到 TPU Pods。
多模态 Transformer
基于 MMF 的工作台,我们的初始模型是基于每个模态的特征拼接,逐渐演变为包含基于 Transformer 的融合模块的管道,以结合不同的输入模式。
具体来说,我们使用了与 Meta AI 研究团队合作开发的融合模块 MMFTransformer。这是基于 VisualBERT 的实现,为此添加了必要的修改,使其能够处理文本、音频和视频。
尽管使用 MMFTransformer 的即用型实现取得了不错的结果,但我们离目标还很远,基于 Transformer 的模型需要比我们拥有的更多数据。
寻找对数据需求较少的解决方案
为了寻找更节省数据的需求解决方案,我们的团队开始研究 MLP-Mixer。这种新的架构是由谷歌大脑团队提出的,它为计算机视觉任务提供了一种替代传统事实上的架构(如卷积或自注意力)的方案。
MLP-Mixer
混合变体的核心思想是用多层感知器(Multilayer Perceptrons)替换在 Transformer 中使用的卷积或自注意力机制。这种架构的改变有利于模型在高数据量环境下的性能(特别是与 Transformer 相比),同时也引发了一些关于卷积和自注意力层中隐藏的归纳偏置的问题。
这些提议通过将图像分割成块,将这些块展平成 1D 向量,并通过一系列的 Mixer 层传递,在解决图像分类任务方面表现出色。
受益于基于 Mixer 架构的优点,我们团队在视频分类问题中寻找并行性:具体来说,我们不是对单个图像进行分类,而是对一系列需要分类的帧进行分类,同时还包括以新模态形式存在的音频和字幕。
重新诠释 MLP-Mixer 的活动识别
我们的提议采用了 MLP-Mixer 的核心思想——在序列和转置序列上使用多个多层感知器,并将其扩展到多模态框架中,使我们能够使用相同的架构处理视频、音频和文本。
对于每种模态,我们使用不同的提取器,这些提取器将提供描述内容的嵌入。给定每个模态的嵌入,MLP-Mixer 架构解决了决定哪种模态可能最重要的问题,同时权衡每种模态对最终标记的贡献程度。
例如,在检测笑声时,有时关键信息在音频或帧中,在某些情况下,我们在字幕中有一个强烈的信号。
我们尝试分别用 ResNet34 处理每一帧,并获取一个嵌入序列,同时使用一个名为 R3D 的视频特定模型,分别预先在 ImageNet 和 Kinetics400 上训练。
在处理音频时,我们使用预训练的 ResNet34,并移除最终层,以便从音频频谱图中提取 2D 嵌入(对于 224x224 的图像,我们最终得到 7x7 的嵌入)。
对于字幕,我们使用冻结所有层,除了嵌入和层归一化的预训练 BERT-large。
从每个模态中提取嵌入后,我们将它们连接成一个单一序列,并通过一组 MLP-Mixer 块进行处理;接下来,我们使用平均池化和分类头进行预测。
我们的实验是在一个自定义的、手动标注的活动识别数据集上进行的,该数据集包含 15 个类别,实验表明这些类别很难,并且无法使用单个模态准确预测。
这些实验表明,使用我们的方法在性能上有显著提升,尤其是在低/中数据集(75K 个训练样本)的情况下。
当只使用文本和音频时,我们的实验表明,与在最新的骨干网络提取的特征上使用分类器相比,准确率提高了 15%。
通过使用文本、音频和视频,我们在使用 Meta AIFacebook 的 MMF 框架(该框架使用类似 VisualBERT 的模型,通过更强大的最新技术骨干结合模态)的基础上实现了 17%的准确率提升。
目前,我们将初始模型扩展到涵盖多达 55 个活动类别和 45 个事件类别。我们预计在未来将改进的一个挑战是包括所有活动和事件,即使是那些不太常见的。
解释 MLP-Mixer 模式组合
MLP-Mixer 是多层感知器的串联。这可以非常粗略地近似为线性操作,即在训练完成后,权重是固定的,输入将直接影响输出。
一旦我们假设这种近似,我们也就假设了对于由 NxM 个数字组成的输入,我们可以找到一个 NxM 的矩阵(当逐元素相乘时)可以近似 MLP-Mixer 对某一类的预测。
我们将这个矩阵称为模板,如果我们能访问它,我们就可以找到哪些输入嵌入负责特定的预测。
你可以把它想象成带有特定位置孔的穿孔卡片。只有那些位置的信息会通过并贡献到特定的预测。因此,我们可以测量输入在这些位置上的强度。
当然,这是一个过于简化的说法,并且不会存在一个唯一能够完美代表输入对某一类所有贡献的模板(否则这意味着问题可以线性解决)。因此,这仅应用于可视化目的,而不是作为准确的预测工具。
一旦我们为每个类别都有一套模板,我们就可以轻松地测量输入贡献,而不需要依赖任何外部可视化技术。
要找到一个模板,我们可以从一个“随机噪声”模板开始,并通过 MLP-Mixer 的反向传播来优化它,以最大化特定类别的激活。
通过这种方式,我们可以得到许多有效的模板,然后我们可以使用 K-means 聚类将它们聚集成相似的模板,并对每个簇进行平均,从而将它们减少到几个。
利用 Mixer 获取每个世界的最佳效果
MLP-Mixer,作为一种无需卷积层的图像分类模型,需要大量数据,因为该模型的一个优点——缺乏归纳偏置——在处理低数据域时成为弱点。
当用作结合先前由大型预训练骨干提取的信息的方式(而不是作为完整的端到端解决方案)时,它们表现出色。Mixer 的优势在于寻找不同输入之间的时序或结构一致性。例如,在视频相关任务中,我们可以使用一个强大的预训练模型从帧中提取嵌入,该模型理解帧级发生的事情,并使用混音器以顺序方式理解它。
这种使用 Mixer 的方法使我们能够在数据有限的情况下工作,并且仍然比使用 Transformer 获得更好的结果。这是因为混音器在训练期间似乎更稳定,并且似乎关注所有输入,而 Transformer 倾向于崩溃并只关注某些模态/序列的部分。
致谢:我们想感谢 Meta AI 研究和合作伙伴工程团队的合作。