0

0

【论文复现赛】第六期冠军项目-MetaHeac-推荐系统

P粉084495128

P粉084495128

发布时间:2025-08-01 13:48:43

|

489人浏览过

|

来源于php中文网

原创

本文复现论文提出的MetaHeac模型,基于PaddlePaddle 2.3.0框架,在腾讯Look-alike数据集上进行,解决look-alike建模挑战,复现AUC达0.7112,还介绍了数据集、环境、步骤、代码结构及复现心得。

☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜

【论文复现赛】第六期冠军项目-metaheac-推荐系统 - php中文网

论文复现-MetaHeac

一、简介

在推荐系统和广告平台上,营销人员总是希望通过视频或者社交等媒体渠道向潜在用户推广商品、内容或者广告。扩充候选集技术(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),采用元学习的方法训练一个泛化初始化模型,从而能够快速适应新类别内容推广任务。

MetaHeac训练流程如下: 【论文复现赛】第六期冠军项目-MetaHeac-推荐系统 - php中文网        

模型核心结构如下: 【论文复现赛】第六期冠军项目-MetaHeac-推荐系统 - php中文网        

为了复现文献中的实验结果,本项目基于paddlepaddle深度学习框架,并在Lookalike数据集上进行训练和测试。

论文 :

  • [1] Yongchun Zhu, Yudan Liu, Ruobing Xie, Fuzhen Zhuang, Xiaobo Hao, Kaikai Ge, Xu Zhang, Leyu Lin, Juan Cao. Learning to Expand Audience via Meta Hybrid Experts and Critics for Recommendation and Advertising

项目参考 : https://github.com/easezyc/MetaHeac

二、复现精度

基于paddlepaddle深度学习框架,对文献MetaHeac进行复现后,测试精度如下表所示。

模型 auc batch_size epoch_num Time of each epoch
MetaHeac 0.7112 1024 1 3个小时左右

超参数配置如下表所示:

超参数名 设置值
batch_size 1024
task_count 5
global_learning_rate 0.001
local_test_learning_rate 0.001
local_lr 0.0002

三、数据集

本项目使用的是Tencent Look-alike Dataset,该数据集包含几百个种子人群、海量候选人群对应的用户特征,以及种子人群对应的广告特征。出于业务数据安全保证的考虑,所有数据均为脱敏处理后的数据。本次复现使用处理过的数据集,直接下载propocessed data。

数据集链接: https://paddlerec.bj.bcebos.com/datasets/lookalike/Lookalike_data.rar

MiroThinker
MiroThinker

MiroMind团队推出的研究型开源智能体,专为深度研究与复杂工具使用场景设计

下载

四、环境依赖

  • 硬件:
    • x86 cpu
    • NVIDIA GPU
  • 框架:
    • PaddlePaddle == 2.3.0

五、快速开始

In [1]
# step1: 确认您当前所在目录为PaddleRec/models/multitask/metaheac %cd PaddleRec/models/multitask/metaheac
       
/home/aistudio/PaddleRec/models/multitask/metaheac
       
In [ ]
# step2: 进入paddlerec/datasets/目录下,执行该脚本,会从国内源的服务器上下载我们预处理完成的Lookalike全量数据集,并解压到指定文件夹。%cd ../../../datasets/Lookalike
!sh run.sh
   
In [ ]
# step3: train%cd ../../models/multitask/metaheac/ 
!python -u ../../../tools/trainer.py -m config_big.yaml
   
In [ ]
# step4: infer 此时test数据集为hot!python -u ./infer_meta.py -m config_big.yaml
   
In [ ]
# step5:修改config_big.yaml文件中test_data_dir的路径为cold!python -u ./infer_meta.py -m config_big.yaml
   

config_big.yaml配置文件中参数如下:

参数选项 默认值 说明
--batch_size 1024 训练和测试时,一个batch的任务数
--task_count 5 子任务类别数
--global_learning_rate 0.001 全局更新时学习率
local_test_learning_rate 0.001 测试时学习率
local_lr 0.0002 局部更新时学习率
embed_dim 64 嵌入向量的维度
mlp_dims [64, 64] 全连接层的维度
num_expert 8 专家数量
num_output 5 批评者数量

六、metaheac目录下代码结构与详细说明

├── 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 #文档
       

数据集说明

为了测试模型在不同规模的内容定向推广任务上的表现,将数据集根据内容定向推广任务给定的候选集大小进行了划分,分为大于T和小于T两部分。将腾讯广告大赛2018的Look-alike数据集中的T设置为4000,其中hot数据集中候选集大于T,cold数据集中候选集小于T.

infer_meta.py说明

infer_meta.py是用于元学习模型infer的tool,在使用中主要有以下几点需要注意:

  1. 在对模型进行infer时(train时也可使用这样的操作),可以将runner.infer_batch_size注释掉,这样将禁用DataLoader的自动组batch功能,进而可以使用自定义的组batch方式.
  2. 由于元学习在infer时需要先对特定任务的少量数据集进行训练,因此在infer_meta.py的infer_dataloader中每次接收单个子任务的全量infer数据集(包括训练数据和测试数据).
  3. 实际组batch在infer.py中进行,在获取到单个子任务的数据后,获取config中的batch_size参数,对训练数据和测试数据进行组batch,并分别调用dygraph_model.py中的infer_train_forward和infer_forward进行训练和测试.
  4. 和普通infer不同,由于需要对单个子任务进行少量数据的train和test,对于每个子任务来说加载的都是train阶段训练好的泛化模型.
  5. 在对单个子任务infer时,创建了局部的paddle.metric.Auc("ROC"),可以查看每个子任务的AUC指标,在全局metric中维护包含所有子任务的AUC指标.

