真实面经题目 · 原创解析

Thompson Sampling 和 UCB 在推荐探索中分别适用什么场景,CTR 预估模型如何配合?

这道题考察推荐场景里的探索利用权衡。回答要以 Thompson Sampling 和 UCB 的选择为主轴,把 CTR 预估模型放在奖励估计、特征表征和不确定性建模的位置,而不是展开成 CTR 模型百科。

出现于:美团 · 算法

60 秒回答模板

我会先把问题定义成推荐 bandit 探索:系统既要利用当前 CTR 或综合收益预估高的 item,也要给不确定但可能有潜力的新内容、长尾内容或新人群匹配结果适量流量。UCB 是乐观原则,用预估均值加置信上界奖励不确定的候选,适合置信区间可解释、探索强度需要明确控制、候选和统计量相对稳定的推荐场景。Thompson Sampling 是从后验分布采样,每轮按采样值排序,天然支持随机化,适合反馈连续到来、候选变化快、个性化臂很多或需要平滑分流的场景。CTR 模型负责给用户-候选对提供基础 reward 估计、特征表征和可能的不确定性来源;reward 可以按点击、停留、转化或综合收益定义,但要和推荐排序目标一致。bandit 层通常作为探索层或重排层叠加在主排序之后,上线时要有探索流量上限、候选质量门槛、propensity 日志、监控和 A/B 评估,避免为了探索牺牲过多短期体验。

考点 UCB
难度 真实面经题
回答目标 讲清原理、实现和边界

深入解析

01

先定义探索目标

推荐排序不能永远只展示当前模型认为最优的内容,否则新 item、长尾内容、新人群兴趣和冷启动匹配拿不到反馈。bandit 的目标是在利用已有 CTR 或综合收益预估的同时,给高不确定性候选适量曝光,逐步降低认知不确定性。

02

UCB 适合可控乐观探索

UCB 用均值估计加不确定性奖励做排序,常见形式是 reward_hat + alpha * confidence_bonus。它的优点是可解释、探索强度可调、对样本量和置信区间敏感,适合候选相对稳定、统计量可维护、希望明确控制探索幅度的推荐实验。缺点是置信区间估计不好时容易过度探索或探索不足。

03

Thompson Sampling 适合概率化分流

Thompson Sampling 从每个候选的后验分布采样,用采样 reward 做选择。它把不确定性自然转成被选中的概率,随机性更平滑,适合在线反馈持续到来、候选频繁变化、个性化臂很多或需要避免确定性规则造成流量集中时使用。核心难点是后验分布和先验要设计合理。

04

CTR 模型提供 reward 基座

CTR 预估模型可以给每个用户-候选对提供基础点击概率、特征表征或综合收益预估,bandit 不一定替代主排序模型,而是作为探索层、重排层或流量桶策略叠加。reward 可以按点击、停留、转化或综合收益定义,但必须和当前推荐排序目标一致,不能为了探索引入与目标不一致的反馈信号。

05

不确定性来自数据和模型

UCB 和 Thompson Sampling 都需要不确定性来源。简单场景可以用曝光次数、点击次数和 Beta-Bernoulli 后验;复杂场景可以用模型方差、bootstrap ensemble、样本新鲜度、item 冷启动程度或特征空间邻域统计。只给一个点估计 CTR 而没有不确定性,bandit 就很难真正探索。

06

上线评估要控风险

探索会影响用户体验和短期排序收益,因此需要设置探索流量比例、候选准入、质量底线和人群切片。评估不能只看整体 CTR,还要看停留、转化或综合收益、新内容冷启动速度、探索样本有效性、短期损失、反事实评估和 A/B 实验。日志要记录 propensity,方便后续无偏评估。

易错点

  • 把 Thompson Sampling 和 UCB 只当公式背诵,不说明适用场景和线上取舍。
  • 把 CTR 模型展开成模型清单,偏离探索策略如何配合 reward 估计这个问题。
  • 只用点估计 CTR 做 bandit,不建模样本量、方差或后验不确定性。
  • 忽略探索流量的业务风险,没有准入、限流、propensity 记录和 A/B 验证。

面试官追问

UCB 和 Thompson Sampling 的本质区别是什么?

UCB 是显式乐观,把不确定性作为 bonus 加到均值上;Thompson Sampling 是从后验采样,让不确定性通过被选概率体现。

CTR 模型已经能排序,为什么还需要 bandit?

CTR 模型更多利用历史数据,容易让新候选和少曝光候选没有学习机会。bandit 给不确定候选受控流量,帮助获得反馈并减少长期偏差。

推荐探索的 reward 一定是 CTR 吗?

不一定。可以是点击、停留、转化或综合收益。关键是 reward 定义要和推荐排序目标一致,并兼顾用户体验,否则探索学到的偏好会和主链路目标冲突。

如何防止探索伤害线上效果?

设置探索桶、候选质量门槛、流量上限和实时监控;先小流量 A/B,再根据收益、体验和学习效率逐步放量。