SHOWS 数十倍增长 的背后:广告智能匹配的工程实践
这是我在广告系统触发召回方向的一个里程碑:一组策略优化让智能匹配的 SHOWS 增长了数十倍,点击量也同样大幅提升。
背景:精确匹配的瓶颈
传统关键词广告的匹配逻辑很简单:用户 query 分词 → 去广告词倒排索引求交 → 召回匹配的广告。
这个机制有两个致命问题:
1. 覆盖不足 广告主买 100 个词,能精确匹配的 query 可能只有 30 个。剩下 70 个 query 流量完全浪费。
2. 广告主也不知道买什么词 长尾词的量级远超任何人的枚举能力——几亿个 query,你不可能一个个买。
方案:从精确到语义
核心思路:不再要求 query 包含广告词,而是判断 query 和广告在语义上是否相关。
具体做法分三层:
Layer 1:Query 改写
用户搜:"北京朝阳区装修"
改写为:["北京装修", "朝阳区装修", "北京家装"]
→ 去倒排索引匹配这组改写词
改写用到了 query 点击历史 + 协同过滤——“搜 A 的人最后点了什么广告”。
Layer 2:广告词泛化
广告主买:"宝马3系"
泛化为:["宝马", "3系轿车", "宝马320", ...]
→ 这些泛化词都能被用户 query 匹配
泛化依赖广告的文本描述、落地页内容、历史点击分布。
Layer 3:向量化匹配
用训练好的浅层模型把 query 和广告词映射到同一个语义空间,直接用向量检索代替精确字符串匹配。
工程约束
所有匹配逻辑必须在 20ms 内完成(从请求到出候选),所以:
- Layer 1 和 Layer 2 在索引构建时离线完成
- Layer 3 需要在线推理,但只用浅层模型 + 近似近邻检索
- 缓存命中的 query 直接返回历史结果(命中率 ~60%)
效果
| 指标 | 提升 |
|---|---|
| 智能匹配曝光 (SHOWS) | 数十倍提升 |
| 智能匹配点击 (CLICKS) | 数十倍提升 |
| 移动端核心收益 | 显著正向 |
最关键的不是绝对值,而是证明了语义匹配在商业广告系统中是可行的,为后续深度学习召回铺平了道路。