[转]推荐系统怎样使Netflix成为电影的个性化推荐王者

0 / 387

从《纸牌屋》开始,Netflix 越来越多地进入国人的视线中。关于它的用户推荐系统、“大数据分析” 等等神话和传说也有不少,本文是我在查找了一些资料后,整理出来的 Netflix 的推荐思路和一些方法。太过技术的算法内容实在是 hold 不住,因此仅从逻辑上进行说明。一来整理自己的思路,二来尽可能学习些东西,分享出来欢迎各位讨论。

一、坐等风来

2006 年,一项名为 Netflix Prize 的算法大赛横空出世,Netflix 拿出 100 万美元奖金让开发者们为他们的优化电影推荐算法。截至 2012 年第四季度,Netflix 已在全球拥有 2940 万订阅用户。

今年 4 月,Netflix 的全球订阅用户达到 1.25 亿,服务超过 190 个国家和地区。截至今日,它的市值超越迪士尼成为全球互联网企业排名第六的公司。

回顾 Netflix 这 21 年的历史,似乎每一次转型的时机和方向都是如此准确,以至于有些 “自然而然” 地达成今天的高度。然而如果我们透过现象看本质,从万变中找不变的话,有一件事一定会被提到——个性化推荐。甚至可以说,“个性化推荐”就像 Netflix 自制的鼓风机,第三个风口是他们自己造出来的。

没有明确的资料说明 Netflix 在做邮寄租赁 DVD 的时候有没有推荐机制。但他们确实从最开始的时候,就十分重视数据,并开始收集用户数据了:他们会在邮寄的信封里附上问卷让用户给电影打分。这些打分数据是之后 Netflix 推荐系统的重要基石之一。

“个性化推荐” 一直都是 Netflix 的杀手锏,数据积累和算法研发的提前让它在这方面几乎是不可被超越的,时至今日用户在 Netflix 上观看的 80% 内容都是由推荐而来的。

二、解构好莱坞

Netflix 的推荐系统之所以能够如此高效地达成目标,我认为最大的理由是他们教会了 “让机器懂电影”。在一篇名叫 < How Netflix Reverse Engineerd Hollywood > 的文章中(由 Alexis C. Madrigal 于 2014 年发表)。作者从 Netflix 的推荐分类出发,解说了他们是如何解构好莱坞进而去给用户做推荐系统的。

在 Netflix 的首页中你会看到一行一行的电影,每一行是一个分类,官方叫它 altgenre,或者说 “微分类”,每个分类中是一系列的电影。这些分类和电影都是为你量身推荐的。

在这些分类中有一些非常精准、十分有意思的标题:情感充沛的反体制纪录片(Emotional Fight-the-System Documentaries)、基于事实的皇室掠影(Period Pieces About Royalty Based on Real Life)、80 年代的外国邪恶电影(Foreign Satanic Stories from the 1980s)。

那么这些类型是怎么来的呢,作者 Alexis 做了一件很绝的事情:

他把 Netflix 的所有分类全爬了下来,共有 76897 个分类之多。并且将这些分类的用词和语法做了深入分析,还自己开发了一个 “类型生成器”,生成出了和 Netflix 类似的结果。他甚至给出了公式:地区 + 形容词 + 类型 + 故事基础 + 拍摄地 + 时代 + 关于(什么的内容)+ 适合年龄段(Region… + Adjectives… + Noun Genre… + Based On… + Set In… + From the… + About… + For Age X to Y)。

但看到这里,我们只是看到了 Netflix 解构好莱坞的结果,那么这一切是从哪里开始的呢?

2006 年,Netflix 产品副总裁 Todd Yellin 带领一票工程师用数月时间写了一份长达 24 页的名为《Netflix 量子论》(Netflix Quantum Theory)的文档。专门讲述如何用 “微标签”(microtag)拆解电影。

这份文档的目的是作为训练手册,让不同的人对微标签有同样的理解,以保证能够系统性地、标准统一地解构上千部电影。如今这份手册已经扩展到了 36 页。

