Recommender Systems for Human Decision-Making
Eleven topics in recommender systems, worked in order: non-personalised ranking, genre and group baselines, matrix factorisation, then autoencoders. Each step paired with a review of the paper it comes from.
Overview
The shape of it An internship at the CAU Data Science Lab, run as a study sequence alongside a reading group following CSCI 5123. The point was to build each family of recommender in order rather than jump to the strongest one, so that every step had to justify what it added over the step before. Implementations are Jupyter notebooks on the MovieLens 1M dataset; the reviews are written up with figures. Built, in order • Non-personalised recommendation — the popularity baseline everything else has to beat. • Genre-based recommendation, then popular/genre/group variants, which is where personalisation first appears without any latent structure. • Matrix factorisation — latent factors learned from the interaction matrix. • Autoencoders, then variational autoencoders for collaborative filtering. • Mixture of experts, and Gumbel-Softmax for sampling a discrete choice while keeping gradients. Papers reviewed Categorical Reparameterization with Gumbel-Softmax; Variational Autoencoders for Collaborative Filtering; Embarrassingly Shallow Autoencoders for Sparse Data; Learning an Adaptive Meta-Model Generator for Incrementally Updating Recommender Systems; Transformers4Rec; and Time to CARE, a collaborative engine for practical disease prediction — the one that carries the thread into a decision that matters. This is coursework-scale work and it is listed as such. It is the point where the interest in how systems shape a person's choice stopped being sociological and started being something I could implement.
- Built with
- Python, PyTorch, Jupyter
- Where
- CAU Data Science Lab
- Links