Bayesian Personalized Ranking (BPR) is a recommender systems algorithm that can be used to personalize the experience of a user on a movie rental service, an online book store, a retail store and so on. This implementation uses the MovieLens data set but the implementation can be used for any recommender system application (added Gaussian prior, fixed an issue).