{"id":4322,"date":"2021-01-21T18:00:48","date_gmt":"2021-01-21T18:00:48","guid":{"rendered":"https:\/\/www.aiproblog.com\/index.php\/2021\/01\/21\/how-to-get-started-with-recommender-systems\/"},"modified":"2021-01-21T18:00:48","modified_gmt":"2021-01-21T18:00:48","slug":"how-to-get-started-with-recommender-systems","status":"publish","type":"post","link":"https:\/\/www.aiproblog.com\/index.php\/2021\/01\/21\/how-to-get-started-with-recommender-systems\/","title":{"rendered":"How to Get Started With Recommender Systems"},"content":{"rendered":"<p>Author: Jason Brownlee<\/p>\n<div>\n<p><strong>Recommender systems<\/strong> may be the most common type of predictive model that the average person may encounter.<\/p>\n<p>They provide the basis for recommendations on services such as Amazon, Spotify, and Youtube.<\/p>\n<p>Recommender systems are a huge daunting topic if you&rsquo;re just getting started. There is a myriad of data preparation techniques, algorithms, and model evaluation methods.<\/p>\n<p>Not all of the techniques will be relevant, and in fact, the state-of-the-art can be ignored for now as you will likely get very good results by focusing on the fundamentals, e.g. treat it as a straightforward classification or regression problem.<\/p>\n<p>It is important to know the basics and have it all laid out for you in a systematic way. For this, I recommend skimming or reading the standard books and papers on the topic and looking at some of the popular libraries.<\/p>\n<p>In this tutorial, you will discover resources you can use to get started with recommender systems.<\/p>\n<p>After completing this tutorial, you will know:<\/p>\n<ul>\n<li>The top review papers on recommender systems you can use to quickly understand the state of the field.<\/li>\n<li>The top books on recommender systems from which you can learn the algorithms and techniques required when developing and evaluating recommender systems.<\/li>\n<li>The top Python libraries and APIs that you can use to prototype and develop your own recommender systems.<\/li>\n<\/ul>\n<p>Let&rsquo;s get started.<\/p>\n<div id=\"attachment_11882\" style=\"width: 810px\" class=\"wp-caption aligncenter\"><img decoding=\"async\" aria-describedby=\"caption-attachment-11882\" loading=\"lazy\" class=\"size-full wp-image-11882\" src=\"https:\/\/machinelearningmastery.com\/wp-content\/uploads\/2021\/03\/How-to-Get-Started-With-Recommender-Systems.jpg\" alt=\"How to Get Started With Recommender Systems\" width=\"800\" height=\"600\" srcset=\"http:\/\/3qeqpr26caki16dnhd19sv6by6v.wpengine.netdna-cdn.com\/wp-content\/uploads\/2021\/03\/How-to-Get-Started-With-Recommender-Systems.jpg 800w, http:\/\/3qeqpr26caki16dnhd19sv6by6v.wpengine.netdna-cdn.com\/wp-content\/uploads\/2021\/03\/How-to-Get-Started-With-Recommender-Systems-300x225.jpg 300w, http:\/\/3qeqpr26caki16dnhd19sv6by6v.wpengine.netdna-cdn.com\/wp-content\/uploads\/2021\/03\/How-to-Get-Started-With-Recommender-Systems-768x576.jpg 768w\" sizes=\"(max-width: 800px) 100vw, 800px\"><\/p>\n<p id=\"caption-attachment-11882\" class=\"wp-caption-text\">How to Get Started With Recommender Systems<br \/>Photo by <a href=\"https:\/\/www.flickr.com\/photos\/mission-beach\/6184339644\/\">Paul Toogood<\/a>, some right reserved.<\/p>\n<\/div>\n<h2>Tutorial Overview<\/h2>\n<p>This tutorial is divided into three parts; they are:<\/p>\n<ol>\n<li>Papers on Recommender Systems<\/li>\n<li>Books on Recommender Systems<\/li>\n<li>Recommender Systems Libraries<\/li>\n<\/ol>\n<h2>Papers on Recommender Systems<\/h2>\n<p>Research papers on <a href=\"https:\/\/en.wikipedia.org\/wiki\/Recommender_system\">recommender systems<\/a> can help you very quickly get up to speed on the state of the field.<\/p>\n<p>Specifically, review papers that use precise language to define what a recommender system is, the algorithms that can be used, standard datasets and metrics for comparing algorithms, and hints at the state of the art techniques.<\/p>\n<p>By skimming or reading a handful of review papers on recommender systems, you can quickly develop a foundation from which to dive deeper and start developing your own systems.<\/p>\n<p>The field does not change that quickly, and techniques from 10 or 20 years ago will give you solid results.<\/p>\n<p>Review papers on recommender systems I recommended to establish a foundational understanding include:<\/p>\n<ul>\n<li><a href=\"https:\/\/ieeexplore.ieee.org\/abstract\/document\/1167344\">Amazon.com Recommendations: Item-to-item Collaborative Filtering<\/a>, 2003.<\/li>\n<li><a href=\"https:\/\/ieeexplore.ieee.org\/abstract\/document\/5197422\">Matrix Factorization Techniques for Recommender Systems<\/a>, 2009.<\/li>\n<li><a href=\"https:\/\/www.sciencedirect.com\/science\/article\/abs\/pii\/S0370157312000828\">Recommender Systems<\/a>, 2012.<\/li>\n<li><a href=\"https:\/\/www.sciencedirect.com\/science\/article\/abs\/pii\/S0950705113001044\">Recommender Systems Survey<\/a>, 2013.<\/li>\n<li><a href=\"https:\/\/link.springer.com\/chapter\/10.1007\/978-1-4899-7637-6_3\">Advances in Collaborative Filtering<\/a>, 2015.<\/li>\n<\/ul>\n<div id=\"attachment_11880\" style=\"width: 650px\" class=\"wp-caption aligncenter\"><img decoding=\"async\" aria-describedby=\"caption-attachment-11880\" loading=\"lazy\" class=\"size-full wp-image-11880\" src=\"https:\/\/machinelearningmastery.com\/wp-content\/uploads\/2020\/11\/Matrix-Factorization-Techniques-for-Recommender-Systems2.png\" alt=\"Matrix Factorization Techniques for Recommender Systems\" width=\"640\" height=\"883\" srcset=\"http:\/\/3qeqpr26caki16dnhd19sv6by6v.wpengine.netdna-cdn.com\/wp-content\/uploads\/2020\/11\/Matrix-Factorization-Techniques-for-Recommender-Systems2.png 640w, http:\/\/3qeqpr26caki16dnhd19sv6by6v.wpengine.netdna-cdn.com\/wp-content\/uploads\/2020\/11\/Matrix-Factorization-Techniques-for-Recommender-Systems2-217x300.png 217w\" sizes=\"(max-width: 640px) 100vw, 640px\"><\/p>\n<p id=\"caption-attachment-11880\" class=\"wp-caption-text\">Matrix Factorization Techniques for Recommender Systems<\/p>\n<\/div>\n<p>Once you have questions about specific techniques, you can then find papers that focus on those techniques and dive deeper.<\/p>\n<p>You can search for papers on specific techniques here:<\/p>\n<ul>\n<li><a href=\"https:\/\/scholar.google.com\/\">Google Scholar<\/a><\/li>\n<\/ul>\n<p>Do you know of additional good review papers on recommender systems?<br \/>\nLet me know in the comments below.<\/p>\n<h2>Books on Recommender Systems<\/h2>\n<p>Books on recommender systems provide the space to lay out the field and take you on a tour of the techniques and give you the detail you need to understand them, with more breadth and detail than a much shorter review paper.<\/p>\n<p>Again, given that the field is quite mature, older books, such as those published a decade ago, should not be immediately neglected.<\/p>\n<p>Some top textbooks published by key researchers in the field include the following:<\/p>\n<ul>\n<li><a href=\"https:\/\/amzn.to\/34RKtv3\">Recommender Systems: An Introduction<\/a>, 2010.<\/li>\n<li><a href=\"https:\/\/amzn.to\/3jP3cvp\">Recommender Systems: The Textbook<\/a>, 2016.<\/li>\n<\/ul>\n<p>I own a hard copy of &ldquo;<a href=\"https:\/\/amzn.to\/34RKtv3\">Recommender Systems: An Introduction<\/a>&rdquo; and cannot recommend it highly enough.<\/p>\n<blockquote>\n<p>This book offers an overview of approaches to developing state-of-the-art recommender systems. The authors present current algorithmic approaches for generating personalized buying proposals, such as collaborative and content-based filtering, as well as more interactive and knowledge- based approaches. They also discuss how to measure the effectiveness of recommender systems and illustrate the methods with practical case studies.<\/p>\n<\/blockquote>\n<p>&mdash; <a href=\"https:\/\/amzn.to\/34RKtv3\">Recommender Systems: An Introduction<\/a>, 2010.<\/p>\n<p>The table of contents for this book is as follows:<\/p>\n<ul>\n<li>Chapter 1: Introduction<\/li>\n<li>Chapter 2: Collaborative recommendation<\/li>\n<li>Chapter 3: Content-based recommendation<\/li>\n<li>Chapter 4: Knowledge-based recommendation<\/li>\n<li>Chapter 5: Hybrid recommendation approaches<\/li>\n<li>Chapter 6: Explanations in recommender systems<\/li>\n<li>Chapter 7: Evaluating recommender systems<\/li>\n<li>Chapter 8: Case study: Personalized game recommendations on the mobile Internet<\/li>\n<li>Chapter 9: Attacks on collaborative recommender systems<\/li>\n<li>Chapter 10: Online consumer decision making<\/li>\n<li>Chapter 11: Recommender systems and the next-generation web<\/li>\n<li>Chapter 12: Recommendations in ubiquitous environments<\/li>\n<li>Chapter 13: Summary and outlook<\/li>\n<\/ul>\n<div id=\"attachment_11881\" style=\"width: 261px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/amzn.to\/34RKtv3\"><img decoding=\"async\" aria-describedby=\"caption-attachment-11881\" loading=\"lazy\" class=\"size-full wp-image-11881\" src=\"https:\/\/machinelearningmastery.com\/wp-content\/uploads\/2020\/11\/Recommender-Systems-An-Introduction.jpg\" alt=\"Recommender Systems: An Introduction\" width=\"251\" height=\"400\" srcset=\"http:\/\/3qeqpr26caki16dnhd19sv6by6v.wpengine.netdna-cdn.com\/wp-content\/uploads\/2020\/11\/Recommender-Systems-An-Introduction.jpg 251w, http:\/\/3qeqpr26caki16dnhd19sv6by6v.wpengine.netdna-cdn.com\/wp-content\/uploads\/2020\/11\/Recommender-Systems-An-Introduction-188x300.jpg 188w\" sizes=\"(max-width: 251px) 100vw, 251px\"><\/a><\/p>\n<p id=\"caption-attachment-11881\" class=\"wp-caption-text\">Recommender Systems: An Introduction<\/p>\n<\/div>\n<p>It can be good to get a handbook on the topic with chapters written by different academics summarizing or championing their preferred techniques and methods.<\/p>\n<p>I recommend this handbook:<\/p>\n<ul>\n<li><a href=\"https:\/\/amzn.to\/2HY07Mq\">Recommender Systems Handbook<\/a>, 2015.<\/li>\n<\/ul>\n<p>If you are looking for a more hands-on book, I recommend:<\/p>\n<ul>\n<li><a href=\"https:\/\/amzn.to\/3oNvLwU\">Practical Recommender Systems<\/a>, 2019.<\/li>\n<\/ul>\n<p>Have you read one of these books? Or do you know another great book on the topic?<br \/>\nLet me know in the comments below.<\/p>\n<h2>Recommender Systems Libraries<\/h2>\n<p>You probably don&rsquo;t need to dive into the start of the art, at least not immediately.<\/p>\n<p>As such, standard machine learning libraries are a great place to start.<\/p>\n<p>For example, you can develop an effective recommender system using <a href=\"https:\/\/machinelearningmastery.com\/introduction-to-matrix-decompositions-for-machine-learning\/\">matrix factorization<\/a> methods (<a href=\"https:\/\/machinelearningmastery.com\/singular-value-decomposition-for-machine-learning\/\">SVD<\/a>) or even a straight forward k-nearest neighbors model by items or by users.<\/p>\n<p>As such, I recommend starting with some experiments with scikit-learn:<\/p>\n<ul>\n<li><a href=\"https:\/\/scikit-learn.org\/\">Scikit-Learn Python Machine Learning Library<\/a>.<\/li>\n<\/ul>\n<p>You can practice on standard recommender system datasets if your own data is not yet accessible or available, or you just want to get the hang of things first.<\/p>\n<p>Popular standard datasets for recommender systems include:<\/p>\n<ul>\n<li><a href=\"https:\/\/movielens.org\/\">MovieLens<\/a><\/li>\n<li><a href=\"https:\/\/webscope.sandbox.yahoo.com\/catalog.php?datatype=r\">Yahoo datasets<\/a> (music, urls, movies, etc.)<\/li>\n<\/ul>\n<p>If you are ready for state-of-the-art techniques, a great place to start is &ldquo;<em>papers with code<\/em>&rdquo; that lists both academic papers and links to the source code for the methods described in the paper:<\/p>\n<ul>\n<li><a href=\"https:\/\/paperswithcode.com\/task\/recommendation-systems\">Papers With Code: Recommendation Systems<\/a><\/li>\n<\/ul>\n<p>There are a number of proprietary and open-source libraries and services for recommender systems.<\/p>\n<p>I recommend sticking with open-source Python libraries in the beginning, such as:<\/p>\n<ul>\n<li><a href=\"https:\/\/github.com\/NicolasHug\/Surprise\">Surprise: A Python scikit for building and analyzing recommender systems<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/caserec\/CaseRecommender\">Case Recommender: A Flexible and Extensible Python Framework for Recommender Systems<\/a><\/li>\n<\/ul>\n<p>Have you used any of these libraries to develop a recommender system?<br \/>\nLet me know in the comments below.<\/p>\n<h2>Summary<\/h2>\n<p>In this tutorial, you discovered resources you can use to get started with recommender systems.<\/p>\n<p>Specifically, you learned:<\/p>\n<ul>\n<li>The top review papers on recommender systems you can use to quickly understand the state of the field.<\/li>\n<li>The top books on recommender systems from which you can learn the algorithms and techniques required when developing and evaluating recommender systems.<\/li>\n<li>The top Python libraries and APIs that you can use to prototype and develop your own recommender systems.<\/li>\n<\/ul>\n<p><strong>Do you have any questions?<\/strong><br \/>\nAsk your questions in the comments below and I will do my best to answer.<\/p>\n<p>The post <a rel=\"nofollow\" href=\"https:\/\/machinelearningmastery.com\/recommender-systems-resources\/\">How to Get Started With Recommender Systems<\/a> appeared first on <a rel=\"nofollow\" href=\"https:\/\/machinelearningmastery.com\/\">Machine Learning Mastery<\/a>.<\/p>\n<\/div>\n<p><a href=\"https:\/\/machinelearningmastery.com\/recommender-systems-resources\/\">Go to Source<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Author: Jason Brownlee Recommender systems may be the most common type of predictive model that the average person may encounter. They provide the basis for [&hellip;] <span class=\"read-more-link\"><a class=\"read-more\" href=\"https:\/\/www.aiproblog.com\/index.php\/2021\/01\/21\/how-to-get-started-with-recommender-systems\/\">Read More<\/a><\/span><\/p>\n","protected":false},"author":1,"featured_media":4323,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_bbp_topic_count":0,"_bbp_reply_count":0,"_bbp_total_topic_count":0,"_bbp_total_reply_count":0,"_bbp_voice_count":0,"_bbp_anonymous_reply_count":0,"_bbp_topic_count_hidden":0,"_bbp_reply_count_hidden":0,"_bbp_forum_subforum_count":0,"footnotes":""},"categories":[24],"tags":[],"_links":{"self":[{"href":"https:\/\/www.aiproblog.com\/index.php\/wp-json\/wp\/v2\/posts\/4322"}],"collection":[{"href":"https:\/\/www.aiproblog.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.aiproblog.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.aiproblog.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.aiproblog.com\/index.php\/wp-json\/wp\/v2\/comments?post=4322"}],"version-history":[{"count":0,"href":"https:\/\/www.aiproblog.com\/index.php\/wp-json\/wp\/v2\/posts\/4322\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.aiproblog.com\/index.php\/wp-json\/wp\/v2\/media\/4323"}],"wp:attachment":[{"href":"https:\/\/www.aiproblog.com\/index.php\/wp-json\/wp\/v2\/media?parent=4322"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.aiproblog.com\/index.php\/wp-json\/wp\/v2\/categories?post=4322"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.aiproblog.com\/index.php\/wp-json\/wp\/v2\/tags?post=4322"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}