- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 VW 使用上下文强盗框架执行排名,特别是使用 --cb_explore_adf --softmax --lambda X
.选择 softmax 是因为,根据 VW 的文档:“这是一个不同的资源管理器,它不仅使用策略来预测 Action ,而且还预测了 分数,表明每个 Action 的质量。”这种质量-相关分数是我想用于排名的分数。
场景是这样的:我有一个项目列表 [A、B、C、D],我想按照最大化预定义指标(例如,点击率)的顺序对其进行排序。正如我所看到的,问题之一是我们无法单独评估项目,因为我们无法确定其中 item 使用户点击与否。
为了测试一些方法,我创建了一个虚拟数据集。作为尝试解决上述问题的一种方法,我使用整个有序列表作为评估是否发生点击的一种方式(例如,给定用户 X 的上下文,如果项目是 [C, A , B, D])。然后,我根据它们在列表中的位置分别奖励这些项目,即 reward = 1/P
对于 0 < P < len(list)。这里,C、A、B、D 的奖励分别为 1、0.5 和 0.25、0.125。如果没有点击,则所有项目的奖励为零。这背后的原因是,更重要的项目将稳定在顶部,而不太重要的项目将稳定在底部。
此外,我发现的困难之一是为这种方法定义采样函数。通常,我们只对选择一个选项感兴趣,但在这里我必须采样多次(示例中为 4)。因此,在对项目进行采样时我应该如何结合探索并不是很清楚。我有几个想法:
copy_pmf
.绘制一个介于 0 和 max(copy_pmf)
之间的随机数并且对于 copy_pmf
中的每个概率值, 增加 sum_prob
变量(与此处的教程非常相似: https://vowpalwabbit.org/tutorials/cb_simulation.html )。当sum_prob > draw
,我们将当前项目/概率添加到列表中。然后,我们从 copy_pmf
中删除这个概率, 设置 sum_prob = 0
,并在 0 和 max(copy_pmf)
之间再次绘制一个新数字(这可能会改变或不改变)。 max(pmf)
大于这个数字,我们就利用。如果不是,我们打乱列表并返回它(探索)。这种方法需要调整 lambda
参数,控制输出 pmf
(我见过最大概率 > 0.99 的情况,这意味着大约有 1% 的探索机会。我还看到最大概率为 ~0.5 的情况,即大约 50% 的探索。最佳答案
这听起来像是可以通过 conditional contextual bandits 解决的问题
对于您提到的演示场景,每个示例都应该有 4 个插槽。
在这种情况下,您可以使用任何探索算法,并且每个插槽都将独立完成。学习目标是所有槽的平均损失,但决策是从第一个槽到最后一个按顺序做出的,因此即使在这里二元奖励的情况下,您也可以有效地学习排名。
关于vowpalwabbit - 使用 Softmax Explorer (--cb_explore_adf) 在 VowpalWabbit 中进行排名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66260831/
我正在尝试使用 VW 使用上下文强盗框架执行排名,特别是使用 --cb_explore_adf --softmax --lambda X .选择 softmax 是因为,根据 VW 的文档:“这是一个
我是一名优秀的程序员,十分优秀!