【酷干货】牧己:探索文娱大脑建设之路-阿里云开发者社区

开发者社区> 阿里文娱技术> 正文
登录阅读全文

【酷干货】牧己:探索文娱大脑建设之路

简介: 本文根据《优酷技术沙龙——优酷认知实验室专场》现场,阿里巴巴资深技术专家牧己的演讲《探索文娱大脑建设之路》整理成文,围绕着人工智能大数据的鱼脑平台在文娱行业的一些思考和实践展开。

写在前面:

本文根据《优酷技术沙龙——优酷认知实验室专场》现场,阿里巴巴资深技术专家牧己的演讲《探索文娱大脑建设之路》整理成文,围绕着人工智能大数据的鱼脑平台在文娱行业的一些思考和实践展开。

image.png

以下是演讲全文:

我们先简单介绍下鱼脑平台,其实做大脑这件事情上稍微有点规模的互联网公司都在做,比较有名的如Google大脑、百度大脑,他们更多关注是的是机器感知、机器智能、自然语言处理、分布式系统并行计算等等这些技术,做的挺深入的,也在人类听、说、看的一些问题有一些感官技术的应用。鱼脑平台,诞生于文娱行业,我们也会深入一些感官相关的技术,但其实这不是我们核心的方向,鱼脑的核心目标就是希望提供一个辅助决策的平台。

那么,为什么需要提供一个辅助决策平台?内容这个产业,2000多年前就有人开始研究了,电影产业也发展有100年了,目前内容行业可以说出现了前所未有的繁华,大量资金流入,产出的内容成倍增长(据统计2017年各种影视内容加到一起就几千部,上万集),仅仅是分析内容本身就已经很难,更何况要加上各种周边信息、各种多变的环境信息等等。内容产业是一个特殊产业,人们能够亲身感受内容策划、生产、制作等等各个环节的机会是很少的,不同人对于不同内容的感官差异还是很大的。所以,在现在很多项目都会出现规划的时候是一个样子,制作的时候是另一样子,产出的时候和前面两者都不一样,最后播出的效果可想而知,内容的商业风险还是很大的,请看下图的形象表现:

image.png

因此,我们考虑构建鱼脑平台,这样一个辅助决策平台。鱼脑建设会考虑文娱行业内容本身的丰富性、多样性,考虑戏剧内容创作理论,考虑内容生命周期及各产业链环节,考虑人类对于内容的需求及人类对于文娱内容的认知的过程和偏差等等,结合大数据和AI的技术,为人脑赋能,在内容的采买、投放、制作、宣发、投放各个环节上提供一些辅助决策,可以参看下图:

image.png

下面我们看一下鱼脑平台的技术架构,如下图:

image.png

很简单三层架构,从下往上依次数据模型层、基础数据层、应用模型层。数据模型层负责获取全网的文娱内容以及相关的各种信息,经过加工、处理、存储等环节沉淀到数据仓库中,构建出底层基础文娱数据仓库体系。基础数据模型层,深入研究内容理解&用户理解相关的各种基础AI算法,如情感分类、用户心理标签、人脸识别、视频主创曝光识别、颜值打分等等,这些算法对于基础数据仓库中的数据进行处理后生成一些中间产出数据,再存储到数据仓库中,最终供上层应用模型使用,应用模型产出最终支持鱼脑平台产品使用。核心还是通过大数据和AI算法对内容、对用户进行理解。

我们今天把分享的重点放在中间层,基础模型上我们的一些思考,分享三个技术点:第一,自然语言。第二,CV。第三,通用的预测能力。每一部分我会聊下我们的思考,然后给出我们做的一个实际应用的例子。

第一部分,我们觉得今天的自然语言处理这一块形成了以循环网络、rn、lstm这样的sequence language model为基础的语言模型,它的特点就是通过Distribute representation,也就是分布式表达,我们可以把上下文关系学学出来,诞生出来我们今天非常重要的word2vec,最近大家应该听过刚崛起的bert,你会发现bert特别恐怖,word2vec出来的时候就很恐怖,bert出来就更恐怖。这个model基本上能给大部分场景去用,能解决你自然语言处理大部分的问题。

