An implementation of Bayesian Personalized Ranking[1] (with a matrix factorization model) in Java.
It's largely based off of the C# implementation in MyMediaLite (http://mymedialite.net/).
[1] Steffen Rendle, Christoph Freudenthaler, Zeno Gantner, Lars Schmidt-Thieme: BPR: Bayesian Personalized Ranking from Implicit Feedback. UAI 2009.