原文:干货|爱奇艺短视频软色情识别技术解析 - 2019.02.21
出处:爱奇艺技术产品团队 - 微信公众号
随着UGC内容爆发式增长,信息流产品占领越来越多的用户时间. 爱奇艺作为国内领先的互联网视频媒体,承担了正确引导用户价值观的社会责任. 所以识别和屏蔽低俗内容、做好风险内容控制、净化短视频生态是一项非常值得重视的工作. 下面我们从技术的角度,以“软色情识别”为例,介绍爱奇艺的多模态低俗内容识别技术.
软色情不是色情,但内容(文字、图片、声音或视频等)却又充满挑逗、诱惑、让人想入非非,其程度介于性感和色情之间.
用户每天新上传的视频以及短视频推荐池中都存在一定比例的软色情视频,需要大量审核人员进行人工清查、效率较低、成本昂贵;此外,人工审核的另一个难点是对软色情的判断过于主观,甚至对于部分隐晦内容需要一定的背景知识. 所以融合文本、图片、视频内容的多模态软色情识别模型应运而生,消除了人工审核的主观因素和“知识”盲区,节省了人力成本.
1. 面临的挑战
[1] - 标准难统一:
人类对软色情的定义主观性较强,穿着暴露、激吻、性暗示、维密走秀等都可能被视为不同尺度的软色情,在不同的场景下或者面对不同的人群,软色情定义标准较难统一.
[2] - 类别分布极度不平衡:
软色情视频相对于非软色情视频而言,比例非常低,样本类别的分布不平衡大大增加了软色情识别的难度.
[3] - 多模态学习:
决定一个视频是否属于软色情,除了视频的文本信息,封面图外,还包括视频内容以及音频信息,所以视频的软色情识别本质上是一个多模态feature整合的多任务学习模型. 如何充分利用和整合多模态的feature,以及合理优化多任务学习,使每个子任务以及整体任务效益最大化,也具有较大的难度.
2. 视频软色情模型
2.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.
举两个实际应用中的例子:
[1] - CNN能学习文本中有软色情倾向的重要片段,不受切词影响,如:“如愿/娶/小娇妻/甜蜜/滚/床单“;
[2] - LSTM依赖整个句子的语义进行判别,能识别出不含明显色情词的case,如:“男子/开/兰博基尼/邀/美女/上车/聊天/聊着聊着/就/上手”;
图1 文本软色情分类模型-Convolutional Bi-LSTM模型结构
2.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 两个子模块构成:
[1] - Channel attention模块:强调应该更关注什么, i.e. “what is meaningful given an input image”.
[2] - Spatial attention模块:强调应该更关注哪里, i.e. “where is an informative part”; 和channel-attention module相辅相成.
图3 封面图软色情分类模型:Xception-CBAM模型结构
2.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的视频内容软色情分类模型
2.4. 整合模型
审核video软色情模型尝试了两种方式将文本模型、封面图模型和视频内容模型三者融合为一个整体:pipeline模型和端到端的多任务学习模型.
其中,pipeline模型如图7所示,其主要流程是:文本软色情识别 => 封面图软色情识别 => 视频内容软色情识别.
图7 视频软色情分类整合模型-Pipeline模型结构
端到端的多任务学习模型结构图8所示,该模型是一个包含文本软色情二分类,封面图软色情二分类,视频内容软色情二分类,feed软色情二分类4个任务的端到端的多任务学习模型.
图8 视频软色情分类整合模型-端到端的多任务学习模型结构
两种整合方式各有利弊(如下表所示),主要体现在以下四个方面:
Pipeline整合方式 | 端到端整合方式 | |
---|---|---|
样本标注 | 训练文本、图像、视频模型的标注数据可相互解耦 | 每条样本需要同时包含文本、图像、视频内容三个类型的标注数据;在实际工作中成本较高 |
特征交互 | 文本、图像、视频内容三种特征相互独立 | 能充分利用文本、图像、视频内容三种特征间的交互关系,提升模型识别效果 |
模型 | 三个子模型,部署成本及资源消耗较高;但比较灵活,可以根据实际业务场景组合不同的子模型 | 一个模型,部署成本及资源消耗较低;但缺乏灵活性 |
软色情 识别方式 | 按照文本、图像、视频内容的顺序识别软色情;若某个子模型识别错误,整个识别结果就会出错,无论后续子模型好坏 | 将文本、图像、视频内容作为一个整体进行识别 |
3. 总结经验
数据标注:早期质检非常重要,早期标注同学在标注时由于对标注标准理解还不够深入,标注质量较差,通过持续的质检反馈,标注质量才能够得以保障;
样本:
- 数据增强:由于训练样本较少,需要通过数据增强快速扩充训练集,同时可以增加模型的泛华能力;
- 样本标签修正:即使早期通过不断质检,标注质量有所保障,但后期通过bad case分析,发现大部分还是属于人工标注错误,这对于正样本(软色情)较少的任务而言,及其影响模型效果. 在整个过程中,我们利用训练好的软色情模型预测训练集中的样本,将人工标注和模型预测不一致的样本,重新进行人工标注和模型训练,迭代几轮基本可以快速提升样本标注质量.
类别不平衡:在短视频软色情分类场景下,软色情case非常少,通过引入focal loss, 解决难分case,同时增加正样本的权重,在一定程度上解决类别不平衡问题;
模型不是最重要的:模型结构的优化增益往往低于样本和特征的优化.
数据sense非常重要:充分了解样本,重视bad case分析,才能明确模型的优化方向. 通过bad case分析,有针对性的增加模型较难识别的样本,可以快速改善模型效果.
关注迭代质量: 记录每次关键实验:实验目的,结论以及下一步优化方向. 避免重复实验的同时,提高迭代速度和质量.
4. 下一步优化
文本模型: 目前文本模型仅使用convolutional LSTM,结构较简单;同时feature仅使用token embedding,在特征工程和模型结构方面还存在大量优化空间.
元数据信息:充分利用视频的各种元数据,比如uploader, 视频长度,描述信息,类别等.
多模态多任务模型优化:目前大量样本只有文本和封面图的label,后续补充训练集中的视频label,重新优化端到端的多任务学习模型,同时构建一个有效的多模态feature融合模块,提升整体效果.
5. 参考文献
[1]. Armand J. etc. Bag of Tricks for Efficient Text Classification, EACL 2017.
[2]. Kim Y. Convolutional Neural Networks for Sentence Classification, EMNLP 2014.
[3]. Liu D. etc. Recurrent Neural Network for Text Classification with Multi-Task Learning, IJCAI 2016.
[4]. He K. etc. Deep Residual Learning for image recognition. CVPR 2016.
[5]. Chollet F. Xception: Deep Learning with Depth-wise Separable Convolutions. CVPR 2017.
[6]. Hu J. etc. Squeeze-and-Excitation Networks. CVPR 2018.
[7]. Woo S. etc. CBAM: Convolutional Block Attention Module, ECCV 2018.
[8]. Arandjelovic R. etc. NetVLAD: CNN architecture for weakly supervised place recognition, CVPR 2016.
[9]. Lin R. etc. NeXtVLAD: An Efficient Neural Network to Aggregate Frame-level Features for Large-scale Video Classification, ECCV 2018.