Overview | Set Up Environment | Prepare Dataset | Run Experiments | Related Works | Citation
This is the official pytorch implementation of our paper MAC: A Conversion Rate Prediction Benchmark Featuring Labels Under Multiple Attribution Mechanisms. Our framework targets industrial-scale CVR prediction scenarios that require learning from conversion labels generated by multiple attribution mechanisms to obtain a more comprehensive and robust understanding of touchpoint value.
Our project relies on python 3.10.18. You need to install required dependencies from requirements.txt.
conda create -n mal python==3.10.18 -y
conda activate mal
pip install -r requirements.txtTo reproduce the results of the paper, the MAC dataset is required. MAC now is publicly available on 🤗 Hugging Face. You can download the dataset directly via git clone:
git clone https://huggingface.co/datasets/alimamaTech/MAC dataBefore running the code, please make sure your working directory follows the structure below. Files and folders marked as (from this GitHub project) are provided in this repository. Items marked as (from huggingface) or (after running preprocess.py) must be prepared by you.
.
├── data/ # Data directory
│ ├── cached/ (after runing preprocess.py) # Preprocessed data
│ ├── test/ (from huggingface) # Test data
│ ├── train/ (from huggingface) # Training data
│ └── vocabs/ (from huggingface) # ID mappings
│
├── model/ (from this github project) # Model implementations
│ ├── net/ # network modules
│ ├── BASE.py # Single-attribution baseline model
│ ├── ShareBottom.py # Shared-Bottom model
│ ├── MMoE.py # MMoE model
│ ├── HoME.py # HoME model
│ ├── PLE.py # PLE model
│ ├── NATAL.py # NATAL model implementation
│ └── MoAE.py # Our proposed MoAE model implementation
│
├── results/ (after running code) # Experiment outputs
│ ├── logs/ # Training and evaluation logs
│ └── runs/ # TensorBoard logs
│
├── scripts/ (from this github project) # Shell scripts
│ └── run.sh # Example script to launch traning
│
├── utils/ (from this github project) # Utility modules
│ ├── data.py # Data loading, batching, and dataset helpers
│ ├── grad.py # Gradient utilities (e.g., GCS, PCGrad)
│ ├── trainer.py # Training / evaluation loops and hooks
│ └── utils.py # Misc common utilities (logging, config, seeds, etc.)
│
├── preprocess.py (from this github project) # Data preprocessing
└── run.py (from this github project) # Main entry point (configuration, training, evaluation)
Concretely, you need to:
- Clone this repository, which provides
model/,scripts/,utils/,run.py,preprocess.py, andrequirements.txt. - Download the dataset from HuggingFace and place: training files into
data/train/; test files intodata/test/; vocab files intodata/vocabs/. - Run
preprocess.pyonce to generate cached preprocessed data indata/cached/. - Before running the experiments, if you need to modify the training configuration, you can set the command-line arguments in
utils/data.pyviaget_args(). - Run experiments. After running, the code will automatically write: training and evaluation logs into
results/logs/; TensorBoard logs intoresults/runs/.
Then you can reproduce the experiments by using scripts/run.sh:
sh scripts/run.shDuring training, you can monitor the loss and other metrics with TensorBoard:
tensorboard --logdir results/runs/If you find our work useful for your research, please consider citing the paper:
@misc{wu2026macconversionrateprediction,
title={MAC: A Conversion Rate Prediction Benchmark Featuring Labels Under Multiple Attribution Mechanisms},
author={Jinqi Wu and Sishuo Chen and Zhangming Chan and Yong Bai and Lei Zhang and Sheng Chen and Chenghuan Hou and Xiang-Rong Sheng and Han Zhu and Jian Xu and Bo Zheng and Chaoyou Fu},
year={2026},
eprint={2603.02184},
archivePrefix={arXiv},
primaryClass={cs.LG},
url={https://arxiv.org/abs/2603.02184},
}
