Рекомендательные системы: что под капотом?

Рекомендательные системы на python: что под капотом?

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

Идеи, которые легли в основу сегодняшних рекомендательных систем появились в 2000х годах. Ключевым событием стал конкурс Neflix Prize от компании Netflix — сервис фильмов и сериалов. Целью конкурса было улучшить имеющуюся систему рекомендаций на 10%. Конкурс продлился 3 года: с 2006 по 2009. В конкурсе приняло участие более 5 тысяч программистов и математиков из 185 стран мира. Усилия такого большого числа талантливых людей не могли не дать нужные результаты. По итогам конкурса появилось несколько инновационных с алгоритмической точки зрения идея, которые дали существенный импульс развития рекомендательных систем. С практической точки зрения предложенные алгоритмы не могли на тот момент был реализованы, так как требовали серьезных вычислительных ресурсов.

На сегодняшний день выделяют 4 базовых подхода к построению рекомендательных систем (обзор можно найти в этом видео):

  • коллаборативная фильтрация;
  • фильтрация на контенте;
  • фильтрация на знаниях;
  • гибридный подход.

Разберем идеи каждого подхода отдельно на примере площадки для размещения объявлений.

Аналитика больших данных для руководителей

Код курса
BDAM
Ближайшая дата курса
1 апреля, 2024
Продолжительность
24 ак.часов
Стоимость обучения
72 000 руб.

Коллаборативная фильтрация

Алгоритм коллаборативной фильтрации предлагает пользователям в качестве рекомендаций то, что часто смотрели вместе с просмотренными им объявлениями. Поясним на примере.

Допустим пользователь 1 и пользователь 2 просмотрели объявления a, b, c, а пользователь 3 просмотрел объявления a и с. В таком случае вероятно, что объявление b также заинтересует пользователя 3. 

 

 

Обычно метод коллаборативной фильтрации является обязательной составляющей гибридных подходов к построению рекомендательных систем.

Фильтрация на контенте

В случае фильтрации на контексте рекомендации формируются исходя из “похожести” объектов. 

Вернемся к примеру с объявлением. Если пользователь просматривает определенное объявление, то рекомендательный алгоритм на основе фильтрации на контексте будет предлагать объявления “похожие” на просматриваемое. Под «похожими» может подразумеваться самое разное: объявления с одинаковым контекстом, размещенные в близкое время, с близкой стоимостью и т.д. 

Такой тип рекомендательных систем имеет сравнительно простую реализацию и отличаются высокой эффективностью для небольших компаний.

Фильтрация на знаниях

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

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

Машинное обучение на Python

Код курса
PYML
Ближайшая дата курса
22 апреля, 2024
Продолжительность
24 ак.часов
Стоимость обучения
54 000 руб.

Гибридный подход

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

На рисунке изображена архитектура рекомендательной системы, при которой параллельно используются 2 разных подхода. Независимо друг от друга вычисляются рекомендации по алгоритмам коллаборативной фильтрации и фильтрации на контексте. Полученные рекомендации объединяются по определенному правилу и составляются итоговые объекты для рекомендаций. Такой подход позволяет учесть не только предпочтения пользователей, но “похожие” между собой объекты. Из минусов можно отметить возросшие затраты для реализации и фунционирования системы.

 

 

Гибридная система может состоять из последовательно вычисляемых алгоритмов. На схеме ниже изображена гибридная рекомендательная система, которая состоит из кластеризации (разбиение на определенные группы) пользователей и затем для каждой группы применяется алгоритм коллаборативной фильтрации. Подробнее о кластеризации и других ml-алгоритмах можно узнать в курсе.

 

 

Такой подход будет уместен при большом объеме пользователей в компании. На первом шаге в результате кластеризации будут образованы группы пользователей. Далее на каждой отдельной группе коллаборативная фильтрация даст более точные рекомендации пользователям, чем на всех пользователях сразу.

Рекомендательные системы на практике

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

Модельные проблемы отражают особенности рекомендательных алгоритмов. К основным относятся:

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

Инфраструктурные проблемы заключаются в следующем:

  • Обновление рекомендаций. Для большого объема пользователей и объектов обновление рекомендаций становится трудоемкой операцией, которое зачастую просто невозможно выполнить на полном объеме данных.
  • Скорость предоставления рекомендаций. Очевидно, что рекомендации должны появиться практически сразу при входе на определенный ресурс. Это требует высокого быстродействия всей системы. Опять-таки на большом объеме данных и пользователей это может оказаться проблемой.

Про возможные пути решения намеченных проблем мы поговорим в одной из следующих статей.

Учебный пример реализации некоторых типов рекомендательных систем представлен в данном видео.

Нейронные сети на Python

Код курса
PYNN
Ближайшая дата курса
13 мая, 2024
Продолжительность
24 ак.часов
Стоимость обучения
54 000 руб.

Заключение

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

Я даю свое согласие на обработку персональных данных и соглашаюсь с политикой конфиденциальности.
Поиск по сайту