Skip to content

Commit

Permalink
Add datasets Lookalike
Browse files Browse the repository at this point in the history
  • Loading branch information
simuler committed Jun 3, 2022
1 parent 4d56374 commit 8004404
Show file tree
Hide file tree
Showing 3 changed files with 41 additions and 25 deletions.
15 changes: 15 additions & 0 deletions datasets/Lookalike/run.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@

wget https://paddlerec.bj.bcebos.com/datasets/lookalike/Lookalike_data.rar
rar e Lookalike_data.rar

mkdir train_data
mkdir test_cold_data
mkdir test_hot_data

mv train_stage1.pkl train_data
mv test_hot_stage1.pkl test_hot_data
mv test_hot_stage2.pkl test_hot_data
mv test_cold_stage1.pkl test_cold_data
mv test_cold_stage2.pkl test_cold_data

rm -rf Lookalike_data.rar
6 changes: 3 additions & 3 deletions models/multitask/metaheac/config_big.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@


runner:
train_data_dir: "../../../../data/data137870/Lookalike_data/train"
train_data_dir: "../../../datasets/Lookalike/train_data"
train_reader_path: "reader_train" # importlib format
use_gpu: True
use_auc: True
Expand All @@ -23,8 +23,8 @@ runner:
print_interval: 100
#model_init_path: "output_model_esmm/2" # init model
model_save_path: "output_model_esmm"
# test_data_dir: "../../../../data/data137870/Lookalike_data/infer_hot"
test_data_dir: "../../../../data/data137870/Lookalike_data/infer_cold"
# test_data_dir: "../../../datasets/Lookalike/test_hot_data"
test_data_dir: "../../../datasets/Lookalike/test_cold_data"
# infer_batch_size: 32
infer_reader_path: "reader_infer" # importlib format
infer_load_path: "output_model_esmm"
Expand Down
45 changes: 23 additions & 22 deletions models/multitask/metaheac/readme.md
Original file line number Diff line number Diff line change
@@ -1,19 +1,20 @@
# MetaHeac
论文复现赛-MetaHeac
# MetaHeac模型

以下是本例的简要目录结构及说明:

```
├── data #样例数据
├── test
├── train
├── net.py # 模型组网
├── config.yaml # 测试数据配置文件
├── config_big.yaml # 全量数据配置文件
├── dygraph_model.py # 动态图训练
├── reader_train.py # 读取训练数据集
├── reader_test.py # 读取infer数据集
├── 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 #文档
```

Expand All @@ -33,13 +34,11 @@
- [FAQ](#FAQ)

## 模型简介
Package Recommendation with Intra- and Inter-Package Attention Networks 《利用“包内”和“包间”注意力网络的包推荐》。
随着移动互联网中在线社交网络的蓬勃发展,我们提出了一个新颖的社交推荐场景,名为Package Recommendation。在这种场景中,用户不再被推荐单个项目或项目列表,而是被推荐异构且类型多样对象的组合(称为包,例如,包括新闻、媒体和观看新闻的朋友)。与传统推荐不同,在包推荐中,包中的对象被明确显示给用户,用户会对显式展示的对象表现出极大的兴趣,反过来这些对象可能对用户行为产生重大影响,并显著改变传统的推荐模式。
在推荐系统和广告平台上,营销人员总是希望通过视频或者社交等媒体渠道向潜在用户推广商品、内容或者广告。扩充候选集技术(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[https://drive.google.com/file/d/11gXgf_yFLnbazjx24ZNb_Ry41MI5Ud1g/view?usp=sharing]
data/processed_data目录下存放了从全量数据集获取的少量数据集,做对齐模型使用。
若需要使用全量数据可以参考下方效果复现部分。
使用Tencent Look-alike Dataset,该数据集包含几百个种子人群、海量候选人群对应的用户特征,以及种子人群对应的广告特征。出于业务数据安全保证的考虑,所有数据均为脱敏处理后的数据。本次复现使用处理过的数据集,直接下载[propocessed data](https://drive.google.com/file/d/11gXgf_yFLnbazjx24ZNb_Ry41MI5Ud1g/view?usp=sharing),mataheac/data/目录下存放了从全量数据集获取的少量数据集,用于对齐模型。

## 运行环境
PaddlePaddle>=2.0

Expand All @@ -51,22 +50,20 @@ os : windows/linux/macos
本文提供了样例数据可以供您快速体验,在任意目录下均可执行。在MetaHeac模型目录的快速执行命令如下:
```bash
# 进入模型目录
# %cd PaddleRec-master/models/multitask/metaheac/

%cd PaddleRec/models/multitask/metaheac/
# 动态图训练
# step1: train
!python -W ignore -u ../../../tools/trainer.py -m config.yaml

# 动态图预测
# step2: infer 此时test数据集为hot
!python -W ignore -u ../../../tools/infer_meta.py -m config.yaml
# step3:修改config文件中test文件的路径为cold
# !python -W ignore -u ../../../tools/infer_meta.py -m config.yaml
```

## 模型组网
模型整体结构如下:


## 效果复现
为了方便使用者能够快速的跑通每一个模型,我们在每个模型下都提供了样例数据。如果需要复现readme中的效果,请按如下步骤依次操作即可。
在全量数据下模型的指标如下(train.py文件内 paddle.seed = 2021下效果):
Expand All @@ -76,13 +73,17 @@ os : windows/linux/macos
| MetaHeac | 0.7112 | 1024 | 1 | 3个小时左右 |

```bash
# 进入数据集目录,并运行run.sh下载数据集
%cd PaddleRec/datasets/Lookalike/
!sed -i 's/\r$//' run.sh
!sh run.sh
# 退回根目录
%cd ../../../
# 进入模型目录
# %cd PaddleRec-master/models/multitask/metaheac/

%cd PaddleRec/models/multitask/metaheac/
# 动态图训练
# step1: train
!python -W ignore -u ../../../tools/trainer.py -m config_big.yaml

# 动态图预测
# step2: infer 此时test数据集为hot
!python -W ignore -u ../../../tools/infer_meta.py -m config_big.yaml
Expand Down

0 comments on commit 8004404

Please sign in to comment.