CHIANGEL / MAP-CODE

Official Code for paper "MAP: A Model-agnostic Pretraining Framework for Click-through Rate Prediction"
MIT License
6 stars 0 forks source link

嗨,我想咨询一下,DNN版本的auc 0.792的模型超参数是怎么样的? #1

Open xiaomao19970819 opened 10 months ago

CHIANGEL commented 10 months ago

avazu数据集,DNN,from scratch,hidden size=1000,hidden layer num=3,dropout=0

xiaomao19970819 commented 10 months ago

avazu数据集,DNN,from scratch,hidden size=1000,hidden layer num=3,dropout=0

想再多问一下,除了文中的两种预训练方式,有尝试按照MAE一样重建特征吗?

CHIANGEL commented 10 months ago

MAE也是基于掩码和重构,其实和MFP很像。但MAE是只输入unmasked patch,masked patch不作为输入,这要求模型可以处理变长序列,那也就只有transformer可以做到了。传统的CTR model没法应对特征域数目动态变化的情况

xiaomao19970819 commented 10 months ago

MAE也是基于掩码和重构,其实和MFP很像。但MAE是只输入unmasked patch,masked patch不作为输入,这要求模型可以处理变长序列,那也就只有transformer可以做到了。传统的CTR model没法应对特征域数目动态变化的情况

嗨,除了预训练之外,有尝试把rdf loss和ctr loss 直接模型初始化后一起训练吗?

CHIANGEL commented 9 months ago

我没有尝试过将rfd做为辅助loss和ctr loss进行联合优化

xiaomao19970819 commented 9 months ago

我没有尝试过将rfd做为辅助loss和ctr loss进行联合优化

感谢之前的回复 ! 我尝试复现在avazu数据集上使用DNN模型的实验效果 pretrain和fintune阶段的参数设置如下图,最终auc为0.7942365723905876,这是正常的吗?我看paper里的auc应该更高才对,请问我的超参数设置是对的吗?

################### pretrain export CUDA_VISIBLE_DEVICES=0 dataset_name=avazu

python -u code/run.py --pretrain=True \ --output_dir=outputs/${dataset_name}/RFD/pretrain \ --dataset_name=${dataset_name} \ --data_dir=data/${dataset_name} \ --num_train_epochs=10 \ --per_gpu_train_batch_size=4096 \ --per_gpu_eval_batch_size=4096 \ --learning_rate=1e-3 \ --lr_sched=cosine \ --weight_decay=5e-2 \ \ --pt_type=RFD \ --sampling_method=randint \ --mask_ratio=0.1 \ --RFD_replace=Unigram \ \ --model_name=DNN \ --embed_size=16 \ --hidden_size=1000 \ --num_hidden_layers=3 \ --num_cross_layers=3 \ --hidden_dropout_rate=0.0

##################### fintune
export CUDA_VISIBLE_DEVICES=0 dataset_name=avazu pt_type=RFD

python -u code/run.py --finetune \ --pretrained_model_path=outputs/avazu/${pt_type}/pretrain/78970.model \ \ --output_dir=outputs/${dataset_name}/${pt_type}/finetune \ --dataset_name=${dataset_name} \ --data_dir=data/${dataset_name} \ --num_train_epochs=3 \ --per_gpu_train_batch_size=4096 \ --per_gpu_eval_batch_size=4096 \ --learning_rate=1e-3 \ --lr_sched=const \ --weight_decay=1e-1 \ \ --model_name=DNN \ --embed_size=16 \ --hidden_size=1000 \ --num_hidden_layers=3 \ --num_cross_layers=3 \ --hidden_dropout_rate=0.0

CHIANGEL commented 9 months ago

RFD的预训练epoch数要拉上去,我这边是预训练60个epoch

预训练的epoch越多,最后的效果会越好,我从10拉到60,效果其实还没有见顶

CHIANGEL commented 9 months ago

以及finetune的lr schedule要取cosine比较好,constant lr不是最优的