原文: 爱奇艺产品技术团队

随着 UGC 内容爆发式增长,信息流产品占领越来越多的用户时间。爱奇艺作为国内领先的互联网视频媒体,承担了正确引导用户价值观的社会责任。所以识别和屏蔽低俗内容、做好风险内容控制、净化短视频生态是一项非常值得重视的工作。下面我们从技术的角度,以“软色情识别”为例,介绍爱奇艺的多模态低俗内容识别技术。

软色情不是色情,但内容(文字、图片、声音或视频等)却又充满挑逗、诱惑、让人想入非非,其程度介于性感和色情之间。

用户每天新上传的视频以及短视频推荐池中都存在一定比例的软色情视频,需要大量审核人员进行人工清查、效率较低、成本昂贵;此外,人工审核的另一个难点是对软色情的判断过于主观,甚至对于部分隐晦内容需要一定的背景知识。所以融合文本、图片、视频内容的多模态软色情识别模型应运而生,消除了人工审核的主观因素和“知识”盲区,节省了人力成本。

面临的挑战

  • 标准难统一: 人类对软色情的定义主观性较强,穿着暴露、激吻、性暗示、维密走秀等都可能被视为不同尺度的软色情,在不同的场景下或者面对不同的人群,软色情定义标准较难统一。

  • 别分布极度不平衡: 软色情视频相对于非软色情视频而言,比例非常低,样本类别的分布不平衡大大增加了软色情识别的难度。

  • 多模态学习: 决定一个视频是否属于软色情,除了视频的文本信息,封面图外,还包括视频内容以及音频信息,所以视频的软色情识别本质上是一个多模态 feature 整合的多任务学习模型。如何充分利用和整合多模态的 feature,以及合理优化多任务学习,使每个子任务以及整体任务效益最大化,也具有较大的难度。

视频软色情模型

1. 文本软色情识别

目前最为常见的文本分类模型主要包括 Fasttext【1】, TextCNN【2】, TextRNN【3】及其各种变形。其中,fasttext 直接基于文本中 token 的 average embedding 进行分类,该方法虽然未考虑词序,但简单有效,是一个不错的 baseline。TextCNN 基于卷积建模文本的局部依赖关系 (local feature), 通过 pooling 学习 global 信息。CNN 能够在降维的同时捕捉到局部词序关系。若要建模长距离依赖关系,需依赖于多层的卷积和池化层,模型结构较复杂 。 TextRNN 基于 LSTM 或 GRU 建模文本的 sequential patterns, 能够有效建模文本的长距离依赖关系。

短视频的文本软色情模型采用 convolutional LSTM 模型结构,如图 1 所示,其先经过若干 conv layer 学习文本的低层表示 (减小 LSTM 输入 feature 的维度),再经过 LSTM 学习文本的序列信息。 Convolutional LSTM 结合 CNN 和 RNN 两者的优点,一方面基于 convolution 建模 local semantics,减小句子长度,同时加速 LSTM 推理 ; 另一方面,利用 LSTM 建模 global semantics。

举两个实际应用中的例子:

· CNN 能学习文本中有软色情倾向的重要片段,不受切词影响,如:“如愿 / 娶 / 小娇妻 / 甜蜜 / 滚 / 床单“;

· LSTM 依赖整个句子的语义进行判别,能识别出不含明显色情词的 case,如:“男子 / 开 / 兰博基尼 / 邀 / 美女 / 上车 / 聊天 / 聊着聊着 / 就 / 上手”;

图 1 文本软色情分类模型 -Convolutional Bi-LSTM 模型结构

2. 封面图软色情识别

目前常见的图像分类的基本思路是直接基于 ImageNet 预训练分类模型 (e.g. ResNet【4】, Xception【5】, SENet【6】等) 进行 fine-tuning;然后基于微调后的模型提取图像 feature,作为 task-specific 分类模型的输入进行图像分类。

综合考虑模型的准确率和复杂度 (推理速度),决定选择 Xception 进行 fine-tuning, 抽取图像 feature,其框架结构如图 2 所示。

图 2 Xception 模型结构

但通过这种方式抽取的图像表示通常为 global average pooling 的输出,丢失了空间信息和 channel 信息;为充分利用 channel 和空间信息,封面图模型 (如图 3 所示) 在 Xception block-14 和 global average pooling 之间引入 CBAM(Convolutional Block Attention Module)【7】模块,建模 channel 和 spatial 的重要程度,再对 Xception-CBAM 进行 finetuning, 以学习更好的图像表示,其中 CBAM 由 channel attention 和 spatial attention 两个子模块构成:

· Channel attention 模块:强调应该更关注什么, i.e. “what is meaningful given an input image”。

· Spatial attention 模块:强调应该更关注哪里, i.e. “where is an informative part”; 和 channel-attention module 相辅相成。

图 3 封面图软色情分类模型:Xception-CBAM 模型结构

3. 视频内容软色情识别

Video 内容软色情识别模型主要包含 3 个主要模块:特征抽取、特征融合和分类模块;其中,特征抽取模块主要包括多模态的视频信息提取以及视频帧特征提取; 特征融合模块主要融合多模态信息,学习 video 语义表示; 分类模块主要基于 video 语义表示对视频进行分类。如何训练学习更好的特征(RGB 特征,光流特征,音频特征等),如何基于这些特征建模时序关系,以及多模态融合是构建一个较好视频分类模型的关键因素。

