Building Similarity Based Recommendation System

Brought by: Coursera

Overview

Welcome to this 1-hour project-based course on Building Similarity Based Recommendation System. In this project, you will learn how similarity based collaborative filtering recommendation systems work, how you can collect data for building such systems. You will learn what are some different ways you to compute similarity between users and recommend items based on products interacted by other similar users. You will learn to create user item interactions matrix from the original dataset and also how to recommend items to a new user who does not have any historical interactions with the items.


Note: This course works best for learners who are based in the North America region. We’re currently working on providing the same experience in other regions.

Syllabus

  • Project Overview
    • Welcome to this project-based course on Building Similarity Based Recommendation System. In this project, you will learn how similarity based collaborative filtering recommendation systems work, how you can collect data for building such systems. You will learn what are some different ways you to compute similarity between users and recommend items based on products interacted by other similar users. You will learn to create user item interactions matrix from the original dataset and also how to recommend items to a new user who does not have any historical interactions with the items.

Taught by

Bhaskarjit Sarmah

Building Similarity Based Recommendation System
Go to course

Building Similarity Based Recommendation System

Brought by: Coursera

  • Coursera
  • Paid
  • English
  • Certificate Available
  • Available at any time
  • intermediate
  • English
8.1.2PHP Version725msRequest Duration2MBMemory UsageGET en/courses/{slug}Route
    • Booting (455ms)
    • Application (268ms)
    • 1 x Booting (62.79%)
      455.02ms
      1 x Application (36.95%)
      267.81ms
      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
      7 statements were executed9.26ms
      • select * from `courses` where `slug_en` = 'building-similarity-based-recommendation-system' limit 1
        7.54ms/app/Http/Controllers/CourseController.php:20corspedia
        Metadata
        Bindings
        • 0. building-similarity-based-recommendation-system
        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-07-27 02:33:42' where `id` = 2027
        670μs/app/Http/Controllers/CourseController.php:21corspedia
        Metadata
        Bindings
        • 0. 2025-07-27 02:33:42
        • 1. 2027
        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)
        210μ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)
        180μ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 `institutions` where `institutions`.`id` in (106) and `institutions`.`deleted_at` is null
        210μ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 `providers` where `providers`.`id` in (2) and `providers`.`deleted_at` is null
        200μ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` = 2018 limit 1
        250μs/app/Models/Course.php:84corspedia
        Metadata
        Bindings
        • 0. 2018
        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\Institution
      1
      App\Models\Topic
      1
      App\Models\Subject
      1
      App\Models\Course
      1
        _token
        l58AVDc5OF8RRMGlhWavy678Lofs5Anabrbmf3PM
        locale
        en
        _previous
        array:1 [ "url" => "https://www.corspedia.com/en/courses/building-similarity-based-recommendation-...
        _flash
        array:2 [ "old" => [] "new" => [] ]
        PHPDEBUGBAR_STACK_DATA
        []
        path_info
        /en/courses/building-similarity-based-recommendation-system
        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 [ "cf-ipcountry" => array:1 [ 0 => "US" ] "cf-connecting-ip" => array:1 [ 0 => "216.73.216.230" ] "cdn-loop" => array:1 [ 0 => "cloudflare; loops=1" ] "x-forwarded-proto" => array:1 [ 0 => "https" ] "x-forwarded-for" => array:1 [ 0 => "216.73.216.230" ] "sec-fetch-site" => array:1 [ 0 => "none" ] "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" ] "user-agent" => array:1 [ 0 => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" ] "upgrade-insecure-requests" => array:1 [ 0 => "1" ] "sec-ch-ua-platform" => array:1 [ 0 => ""Windows"" ] "sec-ch-ua-mobile" => array:1 [ 0 => "?0" ] "sec-ch-ua" => array:1 [ 0 => ""Chromium";v="130", "HeadlessChrome";v="130", "Not?A_Brand";v="99"" ] "cache-control" => array:1 [ 0 => "no-cache" ] "pragma" => array:1 [ 0 => "no-cache" ] "sec-fetch-dest" => array:1 [ 0 => "document" ] "cf-ray" => array:1 [ 0 => "9658bbc278cfac58-YYZ" ] "accept-encoding" => array:1 [ 0 => "gzip, br" ] "priority" => array:1 [ 0 => "u=0, i" ] "sec-fetch-user" => array:1 [ 0 => "?1" ] "sec-fetch-mode" => array:1 [ 0 => "navigate" ] "cf-visitor" => array:1 [ 0 => "{"scheme":"https"}" ] "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_CF_IPCOUNTRY" => "US" "HTTP_CF_CONNECTING_IP" => "216.73.216.230" "HTTP_CDN_LOOP" => "cloudflare; loops=1" "HTTP_X_FORWARDED_PROTO" => "https" "HTTP_X_FORWARDED_FOR" => "216.73.216.230" "HTTP_SEC_FETCH_SITE" => "none" "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_USER_AGENT" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" "HTTP_UPGRADE_INSECURE_REQUESTS" => "1" "HTTP_SEC_CH_UA_PLATFORM" => ""Windows"" "HTTP_SEC_CH_UA_MOBILE" => "?0" "HTTP_SEC_CH_UA" => ""Chromium";v="130", "HeadlessChrome";v="130", "Not?A_Brand";v="99"" "HTTP_CACHE_CONTROL" => "no-cache" "HTTP_PRAGMA" => "no-cache" "HTTP_SEC_FETCH_DEST" => "document" "HTTP_CF_RAY" => "9658bbc278cfac58-YYZ" "HTTP_ACCEPT_ENCODING" => "gzip, br" "HTTP_PRIORITY" => "u=0, i" "HTTP_SEC_FETCH_USER" => "?1" "HTTP_SEC_FETCH_MODE" => "navigate" "HTTP_CF_VISITOR" => "{"scheme":"https"}" "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" => "14510" "REMOTE_ADDR" => "172.69.130.208" "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-similarity-based-recommendation-system" "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" => 1753583621.7593 "REQUEST_TIME" => 1753583621 ]
        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 => "Sun, 27 Jul 2025 02:33:42 GMT" ] "set-cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6Inl6Y0hIRlpNd1ZVOUMyUE9ra0o1N0E9PSIsInZhbHVlIjoiRzNyWEdPUUtBVzJMUnhJYXpiM0lvNnZpVWJ0QkN3Y0x4Z2NJOEVBWElqUEJSRzNrZng5cDdUQ0FFN2hpVGlhNHpjTmZPSE5BQTNLMEJ1N3ZhNFRTaTFJeVdQWnFmNnJMeEpUQ1hSV3hrUHl5d1RrOEFkYkMydThhVWVqSDdVVHoiLCJtYWMiOiIyZTY5Yzk4NzEyY2FjN2RjZGM2ZDAyMWY4OWQxMmU3ZDIwNjI3NGU0ZTE1MWU3OTRiNjczZDdlZmI2ZDU3NWJjIiwidGFnIjoiIn0%3D; expires=Sun, 27 Jul 2025 04:33:42 GMT; Max-Age=7200; path=/; samesite=laxXSRF-TOKEN=eyJpdiI6Inl6Y0hIRlpNd1ZVOUMyUE9ra0o1N0E9PSIsInZhbHVlIjoiRzNyWEdPUUtBVzJMUnhJYXpiM0lvNnZpVWJ0QkN3Y0x4Z2NJOEVBWElqUEJSRzNrZng5cDdUQ0FFN2hpVGlhNHpjTmZPS" 1 => "laravel_session=eyJpdiI6IkhVZ0MxL2xCZ09BZTRnemhTTG1PVWc9PSIsInZhbHVlIjoialQ1V0NVUVdWM1QxVW1nb0NjeFJzRkducWZ3OGVSQlhiYXI1WXR3WjVSdEVjNzRJN1dScHFRNDhMK1l5R2gzb3lkakZmbUgrcmhkYkFHc0xhbHhTdHFrTG1CQ2E3N21tMERtNXhzajE1enNkcFhnNEZjMUpEZ3BvT2o0TzJuYmgiLCJtYWMiOiJjOTQwOWQ3Nzk4MjhkZDk3ZGNmNDAyNTgxZDFhNWQzNDE5MDBlMTZkMjRhYzJhODA2YzVkNGNkM2M2Y2I3ZTJkIiwidGFnIjoiIn0%3D; expires=Sun, 27 Jul 2025 04:33:42 GMT; Max-Age=7200; path=/; httponly; samesite=laxlaravel_session=eyJpdiI6IkhVZ0MxL2xCZ09BZTRnemhTTG1PVWc9PSIsInZhbHVlIjoialQ1V0NVUVdWM1QxVW1nb0NjeFJzRkducWZ3OGVSQlhiYXI1WXR3WjVSdEVjNzRJN1dScHFRNDhMK1l5R2gzb3lk" ] "Set-Cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6Inl6Y0hIRlpNd1ZVOUMyUE9ra0o1N0E9PSIsInZhbHVlIjoiRzNyWEdPUUtBVzJMUnhJYXpiM0lvNnZpVWJ0QkN3Y0x4Z2NJOEVBWElqUEJSRzNrZng5cDdUQ0FFN2hpVGlhNHpjTmZPSE5BQTNLMEJ1N3ZhNFRTaTFJeVdQWnFmNnJMeEpUQ1hSV3hrUHl5d1RrOEFkYkMydThhVWVqSDdVVHoiLCJtYWMiOiIyZTY5Yzk4NzEyY2FjN2RjZGM2ZDAyMWY4OWQxMmU3ZDIwNjI3NGU0ZTE1MWU3OTRiNjczZDdlZmI2ZDU3NWJjIiwidGFnIjoiIn0%3D; expires=Sun, 27-Jul-2025 04:33:42 GMT; path=/XSRF-TOKEN=eyJpdiI6Inl6Y0hIRlpNd1ZVOUMyUE9ra0o1N0E9PSIsInZhbHVlIjoiRzNyWEdPUUtBVzJMUnhJYXpiM0lvNnZpVWJ0QkN3Y0x4Z2NJOEVBWElqUEJSRzNrZng5cDdUQ0FFN2hpVGlhNHpjTmZPS" 1 => "laravel_session=eyJpdiI6IkhVZ0MxL2xCZ09BZTRnemhTTG1PVWc9PSIsInZhbHVlIjoialQ1V0NVUVdWM1QxVW1nb0NjeFJzRkducWZ3OGVSQlhiYXI1WXR3WjVSdEVjNzRJN1dScHFRNDhMK1l5R2gzb3lkakZmbUgrcmhkYkFHc0xhbHhTdHFrTG1CQ2E3N21tMERtNXhzajE1enNkcFhnNEZjMUpEZ3BvT2o0TzJuYmgiLCJtYWMiOiJjOTQwOWQ3Nzk4MjhkZDk3ZGNmNDAyNTgxZDFhNWQzNDE5MDBlMTZkMjRhYzJhODA2YzVkNGNkM2M2Y2I3ZTJkIiwidGFnIjoiIn0%3D; expires=Sun, 27-Jul-2025 04:33:42 GMT; path=/; httponlylaravel_session=eyJpdiI6IkhVZ0MxL2xCZ09BZTRnemhTTG1PVWc9PSIsInZhbHVlIjoialQ1V0NVUVdWM1QxVW1nb0NjeFJzRkducWZ3OGVSQlhiYXI1WXR3WjVSdEVjNzRJN1dScHFRNDhMK1l5R2gzb3lk" ] ]
        session_attributes
        0 of 0
        array:5 [ "_token" => "l58AVDc5OF8RRMGlhWavy678Lofs5Anabrbmf3PM" "locale" => "en" "_previous" => array:1 [ "url" => "https://www.corspedia.com/en/courses/building-similarity-based-recommendation-system" ] "_flash" => array:2 [ "old" => [] "new" => [] ] "PHPDEBUGBAR_STACK_DATA" => [] ]