Как работают рекомендации в музыкальных сервисах Яндекса?

Все больше людей пользуется стриминговыми сервисами, предпочитая доступ к миллионам треков за ежемесячную плату покупке дискографий, альбомов и отдельных композиций. Однако мало иметь возможность включить практически любой трек, пользователям нужен помощник, который позволит послушать что-то новое и подберет треки на основе вкусов пользователей. Буквально каждый сервис потокового воспроизведения музыки предлагает пользователям различные инструменты для этого: радиостанции по жанрам и настроениям, курируемые плейлисты, а главное — персональные рекомендации.

С сентября 2014 года Яндекс использует собственную рекомендательную систему — Диско. Впервые она была внедрена на Яндекс.Музыке, а потом заработала в Маркете и на Радио. Рекомендации нужны, чтобы у пользователей была возможность сориентироваться среди огромного количества объектов, которые предлагают некоторые сервисы, — миллионов товаров, миллионов музыкальных треков. Диско учитывает вкусы человека и, опираясь на них, советует, что послушать или приобрести. Именно благодаря этой технологии у разных людей на одной и той же станции Яндекс.Радио звучит разная музыка, а на главной странице Яндекс.Маркета отображаются разные товары. Еще одна особенность системы — в том, что она обучается в режиме реального времени. Если человек заинтересовался чем-то новым, Диско заметит это и перестроит рекомендации. Подробнее о системе рекомендаций компания Яндекс рассказала в своем блоге.

Название технологии было выбрано в честь музыкального жанра диско. Треки в этом жанре можно послушать на Яндекс.Музыке. Именно на этом сервисе Яндекса впервые появились рекомендации — это произошло в сентябре 2014 года. Кроме того, слово «диско» созвучно английскому слову discovery, которое означает «открытие нового» и хорошо отписывает суть технологии.

Выявление предпочтений

Прежде чем что-либо советовать человеку, стоит уточнить его вкусы и предпочтения. Узнать о них Диско может из нескольких источников. Во-первых, это поисковые запросы — они могут рассказать о текущих интересах. Во-вторых, это данные от технологии Крипта: пол, примерный возраст и род занятий. Они позволяют не рекомендовать человеку то, что ему заведомо не понравится. Скажем, 15-летней девочке, которая увлекается аквааэробикой, не стоит советовать музыку в жанре шансон. Наконец, это сведения от сервиса, для которого составляются рекомендации. Например, в Маркете это информация о том, какие товары просматривал человек, а в Музыке и Радио — какие треки он слушал. Само собой, все данные обезличены.

Сигналы о предпочтениях пользователя могут быть положительными и отрицательными. Например, в Яндекс.Радио и Яндекс.Музыке композиции, которые пришлись не по душе, можно пропускать или отмечать оценкой «не нравится». Это отрицательный сигнал — он говорит о том, что в дальнейшем человеку такую музыку рекомендовать не надо. Кроме того, сигналы могут отличаться по весу. И оценка «мне нравится», и факт прослушивания трека от начала до конца являются положительными сигналами, но у первого вес будет больше.

Составление рекомендаций

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

В основе второго подхода лежит информация о связях между людьми. Благодаря Крипте известны пол, примерный возраст и предположительный род занятий каждого пользователя. Установлено, что людей, у которых эти характеристики совпадают, часто интересуют одни и те же объекты. Даже если человек пользуется сервисом впервые и еще не успел ничего посмотреть, послушать или приобрести, можно проверить, что смотрят, слушают или покупают люди со схожими характеристиками — и предложить ему эти же объекты.

Третий подход использует данные о взаимодействиях пользователей с объектами. Взаимодействием можно считать, например, факт просмотра видеоролика или оценку «нравится», поставленную музыкальному треку. Подход (в теории рекомендательных систем он известен как SVD — singular value decomposition, или сингулярное разложение) позволяет, опираясь на уже известные взаимодействия, предсказать, как пользователи отреагируют на те или иные объекты — например, какую оценку они поставят фильму, который пока не видели.

Как работают рекомендации Яндекса

У каждого из подходов есть свои достоинства. Первый подход позволяет посоветовать человеку редкие объекты, которыми мало кто интересуется — например, малоизвестную музыкальную группу. Второй подход дает возможность составлять рекомендации для людей, которые оказались на сервисе впервые и еще не успели совершить никаких действий. Третий подход позволяет найти нетривиальные закономерности: скажем, может выясниться, что люди, которые интересуются надувными бассейнами и фитнес-трекерами, чаще других покупают кофеварки.

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

Обработка рекомендаций

Все рекомендации от различных моделей обрабатывает метод машинного обучения Матрикснет. Его задача — составить сочетание рекомендаций, которое бы идеально соответствовало интересам пользователя в данный момент.

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

Результат работы Матрикснета — финальный список рекомендаций. Его пользователь и видит на сервисе — например, на главной странице Яндекс.Музыки или в разделе «Популярные товары» на Яндекс.Маркете.