2006 年,Netflix 拿出 100 万美元,悬赏能改进它电影推荐的人。不过,比赛评的不是推荐,评的是一个数。
Netflix 的系统叫 Cinematch,它预测会员会给一部电影打几颗星。比赛衡量的是这些预测的误差,即均方根误差,在一批不公开的评分上算。Cinematch 的误差是 0.9525。要拿大奖,得把它降到 0.8572 或更低,也就是改进 10%。Netflix 在规则里写,它估计 10%「相当难」,「可能要几个月,也可能要几年」。为了让比赛有意思,它每年再设一个 5 万美元的进步奖,奖给当年改进最多的队伍。
一年后,一支叫 Korbell 的队伍以 8.43% 的改进拿下第一个进步奖。他们说花了 2000 多小时,最后组合了 107 个算法。Netflix 挑出其中最好的两个,改造到能处理自己 50 多亿条评分的数据上,放进了正式系统。
最后那一段又走了两年。2009 年 7 月 26 日,比赛快结束时,两支队伍交上来的预测,在不公开的测试集上分数一模一样:误差 0.8567,改进 10.06%。排行榜上,BellKor’s Pragmatic Chaos 的提交时间是 18:18:28,The Ensemble 是 18:38:22。规则早就定好了平局怎么办:先收到的先评。用 Netflix 的话说,获胜的提交「离这场将近三年的比赛结束只差 24 分钟」。
2009 年 9 月 21 日,奖金在纽约颁出,获奖的是一个融合了数百个预测模型的组合。
2012 年 4 月,两位 Netflix 工程师在公司技术博客上讲了它后来的下落:「我们离线评估了其中一些新方法,但测出来多出的那点准确度,似乎不值得为了放进正式系统而投入那么多工程力气。」
业务也变了。比赛开始后一年,2007 年,Netflix 推出了流媒体。到 2012 年,会员是当场挑片,可以先试看几部,Netflix 也能看到一部片子是看完了还是只看了一半。工程师写道,公司的业务目标是会员满意度和逐月续订率。比赛当初需要的,是「一个更容易评估和量化的替代问题」。准确预测评分,用他们的话说,只是推荐系统「众多组成部分之一」。