← 上一篇 下一篇 →

第12周实习记录

6月30日

er建模

根据上周模型结果,在单个城市数据上对esmm模型进行测试,验证以er为监督信号的esmm模型和以可变学习参数cr和ecr为监督信号的esmm模型的效果。

  1. 原先的带正则的loss如下: $loss = 1/(2{a}^2)L_cr + 1/(2{b}^2)L_ecr + log(a) +log(b)$
    可化为:loss = exp(-a)L_cr + exp(-b)L_ecr + a + b ,这种形式的正则不能保证最后两项为正数,导致损失函数不稳定。
  2. 参考一篇论文 将log(a)改为log(a+1)确保后两项大于0,修改后的loss为: loss = 1/(2aa)L_cr + 1/(2bb)L_ecr + log(a2+1) +log(b2+1)
    修改后的模型性能没有显著提高。

7月1日

uplift建模

验证DESCN模型效果,发现control组和treatment组的uplift值有很大差异,具体来说control组比treatment组高很多,这是不对劲的。 检查descn模型中对于mu的计算

er建模

在单个城市数据集上对esmm模型进行测试. 模型预测er比真实er的值要小,可能是因为单个城市的分布和总体数据不一致。

7月2日

er建模

参考esmm原文,注意到ecr和cr的损失函数不需要除样本数量n,而是直接加和,这样做相当于用了样本数量n作为权重。修改后模型效果提升,auc=0.7754.

uplift建模

  1. 修改了原网络中的计算mu的方式。
  2. 观察每一轮训练时三个Loss的变化情况,发现倾向分网络的loss收敛较快,其他两组不收敛,倾向分网络学习目标比较符合直觉,学习数据分类到不同组中的概率。

7月3日

er模型的线上部署

  1. 熟悉滴滴的线上部署模型流程,包括申请机器、创建环境、获取线上go分支、写线上go接口等。(完成)
  2. 线上部署er模型-多头输出ecr-cr乘算er版本,模型’./model/ESMM_50_20250703_1115_esmm_er.pth’,生成测试单例 (完成)
  3. 发现线上暂时不支持pytorch模型,在本地将模型转为对应的tensorflow模型。转模型时发现可以将归一化参数转为模型的一部分,记下这种方法。