我们有一个点击模型,目前用于生产中的搜索排名,我想创建一个新模型,它将旧模型的点击概率作为一个输入,并添加一些其他变量。问题在于,由于点击概率与旧模型的预测相关,因此训练数据的位置会出现偏差。
我的计划是在原始模型的预测中引入一个惩罚因子,以确保它不会主导新模型(观察结果以决定适当的惩罚因子)。这种方法有效还是有更好的方法来解决这个问题?
请注意,我不想用新变量重建旧模型,因为
- 现有模型需要很长时间(几天)才能构建
- 新旧模型分开部署,即老模型离线/批量评分,新模型实时评分
我们有一个点击模型,目前用于生产中的搜索排名,我想创建一个新模型,它将旧模型的点击概率作为一个输入,并添加一些其他变量。问题在于,由于点击概率与旧模型的预测相关,因此训练数据的位置会出现偏差。
我的计划是在原始模型的预测中引入一个惩罚因子,以确保它不会主导新模型(观察结果以决定适当的惩罚因子)。这种方法有效还是有更好的方法来解决这个问题?
请注意,我不想用新变量重建旧模型,因为
问题在于,由于点击概率与旧模型的预测相关,因此训练数据的位置会出现偏差。
应该是您的许多输入变量以某种方式与输出相关,否则您的模型将无法工作。这里的主要区别是您期望单个特征具有很强的相关性。这不是问题——您可以将其视为特征工程的一种复杂形式。
您实际上是将旧模型与一些您希望具有预测性的新变量叠加在一起。在这种情况下,您可能应该包含所有现有/旧变量,以便新模型更容易发现旧模型所犯的错误。
我的计划是在原始模型的预测上引入一个惩罚因子,以确保它不会主导新模型
我怀疑这会有用。然而,评估这个计划的正确方法是尝试它并与更简单的版本相比测量性能,而不会受到任何惩罚。
这在一定程度上取决于用例,但您也可以独立创建第二个模型,然后使用第三个模型将它们组合起来。这样做的好处是两个模型之间应该没有泄漏(如果变量是独立的),您可以以非常可控的方式合并它们。
我不清楚的是,从无法在同一上下文中使用的模型中获取输入会有什么优势。(离线与实时)
如果您想将它们组合使用并将模型 A 作为 B 的输入,您需要猜测模型 A 的输出是什么。