11# MetaHeac
2- 论文复现赛-MetaHeac
3- # MetaHeac模型
42
53以下是本例的简要目录结构及说明:
64
75```
86├── data #样例数据
9- ├── test
10- ├── train
11- ├── net.py # 模型组网
12- ├── config.yaml # 测试数据配置文件
13- ├── config_big.yaml # 全量数据配置文件
14- ├── dygraph_model.py # 动态图训练
15- ├── reader_train.py # 读取训练数据集
16- ├── reader_test.py # 读取infer数据集
7+ ├── train #训练数据
8+ ├── train_stage1.pkl
9+ ├── test #测试数据
10+ ├── test_stage1.pkl
11+ ├── test_stage2.pkl
12+ ├── net.py # 核心模型组网
13+ ├── config.yaml # sample数据配置
14+ ├── config_big.yaml # 全量数据配置
15+ ├── dygraph_model.py # 构建动态图
16+ ├── reader_train.py # 训练数据读取程序
17+ ├── reader_test.py # infer数据读取程序
1718├── readme.md #文档
1819```
1920
3334- [ FAQ] ( #FAQ )
3435
3536## 模型简介
36- Package Recommendation with Intra- and Inter-Package Attention Networks 《利用“包内”和“包间”注意力网络的包推荐》。
37- 随着移动互联网中在线社交网络的蓬勃发展,我们提出了一个新颖的社交推荐场景,名为Package Recommendation。在这种场景中,用户不再被推荐单个项目或项目列表,而是被推荐异构且类型多样对象的组合(称为包,例如,包括新闻、媒体和观看新闻的朋友)。与传统推荐不同,在包推荐中,包中的对象被明确显示给用户,用户会对显式展示的对象表现出极大的兴趣,反过来这些对象可能对用户行为产生重大影响,并显著改变传统的推荐模式。
37+ 在推荐系统和广告平台上,营销人员总是希望通过视频或者社交等媒体渠道向潜在用户推广商品、内容或者广告。扩充候选集技术(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),采用元学习的方法训练一个泛化初始化模型,从而能够快速适应新类别内容推广任务。
3838
3939## 数据准备
40- 使用Tencent Look-alike Dataset,该数据集包含几百个种子人群、海量候选人群对应的用户特征,以及种子人群对应的广告特征。出于业务数据安全保证的考虑,所有数据均为脱敏处理后的数据。本次复现使用处理过的数据集,直接下载即可 propocessed data[ https://drive.google.com/file/d/11gXgf_yFLnbazjx24ZNb_Ry41MI5Ud1g/view?usp=sharing ]
41- data/processed_data目录下存放了从全量数据集获取的少量数据集,做对齐模型使用。
42- 若需要使用全量数据可以参考下方效果复现部分。
40+ 使用Tencent Look-alike Dataset,该数据集包含几百个种子人群、海量候选人群对应的用户特征,以及种子人群对应的广告特征。出于业务数据安全保证的考虑,所有数据均为脱敏处理后的数据。本次复现使用处理过的数据集,直接下载[ propocessed data] ( https://drive.google.com/file/d/11gXgf_yFLnbazjx24ZNb_Ry41MI5Ud1g/view?usp=sharing ) ,mataheac/data/目录下存放了从全量数据集获取的少量数据集,用于对齐模型。
41+
4342## 运行环境
4443PaddlePaddle>=2.0
4544
@@ -51,22 +50,20 @@ os : windows/linux/macos
5150本文提供了样例数据可以供您快速体验,在任意目录下均可执行。在MetaHeac模型目录的快速执行命令如下:
5251``` bash
5352# 进入模型目录
54- # %cd PaddleRec-master/models/multitask/metaheac/
55-
53+ %cd PaddleRec/models/multitask/metaheac/
5654# 动态图训练
5755# step1: train
5856! python -W ignore -u ../../../tools/trainer.py -m config.yaml
59-
6057# 动态图预测
6158# step2: infer 此时test数据集为hot
6259! python -W ignore -u ../../../tools/infer_meta.py -m config.yaml
6360# step3:修改config文件中test文件的路径为cold
6461# !python -W ignore -u ../../../tools/infer_meta.py -m config.yaml
6562```
63+
6664## 模型组网
6765模型整体结构如下:
6866
69-
7067## 效果复现
7168为了方便使用者能够快速的跑通每一个模型,我们在每个模型下都提供了样例数据。如果需要复现readme中的效果,请按如下步骤依次操作即可。
7269在全量数据下模型的指标如下(train.py文件内 paddle.seed = 2021下效果):
@@ -76,13 +73,17 @@ os : windows/linux/macos
7673| MetaHeac | 0.7112 | 1024 | 1 | 3个小时左右 |
7774
7875``` bash
76+ # 进入数据集目录,并运行run.sh下载数据集
77+ %cd PaddleRec/datasets/Lookalike/
78+ ! sed -i ' s/\r$//' run.sh
79+ ! sh run.sh
80+ # 退回根目录
81+ %cd ../../../
7982# 进入模型目录
80- # %cd PaddleRec-master/models/multitask/metaheac/
81-
83+ %cd PaddleRec/models/multitask/metaheac/
8284# 动态图训练
8385# step1: train
8486! python -W ignore -u ../../../tools/trainer.py -m config_big.yaml
85-
8687# 动态图预测
8788# step2: infer 此时test数据集为hot
8889! python -W ignore -u ../../../tools/infer_meta.py -m config_big.yaml
0 commit comments