В статье рассмотрены ключевые принципы работы современных рекомендательных систем и датасеты для обучения ML-алгоритмов. Что такое рекомендательные системы, как они устроены и где взять данные для обучения ML-моделей особенностям пользовательских предпочтений.
Каждый из нас сталкивался с рекомендательными системами, например, крупный интернет-магазин нам советует посмотреть гардины и карнизы, если ранее вы заходили в каталог штор. Онлайн-кинотеатр подбирает зрителям фильмы и сериалы с учетом ранее просмотренных, а сервисы текстовых блогов присылают подборки новых статей, которые с большой вероятностью будут интересны читателю. Все это – примеры рекомендательных систем, направленных на стимулирование пользовательского интереса к продуктам бизнеса, нужное для повышения лояльности клиентов и роста продаж. В общем случае ML-алгоритмы в рекомендательных системах ищут взаимосвязи между пользователями и продуктами, учитывая все наиболее полезные признаки из всего пространства фичей, которое можно сгенерировать из характеристики пользователей и продуктов, а также событиям взаимодействия между этими классами объектов: дата, время, тип и пр.
Исторически первыми были подходы, связанные с коллаборативной фильтрацией, и контент-ориентированные методы.
Коллаборативная фильтрация основана на матрице рейтингов (полезности) контента или товара для пользователей. В этой таблице содержатся оценки, которые пользователи ставят продуктам на основе собственного опыта или отношения. Стандартном подходом является использования метода матричной факторизации, когда из матрицы полезности создаются представления пользователей и продуктов с помощью методов разложения матриц. Матричная факторизация снижает размерность обрабатываемых векторов, ускоряя вычисления. Однако, из-за матричных преобразований снижается интерпретируемость, не позволяя сразу и точно понять, на основе каких элементы векторов пользователей и продуктов получены итоговые результаты.
Контент-ориентированные метод состоит в том, что для каждого пользователя и каждого продукта создается свой «профиль», чтобы сопоставить пользователей с тем контентом, который им понравился или был куплен. Из характеристик пользователей и продуктов создаются 2 вектора: профиль пользователя и профиль продукта. То есть, мы используем знания не только о рейтингах, но и о пользователях, а также о продуктах. Далее определяется сходство между пользователями и продуктами с использованием мер косинусного сходства или индекса Жаккара. Продукт рекомендуется пользователю, при большом значении меры сходства с самим пользователем или с другими продуктами, просмотренными/купленными этим пользователем. Плюсы контент-ориентированных методов в изоляции данных конкретного пользователя от других.
На смену этим подходам пришли гибридные подходы, а затем их обобщили современные нейронные сети: Neural Collaborative Filtering, Deep Semantic Similarity Model и другие. Но общая идеи остается прежней: нужно по-прежнему иметь векторное представление о пользователи и о продукте, а затем на основе метрик близости ранжировать объекты.
Для оценки качества работы рекомендательной системы сегодня используются, безусловно, бизнес-метрики (CTR, средний чек, время нахождения в сервисе и т.д.). Но в явном виде их оптимизировать довольно трудно, поэтому при обучении моделей использует различные ML-метрики: RMSE (для матрицы рейтингов), Recall@n, Precision@n, MAP, NDCG и другие.
На практике при разработке рекомендательной системы следует оптимизировать не одну, а сразу несколько метрик. Например, нет смысла рекомендовать пользователям продукты, которые они приобретут и без рекомендаций, например, купили краски – предложить кисточки. Следует обеспечить такое соотношение точности и полноты рекомендаций, которая позволит повысить вовлеченность пользователей в долгосрочной перспективе, а не просто повторно рекомендовать одни и те же типы продуктов. Таким образом, разработчик должен найти баланс между узкими метриками оценки качества рекомендаций и бизнес-целями. Сделать это поможет тщательное обучение и тестирование модели на датасетах, которые включают подробные сведения о пользователях, продуктах и событиях их взаимодействия. Где взять такие датасеты, рассмотрим далее.
Современный DS-специалист редко сталкивается с недостатком обучающих датасетов. Например, для разработки рекомендательных систем можно найти набор данных, который напрямую предназначен для конкретного бизнес-кейса: онлайн-кинотеатр, интернет-магазин, текстовый блог или соцсети. Особенно хочется порекомендовать следующие датасеты:
Также можно поискать датасеты в открытых источниках, например:
Наиболее полный список обновляемых датасетов нашелся в Google Search Dataset – более 100 наборов данных из множества источников и практически для любого бизнес-приложения. В заключение отмечу, что обучающий датасет с большим количеством данных и важен для разработки рекомендательной системы, постановка задачи прежде всего идет от бизнеса.
Также нужно решить вопрос о метриках оценки качества сформированных рекомендаций. И помнить о том, что стоимость сбора реальных данных для разработанной рекомендательной системы может быть достаточно высока. Поэтому, прежде чем обучать ML-модель на подробном датасете с множеством наблюдений, подумайте, насколько характер настоящих данных будет соответствовать тренировочным.
Источники