一句话定义:Thompson Sampling(汤普森采样,也叫后验采样)是一种解决“探索与利用”权衡的算法——它给每个候选策略维护一个“效果有多好”的概率分布,每次做决策时,按这些分布随机抽一个策略来执行。
原理,用挑面馆打个比方。楼下有三家面馆,你不知道哪家好吃。你心里对每家都有个模糊判断:A 家口碑稳,大概不错;B 家只去过一次,说不好;C 家去过很多次,基本确定不行。Thompson Sampling 的做法是:每次吃饭前,让每家“按自己当前的不确定性掷一次骰子”——A 家因为数据多,掷出的分数集中在高位;B 家数据少,分数可能很高也可能很低;C 家数据多且差,分数基本都很低。你选掷得最高的那家去吃,吃完再更新判断。
形式化一点:当奖励是“点击/没点击”这类二值结果时,常用 Beta 分布表示每个选项的后验(posterior),成功一次就把参数 α 加 1,失败一次把 β 加 1;决策时从每个 Beta 分布各采样一个值,选最大的那个执行。
为什么常比 ε-greedy 高效。ε-greedy 是“以 ε 的概率完全随机挑一个,其余时间选当前最好的”。它的问题在于探索时平均用力:一个已经被大量数据证明很差的选项,和一个只是数据不足的新选项,被随机抽中的机会一样。Thompson Sampling 的探索量由不确定性自动决定——不确定的选项分布宽,偶尔会抽出很高的值从而被尝试;确定的差选项分布窄,几乎抽不出高分,自然被冷落。数据越多,采样越接近真实均值,探索自动收敛。不用手调 ε,也不会把预算浪费在明显没希望的选项上。
和相邻概念的区别
| 方法 | 每次怎么选 | 是否建模不确定性 | 主要参数 |
|---|---|---|---|
| 纯贪心 greedy | 选当前平均表现最好的 | 否 | 无 |
| ε-greedy | 以 ε 概率随机选,否则选最好 | 否 | ε |
| UCB(上置信界) | 选“均值 + 不确定性”最高的 | 是 | 置信系数 |
| Thompson Sampling | 按后验分布各抽一个样本,选最大 | 是 | 先验 |
UCB 是乐观地给不确定的选项加分,Thompson Sampling 是随机地给它们机会,目标相近、风格不同。
对从业者的意义:A/B 测试、推荐冷启动、广告创意分配、模型或提示词路由、超参数搜索都能用。它让流量更快集中到更好的版本,减少试错成本;实现上只需采样和计数,很轻。要注意两点:反馈有延迟时,结果没回来之前不能更新分布;环境非平稳(用户口味会变)时,要给旧数据打折或用滑动窗口。
对普通人的意义:你被分到的实验版本、刷到的推荐位,背后可能就在用类似逻辑“边试边学”——先小范围试,再逐步偏向表现好的方案,而不是死守最初设定的分流比例。
至于先验怎么设、参数怎么调,各家实现不同,以官方文档为准。
