Recommendations to users by applying knowledge-based, collaborative filtering, content-based and matrix factorization recommendations