所以,在自然语言这一块,我们的一个思考和感受是:自然语言处理这一块learning出来的东西,它的通用性和泛化性更强,我们基于Embedding的结果,它的使用价值更大。所以,数据这个层面上的Embedding是一个很重要的核心。另外,网络架构这一块,如何把我们今天要解决问题的Domain knowledge建模到你的network里面,这个是我觉得另外一个重要的核心。我们在剧本、IP应用自然语言处理的整个工作当中,很多的工作会围绕这个两个最核心的事情展开。下面看下我们在IP&剧本分析中是如何具体实现的。

image.png

这是一个典型的自然语言的问题,有几个人物。我们怎么通过这个判断他们之间冲突与否呢?这个就是我刚才讲的在自然语言这一块最核心的东西,还是在Embedding,一定要足够多、足够丰富,通过Word2vec、 Bert做的Embedding,这个是你整个学习的基础。

image.png

这个是一个典型的TextCNN的架构,中间做了一个网络架构的设计,重新设计。这就不说了,然后把文本做Embedding,Embedding完了之后词项量送进来,然后这个地方选几个Feature map我觉得这个核心不在这儿,核心是在Pooling。整个句子看成一个sequence,通过第一个人物,第二个人物,切成三段, Embedding卷完了之后,位置的信息带过来是做对齐的,再做Pooling之后再去学,这一块的结果就是我们前面在语法上面的结构。

这块我再分享一个我们内容创作理解的具体实例,给大家更直接的感受。下面给大家看下我们在内容创作理解这块的基本架构:

image.png

最底下的是基础技术,中间是识别技术,最上面是基于这些戏剧理论拆解出来的这样一些核心的能力。我们以《射雕英雄传》的剧本分析为例,展开下。《射雕英雄传》大家都很数据,全书共有100多个人物,男一女一肯定是郭靖和黄蓉,除了郭靖跟黄蓉之外,还有哪些很核心的人物?

我们通过模型跑了下,100多人戏份排在前面的分布基本上是这样子的,21%、16%、5%、4%、3%。第一次算法跑出这个数据的时候,我也挺惊讶的,我个人觉得男一特别强,他应该有60%的戏份,其实没有,只有这么个戏份。但是为什么他能构成男一呢?通过关系分析,我们发现男主贡献了92%的人物关系,也就是说这里面有100个人,90多个人郭靖都跟他们打过交道,所以这说明什么?人脉很重要。黄蓉贡献了82%的人物关系,第三、第四的三大天王再加上周伯通,他们的戏份比较靠前,但是他们贡献的人物关系只有60%多的人物关系。而柯镇恶和丘处机各自贡献了75%的人物关系,说明什么问题?这两个人在整个的内容过程当中起到了一个牵引的作用。

通过这样的分析,我们能把整个的人物结构划出来。我们还可以做一个更定量、定性的判断。除了角色占比外我们还能够分析角色间关系的好与坏,以及剧情冲突曲线:

image.png

上图其实是从一个单人的视角,看他和其他角色之间人物关系的好与坏。绿色表示关系好,黄的表示关系差。

image.png

上图是整个剧本的剧情冲突分布曲线,冲突最高的两个块是华山论剑和郭靖误以为江南七怪被黄药师所杀,与黄蓉决裂。

第二部分,CV。在很多场景中,如情感识别大家都会用大量的Embedding的方式去做,但是在CV这个领域我们发现不是这个样子,CV因为卷积网络的卷积跟Pooling的操作,它是通过卷积跟Pooling,损失一部分细节信息,逐步向高层去抽象,抽象完了然后达到你的学习目标。在这个过程当中,你会发现它常常学出来的最后的那个Embedding的结果很难去做低维度的一个表达。所以,在不同领域的应用会有比较大的差别,你很难用一个通用的Embedding去解决所有的问题,比如说Google的facenet非常出名,基于facenetEmbedding出来的结果,你在其它的应用里面就很难在表情识别直接去应用。

