В этой статье мы поговорим о рекомендательных системах. И начнем мы, как всегда, с теории. Система рекомендаций — это подкласс системы фильтрации информации, которая стремится предсказать «рейтинг» или «предпочтение», которое пользователь дал бы элементу. Рекомендательные системы используются в самых разных областях. Примеры:
- генераторы плейлистов для видео и музыкальных сервисов. Например Netflix.
- рекомендательые системы продуктов для интернет-магазинов
- рекомендательые системы контента для платформ социальных сетей. Например Facebook использует различные алгоритмы, чтобы рекомендовать Вам контент.
В целом все системы рекомендаций можно разделить на 2 большие группы: коллаборативная фильтрация и фильтрация на основе контента. Что это значит, я описываю более детально на видео ниже в этой статье, или Вы можете пойти еще глубже, просмотрев весь мой онлайн-курс на udemy, используя следующую ссылку со скидкой: ссылка на udemy.
Сегодня тенденцией является создание гибридных рекомендательных систем, которые пытаются сочетать коллаборативную фильтрацию и фильтрацию, основанную на контенте одновременно пытаясь свести к минимуму их недостатки. Несмотря на то, что рекомендательные системы достаточно популярны, вокруг них есть несколько интересных моментов:
- до сих пор не так много информации о том, как реализовать рекомендательные систему
- рекомендательные системы очень требовательны к вычислительным ресурсам
- рекомендательные системы очень сложны для понимания и отладки
Почему? Давайте посмотрим на типичное решение
Я более подробно описываю текущие слайды на видео ниже. Но с первого взгляда должно быть понятно, что вы должны быть очень хороши в:
- математике, особенно курсе линейной алгебры, SVD (сингулярное разложение матрицы)
- алгоритмах оптимизации, и вот где приходит машинное обучение
Можно ли это сделать проще?
Да, потому что классические решения не всегда подходят для какой-то специализированной области. Как вы можете догадаться, мое решение будет основано на ElasticSearch 🙂 Я собираюсь доказать вам, что мы можем построить рекомердательную систему довольно быстро. И это решение будет достаточно понятным для понимания и отладки.
Похожие статьи, которые могут вас заинтересовать: Elasticsearch как создать поисковую систему