  Recommendation algorithms perform differently if the users, recommendation
contexts, applications, and user interfaces vary even slightly. It is similarly
observed in other fields, such as combinatorial problem solving, that
algorithms perform differently for each instance presented. In those fields,
meta-learning is successfully used to predict an optimal algorithm for each
instance, to improve overall system performance. Per-instance algorithm
selection has thus far been unsuccessful for recommender systems. In this paper
we propose a per-instance meta-learner that clusters data instances and
predicts the best algorithm for unseen instances according to cluster
membership. We test our approach using 10 collaborative- and 4 content-based
filtering algorithms, for varying clustering parameters, and find a significant
improvement over the best performing base algorithm at alpha=0.053 (MAE: 0.7107
vs LightGBM 0.7214; t-test). We also explore the performances of our base
algorithms on a ratings dataset and empirically show that the error of a
perfect algorithm selector monotonically decreases for larger pools of
algorithm. To the best of our knowledge, this is the first effective
meta-learning technique for per-instance algorithm selection in recommender
systems.