在特征抽取方面,通常从视频内容中抽取若干 RGB 关键帧序列表示视频。此外,引入视频中的音频,光流(随着时间演化的复杂运动信息等),场景等信息,能有效提升分类效果,但同时也会导致模型复杂度以及耗时倍增。为确保线上效率和模型效果,对于每个视频,仅抽取 10 个 RGB 关键帧序来表示视频内容,利用 fine-tuned 的 Xception-CBAM 模型抽取每个关键帧的语义表示作为模型输入。

在特征融合方面,主要尝试了 Bi-LSTM, Bi-LSTM + Attention,NetVLAD【8】, NeXtVLAD【9】等方法, 并最终选择 NeXtVLAD 模型进行特征融合。

基于 Bi-LSTM 的模型通过将视频的每一帧用预训练的深度卷积网络抽取 feature,然后将每一帧作为一个时间点,依次输入到 LSTM 中学习视频的语义表示。但由于 RNN 网络结构的串行本质,推理效率较低;此外,判定一个视频是否为软色情,并不需要考虑帧之间的顺序关系,只需要某一帧为软色情即可。

NetVLAD 是目前将 frame-level feature 融合为 video-level feature 的另一种较流行的方案,强调建模 distribution of features in the video,其主要思想是基于视频帧集合的 frame-level feature 学习视频帧集合的聚类,聚类中心向量作为 video-level 表示,如图 4 所示。

图 4 基于 NetVLAD layer 的图像特征融合

NetVLAD 将 RGB 帧视为整体进行建模,但一个 RGB 帧往往包含多个物体,为了刻画更加细粒度的图像表示,NeXtVLAD(Youtube’18 视频分类比赛第三名解决方案)在 NetVLAD layer 的基础上将 RGB 帧划分成多个 group 分别进行建模,并引入视觉 attention 机制对不同的 group 赋予不同权重, 其和 NetVLAD 的主要区别如图 5 所示。

图 5 NetVLAD 和 NeXtVLAD 的区别

最后,我们基于 NeXtVLAD 构建最终的视频内容软色情分类模型。如图 6 所示,首先对视频的每个关键帧利用 fine-tuned 的 Xception-CBAM 抽取 RGB 特征 (frame-level) 作为模型输入,经过 NeXtVLAD 学习 video-level 语义表示, 然后送入分类网络。其中,SE context gating 主要尝试在 channel 维度上引入 attention 机制以学习更好的 feature 表示。

图 6 基于 NeXtVLAD layer 的视频内容软色情分类模型

4. 整合模型

审核 video 软色情模型尝试了两种方式将文本模型、封面图模型和视频内容模型三者融合为一个整体:pipeline 模型和端到端的多任务学习模型。

其中,pipeline 模型如图 7 所示,其主要流程是: 文本软色情识别 => 封面图软色情识别 => 视频内容软色情识别。

图 7 视频软色情分类整合模型 -Pipeline 模型结构

端到端的多任务学习模型结构图 8 所示,该模型是一个包含文本软色情二分类,封面图软色情二分类,视频内容软色情二分类,feed 软色情二分类 4 个任务的端到端的多任务学习模型。

图 8 视频软色情分类整合模型 - 端到端的多任务学习模型结构

两种整合方式各有利弊 (如下表所示),主要体现在以下四个方面:

Pipeline 整合方式端到端整合方式样本标注训练文本、图像、视频模型的标注数据可相互解耦每条样本需要同时包含文本、图像、视频内容三个类型的标注数据;在实际工作中成本较高特征交互文本、图像、视频内容三种特征相互独立能充分利用文本、图像、视频内容三种特征间的交互关系,提升模型识别效果模型三个子模型,部署成本及资源消耗较高;但比较灵活,可以根据实际业务场景组合不同的子模型一个模型,部署成本及资源消耗较低;但缺乏灵活性软色情 识别方式按照文本、图像、视频内容的顺序识别软色情;若某个子模型识别错误,整个识别结果就会出错,无论后续子模型好坏将文本、图像、视频内容作为一个整体进行识别

总结经验

数据标注: 早期质检非常重要,早期标注同学在标注时由于对标注标准理解还不够深入,标注质量较差,通过持续的质检反馈,标注质量才能够得以保障;

样本:

  • 数据增强: 由于训练样本较少,需要通过数据增强快速扩充训练集,同时可以增加模型的泛华能力;
  • 样本标签修正: 即使早期通过不断质检,标注质量有所保障,但后期通过 bad case 分析,发现大部分还是属于人工标注错误,这对于正样本 (软色情) 较少的任务而言,及其影响模型效果。在整个过程中,我们利用训练好的软色情模型预测训练集中的样本,将人工标注和模型预测不一致的样本,重新进行人工标注和模型训练,迭代几轮基本可以快速提升样本标注质量。

类别不平衡 :在短视频软色情分类场景下,软色情 case 非常少,通过引入 focal loss, 解决难分 case,同时增加正样本的权重,在一定程度上解决类别不平衡问题;

模型不是最重要的 :模型结构的优化增益往往低于样本和特征的优化。

数据 sense 非常重要 :充分了解样本,重视 bad case 分析,才能明确模型的优化方向。通过 bad case 分析,有针对性的增加模型较难识别的样本,可以快速改善模型效果。

关注迭代质量 : 记录每次关键实验:实验目的,结论以及下一步优化方向。避免重复实验的同时,提高迭代速度和质量。

下一步优化

文本模型: 目前文本模型仅使用 convolutional LSTM,结构较简单;同时 feature 仅使用 token embedding,在特征工程和模型结构方面还存在大量优化空间。

元数据信息: 充分利用视频的各种元数据,比如 uploader, 视频