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) 数十倍提升
移动端核心收益 显著正向

最关键的不是绝对值,而是证明了语义匹配在商业广告系统中是可行的,为后续深度学习召回铺平了道路。