22. dmr (Deep Match to Rank Model for Personalized Click-Through Rate Prediction)

代码请参考:dmr如果我们的代码对您有用,还请点个star啊~

22.1. 内容

22.2. 模型简介

两个deep子网络获取user的两种抽象表达,得到U和target item的score,结合其他特征送入MLP计算ctr score。Deep Match to Rank Model for Personalized Click-Through Rate Prediction文章通过 User-to-Item 子网络和 Item-to-Item 子网络来表征 U2I 相关性,再结合传统的rec model features,提升模型的表达能力。本模型来自飞桨论文复现挑战赛(第三期)bnujli大神贡献的DMR的第一名方案达到了原作者githubDMR的精度。

22.3. 数据准备

本模型使用论文中的数据集Alimama Dataset,在模型目录的data目录下为您准备了快速运行的示例数据,若需要使用全量数据可以参考下方效果复现部分。

22.4. 运行环境

PaddlePaddle>=2.0

python 3.5/3.6/3.7

os : windows/linux/macos

22.5. 快速开始

本文提供了样例数据可以供您快速体验,在任意目录下均可执行。在DMR模型目录的快速执行命令如下:

# 进入模型目录
# cd models/rank/dmr # 在任意目录均可运行
# 动态图训练
python -u ../../../tools/trainer.py -m config.yaml # 全量数据运行config_bigdata.yaml 
# 动态图预测
python -u ../../../tools/infer.py -m config.yaml 

# 静态图训练
python -u ../../../tools/static_trainer.py -m config.yaml # 全量数据运行config_bigdata.yaml 
# 静态图预测
python -u ../../../tools/static_infer.py -m config.yaml 

22.6. 模型组网

论文Deep Match to Rank Model for Personalized Click-Through Rate Prediction中的网络结构如图所示:

22.7. 效果复现

为了方便使用者能够快速的跑通每一个模型,我们在每个模型下都提供了样例数据。如果需要复现readme中的效果,请按如下步骤依次操作即可。在全量数据下模型的指标如下:

模型 auc batch_size epoch_num Time of each epoch
DMR 0.6434 5120 1 约2小时
  1. 确认您当前所在目录为PaddleRec/models/rank/dmr

  2. 进入paddlerec/datasets/Ali_Display_Ad_Click目录下,执行该脚本,会从国内源的服务器上下载我们预处理完成的Alimama全量数据集,并解压到指定文件夹。若您希望从原始数据集自行处理,请详见该目录下的readme。

cd ../../../datasets/Ali_Display_Ad_Click
sh run.sh
  1. 切回模型目录,执行命令运行全量数据

cd - # 切回模型目录
# 动态图训练
python -u ../../../tools/trainer.py -m config_bigdata.yaml # 全量数据运行config_bigdata.yaml 
python -u ../../../tools/infer.py -m config_bigdata.yaml # 全量数据运行config_bigdata.yaml

22.8. 进阶使用

22.9. FAQ