这份 36 页的训练手册讲述了如何给一部影片的性暗示内容、血腥程度、浪漫等级、甚至情节总结等元素评级。文档还解释了如何给影片结局打标签、给主要演员的 “社会接受度” 打标签、给每部影片的浪漫程度打标签,更重要的是,每个标签都有从 1 到 5 的评级。

以《超胆侠》电影为例,标签会包括 “四个主要角色”,至于其中 Matt Murdock 这个角色,会有演员名、角色名、他很 “英雄”(heroic)、是个律师等等。

Netflix 就是用这样的方式,解构了几乎所有的电影,用精细、准确的微标签和评级教会推荐系统去认识电影、解读电影。

更令人称道的是,给 Netflix 打标签真的是一份工作。Netflix 组建了一只团队,付钱让他们看电影同时给这些电影打上标签。有好事的媒体采访到了一位 “标签员”(tagger),让他讲述给 Netflix 打标签是一种什么样的体验,十分有意思。

三、解构用户

2012 年前后,Netflix 的推荐系统经历了一次重大的策略变化,官方技术博客以名为 <Netflix Recommendations: Beyond the 5 stars> 的文章(分为 1、2 两部分)阐述了这种变化的前因后果:

在邮寄租赁 DVD 的时代,Netflix 能够获得用户的评分,但是用户观看电影的过程对平台是隐形的。但是随着流媒体业务的开展,Netflix 终于有机会看到用户的更多方面。于是他们认识到:

“Everything is a Recommendation.”——一切都是推荐。

由这一想法催生出的,是更加细致、深入的用户推荐。

Netflix 的官方文档中把自己称为 “幸运”,因为他们有大量的相关数据和能够把这些数据应用到产品中的人才。

以下是 Netflix 用来优化推荐系统的数据源:

数以百万计的用户评分数据(tagins),而且每天还在以百万量级增长;
作为算法基准线的项目热度(item popularity);
包含时长、时间、设备类型的数百万播放数据(stream plays);
用户每天会想自己的列表(queue)中添加数百万项目;
每个项目下丰富的元数据(metadata);
每个项目的展示位置(presentation)和效果;
用户的社交数据(social);
百万级的用户搜索数据(search terms);
来自外部(external data)的票房或影评数据;
当然,实际上用到的数据还远不止这些。
除了和影片相关的数据外,用户数据是 Netflix 推荐系统的另一重要基石。

转型流媒体后,用户的所有行为全部在平台内完成,这给了 Netflix 观察用户的绝佳环境,他们不仅仅知道用户看过什么,甚至知道他们是怎么看的:什么时候看的,看了多长时间,在哪里暂停,在哪里反复,在哪里关闭等等,这些行为数据无一不是用户喜好的体现。

通过分析这些行为数据,和解构好莱坞得来的影片数据进行匹配,让 Netflix 的推荐精度越发准确。

四、推荐新姿势:个性化海报推荐

去年 Netflix 推出了一项新的推荐功能:个性化海报推荐,具体来说就是 “不同的用户看到的同一个电影的推荐海报是不一样的”。如果你喜欢动作戏,则可能你看到的海报是片中的打斗场面,如果你喜欢片中某个主演,那么你看到的是以他为主角的海报。

这一功能的源头同样是对电影内容和用户喜好的解读。认为地去创造更多的 “一见钟情”,进一步提高了推荐系统的效率。

五、Netflix 的自省

  1. 从官方文档透露中的信息来看,长久以来 Netflix 虽然对算法十分依赖,但也意识到它的不足,这种不足可能是所有的算法都躲不开的——“越推荐越相似”。因此 Netflix 的算法中十分关注 “不同”(adversity)。新奇、多样性、新鲜度,都是推荐中考虑的因素。尽力帮用户去 “发现” 兴趣,这也是 Netflix 的推荐目标之一。
  2. 关于前边提到的个性化海报推荐,官方特别地说明了对它的担忧:不希望它变成 “骗” 用户看电影的功能,也就是说要尽力把这个功能控制在一个度里,说白了就是不“标题党”,为了让用户去看某个电影而强行用海报勾引他。
    ————————————————
    版权声明:本文为CSDN博主「小晓酱手记」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/sinat_26811377/article/details/98760923