datawhalechina / torch-rechub

A Lighting Pytorch Framework for Recommendation Models, Easy-to-use and Easy-to-extend.
MIT License
374 stars 69 forks source link

在全量ali-ccp数据集上训练ESMM模型,在测试集上,cvr和ctcvr的auc=1.0 #56

Closed Hjh233 closed 9 months ago

Hjh233 commented 9 months ago

环境

ubuntu 22.04, python=3.9.18, torch=2.1.0, GPU=3090,

预处理

利用preprocess_ali_ccp.py脚本处理得到 train set & test set(没有将test set进一步拆分为validation set和test set)

参数设置

tutorials/Multi_Task.ipynb文件中,将task_types = ["classification", "classification"] 修改为task_types = ["classification", "classification", "classification"](MTLTrainer中第111行,ESMM模型的total_loss = sum(loss_list[1:]),因此训练时一定是要将task_type设置成三个二分类任务(cvr,ctr,ctcvr)),其他超参数设置不变,进行全量模型训练,得到的日志如下

输出日志

train loss: {'task_0:': 0.0009412071586964892, 'task_1:': 0.15991775316040385, 'task_2:': 5.389307421478335e-05} epoch: 0 validation scores: [1.0, 0.5951526439762982, 1.0]

Hjh233 commented 9 months ago

原始预处理中,sparse feature中含有 ctcvr_label = cvr_label,删除后模型训练正常。