Fair Recommendation in Two-Sided Platforms

Running FairRec or FairRecPlus

python FairRec.py google_local_fact.csv 10 0.5
python FairRecPlus.py google_local_fact.csv 10 0.5

There are three arguments here.

  • path to csv file with relevance scores (rows: customers, columns: producers) like google_local_fact.csv above.
  • size of recommendation or k like 10 above.
  • value of α (our producer-side guarantee will be α×MMS. The value of α can be in between 0 and 1) like 0.5 above.

It saves the recommendations in zipped pickle file (dictionary format { customer : list_of_recommended_products }).

Relevance Scores

You can use the relevance scores estimated in your dataset in csv format (rows: customers, columns: producers) for your application scenario. Alternatively you can test with ours. The relevance scores calculated for the datasets (used in the paper) can be found in the following links in zipped csv format.

Citation Information

If you use this repository in your research, please cite the following paper.

You can use the following bibtex.

author = {Patro, Gourab K and Biswas, Arpita and Ganguly, Niloy and Gummadi, Krishna P. and Chakraborty, Abhijnan},
title = {FairRec: Two-Sided Fairness for Personalized Recommendations in Two-Sided Platforms},
year = {2020},
isbn = {9781450370233},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
url = {https://doi.org/10.1145/3366423.3380196},
doi = {10.1145/3366423.3380196},
booktitle = {Proceedings of The Web Conference 2020},
pages = {1194–1204},
numpages = {11},
keywords = {Fair Allocation, Fair Recommendation, Maximin Share, Two-Sided Markets, Envy-Freeness},
location = {Taipei, Taiwan},
series = {WWW ’20}


View Github