我正在使用沃帕尔·瓦布比特的上下文匪徒对给定上下文的各种行为进行排序。
Train Data:
"1:10:0.1 | 123"
"2:9:0.1 | 123"
"3:8:0.1 | 123"
"4:7:0.1 | 123"
"5:6:0.1 | 123"
"6:5:0.1 | 123"
"7:4:0.1 | 123"
Test Data:
" | 123"现在,预期的行动排名应该是(从最小损失到最大损失):
7 6 5 4 3 2 1使用--cb只返回最优的操作:
7使用--cb_explore将返回要探索的操作的pdf格式,但它似乎无助于排名。
[0.0071428571827709675, 0.0071428571827709675, 0.0071428571827709675, 0.0071428571827709675, 0.0071428571827709675, 0.0071428571827709675, 0.9571428298950195]还有其他方法来利用大众的上下文强盗来排名吗?
发布于 2020-09-03 12:55:40
奥尔加对回购的回应:wabbit/issues/2555
-cb不做任何探索,只是在输入的情况下对模型进行培训,因此输出将是模型(到目前为止已经训练过的)预测的结果。 -cb_探查包括使用epsilon的勘探--如果没有指定其他内容,默认情况下是贪婪的。您可以在这里查看所有可用的勘探方法。 cb_探索者的输出是勘探策略给出的PMF (更多信息见这里)。 epsilon贪心者将在概率e的情况下,从均匀分布(探索)中随机选择一种行为,而在概率1-e epsilon贪婪的情况下,将使用迄今经过训练的模型来预测最佳行动(开发)。 因此,输出将是相对于操作的pmf (prob )。1-e或e表示所选动作),则剩余的概率将在其余操作之间平分。因此,cb_explore不会为您提供排名。 排名的一个选择是使用建行。然后你得到一个排名,可以提供对任何插槽的反馈,但它在计算上更昂贵。建行为每个时隙运行CB,但其效果是排名,因为每个时隙都是从整个操作池中提取的。
我的后续行动是:
如果计算限制允许的话,我认为建行是一个很好的选择。我只想补充一点,如果您做了cb_explore或cb_explore_adf,那么最终的PMF应该按照分数进行排序,所以它是排序的。然而,值得验证的是排序实际上是按分数排序的(
https://stackoverflow.com/questions/63635815
复制相似问题