七、复现心得

7.1 模型组网成功,但是精度相差较大

基于论文开源的代码实现基于Paddle的代码还是比较简单的,但是模型组网成功后,精度与原论文精度相差很大。 很可能是模型在前向传播时就已经出现问题了,建议基于官方提供的reprod_log,与参考代码进行一步步的前向对齐,才能保证模型组网万无一失。

7.2 前向传播基本对齐,但是精度达不到

在本项目复现时,遇到最大的问题是前向对齐时的误差很小,但是无论如何第一轮的loss就是对不齐。找了很久问题,最后直接将参考代码的初始化参数加载到paddle复现的模型上,成功跑出了原论文精度,所以如果前向没大问题,也有可能是模型初始化参数的问题,可以设置下随机种子和加载可复现的初始化参数。

7.3 数据读取

由于元学习训练方式与传统训练方式有所区别,所以要单独写train和infer的数据读取。细节部分在infer_meta.py说明中有提到,主要是关掉dataloader默认的组batch方式,自己写组batch。

八、模型信息

信息 说明
发布者 宁文彬
时间 2022.06
框架版本 Paddle 2.3.0
应用场景 元学习
支持硬件 GPU、CPU

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
数据分析的方法
数据分析的方法

数据分析的方法有:对比分析法,分组分析法,预测分析法,漏斗分析法,AB测试分析法,象限分析法,公式拆解法,可行域分析法,二八分析法,假设性分析法。php中文网为大家带来了数据分析的相关知识、以及相关文章等内容。

472

2023.07.04

数据分析方法有哪几种
数据分析方法有哪几种

数据分析方法有:1、描述性统计分析;2、探索性数据分析;3、假设检验;4、回归分析;5、聚类分析。本专题为大家提供数据分析方法的相关的文章、下载、课程内容,供大家免费下载体验。

280

2023.08.07

网站建设功能有哪些
网站建设功能有哪些

网站建设功能包括信息发布、内容管理、用户管理、搜索引擎优化、网站安全、数据分析、网站推广、响应式设计、社交媒体整合和电子商务等功能。这些功能可以帮助网站管理员创建一个具有吸引力、可用性和商业价值的网站,实现网站的目标。

739

2023.10.16

数据分析网站推荐
数据分析网站推荐

数据分析网站推荐:1、商业数据分析论坛;2、人大经济论坛-计量经济学与统计区;3、中国统计论坛;4、数据挖掘学习交流论坛;5、数据分析论坛;6、网站数据分析;7、数据分析;8、数据挖掘研究院;9、S-PLUS、R统计论坛。想了解更多数据分析的相关内容,可以阅读本专题下面的文章。

516

2024.03.13

Python 数据分析处理
Python 数据分析处理

本专题聚焦 Python 在数据分析领域的应用,系统讲解 Pandas、NumPy 的数据清洗、处理、分析与统计方法,并结合数据可视化、销售分析、科研数据处理等实战案例,帮助学员掌握使用 Python 高效进行数据分析与决策支持的核心技能。

76

2025.09.08

Python 数据分析与可视化
Python 数据分析与可视化

本专题聚焦 Python 在数据分析与可视化领域的核心应用,系统讲解数据清洗、数据统计、Pandas 数据操作、NumPy 数组处理、Matplotlib 与 Seaborn 可视化技巧等内容。通过实战案例(如销售数据分析、用户行为可视化、趋势图与热力图绘制),帮助学习者掌握 从原始数据到可视化报告的完整分析能力。

55

2025.10.14

clawdbot ai使用教程 保姆级clawdbot部署安装手册
clawdbot ai使用教程 保姆级clawdbot部署安装手册

Clawdbot是一个“有灵魂”的AI助手,可以帮用户清空收件箱、发送电子邮件、管理日历、办理航班值机等等,并且可以接入用户常用的任何聊天APP,所有的操作均可通过WhatsApp、Telegram等平台完成,用户只需通过对话,就能操控设备自动执行各类任务。

18

2026.01.29

clawdbot龙虾机器人官网入口 clawdbot ai官方网站地址
clawdbot龙虾机器人官网入口 clawdbot ai官方网站地址

clawdbot龙虾机器人官网入口:https://clawd.bot/,clawdbot ai是一个“有灵魂”的AI助手,可以帮用户清空收件箱、发送电子邮件、管理日历、办理航班值机等等,并且可以接入用户常用的任何聊天APP,所有的操作均可通过WhatsApp、Telegram等平台完成,用户只需通过对话,就能操控设备自动执行各类任务。

12

2026.01.29

Golang 网络安全与加密实战
Golang 网络安全与加密实战

本专题系统讲解 Golang 在网络安全与加密技术中的应用,包括对称加密与非对称加密(AES、RSA)、哈希与数字签名、JWT身份认证、SSL/TLS 安全通信、常见网络攻击防范(如SQL注入、XSS、CSRF)及其防护措施。通过实战案例,帮助学习者掌握 如何使用 Go 语言保障网络通信的安全性,保护用户数据与隐私。

8

2026.01.29

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
最新Python教程 从入门到精通
最新Python教程 从入门到精通

共4课时 | 22.4万人学习

Django 教程
Django 教程

共28课时 | 3.7万人学习

SciPy 教程
SciPy 教程

共10课时 | 1.3万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号