Implementation of a Simple Recommendation System using Low-Rank Matrix Factorization and Gradient Descent