Bayesian Matrix Factorization with Side Information and Dirichlet Process Mixtures