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

活动推荐系统:商品会过期,于是冷启动成了常态

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

EN →

这一章讲什么?

你在一个卖门票的 App 上看到「这周末,你附近有这些活动」——一场脱口秀、一次徒步、一个市集。这一章讲的就是这一屏怎么排出来。它和推荐电影最大的不同在于:这些「商品」几天后就不存在了。

先说个怪事

推荐电影,像在一座常年开着的图书馆里荐书:书一直在架上,谁借过、谁读完了,记录越攒越厚。攒得越厚,机器越懂该把哪本递给谁。

推荐活动不是。它更像清晨的集市:今天的摊子今天摆、今晚就收。一场演出刚上架时没有任何人看过它;等它攒够足够多的人来证明自己受欢迎,它已经开场、甚至已经结束了。于是推荐系统最赖以为生的那句话——「和你口味像的人也去了」——在这里从根上说不出口。

旧世界为什么难

常见的推荐办法是「看别人」:和你差不多的人还看了什么。这套办法有个前提——东西活得够久,久到能被很多人试过。视频、商品、歌都满足;活动不满足。

结果是:只会「看别人」的系统,对绝大多数正在卖票的活动一无所知,能推的只有那一小撮已经火了的。新办的活动永远没机会被端到人面前——而平台每天新增的,恰恰全是这种。

核心机制:没有历史,那就看这件事本身

既然攒不到「谁去过」,那就换一套依据:把这个人、这件事、这个时刻的具体情况,一条一条问出来。离你家多远?开车还是走路能到?是周六下午还是周三深夜?你平时是不是这个时段出门?多少钱?你有几个朋友已经报名了?主办方你是不是关注过?

这一长串问题合起来就是一份「问卷」。系统拿上百万场历史活动的问卷和它们的真实结果去训练一个判官,让它学会看着一份新问卷就估出「这个人会报名的可能性」。它不认识这场活动,但它认得这份问卷的形状。就像你不认识街角新开的那家店,可一听「离你 800 米、做的是你常吃的菜、你三个朋友订了位」,心里已经有数了。

顺带一提,这里面最管用的常常不是内容有多匹配,而是朋友去不去——活动本来就是一件社交的事。

该怎么看这套做法

值得记住的是:这一章把力气从「挑一个更聪明的模型」挪到了「把问卷设计好」。问卷上少了「你几个朋友要去」那一栏,再高明的判官也补不回来。另外,因为集市每天换货,这个判官得天天回炉重学。

这套做法的代价

「朋友都去」是最强的信号,也是最强的偏心:它会把热闹的推得更热闹,而那些小众的、还没人知道的活动,更难被端出去。

一句话记住

活动推荐难的不是猜得准,是商品会过期。没有历史可学,就只能靠「此人、此事、此时此地」的具体情况来判断——所以这一章真正的主角不是模型,是那份问卷怎么问。

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