Home

Awesome

<div align="center"> <img src="https://cdn.jsdelivr.net/gh/reczoo/FuxiCTR@main/docs/img/logo.png" alt="Logo" width="260"/> </div> <div align="center"> <a href="https://pypi.org/project/fuxictr"><img src="https://img.shields.io/badge/python-3.9+-blue" style="max-width: 100%;" alt="Python version"></a> <a href="https://pypi.org/project/fuxictr"><img src="https://img.shields.io/badge/pytorch-1.10+-blue" style="max-width: 100%;" alt="Pytorch version"></a> <a href="https://pypi.org/project/fuxictr"><img src="https://img.shields.io/badge/tensorflow-2.1+-blue" style="max-width: 100%;" alt="Pytorch version"></a> <a href="https://pypi.org/project/fuxictr"><img src="https://img.shields.io/pypi/v/fuxictr.svg" style="max-width: 100%;" alt="Pypi version"></a> <a href="https://pepy.tech/project/fuxictr"><img src="https://pepy.tech/badge/fuxictr" style="max-width: 100%;" alt="Downloads"></a> <a href="https://github.com/reczoo/FuxiCTR/blob/main/LICENSE"><img src="https://img.shields.io/github/license/reczoo/fuxictr.svg" style="max-width: 100%;" alt="License"></a> </div> <hr/> <div align="center"> <a href="https://github.com/reczoo/FuxiCTR/stargazers"><img src="http://bytecrank.com/nastyox/reporoster/php/stargazersSVG.php?user=reczoo&repo=FuxiCTR" width="600"/><a/> </div>

Click-through rate (CTR) prediction is a critical task for various industrial applications such as online advertising, recommender systems, and sponsored search. FuxiCTR provides an open-source library for CTR prediction, with key features in configurability, tunability, and reproducibility. We hope this project could promote reproducible research and benefit both researchers and practitioners in this field.

Key Features

Model Zoo

