Recommender systems

Assumed audience:

People who have not heard about recommender systems yet

Not my core area, but I need a landing page to refer to because this is coming up in conversations a lot at the moment.

Users who liked apostasy also enjoyed…

Recommender systems are a weird area. There have been some high profile examples of recommender models going back a long time (e.g. the Netflix Prize) and they are clearly commercially important. At time of writing, though, there is relatively little material introducing these systems to wide audiences, compared to say linear regressions and image classifiers and so on. Possibly this is something about who owns the data to make these tools go, which is to say, there are relatively few open data sets for recommender systems?

I would like to refer to a simple and good introduction to the area, but I do not know one, so here is a scruffy word salad with some helpful links.

YouTube’s defence of their recommender system introduces in vague outline a lot of the features that make it go on the way to defending them from allegations of feeding extremism [citation needed].


Starting from an overview by Javier we can find many approaches to more abstract recommender systems.

  1. Most Popular recommendations (the baseline)
  2. Item-User similarity based recommendations
  3. kNN Collaborative Filtering recommendations
  4. Gradient Boosting Machine based recommendations
  5. Non-Negative Matrix Factorization recommendations
  6. Factorization Machines (Rendle 2010)
  7. Field Aware Factorization Machines (Juan et al. 2016)
  8. Deep Learning based recommendations (Wide and Deep, Cheng et al. (2016))
  9. Neural Collaborative Filtering (He et al. 2017)
  10. Neural Graph Collaborative Filtering (Xiang Wang et al. 2019)
  11. Variational Autoencoders for Collaborative Filtering (Liang et al. 2018)

Not mentioned in that list filtering based on monitoring the brains of subjects (Davis III, Spapé, and Ruotsalo 2021).

A different take is in Microsoft’s Best Practices on Recommendation Systems, which breaks things down more along the lines of packages and implementations; probably what you want if you are an implementer not a researcher.

This area is moving fast, especially recently. I have the suspicion that the neural network methods are speciating at the moment.

Quentin Bacquet curtly summarises some methods and their performance on a problem, and deeply introduces the VAE method via an implementation.

Ben Lorica in Questioning the Efficacy of Neural Recommendation Systems interviews Paolo Cremonesi and Maurizio Ferrari Dacrema, who are the authors of some recent review papers (Dacrema, Cremonesi, and Jannach 2019; Dacrema et al. 2021).

I am most familiar with the matrix factorization approaches (Koren, Bell, and Volinsky 2009; Yu et al. 2014, 2012; Lim and Teh 2007), especially NNMF) but there are many, e.g. variational autoencoder approaches are en vogue.

(Cheng et al. 2016) feels overcomplicated, but at least it is documented, and comes with an implementation: jrzaurin/pytorch-widedeep: A flexible package to combine tabular data with text and images using Wide and Deep models in Pytorch. Note that the author of that package advises using gradient boosting machines to get this job done.

Wu et al. (2021) taxonomises recommendation systems using Graph NNs, which is another natural idea. Their list goes a long way beyond Xiang Wang et al. (2019).


Cremonesi and Dacrema maintain reproduction code for several popular algorithms which is probably pedagogically useful.

Microsoft Recommenders, already mentioned, includes basic wrappers for a lot of different tools, and also includes worked examples and deployment advice. Maybe start there

Vowpal wabbit

Vowpal wabbit implements some classic recommendation systems extremely efficiently, but the manual has historically been famously abstruse. Now it is merely gruff. There are, I think(?), two tutorials in the documentation:

There is a worked example, vowpal_wabbit_deep_dive.ipynb in Microsoft Recommenders.

For seduction and addiction of humans

Popular choice. See clickbait bandits.


