17611538698
webmaster@21cto.com

周涵宁:人工智能在视频网站推荐系统中的应用

CTO说 0 3104 2017-08-20 12:01:47
zhouhanning.jpg

 

21CTO社区导读:
本文为7月28日的「QingCloud Insight 2017」,麦思博(msup)组织了主题为“AI落地实践”的专场论坛。Hulu北京研发中心研究总监周涵宁带来的题为《人工智能在视频网站推荐系统中的应用》的演讲。
周涵宁介绍了影响推荐系统效果的主要因素,找到优化目标的方法,例如降低用户尝新成本和提升用户对于系统的信任。在找到基于用户场景推荐的关键因素后,以直播为例,找到解决冷启动的问题,其中重点分享了基于元数据的迁移学习,以及基于内容理解的推荐这两部分和人工智能相关的实践。


首先介绍下Hulu,它是美国的视频网站,在美国所有付费视频里排在第二。在中国有一个研发中心在北京,现在大概有170位工程师、研究员和项目经理。

说到视频,其实在互联网发明之前就有卖碟的店,里面也有一个简单的推荐系统,店主会把他觉得最好的剧放在最显眼的位置,互联网就是用数字化的方式去实现了过去手工的模式,生成个性化的频道。

每部剧看完后推荐的一系列剧都跟他看的历史有关。当人数足够多的时候,可以通过大量用户的行为之间发现一些共性,然后去训练这个模型。
 

影响推荐系统效果的主要因素


今天要讲优化目标、用户场景、冷启动、用户体验。

优化目标有一些互相冲突的地方。对于用户,希望既能看到喜好相关又多样的内容。对于视频网站,希望用户看得越多越好,随片广告就会有收入。

这是一个商业化的过程。视频网站推荐的内容,只是为了(吸引)用户持续看,但是对他未必有帮助,这是一个致命的矛盾。做研究的人会回避这些问题,我们只是想让用户看得更多。用一个简单的量化指标,用户在视频里观看的时长,就是想要优化的目标。
讲讲方法,早在10年以前亚马逊就实现了基于物品相似性的协同滤波,理由是买过这个商品的用户也看过别的商品或者买过另外的商品,内在的是基于物品的协同滤波,记录的是一个二维矩阵,物品是列,用户是行。
 
对Hulu来说,记录的是用户看了多少分钟的剧,另外一个用户看了多少分钟。根据每个剧在不同的用户里统计到的数据,就可以知道这个剧和那个剧是很相近的,因为很多类似的用户都看了相似的时间,根据列跟列之间相似性比较,就可以得到剧跟剧之间的关系,对于一个剧,马上就可以找到这个剧的近邻,这是一个非常传统的方式。
大概在8年以前举办的一百万美元奖金竞赛(RecSys),获奖团队主要依靠引入了一种叫矩阵分解的方法,在刚才的矩阵基础上把稀疏矩阵不少的缺失数据做了填补,这些填的数据有一定优化的目标。效果如何呢?只能通过线上实验来测,至少在RecSys比赛里效果很好。
Hulu引入了这种方法,但在Hulu的场景里面很少有用户真正评分,于是把评分换成了观看时长,并且做了规划,长和短的剧都看了五分钟,这个观看时长在做积分体系的时候就设计好了。最终,Hulu采用了一种叫作隐式反馈的矩阵分解的方法。在对观看时长的统计里,采用这种算法后效果提升很明显。
 
