  Recommender systems are often biased toward popular items. In other words,
few items are frequently recommended while the majority of items do not get
proportionate attention. That leads to low coverage of items in recommendation
lists across users (i.e. low aggregate diversity) and unfair distribution of
recommended items. In this paper, we introduce FairMatch, a general graph-based
algorithm that works as a post-processing approach after recommendation
generation for improving aggregate diversity. The algorithm iteratively finds
items that are rarely recommended yet are high-quality and add them to the
users' final recommendation lists. This is done by solving the maximum flow
problem on the recommendation bipartite graph. While we focus on aggregate
diversity and fair distribution of recommended items, the algorithm can be
adapted to other recommendation scenarios using different underlying
definitions of fairness. A comprehensive set of experiments on two datasets and
comparison with state-of-the-art baselines show that FairMatch, while
significantly improving aggregate diversity, provides comparable recommendation
accuracy.
