背景
Netflix 的推荐功能依靠协同过滤(collaborative filtering):用大量用户对电影的评分,推断某个人可能给一部片子打几分。它自家的算法叫 Cinematch,也就是所有参赛者要打败的基准 [1]。2006 年 10 月,Netflix 公开了一份包含 1 亿条匿名电影评分的数据集,并向数据挖掘、机器学习和计算机科学界发出挑战,请他们做出比 Cinematch 更准的算法 [2]。Netflix 推荐系统副总裁 Jim Bennett 在公布比赛时表示,这次放出的 1 亿条评分来自约 50 万名订阅用户,个人信息已经去除 [3]。一份标注日期为 2006 年 10 月 2 日的公告写明:第一个达到准确率目标的个人或团队可获 100 万美元,详情见 www.netflixprize.com [4]。
数据
评分来自 48 万多名随机抽取的匿名订阅用户,覆盖近 1.8 万部电影,采集时间为 1998 年 10 月至 2005 年 12 月;其中最近产生的 300 多万条评分被抽出,作为评测集(qualifying set)[2]。具体数字是:训练集包含 480,189 名用户给 17,770 部电影打出的 100,480,507 条评分 [1];评测集共 2,817,131 条三元组,分为用于排行榜成绩的 quiz 集(1,408,342 条)和用于判定胜负的 test 集(1,408,789 条)[1]。
怎么比
参赛者要预测那 300 多万条被藏起来的评分。其中固定但不公开的一半(quiz 集)会立刻算出误差并公布在排行榜上,未公开的另一半(test 集)用来决定获奖者 [2]。成绩用均方根误差(root mean squared error,RMSE)衡量:在 quiz 集上,一个最简单的算法得 1.0540,Cinematch 得 0.9514 [1]。
奖金规则
要拿 100 万美元大奖,必须在 Cinematch 的基础上再提高 10%,也就是在 test 集上把 RMSE 做到 0.8572 [1]。在大奖无人拿走的年份里,每年向当时成绩最好的一支队伍颁发 5 万美元的进度奖 [1];NBC News 的报道也提到,如果没有最终赢家,Netflix 将每年向朝目标进步最大的人支付 5 万美元 [3]。各类奖项的获得者被要求公开记录并发表自己的方法 [2]。
参赛规模
到 2007 年 6 月,已有来自 152 个以上国家的 2 万多支队伍报名,2 千支队伍提交过预测结果,超过 650 支队伍的准确率已经超过 Cinematch [2]。超过基准因此并不罕见;真正难的是走满那 10%,直到比赛最后一次颁奖,才有人达到 [1]。
结果
2009 年 9 月 21 日,100 万美元大奖颁给了 BellKor's Pragmatic Chaos 队,其成绩比 Netflix 自己的算法好 10.06% [1]。这场竞赛从 2006 年一直办到 2009 年 [1]。
影响
它把公司内部的一个工程问题变成了公开的基准测试:数据、指标和排行榜对所有人一样,所以风格迥异的方法可以放在同一把尺子上直接比较 [1][2]。获奖者必须公开自己的方法,这一条让结果不只留在 Netflix 内部,而是进入推荐系统研究的公共记录 [2]。对参与者来说,1 亿条评分还提供了一个共同的试验场,让成千上万支队伍在同一个预测任务上工作 [2]。
来源
- 1Netflix PrizeWikipedia
- 2
- 3Netflix offers film recommendation prizeNBC News / Associated Press
- 4
引用本页: Netflix Prize 推荐算法竞赛(2006-2009). TellWorld, https://www.tellworld.net/zh/news/netflix-prize-2006. 更新于 2026-11-07