我们的下一代推荐引擎想要使用神经网络,在去年顶级学术会议ICML2016、RecSys2016发表了两篇论文,就是用CF-NADE的方法,参考了文本里面的方法把它用到了用户行为,将用户的历史行为看成一个文本,基于CF-NADE建立模型,预测用户未来的观看。
(注:具体大家可参考Hulu去年发布的论文 链接:http://tech.hulu.com/blog/2016/08/01/cfnade.html
 

基于用户场景的推荐


 用户会在不同的地方看剧,有的是在手机,有的是在客厅,可能在不同的城市。刚才只是使用了用户观看历史,如果把观看时长再加上地点、设备和城市,又可以进一步提高对他观看的预测,推荐效果也会有提升。我们是用CTR(点击到达率)的指标来衡量,因为用户有可能错点,错点之后很快弹出,这就不算真正的CTR,有用的点击才能算。
 
刚才讲了优化和货架的场景,主要用了三种方法:物品相似性的协同滤波、矩阵分解、基于神经网络。
 
还有另一种完全不同的场景:用户不断地看剧。这是一个序列推荐,我们对此定义了几种不同的行为,包括:观看、搜索、浏览,用户在这个网站做的所有事情,最后会形成一个轨迹,带上时间,分析它,背后有一些用户的潜在意图在里面,比如如果不停地在浏览但是都不点,其实他可能在找新鲜的东西。他开始点了一下但是观看时长不长,就是随便在采样,哪个剧最喜欢看,真的开始一集一集接着看的时候,这个就叫追剧。根据用户的历史和时间戳,可以判断他的意图。
 
基于这一系列数据,我们用神经网络的方法又训练了一个模型,结合历史的所有行为,预测在当前时间他到底会干什么事,然后在界面上推出最适合他干下一件事情的界面,包括看剧,包括浏览,动态地预测用户会做的下一件事。

用户冷启动和基于元数据的迁移学习


刚才讲的所有东西都体现在点播里。

Hulu在今年5月份上线了一款直播产品,跟国内的直播有点不一样,它是把电视台的高质量内容采购进来,你看到它播的跟电视上同步的直播内容,里面比较火的是新闻、体育、脱口秀。

对于直播推荐有独特的挑战,在节目真的出来之前,可能只有几天时间,可以预先知道它要播什么,也没有任何用户的历史行为,就遇到用户冷启动的问题。
我们要用一些在点播服务中的用户行为去预测用户对完全没有看过的内容的喜好,当然我们对这些内容也有一些其他的信息,包括当时的热度和元数据,我们通过这些信息解决冷启动问题。
 
说到内容理解,刚才那些都是出版商、电视台所提供,只是冰山最顶尖的小角,视频剧的元数据还有很多。关于视频的语义描述,我们有自己的分析方法。Hulu去年收购了一家叫VGP的公司,它可以采集到视频剧里的语义标签,比如这是一个80年代的牛仔秀,里面有枪战镜头。
Hulu也有这些技术和做法,我们把描述标签放到冷启动框架里面从而推出更多的细节。再往下还有每一桢的图象和字幕信息。我们正在做各种探索,比如先找到剧的开始和结束,如果你要推下一个剧的时候就不要等到字幕都播完,而是(结束)字幕刚跳出来的时候就给用户提示,出版商不会给出准确的字幕时间,所以要依靠分析。
 
此外,一些物体出现在视频里,以及视频的场景里有多少是动作场景,多少是对话场景,我们可以用基于计算机视觉的方法自动产生标签。
这是基于场景识别,给一桢它就会给出一些标签,我们还做了一个情感识别,对当前剧里的演员,我们会做脸部的检测,进行表情识别,它也成为冷启动的方法之一,这就是情感识别的整个流程图。

后来,我们做了一个更加统一的神经网络,把用户行为,内容元数据及更多元素,全都整合起来,这实际上参考了谷歌2015年的一篇论文,类似的方法,我们借鉴到Hulu的场景里面,可以把原来基于用户行为的推荐扩展到结合所有的这些额外信息。

用户体验,给出一个有说服力的理由


有一首有名的英文歌,说我有一百万个理由离开,但是有一个理由能留下来。我们就产生一个推荐(留下来)的理由,比如推《终结者2》的时候我们可以说你看过《终结者1》,虽然它背后的算法是那些,但是我们要给用户一个说得过去的理由,这样他会对推荐算法更有信心,点击量就会提升。

另外,降低用户尝试的成本。用户在完全不知道一部电视剧的时候,要花二十分钟看完第一集,才会决定是否要追下去,我们用一些自动的方法,把剧集浓缩成十秒钟短视频,也是基于场景分割以及算法规则,用户只用花很短时间就能判断他想不想要看这个剧。

以上是周的演讲全文,以下为其演讲的部分PPT:

/uploads/fox/20104655_0.jpg
/uploads/fox/20104655_1.jpg
/uploads/fox/20104655_2.jpg
/uploads/fox/20104655_3.jpg
/uploads/fox/20104655_4.jpg
/uploads/fox/20104655_5.jpg
/uploads/fox/20104655_6.jpg
/uploads/fox/20104655_7.jpg
/uploads/fox/20104655_8.jpg
/uploads/fox/20104655_9.jpg
/uploads/fox/20104655_10.jpg
/uploads/fox/20104655_11.jpg
/uploads/fox/20104655_12.jpg
/uploads/fox/20104655_13.jpg
 
 

作者:周涵宁,现任Hulu北京研发中心研究总监(Hulu是全美第二大付费在线视频平台)。带队推荐、搜索和数据科学团队。具有15年的产品研发、创新和团队管理经验。专注于应用数据和算法实现从0到1的产品落地。在数据分析和机器学习方面有丰富的经验。


评论