对于在线广告,推荐系统和赞助搜索等各种工业应用程序,点击率(CTR)预测是一项至关重要的任务。 Fuxictr为CTR预测提供了一个开源库,具有可配置,可调性和可重复性的关键功能。我们希望该项目可以促进可重复的研究,并使该领域的研究人员和从业人员受益。
可配置:数据预处理和模型都是模块化和可配置的。
可调:模型可以通过简单的配置自动调整。
可重现:所有基准都可以轻松复制。
可扩展:它可以轻松地扩展到任何新型号,并支持Pytorch和Tensorflow框架。
| 不 | 发布 | 模型 | 纸 | 基准 | 版本 |
|---|---|---|---|---|---|
| 功能交互模型 | |||||
| 1 | www'07 | LR | 预测点击:估计新广告的点击率Microsoft | torch | |
| 2 | ICDM'10 | 调频 | 分解机 | torch | |
| 3 | Cikm'13 | DSSM | 使用点击数据Microsoft学习深层结构化语义模型,用于网络搜索 | torch | |
| 4 | Cikm'15 | CCPM | 卷积点击预测模型 | torch | |
| 5 | recsys'16 | FFM | CTR预测的现场感知分解机器 | torch | |
| 6 | recsys'16 | DNN | YouTube建议的深神经网络Google | torch , tf | |
| 7 | DLRS'16 | 宽而深 | 推荐系统的广泛学习和深度学习Google | torch , tf | |
| 8 | ICDM'16 | PNN | 用于用户响应预测的基于产品的神经网络 | torch | |
| 9 | KDD'16 | 深口字 | 深度交叉:网络规模的建模无手动制作的组合功能Microsoft | torch | |
| 10 | Nips'16 | 霍夫姆 | 高阶分解机 | torch | |
| 11 | ijcai'17 | DeepFM | DEEPFM:用于CTR预测的基于分解的神经网络华为 | torch , tf | |
| 12 | Sigir'17 | NFM | 稀疏预测分析的神经分解机 | torch | |
| 13 | ijcai'17 | AFM | 注意力分解机:通过注意网络学习特征互动的重量 | torch | |
| 14 | ADKDD'17 | DCN | Deep&Cross Network进行广告点击预测Google | torch , tf | |
| 15 | www'18 | FWFM | 现场加权分解机器,用于显示广告宣誓,触摸板,LinkedIn,阿里巴巴的点击率预测 | torch | |
| 16 | KDD'18 | XDeepFM | XDEEPFM:组合推荐系统的显式和隐式特征交互作用Microsoft | torch | |
| 17 | Cikm'19 | 芬恩 | Fignn:通过图神经网络进行CTR预测的图形神经网络建模相互作用 | torch | |
| 18 | Cikm'19 | 自动/自动点+ | 自动点:通过自我牵手的神经网络学习自动互动学习 | torch | |
| 19 | recsys'19 | 纤维 | fibinet:将特征的重要性和双线性特征交互作用用于点击率预测nina weibo | torch | |
| 20 | www'19 | fgcnn | 卷积神经网络的功能生成,用于点击率预测华为 | torch | |
| 21 | AAAI'19 | HFM/HFM+ | 全息分解机以推荐 | torch | |
| 22 | Arxiv'19 | DLRM | 深度学习推荐模型和推荐系统Facebook | torch | |
| 23 | NeuralNetworks'20 | Onn | 操作感知的用户响应预测的神经网络 | torch , tf | |
| 24 | AAAI'20 | afn/afn+ | 自适应分解网络:学习自适应订购特征交互 | torch | |
| 25 | AAAI'20 | lorentzfm | 学习特征与洛伦兹分校的互动eBay | torch | |
| 26 | WSDM'20 | 间 | 通过分层注意NEC实验室,Google解释的点击率预测 | torch | |
| 27 | DLP-KDD'20 | flen | FLEN:利用字段用于可扩展的CTR预测腾讯 | torch | |
| 28 | Cikm'20 | Deepim | 深度互动机:一个简单但有效的高级特征互动模型阿里巴巴,Realai | torch | |
| 29 | www'21 | FMFM | FM^2:推荐系统的野外静音分解机Yahoo | torch | |
| 30 | www'21 | DCN-V2 | DCN V2:改进了深层网络和网络规模学习的实用课程,以对系统进行排名Google | torch | |
| 31 | CIKM'21 | 注定 | 单击率预测阿里巴巴的解开自我煽动的神经网络 | torch | |
| 32 | CIKM'21 | EDCN | 通过平行深层CTR模型的信息共享增强明确和隐式特征交互 | torch | |
| 33 | DLP-KDD'21 | 面具 | MASKNET:通过实例引导的Mask Sina Weibo将功能乘法引入CTR排名模型 | torch | |
| 34 | Sigir'21 | 山姆 | 再次查看CTR预测:您需要关注的一切吗?老板Zhipin | torch | |
| 35 | KDD'21 | aoanet | 用于在线建议的体系结构和操作自适应网络DIDI CHUXING | torch | |
| 36 | AAAI'23 | FinalMLP | FinalMLP:CTR预测的增强的两流MLP模型 | torch | |
| 37 | Sigir'23 | finalnet | 最终:CTR预测的分解交互层华为 | torch | |
| 38 | Sigir'23 | Eulernet | Eulernet:通过Euler的CTR预测公式的自适应特征交互学习华为 | torch | |
| 39 | Cikm'23 | GDCN | 迈向CTR预测的更深层,更轻巧和可解释的跨网络Microsoft | torch | |
| 40 | ICML'24 | Wukong | Wukong:迈向大规模推荐的扩展法 | torch | |
| 行为序列建模 | |||||
| 42 | KDD'18 | 丁 | 点击率预测的深度兴趣网络阿里巴巴 | torch | |
| 43 | AAAI'19 | 迪恩 | 点击率预测阿里巴巴的深度兴趣进化网络 | torch | |
| 44 | DLP-KDD'19 | BST | 阿里巴巴阿里巴巴的电子商务推荐的行为序列变压器 | torch | |
| 45 | Cikm'20 | Dmin | 点击率预测阿里巴巴的深度多息网络 | torch | |
| 46 | AAAI'20 | DMR | 深度匹配到个性化点击率预测的排名模型阿里巴巴 | torch | |
| 47 | DLP-KDD'22 | ETA | 有效的长顺序用户数据建模,用于点击率预测阿里巴巴 | torch | |
| 48 | Cikm'22 | SDIM | 对CTR预测的长期用户行为进行建模是您所需的样本 | torch | |
| 49 | KDD'23 | 办理 | 交易:基于变压器的实时用户操作模型,用于Pinterest Pinterest的推荐 | torch | |
| 动态重量网络 | |||||
| 50 | 神经22 | APG | APG:单击率预测的自适应参数生成网络阿里巴巴 | torch | |
| 51 | KDD'23 | ppnet | pepnet:参数和嵌入个性化网络,用于注入个性化的先验信息kuaishou | torch | |
| 多任务建模 | |||||
| 52 | Arxiv'17 | ShareBottom | 深神经网络中多任务学习的概述 | torch | |
| 53 | KDD'18 | mmoe | 与多门学习的多任务学习中的任务关系建模 | torch | |
| 54 | recsys'20 | ple | 渐进分层提取(PLE):个性化建议的新型多任务学习(MTL)模型 | torch | |
我们在一组开放数据集上对Fuxictr模型进行了基准测试,如下所示:
fuxictr具有以下依赖性:
请通过pip install -r requirements.txt安装其他必需的软件包。
运行演示示例
演示目录中提供了示例,以显示Fuxictr的一些基本用法。用户可以运行示例以快速启动并了解工作流程。
cd demo
python example1_build_dataset_to_parquet.py
python example2_DeepFM_with_parquet_input.py
在微小数据上运行模型
用户可以按照以下命令轻松地在模型动物园中运行每个模型,这是运行DCN的演示。此外,用户可以修改数据集配置和模型配置文件,以便在自己的数据集或新的Hyper-Parameters上运行。更多详细信息可以在README中找到。
cd model_zoo/DCN/DCN_torch
python run_expid.py --expid DCN_test --gpu 0
# Change `MODEL` according to the target model name
cd model_zoo/MODEL
python run_expid.py --expid MODEL_test --gpu 0
在基准数据集(例如Criteo)上运行模型
用户可以遵循基准部分以获取基准数据集并运行步骤以重现现有结果。请在此处查看示例:https://github.com/reczoo/bars/tree/main/main/ranking/ctr/dcnv2/dcnv2_criteo_x1
实施新模型
Fuxictr库设计为模块化,以便每个组件都可以根据用户的需求覆盖。在许多情况下,仅需要为新的自定义模型实现模型类。如果数据预处理或数据加载程序不直接适用,则还可以通过核心API覆盖新的加载程序。我们展示了一个具体示例,该示例实现了我们最近在AAAI 2023年发表的新模型FinalMLP。
模型的调子超参数
Fuxictr当前使用多个GPU对模型的超参数进行快速网格搜索。以下示例显示了8个具有4个GPU的实验的网格搜索。
cd experiment
python run_param_tuner.py --config config/DCN_tiny_parquet_tuner_config.yaml --gpu 0 1 2 3 0 1 2 3
如果您发现我们的代码或基准有助于您的研究,请引用以下论文。
欢迎加入我们的微信小组,进行任何问题和讨论。如果您对推荐系统的研究和实践感兴趣,请通过我们的微信组与我们联系。