Hulu 在视频内容理解上的应用和最佳实践
- 2019 年 11 月 22 日
- 笔记

本次分享的内容有:
- Hulu 简述
- 为什么研究视频内容理解
- 面临的挑战
- Hulu 的视频理解实践应用
▌Hulu 简述

Hulu 是美国的一家视频网站,类似国内的爱奇艺、腾讯视频和优酷,目前 Hulu 相当于迪士尼旗下的子公司,Hulu 在北京有研发中心,其中大部分研发骨干来自北大、清华等名校。

▌为什么做内容理解
Hulu 是16年之后开始系统性的做内容理解,为什么是16年?这里有些分析:
- 随着互联网上的视频流量越来越成为主体,有90%都来自视频,文本的比例越来越低;
- 在12年深度学习起来之后,为视频的内容理解提供了技术支持,
- 越来越多的大企业和研究机构投入到了视频理解的研究上。
- 在 Hulu 内部的原因是,推荐模型在往更深层次走,如果不理解视频的内容,是没办法完成的。

▌面临的挑战
- 数据的多与少。我们虽然有很多的视频影视剧和用户,但是只有很少的标注。
- 数据的真与假。有很多电视剧,动画片,里面有很多场景是假的,这种假的数据很难被利用。
- 技术的难与易。借助一些算法和算力的发展,研究视频理解成为可能。实际上,无论把深度模型神经网络做多深,在视频上的整体性能提升非常有限,这说明针对视频的处理,需要一些特殊的技巧,不能把图像上的一些模型,直接拿到视频领域来用,会有时序上的约束以及语义上巨大的鸿沟。
- 企业的买与研。为什么要自己做,而不是买第三方的工具或者第三方公司?因为不可能把第三方的解决方案,直接拿过来就能用,因为hulu的产品形态和对外提供的服务直接和算法挂钩,如果等其他公司提供的结果,会滞后于市场。
当我们开始做内容理解,我们这几年主要做了如下工作:
A. 细粒度的视频内容分割
B. 视频标签
C. 内容生成
D. 内容向量
▌A. 细粒度的视频内容分割

内容分割:目前在 Hulu 对视频的精细化切分已经做得比较好了,可以细粒度的把镜头、场景、前情、片头、片尾、字幕、音乐、分级标志等分开。这里主要讲下:
1. 内置频道 logo 检测

我们会检测节目上是否打上了一些 logo,大家可以看到图中有 tbs 或者 cnn 的 logo。为什么要做这件事儿?因为 Hulu 是一个内容平台,有500+内容商为 Hulu 提供内容,在提供内容的时候,提供商会插入很多 logo,由于我们在将这些内容投放到其他平台或频道时,根据投放协议,会加入投放平台的 logo,这样就会有两个 logo 叠在一起,用户体验就会变差。还有就是广告商的需求,比如广告中什么地方出现宝马的 logo,什么地方出现可口可乐的 logo。

在 Hulu 目前检测有300个频道的 logo,使用 mobilenet+SSD 来检测 logo 位置。当做完这些之后,还发现个问题,因为某些频道的 logo 会变,可能是没见过的新增频道 logo 或者是新设计的,这时我们会采用非监督的算法来做一个预估,来检测某个位置可能是一个 logo,然后通过人工来确认。当然,做 logo 检测的时候没有标注数据,是在 Hulu 的数据上通过人工嵌入进去,再加入噪声等处理,然后自己生成的一套 data set。
2. 内置字幕检测 & 语言识别

然后是检测有没有字幕,字幕检测有俩个用途:
第一个是我们不希望已经有了英文字幕,用户还再添加字幕;
第二个是视频编解码需要,因为视频编解码之后文字可能会变得模糊,所以编解码的时候可以对字幕做特殊处理,让文字依然保持清晰,可以提升用户体验。

所以,这里我们会有一套算法逻辑:先拆分,然后检测有没有字幕,最后合起来之后得到一个 yes or no 的结果。
知道 yes or no 之后,我们还需要判断到底是什么语言,是拉丁语系,还是亚洲的中文,韩文,日文等等,会做语言种类的分类。
3. 自动化流水线

在做了上述工作之后,我们发现必须有一套流水线流程,因为 Hulu 每天更新的视频数量非常多,比如美剧每天就有500部更新,这不可能都重新跑一遍算法,最好是有一套自动化的流程来处理,并方便后期人工的复查,所以我们建立了一套 AI 的 pipeline。
我们还做了 Framehouse,因为我们要把每个视频拆分,做到 1s 或者 0.5s 拆出1帧,数量级非常大,做算法处理后,重新读帧,速度要尽量快,所以对 Framehouse 进行了很好的设计。
最后,我们还提供了一个 Deep Learning 分布式计算平台。
▌B. 视频标签

当对视频拆分之后,接下来的工作就是给视频加标签。比如在这个场景下,里面发生了什么事件,有什幺元素,是在什么样的场景下发生的。
在16年的时候已经有非常多的标注数据,公开的 data set 包括 OpenImage,Places365,Sports1M,FCVID-LSVC,YFCC100M,MSR-VTT等。
Hulu 是需要海量标注数据的,Hulu 的办法是一方面借助人工,启动自己的标注工程,另外一方面是借助一些学术圈相对开放的 data set 预先训练自己的算法模型。
1. Since 2016,what happened now

① 亚马逊推出的图像识别AI系统:Amazon Rekognition,可以识别对象,人物,文本,场景和活动等。

