Collaborative Filtering in Recommender Systems: Technicalities, Challenges, Applications, and Research Trends