Рекомендательная система

Рекомендательные системы — программы, которые пытаются предсказать, какие объекты (фильмы, музыка, книги, новости, веб-сайты) будут интересны пользователю, имея определенную информацию о его профиле.

Две основные стратегии создания рекомендательных систем — фильтрация на основе содержания и коллаборативная фильтрация[1][2]. При фильтрации на основе содержания создаются профили пользователей и объектов, профили пользователей могут включать демографическую информацию или ответы на определённый набор вопросов, профили объектов могут включать названия жанров, имена актёров, имена исполнителей и другую атрибутивную информацию в зависимости от типа объекта. Например, в Music Genome Project музыкальный аналитик оценивает каждую композицию по сотням различных музыкальных характеристик, которые могут использоваться для выявления музыкальных предпочтений пользователя. При коллаборативной фильтрации используется информация о поведении пользователей в прошлом — например, информация о покупках или оценках. В этом случае не имеет значения, с какими типами объектов ведётся работа, но при этом могут учитываться неявные характеристики, которые сложно было бы учесть при создании профиля. Основная проблема этого типа рекомендательных систем — «холодный старт»: отсутствие данных о недавно появившихся в системе пользователях или объектах.

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

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

Примеры неявного сбора данных:

  • наблюдение за тем, что осматривает пользователь в интернет-магазинах или базах данных другого типа;
  • ведение записей о поведении пользователя онлайн;
  • отслеживание содержимого компьютера пользователя.

Рекомендательные системы сравнивают однотипные данные от разных людей и вычисляют список рекомендаций для конкретного пользователя. Некоторые примеры их коммерческого и некоммерческого использования приведены в статье о коллаборативной фильтрации. Для вычисления рекомендаций используется граф интересов[3].

Рекомендательные системы — удобная альтернатива поисковым алгоритмам, так как позволяют обнаружить объекты, которые не могут быть найдены последними. Любопытно, что рекомендательные системы часто используют поисковые машины для индексации необычных данных.

  1. Y. Koren, R. Bell, C. Volinsky. Matrix Factorization Techniques for Recommender Systems // Computer. — IEEE. — Т. 42, № 8. — С. 30—37.
  2. Рекомендательные системы на основе коллаборативной фильтрации, 2002, с. 187.
  3. Рекомендации на основе графа интересов.