ThyrixYang/es_dfm

关于主模型和样本权重估计模型的区别

archernero opened this issue · 4 comments

大佬您好,阅读了代码之后,有些地方没有搞清楚,还请您帮忙解答下小弟的疑惑。

  1. 主模型 就是原本的网络,比如预测CVR
  2. 样本权重预估模型,输出tn 和 dp
    这里是分成两部来使用,比如使用第一个月数据,进行充分数据归因,得到样本最终是否转化的label,还有是否是一个延迟样本(这里都是离线数据,绝对准确的label),来训练模型2,这时候对于一个样本会不会延迟,已经用模型2学习到了。
    第二步,训练主模型,这时候把离线已经训练好的,固化了的模型2权重拿过来,做infer,模型2此时不再训练,它的预估结果用来对主模型计算loss时候调整权重。

我的问题是:
(1)上面的陈述是不是正确,分了两个模型,模型二是离线使用完全正确样本训练的,之后固化住,用于帮助主模型训练。主模型训练完,线上只使用主模型预估。
(2)在不能使用分开训练两个模型的场景,比如没有办法离线准备一批完全正确的数据,用于提前训练好模型2。只能线上流式训练,但是可以知道,某个正样本之前是不是有负样本,就是知道当前正样本是不是延迟正样本。这种情况有没有合适的方案或者论文推荐?
感谢大佬不吝赐教

你的理解是对的。
模型2完全可以使用流式的方式进行更新,我们实际上线的时候也是流式更新的。就比如你可以在30天以后再根据真实label去流式更新模型2,这里的区别只是模型2更新的延迟更大,基本的流程是差不多的

感谢您的指点,我还参考到了这篇工作:https://github.com/ychen216/DEFUSE
看到es_dfm和 DEFUSE都有涉及到 pretrain阶段。在实际生产环境中, pretrain也可以不单独提前进行,线上联合训练即可?

@shichengcn 那个代码就是在我这个代码的基础上改了一下loss,实际生产环境应该也是类似的流式更新的方式