The implementation of our SIGIR26 paper: Equity vs. Equality: Optimizing Ranking Fairness for Tailored Provider Needs
numpy==1.23.5
recbole==1.2.0
tqdm
Details can be found here.
Several parameters to be set are as follows:
mode: Whether the ranking is done in the offline or online setting.algorithm: The selected ranking algorithm. Specifically, we implement: RandomK, TopK, PoorK, TFROM, FairCo, MMF, EquityRank.k: Size of the ranking list.Lambda: Parameters for balancing relevance and fairness in the ranking objective.data_path: Path to the dataset.log_path: Path to store the log file.step: Number of steps the algorithm runs in the online setting.log_step: Log every few steps.print_while_log: Whether to output the log content to the terminal during the running process.
For example, to run the FairCo algorithm with balance factor
python src/main.py \
--mode offline \
--data_path dataset/data/Musical_Instuments \
--algorithm FairCo \
--log_path log/FairCo_MI.log \
--Lambda 1.5 \
--k 5 \
--print_while_log