Recommendation overview

Recommendation systems are one of the most successful and widespread applications of machine learning for businesses. You can use a recommendation system to help your users find compelling content in a large body of content. For example, Google Play Store offers millions of apps, while YouTube offers billions of videos, with more apps and videos added every day. Users can use search to find new content, but that is limited by the search terms they use. A recommendation system can suggest content that users might not have thought to search for on their own. For more information, see Recommendation Systems Overview.

Machine learning algorithms in recommendation systems are typically classified into the following two categories: content-based and collaborative filtering based.

  • Content-based filtering: uses similarity between items to provide recommendations. For example, if a user watches two cute cat videos, then the recommendation system can recommend more cute animal videos to that user.
  • Collaborative filtering: uses similarities between users (based on user queries) to provide recommendations. For example, if user A searches for similar things to user B, and user B likes video 1, then the recommendation system can recommend video 1 to user A, even if user A hasn't watched any videos similar to video 1.

Matrix factorization models are widely used as a collaborative filtering method for recommendation systems. You can use a matrix factorization model with the ML.RECOMMEND function to make recommendations. For more information, see Matrix Factorization.

To extend a collaborative filtering-based recommendation system beyond what is possible with a matrix factorization model, you can use deep neural network (DNN) and Wide-and-Deep models. These models can incorporate query and item features to improve the relevance of recommendations. For more information, see the following resources: