在 Vowpal Wabbit 中离线评估策略 + 探索的正确方法

Proper way to evaluate policy + exploration offline in Vowlpal Wabbit

我的用例是 retrain/make 在批处理模式下使用 VW CB 进行预测(retrain/inference 每晚发生)。

我正在阅读 this 批处理场景中的离线策略评估教程。我正在使用以下方法对记录的数据集进行训练:

--cb_adf --save_resume -f {MODEL_PATH} -d ./data/train.txt

为了调整批量预测的超参数 epsilon,我 运行 在单独的数据集上使用以下命令 3 次:

-i {MODEL_PATH} -t --cb_explore_adf --epsilon 0.1/0.2/0.3 -d ./data/eval.txt

给出最低平均损失的是最佳 epsilon。

我使用的选项是否正确?我的困惑主要来自另一个选项 --explore_eval--explore_evalcb_explore_adf 有什么区别,离线评估模型+探索的正确方法是什么?我应该 运行

--explore_eval --epsilon 0.1/0.2/0.3 -d ./data/train+eval.txt

并且平均损失最低的是最佳 epsilon。

-i {MODEL_PATH} -t --cb_explore_adf --epsilon 0.1/0.2/0.3 -d ./data/eval.txt

我预测这个实验的结果:最优的epsilon是最小的。这是因为收集了数据之后,就没有探索的价值了。为了评估探索,您必须以对探索算法敏感的方式更改训练中可用的数据。这将我们带到...

--explore_eval --epsilon 0.1/0.2/0.3 -d ./data/train+eval.txt

'--explore_eval' 旨在评估探索。它需要更多数据才能正常工作(因为如果探索不匹配它会丢弃数据)但允许您评估探索因为它模拟了 war.

的迷雾

如果您正在测试其他模型超参数,例如基础学习算法或交互,则不需要“--explore_eval”的额外数据开销。