我们正试图以在线方式培训大众( VowpalWabbit )车型。然而,由于我们的系统架构和规模需要扩大,我们必须按批处理方式进行培训,并且不能在每次预测时进行在线更新。
我的问题是,在趋同方面,怎样才能最好地解决这个问题。有可能有一种特殊的模式来运行大众的这一点?
我们目前所做的工作:
Init模型:--cb_explore_adf -q UA -q UU --quiet --save_resume --bag 10 --epsilon 0.1
推论(单独):
action-distribution
随机预测->
培训(单独)(定期启动):
end-time=current-time)
shared |User device=device-1
|Action ad=article-1
1:0:1 |Action ad=article-2
|Action ad=article-3
|Action ad=article-4 这种方法有什么问题吗?我怀疑分批提供培训数据并对这些数据进行每个实例的更新并不是探索算法所期望的。在离线实验中,分批式训练与非批次式训练相比,往往显得稍差一些。
将编辑为学习时使用的概率,我们测试了模型在预测过程中生成的概率的使用情况,并且总是使用1.0 (在玩具游戏中,batch_size=500):
将预测概率用于培训:

总是使用1.0:

编辑2
添加另一个图形,比较使用预测概率的Vowpal Wabbit模型与使用1.0的概率进行训练的概率。顶部图:X轴:样本数,Y轴:总CTR (点击率基本上是总平均奖励).底部图:不同算法选择的动作直方图(1-3)。

图中比较了8个Vowpal Wabbit模型。4种模型,以1.0作为训练概率。4个模型采用预测概率。总是使用1.0似乎总是表现得更好。
图形学的其他解释:
该模型是在一个玩具问题的上下文算法竞争,其中上下文是一个上下文(6种不同的伪设备类型)与三个可能的动作(也称为变异)。现金转拨报告的情况如下:
problem_definition = {
"device-1": {"variant-1": 0.05, "variant-2": 0.06, "variant-3": 0.04}, # 2
"device-2": {"variant-1": 0.08, "variant-2": 0.07, "variant-3": 0.05}, # 1
"device-3": {"variant-1": 0.01, "variant-2": 0.04, "variant-3": 0.09}, # 3
"device-4": {"variant-1": 0.04, "variant-2": 0.04, "variant-3": 0.045}, # 3
"device-5": {"variant-1": 0.09, "variant-2": 0.01, "variant-3": 0.07}, # 1
"device-6": {"variant-1": 0.03, "variant-2": 0.09, "variant-3": 0.04} # 2
}玩具游戏的模拟逻辑:
def simulate(self, device, variant):
assert variant in self.action_space()
ctr = self.problem_definition[device][variant]
if random.random() < ctr:
reward = 1.0
else:
reward = 0.0
return reward 玩具游戏的目标是在设备类型的情况下选择CTR最高的动作。
关于如何格式化Vowpal Wabbit的培训示例的示例:
shared |User device=device-4
|Action ad=variant-1
|Action ad=variant-2
0:0.0:1.00 |Action ad=variant-3另一个,不使用静态1.0概率:
shared |User device=device-1
|Action ad=variant-1
0:0.0:0.93 |Action ad=variant-2
|Action ad=variant-3所有模型的初始化都是相同的:
--cb_explore_adf -q UA -q UU --quiet --save_resume --epsilon 0.100发布于 2021-09-01 20:33:51
您可以从记录的数据中批量进行培训,但是在培训期间使用的概率是不正确的。
当你进行推理时,你会得到一个概率列表,你必须从中取样来确定要玩的动作。这一行动将有一些相关的成本。
然后,当对每个记录的预测和结果进行培训时,您必须使用此操作所收到的成本,更重要的是,选择此操作的概率。这是与此操作相对应的概率列表中的值。
https://stackoverflow.com/questions/68922989
复制相似问题