On Component Interactions in Two-Stage Recommender Systems

Abstract

Thanks to their scalability, two-stage recommenders are used by many of today's largest online platforms, including YouTube, LinkedIn, and Pinterest. These systems produce recommendations in two steps: (i) multiple nominators—tuned for low prediction latency—preselect a small subset of candidates from the whole item pool; (ii) a slower but more accurate ranker further narrows down the nominated items, and serves to the user. Despite their popularity, the literature on two-stage recommenders is relatively scarce, and the algorithms are often treated as mere sums of their parts. Such treatment presupposes that the two-stage performance is explained by the behavior of the individual components in isolation. This is not the case: using synthetic and real-world data, we demonstrate that interactions between the ranker and the nominators substantially affect the overall performance. Motivated by these findings, we derive a generalization lower bound which shows that independent nominator training can lead to performance on par with uniformly random recommendations. We find that careful design of item pools, each assigned to a different nominator, alleviates these issues. As manual search for a good pool allocation is difficult, we propose to learn one instead using a Mixture-of-Experts based approach. This significantly improves both precision and recall at $K$.

Cite

Text

Hron et al. "On Component Interactions in Two-Stage Recommender Systems." Neural Information Processing Systems, 2021.

Markdown

[Hron et al. "On Component Interactions in Two-Stage Recommender Systems." Neural Information Processing Systems, 2021.](https://mlanthology.org/neurips/2021/hron2021neurips-component/)

BibTeX

@inproceedings{hron2021neurips-component,
  title     = {{On Component Interactions in Two-Stage Recommender Systems}},
  author    = {Hron, Jiri and Krauth, Karl and Jordan, Michael I. and Kilbertus, Niki},
  booktitle = {Neural Information Processing Systems},
  year      = {2021},
  url       = {https://mlanthology.org/neurips/2021/hron2021neurips-component/}
}