从《纸牌屋》开始,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 Re