广告投放系统中的推荐模型集成策略 —— 字节跳动「赚钱机器」的算法逻辑

2 阅读3分钟

广告系统是字节跳动收入的核心,而背后的推荐系统远比 Feed 推荐更复杂。它既要“个性化”,也要“盈利最大化”,要兼顾点击率、转化率、出价、预算等因素。这就需要多个推荐模型协同工作,完成多目标优化 + 策略融合 + 实时反馈。本篇我们将复刻一个简化版“模型集成策略”,并分析字节实际投放平台中的架构设计。


🎯 一、广告推荐系统 VS 内容推荐系统

维度内容推荐广告推荐
核心目标留存、满意度收入、ROI
模型指标CTR、DwellTimeCTR、CVR、eCPM、ROAS
策略限制几乎无限曝光有预算、有频控、有投放期
实时性要求秒级更新毫秒级响应,强冷启动处理

广告推荐的“召回+排序”不仅关乎推荐,还决定了亿级营收的效率


🧠 二、字节跳动广告模型集成策略结构

![简化架构图-推荐模型融合逻辑]

候选广告池 → CTR模型  → eCPM计算
            → CVR模型
            → 出价模型
            → 多目标融合排序

eCPM(预估单位展示收益)计算公式:

eCPM = pCTR × pCVR × 价格 × 1000

推荐排序最终按 eCPM 降序,兼顾点击、转化与收入


🏗️ 三、实战:构建一个简化的推荐模型集成器(Node.js 版本)

假设我们有多个候选广告,需要综合多个模型输出评分结果:


1. 模拟候选广告数据

const ads = [
  { id: "ad1", pctr: 0.08, pcvr: 0.12, bid: 5.0 },
  { id: "ad2", pctr: 0.05, pcvr: 0.20, bid: 6.0 },
  { id: "ad3", pctr: 0.10, pcvr: 0.05, bid: 4.0 },
];

2. eCPM 计算模型融合策略

function calcECPM(ad) {
  return ad.pctr * ad.pcvr * ad.bid * 1000;
}

ads.forEach(ad => {
  ad.ecpm = calcECPM(ad);
});

const sorted = ads.sort((a, b) => b.ecpm - a.ecpm);
console.log("投放排序结果:", sorted);

3. 输出示例:

投放排序结果:
[
  { id: 'ad2', eCPM: 60 },
  { id: 'ad1', eCPM: 48 },
  { id: 'ad3', eCPM: 20 }
]

✅ 实际系统中,eCPM 还会结合分层出价、冷启动惩罚、预算约束、流量质量系数等多维因素


💡 四、字节实际策略中的集成细节

模型类型作用特点
pCTR 模型预估点击率多塔结构 + 兴趣长链建模(DIN/DSSM)
pCVR 模型预估转化率深度分类模型 + 特征交叉(DeepFM)
ROI 模型长期收益判断结合行为轨迹与用户生命周期
多目标融合模型eCPM + 转化 + 留存蒙特卡洛多目标调参 + 多策略集成
曝光控制模型频次与冷启动惩罚多轮投放节奏控制(如 pBid 曲线)

✍️ 五、总结与思考

  • 推荐系统不只是“谁适合谁”,广告推荐还涉及“谁更值钱”
  • 字节跳动通过模型协同,让点击、转化、投放收益、流量利用率最大化
  • 小型团队也可使用 pCTR + pCVR + bid 简单算出 eCPM,先跑出一个投放原型,再逐步融合更多模型

🎁 拓展推荐

  • DeepFM 模型结构详解
  • 字节跳动公开课:《广告排序系统中的多目标优化策略》
  • 美团技术团队:《多目标排序系统的设计与演进》