深度学习让系统“看”懂短视频内容
- 来源:LiveVideoStack 作者:赵丽丽
- 2017/12/28 10:21:5942538
美图数据部门北京技术总监赵丽丽,享了深度学习在短视频视觉内容分析中的核心应用方向,以及前沿深度学习算法在产品化应用于短视频分析时的技术难点和解决方案。
很高兴可以和大家分享深度学习在短视频视觉内容分析中的应用,分享包括四个方面,首先回顾深度学习的发展历程和讲述深度学习在短视频领域进行自动化视频内容分析的意义和必要性,再结合美拍短视频业务分享我们将深度学习应用到视频内容理解中遇到的问题和解决思路,后从产品、数据以及技术层面展望后续的一些优化方向。
深度学习发展历程
神经网络的发展早可以追诉到上世纪40年代,Walter Pitts 和Warren McCulloch提出使用阈值逻辑单元来仿真神经元的输出。1956年人工智能世界大会上提出了人工智能的概念,1958年Rosenblatt提出感知器的概念并发布了相应的算法模型。由于感知器是一个单层的神经网络,它无法学习诸如异或操作的非线性功能,由此神经网络的发展也进入了冰冻期。1986年Hinton提出基于反向传播算法学习特征表示,使得多层神经网络的训练成为可能,而直到现在这一算法仍是深度神经网络训练的核心过程。由于当时硬件计算能力以及数据量有限,多层神经网络训练所需的计算消耗和它带来的效果提升并不能满足人们的需求。直到2006年Hinton再次提出深度置信网络(DBN)和非监督学习的概念,从学术上证明神经网络层数是无限的,自此出现了深度学习的概念。
深度学习模型架构发展
2010年斯坦福大学李飞飞团队公布了标注数据集ImageNet,与此同时发起了大规模数据识别竞赛,在竞赛前期参赛算法采用的都是传统手工设计的特征机器学习算法,结合传统机器学习分类算法,分类误差在26%左右。2012年,Alex提出使用深度神经网络(AlexNet)进行分类,将误差降低到了16%。
除了理论积累和创新,GPU技术的发展带来的硬件计算能力提升以及大规训练数据集的可用性,都对深度学习的发展起到积极的可推动作用,像GoogleNet、VGG、ResNet等越来越多的网络结构被提出,这些网络结构的设计思路是往网络深度发展。而深度学习网络模型在满足持续提升学习效率的同时,实际业务应用的需求也越来越高,因此更多学者提出更宽的网络——通过拆分通道的卷积操作来幅度减少卷积网络模型参数的数量以及卷积操作次数。
深度学习框架
除了以上两点,深度学习网络模型迭代更新速度如此之快,很大程度也得益于大量的开源深度学习框架,比较有代表性的如Caffe、MXNet、TensorFlow、Torch\Pytorch等,这些开源框架极大方便了新的深度神经网络的提出和验证的过程。
短视频自动化内容分析
计算机视觉基本问题&应用领域
*,计算机视觉的操作对象主要包括两类:图像和视频。从底层而言需要解决三个基本问题:是分类问题,即从图片或视频识别内容的种类;第二是检测问题,即不但要识别出图像的物体,还要识别出物体的位置;后是分割问题,分割主要是语义分割,它到像素级别,因此也是基本问题中难的。
以计算机视觉三个基本问题为基础,它又产生一些更深层次的技术,包括视频中的目标追踪、图像和视频的主题描述、语义理解、视频中的事件检测等等,而在这些技术之上还有一些垂直的应用领域——信息压缩、用户画像、搜索、推荐系统、人机交互等等,更上层的应用则有互联网多媒体、智能家居、驾驶、安防、智慧金融、医疗机器人等。
短视频领域概况&场景分析
来源:财经商业数据中心(CBNData)《2017短视频行业大数据洞察》
近两年短视频领域特别火爆,从早的美拍,到快手、抖音、火山小视频、秒拍等等,越来越多的短视频应用走进了大家的日常生活。在财经商业数据中心发布的短视频行业大数据洞察中,截止今年6月我国国内网络视频用户规模已经达到5.65亿,视频观看时长也在不断增加。而围绕短视频的业务场景的应用也在增长:首先是推荐,如APP首页的Feed流推荐以及播放页面相关视频的推荐;第二是视频内容的搜索;此外还有基于短视频用户的行为数据(如上传视频内容)进行、多维度画像;后是热点事件预测,主要是通过分析短时间内大批量出现的视频内容,进行热点事件的预测。
内容分析
1. 视频内容分析三大基本问题
短视频业务相关的各业务场景,都涉及对视频内容的理解,而视频内容的理解需要解决三个问题:个问题“有什么”,也就是视频内容中包含的主题是什么;第二个问题“在哪里”,即视频发生的场景;第三个问题“做什么”,也就是视频中主体的行为,或者正在发生怎样的事情。
2. 短视频内容特征
我们要对视频内容进行理解,首先需要定义一个标准化的标签体系,它应该涵盖视频内容中的主题、物体、场景、事件或行为。对于短视频而言,它的几个特征一定程度上限制了这个标签体系的建立:首先,短视频数据量大,每天都会有成千上百万的视频被上传;第二,短视频内容未知,现实生活中场景是很复杂的,尤其对于UGC内容,我们无法知道用户上传的视频中主体和场景可能有哪些,它的行为是无法预测的;第三是时效性,在不同的时间段内视频的主题、场景以及行为是不同的,它可能会随着时间进行转移。所以在这样的数据集上人工进行建立标签体系非常困难。
上图是我们分别通过算法和人工对视频分类进行标签化的测试结果,包括效率和质量的对比。我们可以看到,算法处理效率比人工高近两百倍,在这种处理速度下,算法准确率相比人工的平均准确率75%也有很大提升。
美拍短视频内容理解:探索与实践
DeepNet平台 美图智能视觉分析平台(DeepNet)为海量图像和视频数据提供智能视觉分析服务。从平台架构来看,主要从四大方面进行算法支撑——图像识别、场景理解、质量评估、转码分析。在这些技术之上,每个业务场景算法都形成在线推理、训练、标注的交互闭环:智能视觉分析服务为在线业务提供推理服务;自动化训练服务对模型训练进行实时更新,从而解决模型时效性问题;标注平台则负责收集标注数据,这部分数据包含两类——人工标注团队针对具体业务场景标注的数据以及审核业务数据时产生的一些并行标签。上层是业务层,包括推荐、审核、画像、广告搜索。
上图是DeepNet系统框架,主要包括三个部分:视觉分析服务、模型训练和标注。视觉分析服务会产生两部分的结果输出:一部分是对视频内容理解的语义标签,一部分是对视频的特征表示,它可能是一个浮点的高维向量,也可能是一个二进制的哈希码,其中语义标签会被人工抽样审核,审核结果被再次修正之后会加入到标注数据中,后续模型更新时会用到这部分数据。
短视频内容分析挑战
接下来我们介绍深度学习实际应用到短视频内容分析时需要解决的一些问题:首先要解决视频中“有什么”——识别视频中的物体、挖掘主题、并将视频特征信息提取保存;其次是“在哪里”——检测视频发生的场景以及文字识别;第三点是“做什么”——检测视频中主体的行为、正在发生的事件以及视频描述。这三部分是理解视频内容的基础,我们在此基础上对美拍视频内容做了第四个分析——“好不好”:首先我们要保证视频内容是合法合规的,因此要做内容审核;同时还要做画质评估来保证画面质量,提升用户的观看体验;此外为了评价视频是否受欢迎,我们会用深度学习做播放预测。
而在实际应用过程中我们遇到了很多问题,大概总结为三类:如何有效定义数据标签,如何获取训练数据,以及如何合理利用计算资源。
1. 如何有效定义数据标签
我们从三个方面来解决有效定义数据标签,基础的是对海量数据进行抽样分析,也就是在海量数据中按一定比例抽样,对抽取到的数据应用算法预先训练的模型去做预先的处理——识别、分类、检测,在处理结果之上再用人工分析,终将分析的结果作为整个数据集的代表。第二部分是文本分析,用户在上传视频时会添加一些视频的描述、标签以及标题等,我们可以结合文本分析方法将这些标签提取出来赋给相应的视频。第三部分是无监督学习——这也是我们正在做的,它应用了视频主题挖掘,也就是对所有一个阶段的视频根据无监督学习聚成几类,然后对这个类别的类中心的数据进行分析,提取它的标签、主题、场景、事件。
大规模视频主题挖掘借鉴的是微软和清华在2015年提出的一个基于Scalable Visual Instance Mining with Instance Graph的方法,它的核心是对输入的大规模图像集提取一个特征表示,在这个特征表示的基础上再构建一个相似关系图进行聚类,相比于传统方法对于新的数据需要重新进行聚类,它将这个过程拆分成两部分:一个是图的构建,一个是基于图的聚类。而基于图的聚类在这个过程的时间其实非常少,那么当有新的数据时,只需要把新的数据加入这个图中做更新,再聚类的时间开销很小。
大规模视频数据主题挖掘这一过程的核心点是特征表示,传统的特征表示方法大概可以分为三个过程:提取视觉特征,基于视觉特征建立视觉词袋,以及进行量化和哈希,生成一个哈希码或index值。近几年伴随深度学习的发展,有些学者提出基于深度神经网络的哈希的特征提取算法,这类算法的思想是让中间的神经网络做所有的事情,输入一个图片经过网络推理就可以得到哈希码。我们则是基于微软和清华在2015年提出的方法上针对深度哈希做改进。
接下来跟大家分享下现在深度哈希特征提取的研究成果,由于研究成果非常多,这里只举两个例子:监督学习和非监督学习。监督学习的思路是使用数据的一些标签数据去进行训练从而学习到哈希码,eBay在今年关于视觉检索中用到的哈希方法就是监督学习。而非监督学习是利用图像本身的一些相关信息进行学习,不利用任何的标签数据,比如我讲一个图像旋转一定角度,它并不会关心这个图像包含什么标签,只会计算旋转前后图形之间的loss是小的,从而保证学到的特征能够更好的表示当前图像。
我们提出了一个视频的深度哈希方法,这部分算法技术的相关论文” Deep Hashing with Category Mask for Fast Video Retrieval”放到了arxiv上[https://arxiv.org/abs/1712.08315],欢迎大家下载论文了解具体技术细节。
2. 如何获取训练数据
针对如何获取训练数据,我们结合算法和人工,首先针对开源数据集训练一个模型,并对业务数据进行初期算法的识别、分类、检测,检测、分类的结果将再次进行人工审核,终审核结果再返回更新模型。
3. 如何合理利用计算资源
主要从三个方面合理规划和利用计算资源:是从算法的角度优化,一方面是优化网络结构,这个同时也会降低训练时间;另一方面是优化推理逻辑,也就是不改变网络结构,在推理时进行层间的压缩。第二是分时处理,从业务角度来看,对推理和训练支持的力度是不同的,推理服务请求量可能很高,而且不同时段的请求量也是不一样的,比如白天一般大于晚上,这样我们在分配推理和训练服务时就需要合理错开高峰期。第三是转码预测,用户上传云端的视频在手机端播放时会占用一定的带宽,因此我们会对一些视频提前转码,但因为转码本身很消耗计算资源,为防止无效转码,使用算法预测视频被转码的概率。
上图是转码预测算法的网络结构,主要分为两部分:首先,对视频封面通过CNN网络提取图像特征;然后,将视频的原数据信息-如视频作者的好友数、粉丝数、历史视频的播放数等映射成向量,和提取的CNN特征结合输入到浅层神经网络进行训练。
上图是分别使用规则判断和使用神经网络算法进行转码预测效率的对比数据,横坐标是转码计算需要的资源,纵坐标是播放覆盖率。我们可以看到,传统简单标记规则在占用80%转码计算资源的情况下,播放覆盖量大概在75%;而使用神经网络算法,在同等播放覆盖率的前提下可以节省84%的转码计算资源,在使用同等的转码计算资源的情况下则可以增加27%的播放量。
思考与展望
对于深度学习在短视频内容分析中的应用我们认为还有很多地方需要优化。从产品层面来说需要优化功能定义,让深度学习可以更好的应用于产品从而提升用户体验;数据层面则是优化标注流程、提升标注的质量,加快模型的迭代更新速度;后在应用现有技术满足业务的同时,我们也希望能够在算法和模型上做一定的积累和创新。