You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于Vowpal Wabbit上下文老虎机ε-贪心探索机制的技术问询

上下文老虎机ε-贪心机制实现疑问解答

问题描述

我正在为网站用户构建上下文老虎机来推荐动作,动作会随用户上下文动态调整(比如不会给已注册用户推荐注册),因此使用了Vowpal Wabbit的--cb_explore_adf模型,代码如下:

vw = Workspace(f"--cb_explore_adf --cb_type mtr -q PA --quiet --epsilon 0.3")

预测数据点示例:

shared |Page pageViewCount:1 videoViewCount:5 language=en user_nation=US page_section=sports time_on_site:3.467392051674073
|Action a=create_oid
|Action a=recommend_content
|Action a=favorites
|Action a=download_app
|Action a=do_nothing
|Action a=survey

模型预测输出为:

[0.03333333507180214, 0.03333333507180214, 0.8333333730697632, 0.03333333507180214, 0.03333333507180214, 0.03333333507180214]

我疑惑ε-贪心的探索部分如何实现:如果选择利用(exploitation)会选第3个动作,但不清楚怎么基于输出应用该机制,也就是70%选最优动作、30%进行探索。

解答

ε-贪心在Vowpal Wabbit中的核心逻辑

当你设置--epsilon 0.3时,模型已经将ε-贪心规则融合到输出的概率分布中,不需要手动拆分70%和30%的概率:

  • 70%概率(1-ε):直接选中模型判定的最优动作(即输出概率最高的第3个favorites动作),这是利用阶段,目的是最大化当前推荐的收益。
  • 30%概率(ε):从所有6个动作中均匀随机选择一个(也可能选中最优动作),这是探索阶段,目的是发现潜在更优的动作。

基于输出概率的动作选择方法

你看到的输出数组是每个动作的被选中概率,直接基于这个概率分布做随机抽样就能实现ε-贪心策略:

  1. 先计算概率的累积分布:
    • 第1个动作:0~0.0333
    • 第2个动作:0.0333~0.0666
    • 第3个动作:0.0666~0.9(0.0666+0.8333≈0.9)
    • 第4个动作:0.9~0.9333
    • 第5个动作:0.9333~0.9666
    • 第6个动作:0.9666~1.0
  2. 生成一个0到1之间的随机数
  3. 找到随机数落在的区间,对应的动作就是最终要推荐的动作

这样抽样的结果完全符合ε-贪心的规则:70%的概率选中最优动作,30%的概率探索其他动作(包括小概率重复选中最优动作)。

关于输出概率数值的说明

你的例子中最优动作概率约为0.8333,其他动作约为0.0333,这是模型本身判定第3个动作是绝对最优(基础得分权重为1),再叠加ε-贪心规则后的结果。即使概率数值看起来和理论计算有差异,核心逻辑不变——基于该分布抽样即可实现设定的ε-贪心策略。

内容的提问来源于stack exchange,提问作者Cris Pineda

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 11:22:50