<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Recommender Systems · PoliStudy</title><description>From completing a giant, mostly-empty interaction matrix to neighbourhood models, matrix factorization, learning-to-rank and graph neural recommenders — the full Politecnico di Milano Recommender Systems course, rebuilt as an interactive, exam-focused study guide.</description><link>https://www.polistudy.me/</link><language>en</language><item><title>Foundations &amp; the Data Model</title><link>https://www.polistudy.me/recommender-systems/foundations/</link><guid isPermaLink="true">https://www.polistudy.me/recommender-systems/foundations/</guid><description>Recommender systems are, at their core, the problem of completing a giant, mostly-empty table. Before any algorithm you must agree on what goes in the cells, what the holes mean, and where the numbers come from — the URM, the ICM, explicit vs implicit feedback, and the sparsity that defines the field.</description><category>user rating matrix</category><category>item content matrix</category><category>sparsity</category><category>long tail</category><category>cold start</category><category>explicit feedback</category><category>implicit feedback</category><category>density</category><category>personalized vs non-personalized</category></item><item><title>Non-Personalized Recommendation</title><link>https://www.polistudy.me/recommender-systems/non-personalized/</link><guid isPermaLink="true">https://www.polistudy.me/recommender-systems/non-personalized/</guid><description>Before we know anything about you, what should we recommend? Whatever the crowd likes. Top-Popular, Best-Rated, shrinkage and Global Effects — the trivial-to-build baselines every personalized model must beat, and the bias terms that become the backbone of matrix factorization.</description><category>top-popular</category><category>best-rated</category><category>shrinkage</category><category>global effects</category><category>popularity bias</category><category>item bias</category><category>user bias</category></item><item><title>Evaluating Recommenders</title><link>https://www.polistudy.me/recommender-systems/evaluation/</link><guid isPermaLink="true">https://www.polistudy.me/recommender-systems/evaluation/</guid><description>Every chapter after this proposes an algorithm; this is the one that decides whether any of them work. What &quot;good&quot; means, how to split data without cheating, and the three metric families — error, classification and ranking — that turn a recommendation list into a single number.</description><category>online vs offline evaluation</category><category>hold-out</category><category>information leakage</category><category>MAE</category><category>RMSE</category><category>precision</category><category>recall</category><category>average precision</category><category>MAP</category><category>ARHR</category></item><item><title>Content-Based Filtering</title><link>https://www.polistudy.me/recommender-systems/content-based-filtering/</link><guid isPermaLink="true">https://www.polistudy.me/recommender-systems/content-based-filtering/</guid><description>The first personalized recommender — if you liked an item, you will like items that look like it. Content-based filtering lives entirely in the ICM: normalise the rows, build an item–item similarity matrix, sparsify it with KNN, and score new items by a similarity-weighted sum of your own ratings.</description><category>content-based filtering</category><category>cosine similarity</category><category>similarity matrix</category><category>K-nearest-neighbours</category><category>TF-IDF</category><category>item-item similarity</category></item><item><title>Collaborative Filtering (Neighborhood)</title><link>https://www.polistudy.me/recommender-systems/collaborative-filtering/</link><guid isPermaLink="true">https://www.polistudy.me/recommender-systems/collaborative-filtering/</guid><description>Throw the item descriptions away and listen to behaviour: people who agreed in the past will agree in the future. The only input is the URM — and it reuses the exact cosine + KNN machinery from content-based filtering, pointed at the rating matrix. User-based vs item-based, Pearson, and memory vs model.</description><category>collaborative filtering</category><category>user-based CF</category><category>item-based CF</category><category>pearson correlation</category><category>adjusted cosine</category><category>memory-based</category><category>model-based</category><category>cold start</category></item><item><title>SLIM</title><link>https://www.polistudy.me/recommender-systems/slim/</link><guid isPermaLink="true">https://www.polistudy.me/recommender-systems/slim/</guid><description>Chapter 5 left one question hanging: which similarity should the item–item matrix use? SLIM stops choosing and starts learning. It keeps item-based CF&apos;s prediction r̂ = R·S exactly, but treats every entry of S as a parameter and fits it so R·S reconstructs the rating matrix from itself — with two constraints and ElasticNet regularization.</description><category>SLIM</category><category>learned similarity</category><category>regularization</category><category>lasso</category><category>ridge</category><category>elastic net</category><category>zero diagonal</category><category>gradient descent</category></item><item><title>BPR &amp; Learning-to-Rank</title><link>https://www.polistudy.me/recommender-systems/bpr/</link><guid isPermaLink="true">https://www.polistudy.me/recommender-systems/bpr/</guid><description>SLIM learned S by minimising a rating error — but we never serve ratings, we serve a ranked list. Bayesian Personalized Ranking changes the objective: from implicit feedback it builds pairs (a thing you clicked vs a thing you didn&apos;t) and trains so the clicked item scores higher. The loss is pairwise, and minimising it maximises the AUC.</description><category>BPR</category><category>pairwise ranking</category><category>pointwise</category><category>sigmoid</category><category>log-likelihood</category><category>AUC</category><category>WARP</category><category>popularity bias</category><category>implicit feedback</category></item><item><title>Matrix Factorization</title><link>https://www.polistudy.me/recommender-systems/matrix-factorization/</link><guid isPermaLink="true">https://www.polistudy.me/recommender-systems/matrix-factorization/</guid><description>Content-based filtering needed someone to tag every item; collaborative filtering threw the tags away. Matrix factorization invents the attributes — it assumes a handful of hidden latent features explain every rating, learns them from the URM, and makes a prediction a dot product. The rating matrix becomes a product of two skinny matrices.</description><category>matrix factorization</category><category>latent factor</category><category>embedding</category><category>Funk SVD</category><category>SVD++</category><category>asymmetric SVD</category><category>PureSVD</category><category>alternating least squares</category><category>missing-as-random</category></item><item><title>Hybrid Recommenders</title><link>https://www.polistudy.me/recommender-systems/hybrid/</link><guid isPermaLink="true">https://www.polistudy.me/recommender-systems/hybrid/</guid><description>Every algorithm so far has a blind spot: content-based handles new items but can&apos;t sense taste communities; collaborative leverages behaviour but is helpless against a brand-new item. A hybrid marries them — combining their opinions at the score level, the list level, the model level, or by training them jointly so each compensates for the other&apos;s weakness.</description><category>hybrid recommender</category><category>linear combination</category><category>list combination</category><category>pipelining</category><category>co-training</category><category>S-SLIM</category><category>score normalization</category></item><item><title>Graph-Based Recommenders</title><link>https://www.polistudy.me/recommender-systems/graph-based/</link><guid isPermaLink="true">https://www.polistudy.me/recommender-systems/graph-based/</guid><description>Every recommender so far worked on matrices. A graph-based recommender redraws the problem: users and items become nodes, ratings become edges, and a recommendation is a random walk — start at a user, follow edges to items, to users, back to items, and rank where you land. The famous P³ method does this in three hops and reveals that item-based CF is a degree-normalised walk.</description><category>graph-based</category><category>bipartite graph</category><category>tripartite graph</category><category>adjacency matrix</category><category>transition probability</category><category>random walk</category><category>degree normalization</category><category>P3</category><category>P3alpha</category><category>RP3beta</category><category>random walk with restart</category><category>oversmoothing</category></item><item><title>Deep Learning for RecSys</title><link>https://www.polistudy.me/recommender-systems/deep-learning-recsys/</link><guid isPermaLink="true">https://www.polistudy.me/recommender-systems/deep-learning-recsys/</guid><description>KNN, SLIM and MF are linear at heart. Deep learning adds stacked non-linear layers that learn their own features. Three architectures dominate: the autoencoder (compress a profile, reconstruct it, read off the blanks), the two-tower model (one tower per side, joined at a dot product), and the variational autoencoder. Strip the non-linearities and a shallow autoencoder collapses to a factorised item–item similarity — MF and item-CF are special cases.</description><category>fully-connected layer</category><category>activation function</category><category>binary cross entropy</category><category>autoencoder</category><category>shallow autoencoder</category><category>EASE-R</category><category>denoising autoencoder</category><category>variational autoencoder</category><category>reparametrisation trick</category><category>two-tower model</category><category>model-based vs memory-based</category><category>reproducibility</category></item><item><title>Factorization Machines</title><link>https://www.polistudy.me/recommender-systems/factorization-machines/</link><guid isPermaLink="true">https://www.polistudy.me/recommender-systems/factorization-machines/</guid><description>MF sees only users and items; linear regression sees any feature but only linearly. Factorization Machines do both: they accept arbitrary one-hot feature vectors (users, items, genres, context) and learn factorised pairwise interactions between every feature pair. Instead of a dense O(n²) weight matrix W, FM sets W ≈ VVᵀ — one latent vector per feature — unifying global effects, MF, hybrid, and context-aware recommenders in a single equation.</description><category>factorization machine</category><category>one-hot encoding</category><category>quadratic term</category><category>feature embedding</category><category>context-aware recommendation</category><category>global effects</category><category>SVD++</category><category>negative sampling</category><category>parameter count</category></item><item><title>Graph Convolutional Networks</title><link>https://www.polistudy.me/recommender-systems/gcn/</link><guid isPermaLink="true">https://www.polistudy.me/recommender-systems/gcn/</guid><description>MF learns embeddings from ratings alone; graph methods walk the interaction graph. GCNs merge the two — they learn user and item embeddings *on* the graph, where each node&apos;s embedding aggregates its neighbours&apos; (message passing). Stack hops and an embedding absorbs information from items several hops away. LightGCN, the simplest effective GCN, is just weighted-mean aggregation with BPR — and the fact that it works so well is both the beauty and the warning of the approach.</description><category>graph convolution</category><category>message passing</category><category>LightGCN</category><category>degree normalization</category><category>BPR</category><category>popularity bias</category><category>oversmoothing</category><category>spectral filter</category><category>GF-CF</category><category>computational cost</category></item><item><title>Ethics &amp; Fairness</title><link>https://www.polistudy.me/recommender-systems/ethics/</link><guid isPermaLink="true">https://www.polistudy.me/recommender-systems/ethics/</guid><description>Accuracy is not enough. A recommender that maximises click-through can also concentrate attention on a few items, trap users in filter bubbles, under-serve minorities, or push toward extreme content. This chapter asks how to *measure* these harms — the Gini coefficient for concentration, KL calibration for genre balance — and how to *fix* them — MMR and popularity-aware re-ranking — with case studies from Spotify and Facebook on how real systems face the trade-offs.</description><category>fairness</category><category>gini coefficient</category><category>maximal marginal relevance</category><category>calibration</category><category>filter bubble</category><category>serendipity</category><category>novelty</category><category>diversity</category><category>popularity bias</category><category>provider fairness</category></item><item><title>Beyond Collaborative Filtering</title><link>https://www.polistudy.me/recommender-systems/beyond-cf/</link><guid isPermaLink="true">https://www.polistudy.me/recommender-systems/beyond-cf/</guid><description>Collaborative filtering asks: given who you are and what you&apos;ve rated, what else would you like? The real world asks harder questions — what if you&apos;re a first-time visitor, or your taste depends on whether it&apos;s Saturday night, or the order of your clicks matters more than which ones? This closing chapter maps four families beyond the URM: context-aware (tensor factorisation), session-based, knowledge-based, and sequence-aware (RNN/Transformer).</description><category>context-aware recommendation</category><category>tensor factorization</category><category>session-based recommendation</category><category>session-aware recommendation</category><category>knowledge-based recommendation</category><category>sequence-aware recommendation</category><category>RNN</category><category>Markov chain</category><category>cold-start</category></item></channel></rss>