返回 Papers
AI 底层逻辑 / 经典论文

Contextual Bandits:LinUCB、Thompson Sampling 与在线学习

Contextual bandit 是“带上下文的自适应决策实验”: 系统根据用户、场景和业务状态选择动作,只观察被选择动作的反馈,并在探索新动作与利用当前最佳动作之间持续权衡。

215ai-foundations/papers/51-contextual-bandits-linucb-thompson-online-learning.md

Contextual Bandits / LinUCB / Thompson Sampling 解读

核心问题: A/B 测试把流量固定分给几个方案,推荐系统按历史相关性排序;但金融零售的 offer、next-best-action、渠道路由、催收触达和客服分流需要在真实反馈中持续学习,同时控制探索风险。


Source Anchors

SourceLink用途
LinUCB / Personalized News Recommendationhttps://arxiv.org/abs/1003.0146理解把个性化内容推荐建模为 contextual bandit,以及 LinUCB 的探索/利用机制
Vowpal Wabbit Contextual Banditshttps://vowpalwabbit.org/docs/vowpal_wabbit/python/latest/tutorials/python_Contextual_bandits_and_Vowpal_Wabbit.html参考 contextual bandit 的工程数据格式、action、cost/reward、probability logging
Microsoft SynapseML Vowpal Wabbit CBhttps://microsoft.github.io/SynapseML/docs/Explore%20Algorithms/Vowpal%20Wabbit/Contextual%20Bandits/参考大规模上下文 bandit 与反事实评估工作流
NIST AI RMFhttps://www.nist.gov/itl/ai-risk-management-framework把 adaptive decisioning 纳入风险识别、度量、治理和持续监控

核心导读

Contextual bandit 是“带上下文的自适应决策实验”: 系统根据用户、场景和业务状态选择动作,只观察被选择动作的反馈,并在探索新动作与利用当前最佳动作之间持续权衡。

它比传统 A/B 更动态,比完整强化学习更可控。生产价值不在算法名字,而在 action catalog、eligibility policy、exploration budget、propensity logging、offline policy evaluation、guardrail、reward attribution 和回滚机制是否完整。

问题定义

传统 A/B 测试回答:

哪个方案平均更好?

Contextual bandit 回答:

在这个上下文中,现在应该尝试哪个动作,
同时如何保留学习能力并限制探索风险?

金融零售常见动作:

场景ContextActionReward
信用卡 offer客户画像、消费、风险等级、渠道偏好返现、免息、积分、无 offer增量消费、风险调整收益、投诉成本
催收触达逾期阶段、历史响应、联系偏好、投诉风险短信、电话、App、宽限、人工回款、投诉、成本、复逾
客服路由问题类型、客户等级、情绪、队列状态机器人、人工、专家队列、回拨解决率、AHT、SLA、满意度
欺诈干预风险分数、金额、设备、商户、历史放行、强认证、人工、拒绝避免损失、误拦成本、客户摩擦
零售促销门店、SKU、库存、价格、天气、节假日折扣、捆绑、陈列、无动作毛利、库存周转、缺货风险

核心边界是: 哪些动作可以探索,哪些人群不能探索,哪些 reward 不能单独优化。

核心原理

Multi-armed bandit 的基础问题:

每次从多个动作中选一个,只看到被选动作的 reward,
长期目标是最大化累计 reward。

Contextual bandit 加入上下文:

observe context x
choose action a
observe reward r(a)
update policy pi(a | x)

与监督学习的差异:

维度监督学习Contextual Bandit
标签通常有完整标签只观察被选择动作的反馈
数据来源静态历史数据由策略本身生成
核心风险过拟合、偏差探索风险、选择偏差、反事实缺失
评估方式train/test splitcounterfactual / off-policy evaluation
产品形态预测或排序自适应动作选择

基本策略:

策略机制适用边界
Epsilon-Greedy大多数时候选当前最佳,少数时候随机探索低风险动作、快速 baseline、早期探索
LinUCBestimated reward + uncertainty bonus线性特征结构较强、需要可解释探索分数
Thompson Sampling从后验分布抽样,按抽样后的最优动作执行需要更自然的不确定性驱动探索

LinUCB 的产品含义是“不确定但可能有价值的动作获得探索机会”;Thompson Sampling 的含义是“探索概率随后验不确定性自然变化”。两者都比固定 epsilon 更重视不确定性结构。

系统/架构模型

Bandit decision architecture:

context service
  -> action catalog
  -> eligibility and policy guardrail
  -> exploration budget manager
  -> bandit policy service
  -> action execution
  -> reward attribution
  -> counterfactual log store
  -> offline policy evaluation
  -> policy review and rollout

关键组件:

组件职责
Context service只提供当时可用、权限允许、可审计的上下文
Action catalog定义动作、成本、风险、适用人群、禁用条件和副作用
Eligibility policy在 bandit 前排除不合规、高伤害或不可用动作
Exploration budget控制探索比例、人群、时间窗、渠道和风险边界
Policy service执行 LinUCB、Thompson Sampling 或其他策略
Guardrail拦截不公平、越权、高投诉、高摩擦或超预算动作
Reward service管理延迟 reward、归因窗口、多目标 reward 和惩罚
OPE lab用 IPS、DR、replay 等方法评估候选策略
Review workflow审核策略变更、异常、回滚、人群影响和证据

