以下是本例的简要目录结构及说明:
├── data #样例数据
├── train #训练数据
├── train_stage1.pkl
├── test #测试数据
├── test_stage1.pkl
├── test_stage2.pkl
├── net.py # 核心模型组网
├── config.yaml # sample数据配置
├── config_big.yaml # 全量数据配置
├── dygraph_model.py # 构建动态图
├── reader_train.py # 训练数据读取程序
├── reader_test.py # infer数据读取程序
├── readme.md #文档
注:在阅读该示例前,建议您先了解以下内容:
在推荐系统和广告平台上,营销人员总是希望通过视频或者社交等媒体渠道向潜在用户推广商品、内容或者广告。扩充候选集技术(Look-alike建模)是一种很有效的解决方案,但look-alike建模通常面临两个挑战:(1)一家公司每天可以开展数百场营销活动,以推广完全不同类别的各种内容。(2)某项活动的种子集只能覆盖有限的用户,因此一个基于有限种子用户的定制化模型往往会产生严重的过拟合。为了解决以上的挑战,论文《Learning to Expand Audience via Meta Hybrid Experts and Critics for Recommendation and Advertising》提出了一种新的两阶段框架Meta Hybrid Experts and Critics (MetaHeac),采用元学习的方法训练一个泛化初始化模型,从而能够快速适应新类别内容推广任务。
使用Tencent Look-alike Dataset,该数据集包含几百个种子人群、海量候选人群对应的用户特征,以及种子人群对应的广告特征。出于业务数据安全保证的考虑,所有数据均为脱敏处理后的数据。本次复现使用处理过的数据集,直接下载propocessed data,mataheac/data/目录下存放了从全量数据集获取的少量数据集,用于对齐模型。
PaddlePaddle>=2.0
python 2.7/3.5/3.6/3.7
os : windows/linux/macos
本文提供了样例数据可以供您快速体验,在任意目录下均可执行。在MetaHeac模型目录的快速执行命令如下:
# 进入模型目录
# cd PaddleRec/models/multitask/metaheac/ # 在任意目录均可运行
# 动态图训练
python -u ../../../tools/trainer.py -m config.yaml # 全量数据运行config_bigdata.yaml
# 动态图预测
python -u ./infer.py -m config.yaml
MetaHeac是发表在 KDD 2021 的论文《Learning to Expand Audience via Meta Hybrid Experts and Critics for Recommendation and Advertising》文章提出一种新的两阶段框架Meta Hybrid Experts and Critics (MetaHeac),有效解决了真实场景中难以构建泛化模型,同时在所有内容领域中扩充高质量的受众候选集和基于有限种子用户的定制化模型容易产生严重过拟合的两个关键问题模型的主要组网结构如下: MetaHeac:
为了方便使用者能够快速的跑通每一个模型,我们在每个模型下都提供了样例数据。如果需要复现readme中的效果,请按如下步骤依次操作即可。 在全量数据下模型的指标如下(train.py文件内 paddle.seed = 2021下效果):
模型 | auc | batch_size | epoch_num | Time of each epoch |
---|---|---|---|---|
MetaHeac | 0.7112 | 1024 | 1 | 3个小时左右 |
cd ../../../datasets/Lookalike
sh run.sh
cd ../../models/multitask/metaheac/ # 切回模型目录
# 动态图训练
# step1: train
python -u ../../../tools/trainer.py -m config_big.yaml
# 动态图预测
# step2: infer 此时test数据集为hot
python -u ./infer.py -m config_big.yaml
# step3:修改config_big.yaml文件中test_data_dir的路径为cold
# python -u ./infer.py -m config.yaml
为了测试模型在不同规模的内容定向推广任务上的表现,将数据集根据内容定向推广任务给定的候选集大小进行了划分,分为大于T和小于T两部分。将腾讯广告大赛2018的Look-alike数据集中的T设置为4000,其中hot数据集中候选集大于T,cold数据集中候选集小于T.
infer.py是用于元学习模型infer的tool,在使用中主要有以下几点需要注意:
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。