Рекомендации без сети: как работает «Моя волна» без интернета в «Яндекс Музыке»

Локальный рекомендательный движок прямо в смартфоне.

Рекомендации без сети: как работает «Моя волна» без интернета в «Яндекс Музыке»

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

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

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

У стримингов нашёлся ответ: «Яндекс Музыка» запустила офлайн-рекомендации– «Моя волна» подбирает треки без интернет-подключения.

В лес и с песней

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

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

Включается функция просто: в настройках приложения «Яндекс Музыки» достаточно активировать опцию «Автоскачивание». Здесь же настраивается лимит хранилища, которое будет занимать потенциально интересная музыка. Именно так и работают офлайн-рекомендации: приложение незаметно сохраняет в память смартфона пул композиций, которые соответствуют вкусам пользователя. 

Из вариантов — 500 МБ, 1 ГБ, 2 ГБ, 4 ГБ и без ограничений. Понятно, что чем выше лимит, тем больше шансов, что «Моей волне» удастся попасть в настроение. 

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

С «Моей волной» переход ощущается мягче. После нескольких дизлайков поток действительно начинает смещаться в другую сторону: в окружении сибирской тайги хочется не бодрого альт-рока, как обычно, а расслабленного инди. Благо, модель уже знает, что помимо Linkin Park и Normandie я вполне уважаю и The Midnight с Capital Cities — неудивительно, что они тоже сохранились в памяти.

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

Как офлайн-рекомендации вообще стали возможны

Обычно рекомендательные системы живут в облаке: мощным алгоритмам нужно много данных и вычислительных ресурсов. Собственно, в «Яндекс Музыке» за подбор треков в онлайне отвечает генеративная модель ARGUS с трансформенной архитектурой — как у больших языковых моделей вроде GPT.

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

Поэтому «Яндекс Музыка» придумала гибридную архитектуру. Основная работа по-прежнему остаётся на сервере: облачная система заранее анализирует вкусы пользователя, рассчитывает векторные представления треков и подготавливает компактный набор данных для локальной работы. Получается не универсальная нейросеть, а маленький локальный механизм рекомендаций, заточенный под ту музыку, которая уже есть в кэше. 

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

Нестандартная архитектура позволила радикально сократить объём данных, необходимых для работы движка. На устройство пользователя отправляется программа весом около 100 КБ. При наличии интернета рекомендации обновляются несколько раз в неделю.

Ещё одно узкое место для локальных рекомендаций — объём медиатеки. Полный каталог «Яндекс Музыки» на смартфон, конечно, не поместится. Вместо этого «Моя волна» использует три источника: треки, сохранённые пользователем вручную, недавно проигранные композиции из кэша, и проактивно загруженная приложением музыка — как раз на случай отключения интернета.

Приложение автоматически определяет, когда нужно обновить пул музыки на устройстве, анализируя реакции слушателя и заменяя пропущенные композиции на свежие. Это ещё одно важное отличие офлайн-рекомендаций «Яндекс Музыки» от обычного офлайн-режима: разонравившийся плейлист не лежит мёртвым грузом, пока пользователь не соберётся обновить его вручную. При этом треки загружаются только при наличии Wi-Fi и во время зарядки.

Что в итоге

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

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