Building Recommender Systems with Machine Learning and AI

Brought by: LinkedIn Learning

Overview

Learn how to build recommender systems and help people discover new products and content with deep learning, neural networks, and machine learning recommendations.

Syllabus

1. Getting Started
  • Install Anaconda, review course materials, and create movie recommendations
  • Course roadmap
  • Understanding you through implicit and explicit ratings
  • Top-N recommender architecture
  • Review the basics of recommender systems
2. Introduction to Python
  • Data structures in Python
  • Functions in Python
  • Booleans, loops, and a hands-on challenge
3. Evaluating Recommender Systems
  • Train/test and cross-validation
  • Accuracy metrics (RMSE and MAE)
  • Top-N hit rate: Many ways
  • Coverage, diversity, and novelty
  • Churn, responsiveness, and A/B tests
  • Review ways to measure your recommender
  • Walkthrough of RecommenderMetrics.py
  • Walkthrough of TestMetrics.py
  • Measure the performance of SVD recommendations
4. A Recommender Engine Framework
  • Our recommender engine architecture
  • Recommender engine walkthrough, part 1
  • Recommender engine walkthrough, part 2
  • Review the results of our algorithm evaluation
5. Content-Based Filtering
  • Content-based recommendations and the cosine similarity metric
  • K-nearest neighbors (KNN) and content recs
  • Producing and evaluating content-based movie recommendations
  • Bleeding edge alert: Mise-en-scene recommendations
  • Dive deeper into content-based recommendations
6. Neighborhood-Based Collaborative Filtering
  • Measuring similarity and sparsity
  • Similarity metrics
  • User-based collaborative filtering
  • User-based collaborative filtering: Hands-on
  • Item-based collaborative filtering
  • Item-based collaborative filtering: Hands-on
  • Tuning collaborative filtering algorithms
  • Evaluating collaborative filtering systems offline
  • Measure the hit rate of item-based collaborative filtering
  • KNN recommenders
  • Running user- and item-based KNN on MovieLens
  • Experiment with different KNN parameters
  • Bleeding edge alert: Translation-based recommendations
7. Matrix Factorization Methods
  • Principal component analysis (PCA)
  • Singular value decomposition (SVD)
  • Running SVD and SVD++ on MovieLens
  • Improving on SVD
  • Tune the hyperparameters on SVD
  • Bleeding edge alert: Sparse linear methods (SLIM)
8. Introduction to Deep Learning
  • Deep learning introduction
  • Deep learning prerequisites
  • History of artificial neural networks
  • Playing with TensorFlow
  • Training neural networks
  • Tuning neural networks
  • Introduction to TensorFlow
  • Handwriting recognition with TensorFlow, part 1
  • Handwriting recognition with TensorFlow, part 2
  • Introduction to Keras
  • Handwriting recognition with Keras
  • Classifier patterns with Keras
  • Predict political parties of politicians with Keras
  • Intro to convolutional neural networks (CNNs)
  • CNN architectures
  • Handwriting recognition with CNNs
  • Intro to recurrent neural networks (RNNs)
  • Training recurrent neural networks
  • Sentiment analysis of movie reviews using RNNs and Keras
9. Deep Learning for Recommender Systems
  • Intro to deep learning for recommenders
  • Restricted Boltzmann machines (RBMs)
  • Recommendations with RBMs, part 1
  • Recommendations with RBMs, part 2
  • Evaluating the RBM recommender
  • Tuning restricted Boltzmann machines
  • Exercise results: Tuning a RBM recommender
  • Auto-encoders for recommendations: Deep learning for recs
  • Recommendations with deep neural networks
  • Clickstream recommendations with RNNs
  • Get GRU4Rec working on your desktop
  • Exercise results: GRU4Rec in action
  • Bleeding edge alert: Deep factorization machines
  • More emerging tech to watch
10. Scaling It Up
  • Introduction and installation of Apache Spark
  • Apache Spark architecture
  • Movie recommendations with Spark, matrix factorization, and ALS
  • Recommendations from 20 million ratings with Spark
  • Amazon DSSTNE
  • DSSTNE in action
  • Scaling up DSSTNE
  • AWS SageMaker and factorization machines
  • SageMaker in action: Factorization machines on one million ratings, in the cloud
