Как создать рекомендательную систему с помощью ElasticSearch

К

В этой статье мы поговорим о рекомендательных системах. И начнем мы, как всегда, с теории. Система рекомендаций – это подкласс системы фильтрации информации, которая стремится предсказать «рейтинг» или «предпочтение», которое пользователь дал бы элементу. Рекомендательные системы используются в самых разных областях. Примеры:

  • генераторы плейлистов для видео и музыкальных сервисов. Например Netflix.
  • рекомендательые системы продуктов для интернет-магазинов
  • рекомендательые системы контента для платформ социальных сетей. Например Facebook использует различные алгоритмы, чтобы рекомендовать Вам контент.

В целом все системы рекомендаций можно разделить на 2 большие группы: коллаборативная фильтрация и фильтрация на основе контента. Что это значит, я описываю более детально на видео ниже в этой статье, или Вы можете пойти еще глубже, просмотрев весь мой онлайн-курс на udemy, используя следующую ссылку со скидкой: ссылка на udemy.

Сегодня тенденцией является создание гибридных рекомендательных систем, которые пытаются сочетать коллаборативную фильтрацию и фильтрацию, основанную на контенте одновременно пытаясь свести к минимуму их недостатки. Несмотря на то, что рекомендательные системы достаточно популярны, вокруг них есть несколько интересных моментов:

  • до сих пор не так много информации о том, как реализовать рекомендательные систему
  • рекомендательные системы очень требовательны к вычислительным ресурсам
  • рекомендательные системы очень сложны для понимания и отладки

Почему? Давайте посмотрим на типичное решение

Я более подробно описываю текущие слайды на видео ниже. Но с первого взгляда должно быть понятно, что вы должны быть очень хороши в:

  • математике, особенно курсе линейной алгебры, SVD (сингулярное разложение матрицы)
  • алгоритмах оптимизации, и вот где приходит машинное обучение

Можно ли это сделать проще?

Да, потому что классические решения не всегда подходят для какой-то специализированной области. Как вы можете догадаться, мое решение будет основано на ElasticSearch 🙂 Я собираюсь доказать вам, что мы можем построить рекомердательную систему довольно быстро. И это решение будет достаточно понятным для понимания и отладки.


Похожие статьи, которые могут вас заинтересовать: Elasticsearch как создать поисковую систему

About the author

sergii-demianchuk

Software engineer with over 18 year’s experience. Everyday stack: PHP, Python, Java, Javascript, Symfony, Flask, Spring, Vue, Docker, AWS Cloud, Machine Learning, Ansible, Terraform, Jenkins, MariaDB, MySQL, Mongo, Redis, ElasticSeach

архитектура гео докер кластер поиск поисковые системы рекомендательные системы фреймворк-flask фреймворк-spring-boot фреймворк-symfony язык-java язык-php язык-python языки программирования

Обзор конфиденциальности
Sergii Demianchuk Blog

На этом сайте используются файлы cookie, что позволяет нам обеспечить наилучшее качество обслуживания пользователей. Информация о файлах cookie хранится в вашем браузере и выполняет такие функции, как распознавание вас при возвращении на наш сайт и помощь нашей команде в понимании того, какие разделы сайта вы считаете наиболее интересными и полезными.

Строго необходимые файлы cookie

Строго необходимые файлы cookie должны быть всегда включены, чтобы мы могли сохранить ваши предпочтения для настроек файлов cookie.

Сторонние файлы cookie

Этот веб-сайт использует Google Analytics для сбора анонимной информации, такой как количество посетителей сайта и самые популярные страницы.

Поддержание этого файла cookie активным помогает нам улучшить наш веб-сайт.