NoPublicationModelPaperBenchmarkVersion
<tr><th colspan=6 align="center">:open_file_folder: Feature Interaction Models</th></tr>
1WWW'07LRPredicting Clicks: Estimating the Click-Through Rate for New Ads :triangular_flag_on_post:Microsoft:arrow_upper_right:torch
2ICDM'10FMFactorization Machines:arrow_upper_right:torch
3CIKM'13DSSMLearning Deep Structured Semantic Models for Web Search using Clickthrough Data :triangular_flag_on_post:Microsoft:arrow_upper_right:torch
4CIKM'15CCPMA Convolutional Click Prediction Model:arrow_upper_right:torch
5RecSys'16FFMField-aware Factorization Machines for CTR Prediction :triangular_flag_on_post:Criteo:arrow_upper_right:torch
6RecSys'16DNNDeep Neural Networks for YouTube Recommendations :triangular_flag_on_post:Google:arrow_upper_right:torch, tf
7DLRS'16Wide&DeepWide & Deep Learning for Recommender Systems :triangular_flag_on_post:Google:arrow_upper_right:torch, tf
8ICDM'16PNNProduct-based Neural Networks for User Response Prediction:arrow_upper_right:torch
9KDD'16DeepCrossingDeep Crossing: Web-Scale Modeling without Manually Crafted Combinatorial Features :triangular_flag_on_post:Microsoft:arrow_upper_right:torch
10NIPS'16HOFMHigher-Order Factorization Machines:arrow_upper_right:torch
11IJCAI'17DeepFMDeepFM: A Factorization-Machine based Neural Network for CTR Prediction :triangular_flag_on_post:Huawei:arrow_upper_right:torch, tf
12SIGIR'17NFMNeural Factorization Machines for Sparse Predictive Analytics:arrow_upper_right:torch
13IJCAI'17AFMAttentional Factorization Machines: Learning the Weight of Feature Interactions via Attention Networks:arrow_upper_right:torch
14ADKDD'17DCNDeep & Cross Network for Ad Click Predictions :triangular_flag_on_post:Google:arrow_upper_right:torch, tf
15WWW'18FwFMField-weighted Factorization Machines for Click-Through Rate Prediction in Display Advertising :triangular_flag_on_post:Oath, TouchPal, LinkedIn, Alibaba:arrow_upper_right:torch
16KDD'18xDeepFMxDeepFM: Combining Explicit and Implicit Feature Interactions for Recommender Systems :triangular_flag_on_post:Microsoft:arrow_upper_right:torch
17CIKM'19FiGNNFiGNN: Modeling Feature Interactions via Graph Neural Networks for CTR Prediction:arrow_upper_right:torch
18CIKM'19AutoInt/AutoInt+AutoInt: Automatic Feature Interaction Learning via Self-Attentive Neural Networks:arrow_upper_right:torch
19RecSys'19FiBiNETFiBiNET: Combining Feature Importance and Bilinear feature Interaction for Click-Through Rate Prediction :triangular_flag_on_post:Sina Weibo:arrow_upper_right:torch
20WWW'19FGCNNFeature Generation by Convolutional Neural Network for Click-Through Rate Prediction :triangular_flag_on_post:Huawei:arrow_upper_right:torch
21AAAI'19HFM/HFM+Holographic Factorization Machines for Recommendation:arrow_upper_right:torch
22Arxiv'19DLRMDeep Learning Recommendation Model for Personalization and Recommendation Systems :triangular_flag_on_post:Facebook:arrow_upper_right:torch
23NeuralNetworks'20ONNOperation-aware Neural Networks for User Response Prediction:arrow_upper_right:torch, tf
24AAAI'20AFN/AFN+Adaptive Factorization Network: Learning Adaptive-Order Feature Interactions:arrow_upper_right:torch
25AAAI'20LorentzFMLearning Feature Interactions with Lorentzian Factorization :triangular_flag_on_post:eBay:arrow_upper_right:torch
26WSDM'20InterHAtInterpretable Click-through Rate Prediction through Hierarchical Attention :triangular_flag_on_post:NEC Labs, Google:arrow_upper_right:torch
27DLP-KDD'20FLENFLEN: Leveraging Field for Scalable CTR Prediction :triangular_flag_on_post:Tencent:arrow_upper_right:torch
28CIKM'20DeepIMDeep Interaction Machine: A Simple but Effective Model for High-order Feature Interactions :triangular_flag_on_post:Alibaba, RealAI:arrow_upper_right:torch
29WWW'21FmFMFM^2: Field-matrixed Factorization Machines for Recommender Systems :triangular_flag_on_post:Yahoo:arrow_upper_right:torch
30WWW'21DCN-V2DCN V2: Improved Deep & Cross Network and Practical Lessons for Web-scale Learning to Rank Systems :triangular_flag_on_post:Google:arrow_upper_right:torch
31CIKM'21DESTINEDisentangled Self-Attentive Neural Networks for Click-Through Rate Prediction :triangular_flag_on_post:Alibaba:arrow_upper_right:torch
32CIKM'21EDCNEnhancing Explicit and Implicit Feature Interactions via Information Sharing for Parallel Deep CTR Models :triangular_flag_on_post:Huawei:arrow_upper_right:torch
33DLP-KDD'21MaskNetMaskNet: Introducing Feature-Wise Multiplication to CTR Ranking Models by Instance-Guided Mask :triangular_flag_on_post:Sina Weibo:arrow_upper_right:torch
34SIGIR'21SAMLooking at CTR Prediction Again: Is Attention All You Need? :triangular_flag_on_post:BOSS Zhipin:arrow_upper_right:torch
35KDD'21AOANetArchitecture and Operation Adaptive Network for Online Recommendations :triangular_flag_on_post:Didi Chuxing:arrow_upper_right:torch
36AAAI'23FinalMLPFinalMLP: An Enhanced Two-Stream MLP Model for CTR Prediction :triangular_flag_on_post:Huawei:arrow_upper_right:torch
37SIGIR'23FinalNetFINAL: Factorized Interaction Layer for CTR Prediction :triangular_flag_on_post:Huawei:arrow_upper_right:torch
38SIGIR'23EulerNetEulerNet: Adaptive Feature Interaction Learning via Euler's Formula for CTR Prediction :triangular_flag_on_post:Huawei:arrow_upper_right:torch
39CIKM'23GDCNTowards Deeper, Lighter and Interpretable Cross Network for CTR Prediction :triangular_flag_on_post:Microsofttorch
40ICML'24WuKongWukong: Towards a Scaling Law for Large-Scale Recommendation :triangular_flag_on_post:Metatorch
41Arxiv'24DCNv3DCNv3: Towards Next Generation Deep Cross Network for Click-Through Rate Prediction:arrow_upper_right:torch
<tr><th colspan=6 align="center">:open_file_folder: Behavior Sequence Modeling</th></tr>
42KDD'18DINDeep Interest Network for Click-Through Rate Prediction :triangular_flag_on_post:Alibaba:arrow_upper_right:torch
43AAAI'19DIENDeep Interest Evolution Network for Click-Through Rate Prediction :triangular_flag_on_post:Alibaba:arrow_upper_right:torch
44DLP-KDD'19BSTBehavior Sequence Transformer for E-commerce Recommendation in Alibaba :triangular_flag_on_post:Alibaba:arrow_upper_right:torch
45CIKM'20DMINDeep Multi-Interest Network for Click-through Rate Prediction :triangular_flag_on_post:Alibaba:arrow_upper_right:torch
46AAAI'20DMRDeep Match to Rank Model for Personalized Click-Through Rate Prediction :triangular_flag_on_post:Alibaba:arrow_upper_right:torch
47DLP-KDD'22ETAEfficient Long Sequential User Data Modeling for Click-Through Rate Prediction :triangular_flag_on_post:Alibabatorch
48CIKM'22SDIMSampling Is All You Need on Modeling Long-Term User Behaviors for CTR Prediction :triangular_flag_on_post:Meituantorch
49KDD'23TransActTransAct: Transformer-based Realtime User Action Model for Recommendation at Pinterest :triangular_flag_on_post:Pinterest:arrow_upper_right:torch
<tr><th colspan=6 align="center">:open_file_folder: Dynamic Weight Network</th></tr>
50NeurIPS'22APGAPG: Adaptive Parameter Generation Network for Click-Through Rate Prediction :triangular_flag_on_post:Alibaba:arrow_upper_right:torch
51KDD'23PPNetPEPNet: Parameter and Embedding Personalized Network for Infusing with Personalized Prior Information :triangular_flag_on_post:KuaiShou:arrow_upper_right:torch
<tr><th colspan=6 align="center">:open_file_folder: Multi-Task Modeling</th></tr>
52Arxiv'17ShareBottomAn Overview of Multi-Task Learning in Deep Neural Networkstorch
53KDD'18MMoEModeling Task Relationships in Multi-task Learning with Multi-Gate Mixture-of-Experts :triangular_flag_on_post:Googletorch
54KDD'18PLEProgressive Layered Extraction (PLE): A Novel Multi-Task Learning (MTL) Model for Personalized Recommendations :triangular_flag_on_post:Tencenttorch
<tr><th colspan=6 align="center">:open_file_folder: Multi-Domain Modeling</th></tr>
55KDD'23PEPNetPEPNet: Parameter and Embedding Personalized Network for Infusing with Personalized Prior Information :triangular_flag_on_post:KuaiShoutorch

