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

广告点击预测:你以为它在排序,其实它在报价

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

EN →

这一章讲什么?

你往下刷社交软件,每隔十几条内容会夹进来一条广告。这一章讲的就是:那一条是怎么被挑中的,为什么是这条、为什么是给你。

先说个怪事

你大概以为系统在做的事是「挑一条你最可能感兴趣的」。顺序确实要紧,但这里还有一层别的推荐场景没有的东西:钱按这个判断分。广告主按点击付费,平台要在「谁出价高」和「谁真会被点」之间算账。所以系统不能只说「这条比那条更可能被点」,它得说出一个准数。

天气预报是个好参照:如果你只想知道明天比后天更容易下雨,先后顺序就够了;可要是有人按降雨概率收保费,那「70%」就必须真的十次里下七次。广告就是后一种。

旧世界为什么难

系统手里的线索,绝大多数是一个个「标签」:你在哪座城、用什么手机、这条广告是谁投的、什么时段刷到的。单看每一条都很弱——「在上海」预测不了任何事。

真正有力的线索是组合:买过香蕉、又买过菜谱的人,更可能想要一台搅拌机。可一个把每条线索单独打个分再加起来的系统,永远看不见这种「合起来才成立」的信号。而组合的数量又大得离谱,几百条线索两两配对就是几万种,靠人一对对去挑,挑不完也挑不准。

核心机制:让机器自己去配对

办法是给每个标签发一张「名片」——一小串数字,机器自己学出来的。两张名片一碰,就得出一个「这两样凑在一起有多对味」的分。机器把所有两两组合都过一遍,哪些组合真管用由数据说了算,不用人事先指定。这是这一章的第一件事。

第二件事是补课的频率。广告池不像电影库——新广告每小时都在上,热点每天都在换。上周训好的判官,这周看到的东西有一半是它没见过的。所以它不是每周考一次试,而是边上班边补课:拿刚刚过去这段时间的曝光和点击,持续把自己往新情况上调。

第三件事,就是前面说的「说准数」。系统会拿历史核对:它说 2% 的那一批广告,实际点击率是不是真有 2%。不是就把整条刻度往回拧。这一步叫校准,不做的话,排序看着还挺对,账全是错的。

该怎么看这套做法

值得记住的是力气分在哪三处:怎么让机器自己找组合、多久补一次课、数字准不准。这一章八成的内容都落在这三件事上,模型本身反倒不是主角。

这套做法的代价

边上班边补课的判官会慢慢忘掉旧知识,而且一个学坏了的版本,几小时内就能铺到所有人面前——迭代快和爆炸半径大,是同一件事的两面。

一句话记住

广告点击预测和别的推荐最大的不同,是它的输出要拿去分钱。所以它既要把顺序排对,又要把数字说准,还要跟得上一个每小时都在变的市场——三件事缺一件,系统就开始默默地亏钱。

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