Abernethy, Jacob, Francis Bach, Theodoros Evgeniou, and Jean-Philippe Vert. 2009. A New Approach to Collaborative Filtering: Operator Estimation with Spectral Regularization.” Journal of Machine Learning Research 10 (Mar): 803–26.
Argyriou, Andreas, Miguel González-Fierro, and Le Zhang. 2020. Microsoft Recommenders: Best Practices for Production-Ready Recommendation Systems.” In Companion Proceedings of the Web Conference 2020, 50–51. New York, NY, USA: Association for Computing Machinery.
Brouwer, Thomas Alexander. 2017. Bayesian Matrix Factorisation: Inference, Priors, and Data Integration.”
Chen, Dawei, Lexing Xie, Aditya Krishna Menon, and Cheng Soon Ong. 2017. Structured Recommendation.” arXiv:1706.09067 [Cs], June.
Cheng, Heng-Tze, Levent Koc, Jeremiah Harmsen, Tal Shaked, Tushar Chandra, Hrishi Aradhye, Glen Anderson, et al. 2016. Wide & Deep Learning for Recommender Systems.” arXiv:1606.07792 [Cs, Stat], June.
Dacrema, Maurizio Ferrari, Simone Boglio, Paolo Cremonesi, and Dietmar Jannach. 2021. A Troubling Analysis of Reproducibility and Progress in Recommender Systems Research.” ACM Transactions on Information Systems 39 (2): 1–49.
Dacrema, Maurizio Ferrari, Paolo Cremonesi, and Dietmar Jannach. 2019. Are We Really Making Much Progress? A Worrying Analysis of Recent Neural Recommendation Approaches.” In Proceedings of the 13th ACM Conference on Recommender Systems, 101–9. Copenhagen Denmark: ACM.
Davis III, Keith M., Michiel Spapé, and Tuukka Ruotsalo. 2021. Collaborative Filtering with Preferences Inferred from Brain Signals.” In Proceedings of the Web Conference 2021, 602–11. WWW ’21. New York, NY, USA: Association for Computing Machinery.
Fernández, Miriam, Alejandro Bellogín, and Iván Cantador. 2021. Analysing the Effect of Recommendation Algorithms on the Amplification of Misinformation.” arXiv:2103.14748 [Cs], March.
Graham, Scott, Jun-Ki Min, and Tao Wu. 2019. Microsoft Recommenders: Tools to Accelerate Developing Recommender Systems.” In Proceedings of the 13th ACM Conference on Recommender Systems, 542–43. RecSys ’19. New York, NY, USA: Association for Computing Machinery.
He, Xiangnan, Lizi Liao, Hanwang Zhang, Liqiang Nie, Xia Hu, and Tat-Seng Chua. 2017. Neural Collaborative Filtering.” In Proceedings of the 26th International Conference on World Wide Web, 173–82. WWW ’17. Republic and Canton of Geneva, CHE: International World Wide Web Conferences Steering Committee.
Heckerman, David, David Maxwell Chickering, Christopher Meek, Robert Rounthwaite, and Carl Kadie. 2000. Dependency Networks for Inference, Collaborative Filtering, and Data Visualization.” Journal of Machine Learning Research 1 (Oct): 49–75.
Juan, Yuchin, Yong Zhuang, Wei-Sheng Chin, and Chih-Jen Lin. 2016. Field-Aware Factorization Machines for CTR Prediction.” In Proceedings of the 10th ACM Conference on Recommender Systems, 43–50. RecSys ’16. New York, NY, USA: Association for Computing Machinery.
Koren, Yehuda, Robert Bell, and Chris Volinsky. 2009. Matrix Factorization Techniques for Recommender Systems.” Computer 42 (8): 30–37.
Li, Lihong, Wei Chu, John Langford, and Xuanhui Wang. 2011. Unbiased Offline Evaluation of Contextual-Bandit-Based News Article Recommendation Algorithms.” In Proceedings of the Fourth International Conference on Web Search and Web Data Mining (WSDM-11), 297–306.
Liang, Dawen, Rahul G. Krishnan, Matthew D. Hoffman, and Tony Jebara. 2018. Variational Autoencoders for Collaborative Filtering.” In Proceedings of the 2018 World Wide Web Conference, 689–98. WWW ’18. Republic and Canton of Geneva, CHE: International World Wide Web Conferences Steering Committee.
Lim, Yew Jin, and Yee Whye Teh. 2007. “Variational Bayesian Approach to Movie Rating Prediction.” In Proceedings of KDD Cup and Workshop, 7:15–21. Citeseer.
Raiko, Tapani, Alexander Ilin, and Juha Karhunen. 2007. Principal Component Analysis for Large Scale Problems with Lots of Missing Values.” In Machine Learning: ECML 2007, edited by Joost N. Kok, Jacek Koronacki, Raomon Lopez de Mantaras, Stan Matwin, Dunja Mladenič, and Andrzej Skowron, 4701:691–98. Berlin, Heidelberg: Springer Berlin Heidelberg.
Rendle, Steffen. 2010. Factorization Machines.” In 2010 IEEE International Conference on Data Mining, 995–1000.
Sedhain, Suvash, Aditya Krishna Menon, Scott Sanner, and Lexing Xie. 2015. AutoRec: Autoencoders Meet Collaborative Filtering.” In Proceedings of the 24th International Conference on World Wide Web, 111–12. Florence Italy: ACM.
Sharma, Amit, Jake M. Hofman, and Duncan J. Watts. 2015. Estimating the Causal Impact of Recommendation Systems from Observational Data.” Proceedings of the Sixteenth ACM Conference on Economics and Computation - EC ’15, 453–70.
Teeny, Jacob D., Joseph J. Siev, Pablo Briñol, and Richard E. Petty. 2021. A Review and Conceptual Framework for Understanding Personalized Matching Effects in Persuasion.” Journal of Consumer Psychology 31 (2): 382–414.
Wang, Xiang, Xiangnan He, Meng Wang, Fuli Feng, and Tat-Seng Chua. 2019. Neural Graph Collaborative Filtering.” In Proceedings of the 42nd International ACM SIGIR Conference on Research and Development in Information Retrieval, 165–74. SIGIR’19. New York, NY, USA: Association for Computing Machinery.
Wang, Xinxi, and Ye Wang. 2014. Improving Content-Based and Hybrid Music Recommendation Using Deep Learning.” In Proceedings of the 22Nd ACM International Conference on Multimedia, 627–36. MM ’14. New York, NY, USA: ACM.
Whittaker, Joe, Seán Looney, Alastair Reed, and Fabio Votta. 2021. Recommender Systems and the Amplification of Extremist Content.” Internet Policy Review 10 (2).
Wu, Shiwen, Fei Sun, Wentao Zhang, and Bin Cui. 2021. Graph Neural Networks in Recommender Systems: A Survey.” arXiv:2011.02260 [Cs], April.
Xia, Min, Xianwen Yu, Xiaoning Zhang, and Yang Cao. 2019. VAEGAN: A Collaborative Filtering Framework Based on Adversarial Variational Autoencoders,” 4206–12.
Yu, Hsiang-Fu, Cho-Jui Hsieh, Si Si, and Inderjit S. Dhillon. 2012. Scalable Coordinate Descent Approaches to Parallel Matrix Factorization for Recommender Systems.” In IEEE International Conference of Data Mining, 765–74.
———. 2014. Parallel Matrix Factorization for Recommender Systems.” Knowledge and Information Systems 41 (3): 793–819.
Zhao, Zhe, Lichan Hong, Li Wei, Jilin Chen, Aniruddh Nath, Shawn Andrews, Aditee Kumthekar, Maheswaran Sathiamoorthy, Xinyang Yi, and Ed Chi. 2019. Recommending What Video to Watch Next: A Multitask Ranking System.” In Proceedings of the 13th ACM Conference on Recommender Systems, 43–51. RecSys ’19. New York, NY, USA: Association for Computing Machinery.

No comments yet. Why not leave one?

GitHub-flavored Markdown & a sane subset of HTML is supported.