Benchmarking

We have benchmarked FuxiCTR models on a set of open datasets as follows:

Dependencies

FuxiCTR has the following dependencies:

Please install other required packages via pip install -r requirements.txt.

Quick Start

  1. Run the demo examples

    Examples are provided in the demo directory to show some basic usage of FuxiCTR. Users can run the examples for quick start and to understand the workflow.

    cd demo
    python example1_build_dataset_to_parquet.py
    python example2_DeepFM_with_parquet_input.py
    
  2. Run a model on tiny data

    Users can easily run each model in the model zoo following the commands below, which is a demo for running DCN. In addition, users can modify the dataset config and model config files to run on their own datasets or with new hyper-parameters. More details can be found in the 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_PATH
    python run_expid.py --expid MODEL_test --gpu 0
    
  3. Run a model on benchmark datasets (e.g., Criteo)

    Users can follow the benchmark section to get benchmark datasets and running steps for reproducing the existing results. Please see an example here: https://github.com/reczoo/BARS/tree/main/ranking/ctr/DCNv2/DCNv2_criteo_x1

  4. Implement a new model

    The FuxiCTR library is designed to be modularized, so that every component can be overwritten by users according to their needs. In many cases, only the model class needs to be implemented for a new customized model. If data preprocessing or data loader is not directly applicable, one can also overwrite a new one through the core APIs. We show a concrete example which implements our new model FinalMLP that has been recently published in AAAI 2023.

  5. Tune hyper-parameters of a model

    FuxiCTR currently support fast grid search of hyper-parameters of a model using multiple GPUs. The following example shows the grid search of 8 experiments with 4 GPUs.

    cd experiment
    python run_param_tuner.py --config config/DCN_tiny_parquet_tuner_config.yaml --gpu 0 1 2 3 0 1 2 3
    

🔥 Citation

If you find our code or benchmarks helpful in your research, please cite the following papers.