Decomposing a sparse interaction matrix
Picture a giant table with one row per user and one column per item, where each cell holds a rating or interaction if that user engaged with that item, and is empty otherwise. For any real platform this matrix is enormous and overwhelmingly sparse, most users have interacted with a tiny fraction of the catalog. Matrix factorization is the classic technique for making sense of that sparsity: it decomposes the user-item matrix into two much smaller matrices, one row per user and one row per item, each living in a shared lower-dimensional space, such that the dot product of a user's row and an item's row approximates that user's preference for that item.
Those rows are embeddings in exactly the sense covered in the Vector Databases & Embeddings course, dense numeric vectors that capture latent structure rather than any hand-specified attribute. The dimensions don't correspond to anything explicitly labeled like 'genre' or 'price', they're learned purely to make the dot-product predictions match observed interactions as closely as possible. Two items end up with similar embeddings not because a human said they're similar, but because the same users tended to engage with both.
