Basic Recommender Systems

بواسطة: Coursera

Overview

The Basic Recommender Systems course introduces you to the leading approaches in recommender systems. The techniques described touch both collaborative and content-based approaches and include the most important algorithms used to provide recommendations. You'll learn how they work, how to use and how to evaluate them, pointing out benefits and limits of different recommender system alternatives.

After completing this course, you'll be able to describe the requirements and objectives of recommender systems based on different application domains. You'll know how to distinguish recommender systems according to their input data, their internal working mechanisms, and their goals. You’ll have the tools to measure the quality of a recommender system and incrementally improve it with the design of new algorithms. You'll learn as well how to design recommender systems tailored for new application domains, also considering surrounding social and ethical issues such as identity, privacy, and manipulation.

Providing affordable, personalised and high-quality recommendations is always a challenge! The course also leverages two important EIT Overarching Learning Outcomes (OLOs), related to creativity and innovation skills. In trying to design a new recommender system you need to think beyond boundaries and try to figure out how you can improve the quality of the predictions. You should also be able to use knowledge, ideas and technology to create new or significantly improved recommendation tools to support choice-making processes and strategies in different and innovative scenarios, for a better quality of life.

Syllabus

  • BASIC CONCEPTS
    • In this first module, we'll review the basic concepts for recommender systems in order to classify and analyse different families of algorithms, related to specific set of input data. At the end, you’ll be able to choose the most suitable type of algorithm based on the data available, your needs and goals. Conversely, you'll know how to select the input data based on the algorithm you want to use.
  • EVALUATION OF RECOMMENDER SYSTEMS
    • In this second module, we'll learn how to define and measure the quality of a recommender system. We'll review different metrics that can be used to measure for this purpose. At the end of the module you'll be able to identify the correct evaluation activities required to measure the quality of a given recommender system, based on goals and needs.
  • CONTENT-BASED FILTERING
    • In this module we’ll analyse content-based recommender techniques. These algorithms recommend items similar to the ones a user liked in the past. We’ll review different similarity functions and you’ll then be able to choose the more suitable one for your system. The main input is the Item-Content Matrix (ICM) which describes all the attributes for each item. We’ll see how we can improve the quality of content-based techniques, by normalising and tuning the importance of each attribute in the ICM: you’ll be able to use some specific tuning strategies in order to obtain the best quality recommendations from your system. So, at the end of this module, you’ll know how to build a content-based recommender system, how to clean and normalize your input data.
  • COLLABORATIVE FILTERING
    • In this module we’ll study collaborative filtering techniques, which use the User Rating Matrix (URM) as the main input data, describing the interaction between users and items. We’ll learn how to build non-personalised recommender systems and how to normalise the URM, in order to provide better recommendations. At the end of the module you’ll be able to select the most appropriate similarity function and the most suitable way to compute similarity, overcoming issues related to explicit ratings.

Taught by

Paolo Cremonesi

Basic Recommender Systems
الذهاب الي الدورة

Basic Recommender Systems

بواسطة: Coursera

  • Coursera
  • مجانية
  • الإنجليزية
  • متاح شهادة
  • متاح في أي وقت
  • intermediate
  • English, Kazakh, German, Hindi, Russian, Swedish, Korean, Portuguese, Greek, Italian, French, Chinese, Spanish, Arabic, Thai, Ukrainian, Japanese, Indonesian, Polish, Dutch, Turkish
