Non-negative matrix factorization is a fast technique for generating embeddings from a dataset.
More concretely, given a matrix you can decompose it into two matrices that are approximattely
multiplicands of the matrix. I.e. given matrix
M, it finds matrices
B such that
M ≈ AB.
A very cool thing about embedding matrices is that the rows and columns that comprise these matrices naturally tend to fill with values that will multiply together to create the values in your data. More concretely again, if your dataset is pictures of faces, and embedding matrix will be composed of face-like images that will be added together in varying amounts to make the faces in the dataset.
So let’s make some faces.