В статье рассмотрены ключевые принципы работы современных рекомендательных систем и датасеты для обучения ML-алгоритмов. Что такое рекомендательные системы, как они устроены и где взять данные для обучения ML-моделей особенностям пользовательских предпочтений.
Что такое рекомендательные системы и как они работают: основные методы и метрики
Каждый из нас сталкивался с рекомендательными системами, например, крупный интернет-магазин нам советует посмотреть гардины и карнизы, если ранее вы заходили в каталог штор. Онлайн-кинотеатр подбирает зрителям фильмы и сериалы с учетом ранее просмотренных, а сервисы текстовых блогов присылают подборки новых статей, которые с большой вероятностью будут интересны читателю. Все это – примеры рекомендательных систем, направленных на стимулирование пользовательского интереса к продуктам бизнеса, нужное для повышения лояльности клиентов и роста продаж. В общем случае ML-алгоритмы в рекомендательных системах ищут взаимосвязи между пользователями и продуктами, учитывая все наиболее полезные признаки из всего пространства фичей, которое можно сгенерировать из характеристики пользователей и продуктов, а также событиям взаимодействия между этими классами объектов: дата, время, тип и пр.
Исторически первыми были подходы, связанные с коллаборативной фильтрацией, и контент-ориентированные методы.
Коллаборативная фильтрация основана на матрице рейтингов (полезности) контента или товара для пользователей. В этой таблице содержатся оценки, которые пользователи ставят продуктам на основе собственного опыта или отношения. Стандартном подходом является использования метода матричной факторизации, когда из матрицы полезности создаются представления пользователей и продуктов с помощью методов разложения матриц. Матричная факторизация снижает размерность обрабатываемых векторов, ускоряя вычисления. Однако, из-за матричных преобразований снижается интерпретируемость, не позволяя сразу и точно понять, на основе каких элементы векторов пользователей и продуктов получены итоговые результаты.
Контент-ориентированные метод состоит в том, что для каждого пользователя и каждого продукта создается свой «профиль», чтобы сопоставить пользователей с тем контентом, который им понравился или был куплен. Из характеристик пользователей и продуктов создаются 2 вектора: профиль пользователя и профиль продукта. То есть, мы используем знания не только о рейтингах, но и о пользователях, а также о продуктах. Далее определяется сходство между пользователями и продуктами с использованием мер косинусного сходства или индекса Жаккара. Продукт рекомендуется пользователю, при большом значении меры сходства с самим пользователем или с другими продуктами, просмотренными/купленными этим пользователем. Плюсы контент-ориентированных методов в изоляции данных конкретного пользователя от других.
На смену этим подходам пришли гибридные подходы, а затем их обобщили современные нейронные сети: Neural Collaborative Filtering, Deep Semantic Similarity Model и другие. Но общая идеи остается прежней: нужно по-прежнему иметь векторное представление о пользователи и о продукте, а затем на основе метрик близости ранжировать объекты.
Для оценки качества работы рекомендательной системы сегодня используются, безусловно, бизнес-метрики (CTR, средний чек, время нахождения в сервисе и т.д.). Но в явном виде их оптимизировать довольно трудно, поэтому при обучении моделей использует различные ML-метрики: RMSE (для матрицы рейтингов), Recall@n, Precision@n, MAP, NDCG и другие.
На практике при разработке рекомендательной системы следует оптимизировать не одну, а сразу несколько метрик. Например, нет смысла рекомендовать пользователям продукты, которые они приобретут и без рекомендаций, например, купили краски – предложить кисточки. Следует обеспечить такое соотношение точности и полноты рекомендаций, которая позволит повысить вовлеченность пользователей в долгосрочной перспективе, а не просто повторно рекомендовать одни и те же типы продуктов. Таким образом, разработчик должен найти баланс между узкими метриками оценки качества рекомендаций и бизнес-целями. Сделать это поможет тщательное обучение и тестирование модели на датасетах, которые включают подробные сведения о пользователях, продуктах и событиях их взаимодействия. Где взять такие датасеты, рассмотрим далее.
Датасеты для обучения рекомендательных систем
Современный DS-специалист редко сталкивается с недостатком обучающих датасетов. Например, для разработки рекомендательных систем можно найти набор данных, который напрямую предназначен для конкретного бизнес-кейса: онлайн-кинотеатр, интернет-магазин, текстовый блог или соцсети. Особенно хочется порекомендовать следующие датасеты:
- MovieLens 25M Dataset – набор рейтинговых данных с веб-сайта MovieLens, который описывает 5-звездочные рейтинги и действия с произвольным тегированием по более 60 тысячам фильмов от 1,5 миллионов пользователем с 1995 по 2019 годы. MovieLens – это «семейство» датасэтов. Самый востребованный, разумеется, самый полный - 25M, но часто используют только часть записей, например, 1 миллион, или 100 тысяч. Все датасеты есть по этой ссылке. https://grouplens.org/datasets/movielens/
- Netflix Prize - многовариантный датасет временных рядов, который использовался в конкурсе Netflix Prize с рейтингами примерно 100 миллионов фильмов. В наборе данных более 480000 пользователей, каждый из которых промаркирован уникальным целочисленным идентификатором. С помощью этого датасета можно предсказать недостающие записи в матрице рейтинга пользователей фильма. http://academictorrents.com/details/9b13183dc4d60676b773c9e2cd6de5e5542cee9a
- Book-Crossing – датасет с рейтингами около 300 тысяч миллионов книг и обезличенными демографическими данными о более 250 тысячах их читателей. http://www2.informatik.uni-freiburg.de/~cziegler/BX/
- Amazon Review Data – многомиллионный набор обзоров, рейтингов и метаданных продуктов (описание, категория, цена, бренд, характеристики, фото), а также данные о просмотре ссылок. Общее количество обзоров в этом наборе данных более 233 тысяч миллионов. https://nijianmo.github.io/amazon/index.html
- Yahoo! Music User Ratings - коллекция Yahoo! Music о предпочтениях пользователей к разным музыкальным исполнителям. Датасет содержит более 10 миллионов оценок музыкальных исполнителей и подходит для проверки рекомендательных систем или алгоритмов колабративной фильтирации. Но, чтобы его скачать, нужно запрашивать разрешение на использование данных. https://webscope.sandbox.yahoo.com/catalog.php?datatype=r
- LastFM – датасет содержит информацию о социальных сетях, тегах и прослушивании музыкальных исполнителей от 2 тысяч пользователей онлайн-музыки Last.fm. Это коллекция из 17 632 музыкальных исполнителей, которых слушали и отметили пользователи. https://files.grouplens.org/datasets/hetrec2011/
- Social Network Influencer – датасет Peerindex, который включает стандартную задачу изучения парных предпочтений. Здесь каждая точка данных описывает двух человек и предварительно рассчитанные стандартизованные функции на основе активности в Twitter: объем взаимодействий, количество подписчиков и пр. для каждого человека. С помощью этого набора данных можно обучить ML-модель для прогнозирования веса блогера, т.е. его влияния. https://www.kaggle.com/c/predict-who-is-more-influential-in-a-social-network/data
- Million Song Dataset – набор звуковых фич и метаданных для миллиона современных музыкальных треков от Echo Nest. http://millionsongdataset.com/
- Free Music Archive (FMA) – набор легальных аудиозаписей для задач анализа музыки - просмотр, поиск и организация коллекций. Архив содержит 917 ГиБ и 343 дня аудио под лицензией Creative Commons из 1 06 574 треков от 16 341 исполнителя и 14 854 альбомов по 161 жанру. FMA предоставляет полноразмерный высококачественный звук, предварительно вычисленные фичи, а также метаданные трека и пользователя, теги и произвольный текст, например, биографии исполнителей. https://github.com/mdeff/fma
- Steam Video Games - набор данных о действиях пользователей и их характеристиках от самого популярного хаба видеоигр, PC Gaming Steam https://www.kaggle.com/tamber/steam-video-games/data
- Ta-Feng – набор данных о покупках от ACM RecSys по 23+ тысяч товаров, от продуктов питания и канцелярских товаров до мебели. Датасет включает данные о более 800 тысячах транзакций 32+ тысяч пользователей за 4 месяца, с ноября 2000 г. по февраль 2001 г. http://www.bigdatalab.ac.cn/benchmark/bm/dd?data=Ta-Feng
- Beiren – данные о реальных покупках более миллиона человек в супермаркетах Китая за период с 2012 по 2013 год. Датасет содержит сведения о 49 290 149 транзакций по 220 828 товарам. http://www.bigdatalab.ac.cn/benchmark/bm/dd?data=Beiren
- MQ - набор датасетов для обучения ранжированию. Данные обучения состоят из списков элементов с некоторым частичным порядком, указанным между элементами в каждом списке. Этот порядок обычно создается путем выставления числовой или порядковой оценки или бинарного суждения (например, «релевантный» или «нерелевантный») для каждого пункта. http://www.bigdatalab.ac.cn/benchmark/bm/Domain?domain=Learning%20to%20Rank
- Jester - Анонимные данные о рейтингах шуток (анекдотов) из системы Jester. https://goldberg.berkeley.edu/jester-data/
- REKKO CHALLENGE – набор данных от онлайн-кинотеатра OKKO для конкурса по разработке рекомендательных систем 2019 года. Сюда входит несколько CSV-датасетов по транзакциям, пользовательским оценкам и отметкам, а также JSON-файлы с метаданными о фильмах и пользователях. https://boosters.pro/championship/rekko_challenge/data
Также можно поискать датасеты в открытых источниках, например:
- Papers With Code https://paperswithcode.com/task/recommendation-systems - тут есть бенчмарки для рекомендательных систем и датасеты к ним, в частности, датасет от WeChat и другие специфичные наборы данных.
- Google Search Dataset https://datasetsearch.research.google.com/search?query=recomendation
- Kaggle https://www.kaggle.com/datasets?search=recomendation
Резюме
Наиболее полный список обновляемых датасетов нашелся в Google Search Dataset – более 100 наборов данных из множества источников и практически для любого бизнес-приложения. В заключение отмечу, что обучающий датасет с большим количеством данных и важен для разработки рекомендательной системы, постановка задачи прежде всего идет от бизнеса.
Также нужно решить вопрос о метриках оценки качества сформированных рекомендаций. И помнить о том, что стоимость сбора реальных данных для разработанной рекомендательной системы может быть достаточно высока. Поэтому, прежде чем обучать ML-модель на подробном датасете с множеством наблюдений, подумайте, насколько характер настоящих данных будет соответствовать тренировочным.
Источники