11. Real-World Challenges of Recommender Systems
  • The cold start problem (and solutions)
  • Implement random exploration
  • Exercise solution: Random exploration
  • Stoplists
  • Implement a stoplist
  • Exercise solution: Implement a stoplist
  • Filter bubbles, trust, and outliers
  • Identify and eliminate outlier users
  • Exercise solution: Outlier removal
  • Fraud, the perils of clickstream, and international concerns
  • Temporal effects and value-aware recommendations
12. Case Studies
  • Case study: YouTube, part 1
  • Case study: YouTube, part 2
  • Case study: Netflix, part 1
  • Case study: Netflix, part 2
13. Hybrid Approaches
  • Hybrid recommenders and exercise
  • Exercise solution: Hybrid recommenders
Conclusion
  • More to explore

Taught by

Frank Kane

Building Recommender Systems with Machine Learning and AI
Go to course

Building Recommender Systems with Machine Learning and AI

Brought by: LinkedIn Learning

  • LinkedIn Learning
  • Paid
  • English
  • Certificate Available
  • Available at any time
  • All
  • N/A
8.1.2PHP Version191msRequest Duration2MBMemory UsageGET en/courses/{slug}Route
    • Booting (105ms)
    • Application (85.37ms)
    • 1 x Booting (55.1%)
      105.29ms
      1 x Application (44.67%)
      85.37ms
      14 templates were rendered
      • public.courses.show (resources/views/public/courses/show.blade.php)3bladefile
        Params
        0
        course
        1
        links
        2
        config
      • public.courses.partials.breadcrumbs (resources/views/public/courses/partials/breadcrumbs.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.heading (resources/views/public/courses/partials/heading.blade.php)7bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        classes
      • public.courses.partials.details (resources/views/public/courses/partials/details.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.breadcrumbs (resources/views/public/courses/partials/breadcrumbs.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.heading (resources/views/public/courses/partials/heading.blade.php)7bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        classes
      • public.layouts.main (resources/views/public/layouts/main.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.layouts.partials.meta (resources/views/public/layouts/partials/meta.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.layouts.partials.navbar (resources/views/public/layouts/partials/navbar.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.auth.profile.partials.links (resources/views/public/auth/profile/partials/links.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.layouts.partials.flash-session (resources/views/public/layouts/partials/flash-session.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      uri
      GET en/courses/{slug}
      middleware
      web, localize:en
      controller
      App\Http\Controllers\CourseController@show
      as
      en.courses.show
      namespace
      prefix
      /en
      where
      file
      app/Http/Controllers/CourseController.php:17-35
      6 statements were executed15.32ms
      • select * from `courses` where `slug_en` = 'building-recommender-systems-with-machine-learning-and-ait3F' limit 1
        13.45ms/app/Http/Controllers/CourseController.php:20corspedia
        Metadata
        Bindings
        • 0. building-recommender-systems-with-machine-learning-and-ait3F
        Backtrace
        • 17. /app/Http/Controllers/CourseController.php:20
        • 18. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 19. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 20. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • update `courses` set `visitors` = `visitors` + 1, `courses`.`updated_at` = '2025-01-14 00:57:36' where `id` = 4756
        640μs/app/Http/Controllers/CourseController.php:21corspedia
        Metadata
        Bindings
        • 0. 2025-01-14 00:57:36
        • 1. 4756
        Backtrace
        • 17. /app/Http/Controllers/CourseController.php:21
        • 18. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 19. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 20. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select `id`, `name_en`, `name_ar`, `topic_id`, `slug_en`, `slug_ar` from `subjects` where `subjects`.`id` in (58)
        250μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 20. /app/Http/Controllers/CourseController.php:23
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 22. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 23. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 24. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select `id`, `name_en`, `name_ar`, `slug_en`, `slug_ar` from `topics` where `topics`.`id` in (1)
        190μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 25. /app/Http/Controllers/CourseController.php:23
        • 26. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 27. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 28. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 29. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select * from `providers` where `providers`.`id` in (56) and `providers`.`deleted_at` is null
        230μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 20. /app/Http/Controllers/CourseController.php:23
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 22. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 23. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 24. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select * from `html_files` where `html_files`.`id` = 4747 limit 1
        560μs/app/Models/Course.php:84corspedia
        Metadata
        Bindings
        • 0. 4747
        Backtrace
        • 21. /app/Models/Course.php:84
        • 28. view::public.courses.show:29
        • 30. /vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:125
        • 31. /vendor/laravel/framework/src/Illuminate/View/Engines/PhpEngine.php:58
        • 32. /vendor/laravel/framework/src/Illuminate/View/Engines/CompilerEngine.php:72
      App\Models\HtmlFile
      1
      App\Models\Provider
      1
      App\Models\Topic
      1
      App\Models\Subject
      1
      App\Models\Course
      1
        _token
        mlLa05x0iXa3rKs6Yihv5PD7JSrVDB18FkZzxSfS
        locale
        en
        _previous
        array:1 [ "url" => "https://www.corspedia.com/en/courses/building-recommender-systems-with-machine...
        _flash
        array:2 [ "old" => [] "new" => [] ]
        PHPDEBUGBAR_STACK_DATA
        []
        path_info
        /en/courses/building-recommender-systems-with-machine-learning-and-ait3F
        status_code
        200
        
        status_text
        OK
        format
        html
        content_type
        text/html; charset=UTF-8
        request_query
        []
        
        request_request
        []
        
        request_headers
        0 of 0
        array:24 [ "sec-ch-ua-mobile" => array:1 [ 0 => "?0" ] "sec-ch-ua" => array:1 [ 0 => ""HeadlessChrome";v="129", "Not=A?Brand";v="8", "Chromium";v="129"" ] "cache-control" => array:1 [ 0 => "no-cache" ] "pragma" => array:1 [ 0 => "no-cache" ] "cdn-loop" => array:1 [ 0 => "cloudflare; loops=1" ] "sec-fetch-dest" => array:1 [ 0 => "document" ] "upgrade-insecure-requests" => array:1 [ 0 => "1" ] "priority" => array:1 [ 0 => "u=0, i" ] "cf-connecting-ip" => array:1 [ 0 => "3.133.134.162" ] "user-agent" => array:1 [ 0 => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" ] "accept" => array:1 [ 0 => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" ] "cf-visitor" => array:1 [ 0 => "{"scheme":"https"}" ] "sec-fetch-site" => array:1 [ 0 => "none" ] "sec-fetch-mode" => array:1 [ 0 => "navigate" ] "x-forwarded-proto" => array:1 [ 0 => "https" ] "cf-ipcountry" => array:1 [ 0 => "US" ] "accept-encoding" => array:1 [ 0 => "gzip, br" ] "sec-fetch-user" => array:1 [ 0 => "?1" ] "sec-ch-ua-platform" => array:1 [ 0 => ""Windows"" ] "x-forwarded-for" => array:1 [ 0 => "3.133.134.162" ] "cf-ray" => array:1 [ 0 => "9019ac404847f60a-ORD" ] "host" => array:1 [ 0 => "www.corspedia.com" ] "content-length" => array:1 [ 0 => "" ] "content-type" => array:1 [ 0 => "" ] ]
        request_server
        0 of 0
        array:50 [ "USER" => "www-data" "HOME" => "/var/www" "HTTP_SEC_CH_UA_MOBILE" => "?0" "HTTP_SEC_CH_UA" => ""HeadlessChrome";v="129", "Not=A?Brand";v="8", "Chromium";v="129"" "HTTP_CACHE_CONTROL" => "no-cache" "HTTP_PRAGMA" => "no-cache" "HTTP_CDN_LOOP" => "cloudflare; loops=1" "HTTP_SEC_FETCH_DEST" => "document" "HTTP_UPGRADE_INSECURE_REQUESTS" => "1" "HTTP_PRIORITY" => "u=0, i" "HTTP_CF_CONNECTING_IP" => "3.133.134.162" "HTTP_USER_AGENT" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" "HTTP_ACCEPT" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" "HTTP_CF_VISITOR" => "{"scheme":"https"}" "HTTP_SEC_FETCH_SITE" => "none" "HTTP_SEC_FETCH_MODE" => "navigate" "HTTP_X_FORWARDED_PROTO" => "https" "HTTP_CF_IPCOUNTRY" => "US" "HTTP_ACCEPT_ENCODING" => "gzip, br" "HTTP_SEC_FETCH_USER" => "?1" "HTTP_SEC_CH_UA_PLATFORM" => ""Windows"" "HTTP_X_FORWARDED_FOR" => "3.133.134.162" "HTTP_CF_RAY" => "9019ac404847f60a-ORD" "HTTP_HOST" => "www.corspedia.com" "REDIRECT_STATUS" => "200" "SERVER_NAME" => "corspedia.com" "SERVER_PORT" => "443" "SERVER_ADDR" => "141.95.147.152" "REMOTE_USER" => "" "REMOTE_PORT" => "43774" "REMOTE_ADDR" => "172.70.131.153" "SERVER_SOFTWARE" => "nginx/1.18.0" "GATEWAY_INTERFACE" => "CGI/1.1" "HTTPS" => "on" "REQUEST_SCHEME" => "https" "SERVER_PROTOCOL" => "HTTP/2.0" "DOCUMENT_ROOT" => "/var/www/corspedia/public" "DOCUMENT_URI" => "/index.php" "REQUEST_URI" => "/en/courses/building-recommender-systems-with-machine-learning-and-ait3F" "SCRIPT_NAME" => "/index.php" "CONTENT_LENGTH" => "" "CONTENT_TYPE" => "" "REQUEST_METHOD" => "GET" "QUERY_STRING" => "" "SCRIPT_FILENAME" => "/var/www/corspedia/public/index.php" "PATH_INFO" => "" "FCGI_ROLE" => "RESPONDER" "PHP_SELF" => "/index.php" "REQUEST_TIME_FLOAT" => 1736816256.3042 "REQUEST_TIME" => 1736816256 ]
        request_cookies
        []
        
        response_headers
        0 of 0
        array:5 [ "content-type" => array:1 [ 0 => "text/html; charset=UTF-8" ] "cache-control" => array:1 [ 0 => "no-cache, private" ] "date" => array:1 [ 0 => "Tue, 14 Jan 2025 00:57:36 GMT" ] "set-cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6Iks0dzkyanBST0RaRk55N0FhMmdBdkE9PSIsInZhbHVlIjoidy9CMmdvdWRKV05mT2F6V2F1NlVwVHQwc28zMzJRRHVoSVlKaXRIMUhraUYrYzNkVVBmM3pIY0hSa3BmMGRVcGhsL3RId1JwQzRnQUZFeXpWc1A5NVhrQmRhUGsreXppNUF3alUxOUYwdWlmdG9Dcy9ta2RsZVRKNis4VEpxZWwiLCJtYWMiOiI5NjExOTQxMzc2OGRmMDVhMTUyYmEwN2VjYmUyZWQzMDhjOWU0NDM4ZjVlMGM5NTNmNjIxZjZjOGViM2FiMWVmIiwidGFnIjoiIn0%3D; expires=Tue, 14 Jan 2025 02:57:36 GMT; Max-Age=7200; path=/; samesite=laxXSRF-TOKEN=eyJpdiI6Iks0dzkyanBST0RaRk55N0FhMmdBdkE9PSIsInZhbHVlIjoidy9CMmdvdWRKV05mT2F6V2F1NlVwVHQwc28zMzJRRHVoSVlKaXRIMUhraUYrYzNkVVBmM3pIY0hSa3BmMGRVcGhsL3RId" 1 => "laravel_session=eyJpdiI6IjVubWN4UjF1TC9sSTN0dHpSMFIrSUE9PSIsInZhbHVlIjoiQ1BqcHhhUndsVlpsZUFYU1FkQ2NDQW90OGRpOCsyTFY4VlNyTElkSlFVaWlqdGd6a3M3UUJOcnhuTmdTWmh2QmJZZitWWE9xTW5OTkJyQkNvL0NzeWcyZ0FIVnBXbHR2Y2RSYzVTNFlkZ1VYQ3dyTkwvelZOZWFmWlRhby93elIiLCJtYWMiOiJlZjdlYjI5MTJjYjZkNTQxYzQ4OTAzYzlhYTkwN2MxNGIyZDZmODQxMzU1ZmQ3YzA0YjdjYWY0M2MyOWUwMDBlIiwidGFnIjoiIn0%3D; expires=Tue, 14 Jan 2025 02:57:36 GMT; Max-Age=7200; path=/; httponly; samesite=laxlaravel_session=eyJpdiI6IjVubWN4UjF1TC9sSTN0dHpSMFIrSUE9PSIsInZhbHVlIjoiQ1BqcHhhUndsVlpsZUFYU1FkQ2NDQW90OGRpOCsyTFY4VlNyTElkSlFVaWlqdGd6a3M3UUJOcnhuTmdTWmh2QmJZ" ] "Set-Cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6Iks0dzkyanBST0RaRk55N0FhMmdBdkE9PSIsInZhbHVlIjoidy9CMmdvdWRKV05mT2F6V2F1NlVwVHQwc28zMzJRRHVoSVlKaXRIMUhraUYrYzNkVVBmM3pIY0hSa3BmMGRVcGhsL3RId1JwQzRnQUZFeXpWc1A5NVhrQmRhUGsreXppNUF3alUxOUYwdWlmdG9Dcy9ta2RsZVRKNis4VEpxZWwiLCJtYWMiOiI5NjExOTQxMzc2OGRmMDVhMTUyYmEwN2VjYmUyZWQzMDhjOWU0NDM4ZjVlMGM5NTNmNjIxZjZjOGViM2FiMWVmIiwidGFnIjoiIn0%3D; expires=Tue, 14-Jan-2025 02:57:36 GMT; path=/XSRF-TOKEN=eyJpdiI6Iks0dzkyanBST0RaRk55N0FhMmdBdkE9PSIsInZhbHVlIjoidy9CMmdvdWRKV05mT2F6V2F1NlVwVHQwc28zMzJRRHVoSVlKaXRIMUhraUYrYzNkVVBmM3pIY0hSa3BmMGRVcGhsL3RId" 1 => "laravel_session=eyJpdiI6IjVubWN4UjF1TC9sSTN0dHpSMFIrSUE9PSIsInZhbHVlIjoiQ1BqcHhhUndsVlpsZUFYU1FkQ2NDQW90OGRpOCsyTFY4VlNyTElkSlFVaWlqdGd6a3M3UUJOcnhuTmdTWmh2QmJZZitWWE9xTW5OTkJyQkNvL0NzeWcyZ0FIVnBXbHR2Y2RSYzVTNFlkZ1VYQ3dyTkwvelZOZWFmWlRhby93elIiLCJtYWMiOiJlZjdlYjI5MTJjYjZkNTQxYzQ4OTAzYzlhYTkwN2MxNGIyZDZmODQxMzU1ZmQ3YzA0YjdjYWY0M2MyOWUwMDBlIiwidGFnIjoiIn0%3D; expires=Tue, 14-Jan-2025 02:57:36 GMT; path=/; httponlylaravel_session=eyJpdiI6IjVubWN4UjF1TC9sSTN0dHpSMFIrSUE9PSIsInZhbHVlIjoiQ1BqcHhhUndsVlpsZUFYU1FkQ2NDQW90OGRpOCsyTFY4VlNyTElkSlFVaWlqdGd6a3M3UUJOcnhuTmdTWmh2QmJZ" ] ]
        session_attributes
        0 of 0
        array:5 [ "_token" => "mlLa05x0iXa3rKs6Yihv5PD7JSrVDB18FkZzxSfS" "locale" => "en" "_previous" => array:1 [ "url" => "https://www.corspedia.com/en/courses/building-recommender-systems-with-machine-learning-and-ait3F" ] "_flash" => array:2 [ "old" => [] "new" => [] ] "PHPDEBUGBAR_STACK_DATA" => [] ]