专业书籍精读 · ML System Design Interview · 第 6 章

视频推荐系统:你以为难在猜得准,其实难在来不及

Machine Learning System Design Interview · Ch 6 · Ali Aminian & Alex Xu · 2023

EN →

这一章讲什么?

你打开一个视频网站,首页大约给你二十个视频。你可能以为背后是「一台很懂你的机器,从全部视频里挑出你最想看的那二十个」。这一章会告诉你,真正的难题不是挑得准,是根本来不及挑。

先打个比方

想象一座城里有十亿家餐馆,你饿了,站在门口,要在眨眼的工夫里被告诉去哪家吃。

「把十亿家都尝一遍再排名」这条路从一开始就不存在——不是尝得不准,是时间根本不够。所以真实的做法是分两道工序:先用一个极快、有点粗糙的办法圈出几百家「大致靠谱」的,再用一个又慢又讲究的办法在这几百家里认真排名。这一章几乎所有设计,都长自这笔时间账。

旧世界为什么难

在分两道工序之前,先要回答「凭什么觉得你喜欢」。老办法有两条,各有各的死法。

所以真实系统两条都用:第二条负责发现,第一条负责兜底。

核心机制:它是怎么做到「来得及」的

关键在一个提前量。系统提前给每个视频算好一串「方位」,意思是它在一张巨大的兴趣地图上落在哪儿;也给每个人算一串,意思是你平时待在这张地图的哪一带。你一来,系统只做一件事:在地图上找离你近的那些点——像找附近的餐馆,不需要把全城都量一遍距离。

这一步只求「大致不漏」,圈出一千来个。接着才轮到那个慢而讲究的模型认真排一遍。最后还有一道复审:这条在你的国家不让播、这条太旧、这两条其实是同一个内容、这二十条全来自同一个博主——都在这一步拿掉。

该怎么看这套做法

值得记住的是每一层追求的东西不一样。第一层追「别漏」——它漏掉的,后面再精的排名也救不回来;第二层追「排得对」;第三层管的是那些没法写进模型里的规矩:合规、新鲜、别重复、别太单调。把这三件事混在一层里做,是新手最常犯的错。

这套做法的代价

系统只能从「它推过的东西」里学习——你没被推到过的视频,它永远不知道你会不会喜欢,于是越推越像它昨天以为的你。

一句话记住

推荐系统的形状不是被「怎样更聪明」决定的,是被一笔时间账决定的:十亿量级的候选、不到一眨眼的预算,逼出了「粗筛 — 精排 — 复审」这三道工序。而它最深的毛病也来自这个形状——它只能从自己推过的东西里学到东西。

想进到具体机制、记号和示意图? → 切到精读版