ThyrixYang / es_dfm

Implementation and experimental comparison of ES-DFM (Yang et al. 2021), Delayed feedback model(DFM, Chapelle 2014), Feedback Shift Importance Weighting (FSIW) (Yasui et al. 2020), Fake Negative Weighted (FNW) (Ktena et al. 2019) and Fake Negative calibration(FNC) (Ktena et al. 2019)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

archernero opened this issue · 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,实际生产环境应该也是类似的流式更新的方式