当前位置: 首页 > news >正文

深度学习篇---Contextual Bandit

想象你走进一家有两台老虎机的赌场,每次只能拉一台。之前你观察到,白天戴眼镜的年轻人玩 A 机赢得多,晚上戴帽子的老人玩 B 机赢得多。那么当你看到一个“戴眼镜的年轻人”在“白天”走近时,你会优先推荐哪台机器?这就是 Contextual Bandit 要解决的核心问题。

一、从老虎机到情境老虎机

先认识它的小伙伴:

  • Multi-Armed Bandit (MAB,多臂老虎机)
    就像你面对一排按钮,每个按钮的中奖概率固定但未知。你的目标是通过不断尝试,找到平均奖励最高的那个按钮。它只关心“哪个按钮整体最好”,不关心“谁在按”。

  • Contextual Bandit
    现在,每个玩家来的时候都带着自己的“身份证”(即情境,Context),比如年龄、性别、时间、天气等。系统观察到这个“身份证”后,再决定推荐哪个按钮。它认为最优选择是随情境变化的

一句话总结:Contextual Bandit 就是会“看人下菜碟”的老虎机。

二、核心运作机制:探索与利用的平衡

这是 Bandit 算法的永恒主题。

  • 利用:根据历史数据,给当前用户推荐已知的“最佳”选项,稳赚当前收益。

  • 探索:尝试那些还不确定的选项,牺牲眼前利益来采集数据,以便未来做出更准确的判断。

只看历史记录会错过潜在的好选项,一味乱试又损失了既得利益。Contextual Bandit 需要在两者之间动态平衡,目标是让长期累积的奖励最大化,把“遗憾”最小化。

三、如何计算:常用算法简介

算法需要学习一个函数,其输入是情境x和动作a,输出是预测奖励值。

  1. 线性模型 (Linear Bandits)
    假设奖励是情境和动作特征的线性组合。比如奖励 = A * 用户年龄 + B * 动作热度 + C。它用岭回归等方法来拟合,并利用“上置信界(UCB)”或“汤普森采样”等策略来平衡探索。

    • LinUCB:核心思想是“对不确定的选项保持乐观”。它为每个动作的预测奖励加上一个不确定性边界,如果某个动作的置信区间上限最高,就选它,鼓励了探索。

    • 汤普森采样:从每个动作奖励的“后验概率分布”中随机抽取一个值,然后选择抽取值最大的动作。简单的概率匹配,效果却很好。

  2. 非线性模型
    当关系复杂时,需要用模型来拟合。

    • 神经网络 + 探索策略:将模型最后一层线性输出的不确定性,套上 UCB 或汤普森采样。

    • 基于 Boosting 模型:比如用 XGBoost 计算预测值及其方差,再应用探索策略。

四、它和 A/B 测试、强化学习的区别

  • A/B 测试,但更“智能”
    传统 A/B 测试是流量均分,直到得出结论再全部切到赢家。Contextual Bandit 是实时动态调整流量,一边试一边就把大部分流量分给了表现更好的选项,可以大幅降低试错成本。

  • 强化学习,但更“短视”
    强化学习(RL)考虑长期影响,比如下围棋需要布局。Contextual Bandit 只关心眼前这一单的奖励优化,不考虑这一单对未来的影响。在反馈即时、状态转换独立的场景,它比 RL 更简单高效。

五、实际应用场景

  • 在线新闻推荐:根据用户画像和文章特征,从海量候选中实时优化点击率。

  • 广告投放优化:根据用户和页面情境,动态选择点击率或转化率最高的广告创意。

  • 临床药物试验:一种伦理的优化方法。根据患者状况(情境),将更多患者分配给看来更有效的治疗组。

  • UI 自适应:根据用户设备、历史行为等,动态调整网页布局或功能入口。

六、总结框图

它的核心思想可以概括为:针对具体情境,动态平衡探索与利用,来最大化累计收益的决策框架。

http://www.jsqmd.com/news/798407/

相关文章:

  • 终极FanControl风扇控制软件:从零配置到专业调校的完整指南
  • SAP资产会计核心日期全解:从资本化到报废的日期逻辑与实战
  • 别再手动改参数了!用Lumerical FDTD参数扫描,一键分析WO3薄膜厚度对反射率的影响
  • FanControl深度使用指南:从零基础到高级调校的完整解决方案
  • 嵌入式C开发避坑指南:用MISRA C:2012规则实战排查代码中的‘死代码’与‘未定义行为’
  • ZonyLrcToolsX:如何用开源工具批量获取音乐歌词和专辑封面
  • 从智能电表到充电桩:聊聊交流采样中‘GND接N’的取舍与隔离方案实战
  • JEB Pro 5.40 (macOS, Linux, Windows) - Android 反编译器和调试器
  • Python -- 并发编程
  • 从仿真到现实:UR3机械臂运动学C++代码如何适配你的真实机器人?
  • 2026年程序员转大模型,这10个必备技能,必须提前掌握
  • 科技晚报|2026年5月11日:AI 开始接手语音执行、机器支付和搜索分发入口
  • 克莱姆法则解方程真的实用吗?一个Python脚本帮你对比它与NumPy的linalg.solve
  • YOLOv11 改进 - 注意力机制 ECA (Efficient Channel Attention) 高效通道注意力:轻量级设计实现跨通道交互,增强特征表征能力
  • 2026免费照片去水印软件App排行榜:手机图片去水印怎么弄?实测推荐
  • 告别Arduino IDE:用Python玩转ESP8266,保姆级Micropython固件烧录与点灯实战
  • 避坑指南:STM32F407读写24C系列EEPROM,跨页写入数据丢失怎么办?
  • Unlock Music:免费解锁加密音乐文件的终极指南
  • 告别随机生成!用Keras实现CVAE,手把手教你控制AI画出指定数字
  • 科技早报晚报|2026年5月11日:AI 工具链开始从“能用”走向“可治理”,今天更值得二次开发的 3 个机会
  • NoSQL
  • 别再死记公式了!用Python手把手教你计算语义分割的mIOU(附混淆矩阵代码详解)
  • 别再死记硬背PPP模型了!手把手带你拆解UC、UD、UofC和SD四大误差处理模型
  • QMCDecode终极指南:3步解锁QQ音乐加密文件,让音乐自由播放!
  • 泰坦之旅终极仓库管理神器:TQVaultAE完整功能解析与实战指南
  • AI建站工具从0到1全流程保姆级攻略:零代码生成网站就这么简单
  • TlbbGmTool:从数据库小白到《天龙八部》单机版管理大师的蜕变之旅
  • 六、利用ESP32搭建网络服务器(二):从基础响应到动态网页
  • 仅限前500名领取|Midjourney Encaustic风格专属权重包(含custom style token、texture overlay layer及CMYK预校准LUT)
  • 3个核心技术实现Layerdivider智能图像分层工具