我先给大家分享下我们这块的一个具体实践,通过CV技术我们识别视频中人物的表情从而分析人物的性格和整个视频的情绪曲线,如下图:

image.png

人物性格理解通过雷达图表现了人物在7个情绪值上的对比情况。

反贪风暴是一个犯罪动作题材的电影,角色情绪值都比较明显,符合犯罪类节目的特点。北京遇上西雅图这是个爱情喜剧,你会发现吴秀波在七个情绪上的表达都处于一个中低水位,情绪波澜不惊,所以是一个典型的成熟大叔的形象。而汤唯她就比较明显,悲喜交加的这种情绪表达的更灵活、活现,所以是一个爱情少女的形象。而在喜剧里面,你看他各个方面的情绪表达,特别夸张。羞羞的铁拳是开心麻花的喜剧,我们看是为了笑,但是你会发现他在里面的悲伤跟惊讶的情绪特别多,所以我们的喜剧建立在别人的悲伤之上。

image.png

情绪曲线分析视频每个时间点的正负情绪值,你会发现爱情剧的情绪密度是非常稀疏的,而喜剧情绪密度是非常密的。

我们来看下具体的技术实现,CV这一块,我们觉得核心会在网络架构的改造以及Loss的设计,所以这一块的核心会是 SoftMax、Margin loss、focal loss,同时会应用一些SVMmargin的Loss,下面给出一个代表性的情感识别,请参看下图:

image.png

这一块,大家做的比较多了,我觉得这还是个识别的问题。这一块我们做了一些简单的工作,用了SVM的Margin loss,使用后的效果会比不用Margin loss的效果好。前面讲过,我们直接使用Google Facenet Embeddind的一个结构去学,学到的效果很糟,Google Facenet的loss是Triplet Loss,Triplet Loss是在学人物人脸的特征,它要把相近的同一个人放在一起,不同的人距离大,所以它学的过程当中是把你的人物脸的特征学出来,不是学的表情,所以表情被忽略了,学出来的效果比较糟糕。结论就是常规的Embedding在这种情况下效果不是那么的好,这是第一点。第二点就是Margin Loss的设计。

最后进入了一下预测能力的这部分,这个是我们今天具备对于一个未开播的内容做一个预测的学习能力。整个基本思考架构请参看下面的图:

image.png

我觉得我们今天思考的是预测通用性的问题,换句话说深度学习都可能会面临的问题。学习能力好、参数多和样本数据量之间会有一个关系,但是你很大部分情况下会遇见数据不够以及数据不规范的问题。所以我们在数据这块,尝试通过数据生成以及数据增强对数据进行处理后,处理后会取得3到4个百分点的提升,而后考虑数据和未生成数据的差异,生成数据的隶属程度有多深,我们又加了高斯的隶属度,来判断它的真维性,这样就又会有3到4个百分点的提升。

模型这一块,是我们也做了一些不一样的尝试,我们把DNN和Relation Net,以及MTL相结合,然后做一些TransferLearning,这个会构造一个全新的网络。我们的逻辑就是把前面的模型各部分的因素都拆开,复杂的因素用DNN去接,外部竞争的关系去Relation Net做推理去接,最后面用MTL,根据情况会加一些其它的模型。这样的一个网络虽然参数比之前多了,但是它整个每一块的学习会更好,所以学习结果也会更加好一些

image.png

最后是Uncertainty Learning这块,从2016年开始它逐步热起来,用变分去做了一些事情。

image.png

image.png

这一块我不详细说了,大家回去感兴趣的可以看一下,贝叶斯Network,它怎么用变分去做,最后得到一个结果。

简单总结一下,从技术的角度来看,我们鱼脑平台会结合具体的文娱产业的行业特点,深入研究自然语言、CV等相关的技术,抽象来看每一块的技术特点,以及核心要解决的问题,做长期的布局,这个过程中让鱼脑提供更多的能力,为内容辅助决策提供更大的价值。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享: