Магия рекомендаций: откуда компьютеры знают, что вы хотите
Возможно, вы замечали, что когда листаете ленту интернет-магазина, слушаете персональную подборку музыки или смотрите тик-токи, вам предлагаются товары, песни или клипы, которые кажутся созданными специально для вас. Всё это не случайность, а результат работы специальных алгоритмов, известных как рекомендательные системы. На основе наших предыдущих запросов, интересов и обратной связи они подбирают то, что с большей вероятностью может нам приглянуться.
Постановка задачи
Какой бы ни была сфера и область деятельности, в задаче рекомендаций всегда выделяют пользователей - здесь всё понятно, это мы с вами: клиенты, покупатели, зрители.... и объекты - это товары, песни или фильмы. Формально задачка в том, чтобы для каждого пользователя составить персональную подборку предметов, отранжированную в порядке "интересности" конкретно для него. Это было бы здорово как для бизнеса, так и для самих пользователей - компании бы больше продавали, а мы бы находили быстрее то, что нам нужно, ощущая при этом "индивидуальный подход".
Принцип работы
Как и в любой Data-Science-задаче, прежде чем что-то предсказывать, алгоритмам нужны данные для обучения. Конкретно для рекомендательных систем можно выделить два их типа:
- Информация про пользователей или предметы в отдельности (метаданные). Это их независимые и неизменные характеристики, такие как имя, пол, возраст, город проживания или же цвет, категория, жанр и т.п. соответственно. Можно получить их из анкет клиентов или описаний товаров.
- Данные про взаимодействие пользователей и предметов (часто их называют коллаборативные данные - от англ. collaborative). Здесь каждая "единица информации" содержит в себе пару - одного пользователя и один предмет. Это может быть оценка, поставленная нами какому-либо фильму; дизлайк на песню; просмотр конкретного товара и т.п.
После того, как все возможные данные собраны, можно определиться с типом алгоритма:
Чуть поподробнее про каждый случай:
- Content-based модели. Название говорит само за себя - это алгоритмы, которые просто ищут похожие предметы к тем, которыми мы когда-либо интересовались. Посмотрели фильм про зомби? Рекомендательная система подберёт 10 похожих. Часто слушаете поп-музыку? Алгоритмы найдут ещё. Купили диван? Тогда следующие рекомендации тоже будут про диваны:) Но понадобится ли нам на следующий день ещё один новый диван - это уже вопрос. В этом минус такого подхода - пользователь не попробует концептуально ничего нового + иногда такая схема может просто оказаться нелогичной и принести убытки.
- Коллаборативные модели. Используя этот метод, можно прогнозировать рейтинги по оценкам похожих пользователей или похожих продуктов. Главное отличие здесь в том, что уже никак не используются их заданные характеристики из метаданных, всё основано только на информации об их взаимодействии. Можно предположить, что похожие по вкусам пользователи будут выбирать похожие предметы, но эти самые "вкусы" алгоритмы выделяют самостоятельно, не используя очевидные свойства из метаданных. То есть, просто по истории взаимодействий можно выделить группы схожих пользователей и схожих предметов, что очень здорово и решает ту самую проблему новизны, которая есть в content-based алгоритмах. Но есть и минусы, о них чуть ниже:)
- Гибридные модели. В идеальном мире, когда у нас есть все виды информации - почему бы не использовать два подхода одновременно? Такие модели, кстати, чаще всего и применяются в настоящих прикладных задачах.
- Модели на основе популярности. Представьте, что в систему попадает новый пользователь, который ничего про себя не указал и пока что не провзаимодействовал ни с одним предметом - что ему рекомендовать? Это так называемая проблема "холодного старта", которую можно попытаться просто решить - для начала предложить такому пользователю самые популярные предметы. По общей статистике это должно неплохо сработать, а дальше можно уже начинать собирать обратную связь в виде коллаборативных данных.
А что про сбор данных и слежку?
Возможно, кто-то уже задался этим вопросом или вспомнил, как реклама Яндекс-директа чудесным образом начинает советовать что-то купить на основе наших поисковых запросов. Всё это, конечно, не случайно - наши действия коллекционируются в базах и почти мгновенно перерождаются в рекомендации. Но важно отметить, что собираемая информация анонимизирована и конфиденциальна, даже если Вы авторизованы в своём аккаунте. В данных, которые используются для обучения рекомендательных систем, хранятся только зашифрованные ID пользователей, которые позволяют технически связать их историю взаимодействия и предоставляемые рекомендации. Так что, вашей истории браузера не увидит никто, даже дата-саентисты:)
Заключение
Рекомендательные системы - это не просто технология, они стали частью нашей повседневной жизни. Они делают огромный мир Интернета интереснее и удобнее, экономят наше время, помогают делать открытия среди бесконечного количества контента. Они, кажется, знают нас лучше, чем мы сами.
Важно отметить, что рекомендательные системы - это не "Большой Брат", следящий за нами. Они работают с анонимными данными и анализируют общие тенденции, чтобы предоставлять персонализированные предложения. Их цель - сделать нашу жизнь более удобной и приятной, помогая исследовать цифровой мир.
Но важно осознавать, что рексистемы - это лишь помощники, и в конечном счёте мы контролируем то, как используем их. Так что, давайте погружаться в мир рекомендаций, но не забывать, что мы всегда остаёмся хозяевами собственного выбора.