Implementation of the matrix factorization algorithm using SGD for training and LEMP for top-k generation.