关键机制与取舍

取舍判断方式
A/B vs BanditA/B 适合固定方案平均效果,bandit 适合持续个性化和探索
Bandit vs Reinforcement LearningBandit 不建模长期状态转移,更简单可控;RL 适合长期序列决策但治理复杂
探索收益 vs 客户伤害高摩擦、高风险动作应禁探或只在受控人群探索
短期 reward vs 长期价值点击、接受率不能单独优化,要纳入投诉、坏账、流失和公平性
全局策略 vs 分层策略客群、渠道、地区、风险等级不同,探索预算应分层
快速学习 vs 稳定运营策略频繁变化会造成运营不可解释,需要 cadence、版本和回滚

Bandit 的最大工程要求是 propensity logging。每次决策必须记录当时选择该动作的概率,否则后续很难评估“如果当时用新策略会怎样”。

最低日志:

字段说明
event_id决策事件
timestamp决策时间
context_snapshot当时可用上下文
available_actions当时可选动作集合
chosen_action实际选择动作
action_probability该动作被当前策略选中的概率
reward_observed观测到的结果
reward_delayreward 延迟
policy_version策略版本
guardrail_result风险、合规、公平性检查结果

证据与控制

Offline Policy Evaluation 用历史日志估计新策略效果:

方法核心思想风险
Inverse Propensity Scoring用选择概率修正历史样本偏差高方差,低概率样本权重大
Self-Normalized IPS对 IPS 权重归一化可能引入偏差
Doubly Robust结合 reward model 和 IPSreward model 和 propensity 都要治理
Replay evaluation只在新旧策略选择一致时计入数据利用率低

上线门禁:

  • 日志必须包含 propensity、available actions、policy version 和 reward attribution。
  • 新策略不能大幅超出历史支持范围。
  • OPE 必须按客群、渠道、地区、风险等级、产品线分层。
  • 不能只看平均 reward,还要看投诉、误伤、公平性、长期价值和运营容量。
  • 探索预算、禁探人群、kill switch 和 rollback criteria 必须先定义。

高风险控制:

风险控制
Consumer harmaction risk tier、禁探人群、人工审批
Fairness drift分层监控、最低服务保障、公平性 guardrail
Reward hacking多目标 reward、惩罚项、长期 holdout
Feedback delayreward maturity window、延迟结果重估
Selection biaspropensity logging、强制小预算探索
Policy instability版本、cadence、change log、rollback

AI产品/金融零售场景

Adaptive Offer

Offer 动作必须包含成本、风险、适用条件、客户保护限制和禁止人群。Reward 不能只是接受率,应是风险调整收益,扣除投诉、坏账、补贴成本和长期价值损失。探索预算应按客群和渠道分层。

催收 Next-Best-Action

动作包括短信、电话、App、宽限、人工。高投诉风险、脆弱客户或法定联系限制人群不应进入自由探索。Reward 要延迟成熟,不能用当天回款直接代表长期效果。

客服路由

Bandit 可以在机器人、人工、专家队列、回拨之间学习路由策略。Guardrail 应覆盖 SLA、复杂客户满意度、重复来电、升级率和人工队列负载。

欺诈干预

放行、强认证、人工和拒绝是高风险动作。这里 bandit 只能在严格 policy guardrail 内工作,且 reward 要同时计算避免损失、误拦成本、客户摩擦和投诉。

反模式

  • 把 bandit 当作“更聪明的推荐模型”,没有探索预算和反事实日志。
  • 不记录 action_probability,导致无法做可靠 OPE。
  • Reward 只看短期点击、接受或回款,忽略投诉、坏账、流失和公平性。
  • 对所有人群、所有动作使用同一探索策略。
  • 让高风险动作自由探索,缺少 eligibility policy 和禁探人群。
  • 新策略直接全量上线,没有 IPS、DR、replay 或小流量 ramp。
  • 策略版本频繁变化但没有 change log、监控和回滚。

最终心智模型

Contextual bandit 是受控探索的决策系统,不是静态预测模型。它的核心资产不是算法参数,而是完整的决策日志: 当时有哪些上下文、哪些动作可选、为什么选了这个动作、选择概率是多少、后来得到了什么 reward。

判断一个 bandit 系统是否成熟,只看三件事: 探索是否被风险边界约束,日志是否足以做反事实评估,reward 是否代表长期净价值而不是短期行为。满足这三点,bandit 才能从实验技巧变成金融零售中的自适应决策架构。


SOTA 状态标注 (2026-07-01)

本篇属于第二、三遍深读池(参考架构/深读笔记),未列入 12 周主线必读。时效基线为写作时点;引用前请按 CLAUDE.md 全局时效性硬规则复查最新进展。模块级 SOTA 对照见 docs/AI_SYSTEMATIC_LEARNING_ROADMAP_2026.md 各周「2026 SOTA 对照」行与文末「SOTA 检查」。