Как создать рекомендательную систему с помощью 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 языки программирования