8.1.2PHP Version325msRequest Duration2MBMemory UsageGET ar/الدورات/{slug}Route
    • Booting (205ms)
    • Application (120ms)
    • 1 x Booting (62.94%)
      204.66ms
      1 x Application (36.82%)
      119.75ms
      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 ar/الدورات/{slug}
      middleware
      web, localize:ar
      controller
      App\Http\Controllers\CourseController@show
      as
      ar.courses.show
      namespace
      prefix
      /ar
      where
      file
      app/Http/Controllers/CourseController.php:17-35
      7 statements were executed5.38ms
      • select * from `courses` where `slug_ar` = 'basic-recommender-systems' limit 1
        3.32ms/app/Http/Controllers/CourseController.php:20corspedia
        Metadata
        Bindings
        • 0. basic-recommender-systems
        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-04-17 21:29:34' where `id` = 950
        500μs/app/Http/Controllers/CourseController.php:21corspedia
        Metadata
        Bindings
        • 0. 2025-04-17 21:29:34
        • 1. 950
        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)
        150μ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)
        140μ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 (47) and `institutions`.`deleted_at` is null
        730μ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
        290μ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` = 944 limit 1
        250μs/app/Models/Course.php:84corspedia
        Metadata
        Bindings
        • 0. 944
        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
        exkcqN9WtjaASP9L1H93haxNhdoJZXiDpx4HFohL
        locale
        ar
        _previous
        array:1 [ "url" => "https://www.corspedia.com/ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/basic-...
        _flash
        array:2 [ "old" => [] "new" => [] ]
        PHPDEBUGBAR_STACK_DATA
        []
        path_info
        /ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/basic-recommender-systems
        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 => "18.227.13.192" ] "cdn-loop" => array:1 [ 0 => "cloudflare; loops=1" ] "x-forwarded-proto" => array:1 [ 0 => "https" ] "cf-visitor" => array:1 [ 0 => "{"scheme":"https"}" ] "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 => ""HeadlessChrome";v="129", "Not=A?Brand";v="8", "Chromium";v="129"" ] "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 => "931f04c66954cef7-ORD" ] "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" ] "x-forwarded-for" => array:1 [ 0 => "18.227.13.192" ] "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" => "18.227.13.192" "HTTP_CDN_LOOP" => "cloudflare; loops=1" "HTTP_X_FORWARDED_PROTO" => "https" "HTTP_CF_VISITOR" => "{"scheme":"https"}" "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" => ""HeadlessChrome";v="129", "Not=A?Brand";v="8", "Chromium";v="129"" "HTTP_CACHE_CONTROL" => "no-cache" "HTTP_PRAGMA" => "no-cache" "HTTP_SEC_FETCH_DEST" => "document" "HTTP_CF_RAY" => "931f04c66954cef7-ORD" "HTTP_ACCEPT_ENCODING" => "gzip, br" "HTTP_PRIORITY" => "u=0, i" "HTTP_SEC_FETCH_USER" => "?1" "HTTP_SEC_FETCH_MODE" => "navigate" "HTTP_X_FORWARDED_FOR" => "18.227.13.192" "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" => "58810" "REMOTE_ADDR" => "108.162.216.137" "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" => "/ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/basic-recommender-systems" "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" => 1744925374.7204 "REQUEST_TIME" => 1744925374 ]
        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 => "Thu, 17 Apr 2025 21:29:34 GMT" ] "set-cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6IkhBY0NsR1pJZ1dsdDVyVnd2WTJEY0E9PSIsInZhbHVlIjoiYkYrcUtLdXo5S2NVMWlKeFBLaXYvQmVLRG1aWmQrMENEUnZUSjVpSmRWUWs5T0pvcUh6SWwzNXVmdjNNbnphanUxMEFtZVBrUWpYQ3daRzhOenpvdEh3elhSaVE0cnJIK1dqTmFyQjNSR0F0UVpqTWhKWXhLSmE0QVk0THc5disiLCJtYWMiOiJjYzgzZDI0ZjEwN2VkZDExNDk3NGI1NmUyZmZjZTJhMTE5OTdkOTI1NWU3ZWQ5YjhiMTM4NDk4YmY3ODk3Zjg0IiwidGFnIjoiIn0%3D; expires=Thu, 17 Apr 2025 23:29:35 GMT; Max-Age=7200; path=/; samesite=laxXSRF-TOKEN=eyJpdiI6IkhBY0NsR1pJZ1dsdDVyVnd2WTJEY0E9PSIsInZhbHVlIjoiYkYrcUtLdXo5S2NVMWlKeFBLaXYvQmVLRG1aWmQrMENEUnZUSjVpSmRWUWs5T0pvcUh6SWwzNXVmdjNNbnphanUxMEFtZ" 1 => "laravel_session=eyJpdiI6InI4SnEvMFFBQXRNZmNHRUdtUW8yL3c9PSIsInZhbHVlIjoiR3g3SkdVemYyZW8wci9lQVBWWXFlWFdkS0VpUkVPUHFBWStYWTVpaThYb3o0ME5ueTkrLys4OXhsV1ZnWDZMZGpZeEhTMjlLZWk3ZjlxNWVmcXVoQVBWVUVTRGZMRWxoRkhZMGdFS3hRTUR6YmdXVHkrenoxZys0a1VVUXc3aWUiLCJtYWMiOiJlZWQ2MjkyODVhYTAzM2Q1NjA4MzUwYzI1NTE3OWQ1Y2NiMjMxNDUxYTI4OWQ1NTdlMTk4N2Q5ODcwMmFhOTAxIiwidGFnIjoiIn0%3D; expires=Thu, 17 Apr 2025 23:29:35 GMT; Max-Age=7200; path=/; httponly; samesite=laxlaravel_session=eyJpdiI6InI4SnEvMFFBQXRNZmNHRUdtUW8yL3c9PSIsInZhbHVlIjoiR3g3SkdVemYyZW8wci9lQVBWWXFlWFdkS0VpUkVPUHFBWStYWTVpaThYb3o0ME5ueTkrLys4OXhsV1ZnWDZMZGpZ" ] "Set-Cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6IkhBY0NsR1pJZ1dsdDVyVnd2WTJEY0E9PSIsInZhbHVlIjoiYkYrcUtLdXo5S2NVMWlKeFBLaXYvQmVLRG1aWmQrMENEUnZUSjVpSmRWUWs5T0pvcUh6SWwzNXVmdjNNbnphanUxMEFtZVBrUWpYQ3daRzhOenpvdEh3elhSaVE0cnJIK1dqTmFyQjNSR0F0UVpqTWhKWXhLSmE0QVk0THc5disiLCJtYWMiOiJjYzgzZDI0ZjEwN2VkZDExNDk3NGI1NmUyZmZjZTJhMTE5OTdkOTI1NWU3ZWQ5YjhiMTM4NDk4YmY3ODk3Zjg0IiwidGFnIjoiIn0%3D; expires=Thu, 17-Apr-2025 23:29:35 GMT; path=/XSRF-TOKEN=eyJpdiI6IkhBY0NsR1pJZ1dsdDVyVnd2WTJEY0E9PSIsInZhbHVlIjoiYkYrcUtLdXo5S2NVMWlKeFBLaXYvQmVLRG1aWmQrMENEUnZUSjVpSmRWUWs5T0pvcUh6SWwzNXVmdjNNbnphanUxMEFtZ" 1 => "laravel_session=eyJpdiI6InI4SnEvMFFBQXRNZmNHRUdtUW8yL3c9PSIsInZhbHVlIjoiR3g3SkdVemYyZW8wci9lQVBWWXFlWFdkS0VpUkVPUHFBWStYWTVpaThYb3o0ME5ueTkrLys4OXhsV1ZnWDZMZGpZeEhTMjlLZWk3ZjlxNWVmcXVoQVBWVUVTRGZMRWxoRkhZMGdFS3hRTUR6YmdXVHkrenoxZys0a1VVUXc3aWUiLCJtYWMiOiJlZWQ2MjkyODVhYTAzM2Q1NjA4MzUwYzI1NTE3OWQ1Y2NiMjMxNDUxYTI4OWQ1NTdlMTk4N2Q5ODcwMmFhOTAxIiwidGFnIjoiIn0%3D; expires=Thu, 17-Apr-2025 23:29:35 GMT; path=/; httponlylaravel_session=eyJpdiI6InI4SnEvMFFBQXRNZmNHRUdtUW8yL3c9PSIsInZhbHVlIjoiR3g3SkdVemYyZW8wci9lQVBWWXFlWFdkS0VpUkVPUHFBWStYWTVpaThYb3o0ME5ueTkrLys4OXhsV1ZnWDZMZGpZ" ] ]
        session_attributes
        0 of 0
        array:5 [ "_token" => "exkcqN9WtjaASP9L1H93haxNhdoJZXiDpx4HFohL" "locale" => "ar" "_previous" => array:1 [ "url" => "https://www.corspedia.com/ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/basic-recommender-systems" ] "_flash" => array:2 [ "old" => [] "new" => [] ] "PHPDEBUGBAR_STACK_DATA" => [] ]