② Microsoft Azure 推出的 video indexer,不仅可以声音识别成文字,还可以对人物、关键词、情感等进行分析。

③ Baidu AI video,主要功能是人物识别和标签。

④ Alibaba AI in video,主要实现的功能除了人和标签外,还包括智能封面和视频摘要。

⑤ Netease video analysis,网易主要做的是明星动漫人物识别,语音文字识别等。
2. Hulu video derived tags
① Scenes and objects

看了这么多,主流的公司都在做这件事情,大家的思路也都有很多相似的地方,这里重点介绍下 Hulu 是怎么做的,上图主要是 Hulu 的一些例子,是场景和物体的识别。
② Events and actions

这里是事件和行为标签。
3. 视频生成元数据:用户案例

为什么这么多公司都在做内容标签,因为内容标签可以引入一些新的场景,比如:
- 上下文相关的广告,可以在暂停的时候插入广告,做文本相关性。
- 广告逆向投放策略,因有些内容提供商是不允许在内容里插入广告的,比如 espn,所有和球员相关的广告都不能放,如果 Hulu 不知道过来的视频有没有球星代言的广告,很可能会造成侵权。
- 基于内容的视频编解码
- 基于内容的个性化的推荐
- 视频的搜索,比如检索美国大选新闻,出来的结果非常多,可能一段30分钟的视频,只有2分钟是相关的,用户不可能逐条去看,需要为用户标注出来需要的部分。
- 基于内容的分类,比如90后的最爱,城堡里的恐怖片,等等。

当开始做视频标签时,首先应从产品的角度出发,告诉产品视频里都有哪些内容,比如:
- 视频中有什幺元素
- 故事发生在什么场景下
- 发生了什么事儿
- 所表达的情感是什么
这是我们试图想回答的问题。

所以,第一阶段我们借助于很多open data set 对算法模型进行训练,算法模型训练好之后,会在 Hulu 人工标注的数据集上做 Fusion 融合。

这里有一个更精细的算法流程来说明:
首先我们会定义一套自己的 Taxonomy 分类方法,这点非常重要,我们到底需要打哪些标签,这些标签以哪些层级来构建的,对于后面的算法会非常有影响。所以我们花了很大的力气人工的整理了一份 Taxonomy,构建了词和词之间的关系。
有了 Taxonomy 之后,当我们给定一个数据源,我们在上面有一套算法之后,会生成标签,但是这个标签不能在 Hulu 直接用,需要经过 tag postprocessing 标签后处理,因为这些标签映射到我们自己的 Taxonomy 时是有距离的,需要把多个标签 mapping 到一个 Hulu 想要的标签上,这就是标签后处理。
另外,需要做多个算法 module evaluation 模块质量评估,最终通过 Multi-source multi-modal tag fusion 融合,生成 Hulu 的某个镜头或者某个场景下想要的标签。

这里有更加详细的过程,这里主要是讲我们自己的 taxonomy,然后 taxonomy 如何划分的方式,右边是 taxonomy 示意的结构。

这里是讲标签的后处理,通过人工标注的标签来设定相应的阈值。

模型融合,设定阈值和分类准确度,对分数进行归一化融合。

这个是卡通片标签的例子,包括 what,where,event,Color 等。
▌C. 内容生成

接下来的工作是内容生成,主要包括:
- Sports highlights and moments,精彩片段推荐。
- Video summary 视频摘要,合并出基于主角,剧情,精彩片段等的summary,推荐给用户。
- Avatar,探索性的项目,比如有些酷炫的动作,进行骨骼动作模拟,之后再赋予一个虚拟的形象展示出来。
▌D. 内容向量

除此之外,结合 Hulu 已有的标签,我们叫事实标签,比如演员,导演,剧的介绍以及对整个故事情节的理解,可以把整个 video 合成一个 vector 向量。通过这个 vector 可以非常容易的去算两部剧的相似性,并且反推这两部剧为什么相似,比如同一个导演,或者同样人物的出现,或者包含了某些非常类似的场景,所以 content vector 在视频推荐中占有非常重要的因素,并且可以带来不小的提升。
具体算法,对于 content embedding,文本使用 BERT,transformer 模型,标签使用 Graph Embedding 模型,结果评估使用 ABtest 在相关剧集推荐上做评估。

这是具体的生成标签的例子。Gracenote tags 是供应商的标签,Content derived concept 基于内容的标签是自己生成的,由于供应商或者第三方提供的标签有很多是不全的,通过我们基于内容生存的标签是可以弥补这些不足的。

最后推荐下 2019 ACM MM 竞赛,会议将在10月份举办,竞赛的内容是基于内容相似性的 Prediction,通过抽象成特征计算两部视频的相似性,今年与前两年有所不同的是,增加了用户行为预测。
竞赛官网地址:
https://www.acmmm.org/2019/

嘉宾介绍
谢晓辉,Hulu 首席研究主管,人工智能和创新孵化团队负责人,具有18年算法研发创新和管理经验。专注于模式识别、图像视频文本等多媒体信息处理,对人工智能、人机交互领域的研究以及成果落地及产品化有丰富经验,拥有100+的相关专利,学术论文近20篇。本科毕业于西安交通大学实验班,北京邮电大学取得模式识别领域博士学位。曾先后就职于松下电器研发中心、诺基亚北京研究院、联想研究院。
——END——
分享嘉宾:谢晓辉 Hulu 首席研究主管
编辑整理:Hoh Xil
内容来源:DataFun 职业发展论坛
出品社区:DataFun
注:欢迎转载,转载请注明出处