Как работает «Моя Волна» в Yandex Music
Какие алгоритмы и методы используются для того, чтобы пользователи слушали ту музыку, которая им нравится.
Система рекомендаций Yandex Music устроена сложнее, чем может показаться. Со стороны это может выглядеть так:
• пользователь указывает свои музыкальные предпочтения и начинает лайкать или дизлайкать треки;
• в чёрной-чёрной коробочке происходит какая-то магия;
• на выходе пользователь получает в «Моей волне» поток песен, который ему на самом деле подходит и нравится.
Вот про эту чёрную коробочку мы вам сегодня и расскажем. А также про то, как Yandex Music активно поддерживает узбекистанских исполнителей, помогая им доносить свои треки до слушателей. Поможет нам в этом Владимир Горбунов, генеральный директор Yandex Plus в Центральной Азии и Кавказе.
Сегодня внутри Yandex Music уже не просто набор алгоритмов и условий, подбирающий нужные вам треки в формате «if-else». Мы используем весь доступный нам массив больших данных и коллаборативную фильтрацию, а также, само собой, нейросети.
Давайте по порядку, чтобы не путаться в понятиях.
Алгоритмы рекомендаций
— Представьте, что у вас есть личный ассистент, который подбирает вам музыку по вкусу и настроению. Именно так и работает наша система рекомендаций благодаря целому набору технологий, работающих в плотной связке друг с другом.
Коллаборативная фильтрация
— На этом этапе система анализирует поведение других пользователей с похожими музыкальными вкусами и использует эти данные, чтобы предложить вам трек, который, скорее всего, вам понравится. Представьте, что вы заходите в магазин, и на входе вам говорят: «Если вам нравится вот этот альбом, то вам точно понравятся ещё несколько». Здесь такая же история.
Классические методы коллаборативной фильтрации часто используют матричные разложения. Наиболее известными алгоритмами в этой области являются SVD (сингулярное разложение) и метод IALS (Implicit Alternating Least Squares).
Но, конечно, мы не ограничиваемся только этим. Когда появились более сложные модели, такие как DSSM (Deep Structured Semantic Models), которые используют уже не матричные разложения, а простейшие нейронные сети, далее, совсем недавно на более высоком уровне сложности появились глубокие нейронные сети, основанные на современных архитектурах, например, трансформерах. Нейросети, использующие методы глубокого обучения, могут не просто анализировать данные, а «учиться» на них. Чем больше данных система получает, тем точнее она подбирает рекомендации. Нейросети умеют улавливать скрытые закономерности в ваших предпочтениях.
Все эти подходы составляют большой класс моделей коллаборативной фильтрации, ориентированных на поведение пользователя. Каждая из них имеет свои особенности и дополняет остальные — так получается создавать более точные и персонализированные рекомендации.
А ещё рядом с этим классом находятся статистические факторы, которые тоже играют важную роль. Например, статистика по действиям пользователя: сколько раз он слушал определённого исполнителя, какой трек или альбом он предпочитает, как часто ставит лайки или дизлайки, а также сколько раз скипал треки.
Метод на основе контентного анализа
— Тут, в отличие от первого метода, анализируется сам трек. С помощью специализированных моделей можно “заглянуть” внутрь этого него и извлечь полезную информацию.
Какую именно? Например, можно определить настроение композиции. Это то, что, кстати, можно настроить в функции «Моя Волна» — выбрать настроение трека (грустное, веселое, спокойное, бодрое и другие типы настроений). Это по большей части и делается на основе контентного анализа.
Как это работает?
— Изначально модель не знает, весёлый перед ней трек или грустный. Для этого в «Моей Волне» используется разметка — с помощью экспертов, которые как раз и определяют, какой трек у нас грустный, а какой — веселый. На основе этой разметки обучается модель, которая потом и предсказывает настроение треков, даже если их не разметили руками.
Кроме того, анализ контента позволяет нам определить такие характеристики, как наличие вокала или его отсутствие, энергичность композиции и множество других звуковых характеристик, которые можно извлечь из звучания трека.
Нейросети и глубокое обучение. Как компьютер «понимает музыку»
— Важная часть анализа треков — аудиовекторы, они же аудиослепки. Аудиовектор — это цифровое представление звучания трека, набор чисел, который отражает его характеристики. Поэтому для похожих по звучанию треков аудиовекторы будут очень похожи, а вот для непохожих — сильно отличаться. Чем более схожи треки по звучанию, тем более схожи их числовые представления.
Эти аудиовекторы решают важную задачу, именно они позволяют системе учитывать, какая музыка нравится пользователю не только на основе его поведения, но и на основе звучания треков. Так что с помощью анализа аудиовекторов мы можем рекомендовать вам треки, которые по звучанию соответствуют вашим предпочтениям.
Для построения этих аудиовекторов чаще всего используются глубокие нейронные сети, что позволяет системе извлекать сложные закономерности из звучания трека.
Важно учитывать факт синергии. Все эти отдельные модели не работают независимо друг от друга. Они интегрируются в одну общую модель, которая и принимает финальное решение о рекомендации. Например, у нас есть модель, основанная на анализе аудиозвучания трека, есть статистические данные, предсказания, полученные с помощью DSSM (Deep Structured Semantic Models), предсказания трансформеров, и другие факторы.
Эти модели — а их довольно много — анализируют различные аспекты музыки и поведения пользователя, говоря о сотнях, а иногда и тысячах факторов. Но на основе всех этих данных нужно принять одно финальное решение: какой трек предложить пользователю.
Для этого и используется модель, которая обобщает все эти факторы и дает окончательное предсказание. Это как раз и есть CatBoost.
CatBoost — понимает, что вам нужно
— Алгоритм машинного обучения, который помогает системе работать с огромными объёмами данных и точнее прогнозировать, что именно вам может понравиться. Это ключевая составляющая для того, чтобы делать рекомендации более персонализированными. Система анализирует историю ваших прослушиваний и постоянно обновляет модель, чтобы предсказывать, какой трек вы захотите услышать дальше. Так рекомендации получаются не просто точными, но и адаптивными.
Фидбек здесь и сейчас
— Одна из особенностей «Моей волны» — её умение быстро реагировать на изменение ваших музыкальных вкусов, она оперативно учитывает все ваши лайки, пропуски треков, добавление в Избранное и прочее.
Like, skip, dislike. Как система узнаёт, что вам нравится
— Когда вы ставите лайк треку или добавляете его в плейлист, это сигнал для алгоритма, что вам нравится этот стиль музыки или исполнитель. Если же вы пропускаете песню, система это тоже учитывает и в следующий раз предложит что-то более подходящее. Думайте об этом как о разговоре с другом: «Ого, отличный трек!» — и в следующий раз он уже будет знать, что предложить вам для хорошего настроения.
Если мы предлагаем пользователю что-то, что он уже слушал, это, с одной стороны, безопасно: раз пользователь уже послушал этот трек, вероятность того, что он его послушает снова, довольно высока. Но с другой стороны, если мы предлагаем что-то новое, незнакомое, это всегда риск, потому что вероятность, что пользователь не оценит трек, выше.
У нас есть DSSM-модели (Deep Structured Semantic Models), которые специально обучаются предсказывать музыку, которую пользователь ещё не слышал. Они пытаются угадать, какой трек нового исполнителя будет интересен пользователю и, что ещё важнее, получит от него лайк. Эти модели обучаются на основе всех предыдущих прослушиваний, чтобы понять, какой незнакомый трек и исполнитель могут понравиться пользователю.
Это не просто случайная рекомендация нового исполнителя, а целенаправленная задача — предложить такой трек, который, скорее всего, получит лайк. Например, DSSM модели решают узкую задачу поиска «незнакомой» музыки, которую пользователь, скорее всего, оценит положительно.
В реальном времени. Как музыка подстраивается под вас
— Даже если вы переключились на новый жанр или изменили предпочтения, система будет учитывать это и начнёт предлагать другие треки, соответствующие новым интересам. Если вы сегодня в настроении для чего-то спокойного, система на основе уже имеющегося от вас фидбека поймёт и подберёт музыку, которая создаст нужную вам атмосферу. Но если на следующий день вы хотите чего-то более бодрого — она это учтёт, опять же на основе фидбеков от вас.
Аудиослепки и нейросети: как разные технологии анализируют музыку и предсказывают ваш вкус
— Аудиослепки — это своего рода цифровой «отпечаток» каждой песни. Эти уникальные признаки трека помогают системе анализировать не только исполнителя, но и саму музыку — её ритм, темп, инструменты.
Представьте, что у каждой песни есть свой код, который помогает системе найти схожие композиции, даже если они принадлежат совершенно разным жанрам. Это как если бы у каждой песни был свой уникальный паспорт.
Для создания аудиослепков у нас есть аудиомодели, анализирующие различные характеристики композиции. Например, эти модели могут определять настроение песни (грустная, спокойная, бодрая), темп композиции, количество ударов в минуту, ритмическую составляющую и другие музыкальные особенности. Все эти данные в виде числовых представлений и составляют аудиовекторы (или аудиослепки).
Аудиослепки важны для системы рекомендаций. Во-первых, они помогают улучшить качество базовых рекомендаций, поскольку сильно дополняют другие факторам — коллаборативные (поведение пользователей) и статистические данные. Эти аудиовекторы используются в модели CatBoost как один из множества признаков, которые система учитывает при принятии решения о следующем треке.
Поддержка узбекистанских исполнителей: как локальные данные помогают выделить местных артистов
— В системе рекомендаций есть так называемый человеко-машинный комплекс. Благодаря ему автоматизируется значительная часть процесса — мы используем технологии машинного обучения для анализа текстов песен и информации о исполнителях. Например, мы анализируем тексты песен из открытых источников, например, «Википедии», и используем это для построения более точных рекомендаций.
Основное внимание мы уделяем автоматическому детектированию языка песни. В этом помогают классификаторы, которые пытаются определить язык композиции, анализируя её текст. Однако иногда классификатор не может с уверенностью определить, на каком языке поётся песня, или когда система даёт сомнительные результаты.
Тогда для повышения качества привлекается человеческая разметка — сервис «Толока», через который можно создавать задания и обращаться к пользователям, которые, например, знают узбекский язык. Специалисты, работающие через «Толоку», могут помочь системе уточнить, на каком языке поёт исполнитель.
Например, мы можем задать исполнителю вопрос: «Правда ли, что этот трек поётся на узбекском языке?». И если ответ будет утвердительным, мы примем это за достоверную информацию. Если же специалист укажет, что это не узбекский, а какой-то другой язык, мы примем его мнение и скорректируем разметку.
Так мы комбинируем машинное обучение и человеческую проверку, это повышает точность классификации и улучшает качество рекомендаций для наших пользователей.
Моя волна — цвета, занятия, настроение
Каждый пользователь может настроить свою волну, выбирая не только музыку, но и соответствующий цвет интерфейса и занятие.
Цвет и настроение
— Моя Волна может менять цвет интерфейса в зависимости от музыки, которую вы слушаете. Система анализирует треки, чтобы предложить подходящую цветовую палитру: яркие цвета для динамичных композиций или более спокойные тона для расслабляющих мелодий. Таким образом, цветовое оформление интерфейса автоматически адаптируется к характеру вашей текущей музыки. Если вы настроены на активную тренировку, интерфейс станет ярким и энергичным. Если же вы хотите расслабиться и послушать что-то спокойное, волна станет мягкой и тёплой.
Выбор занятия: музыка под вас
— Ещё мы можем в Волне предлагать выбор занятия, под которое можно подобрать подходящую музыку. Будь то тренировка, работа или поездка в дороге — система подберёт треки, которые идеально подходят под ваши задачи. Выбираете режим для работы? Тогда система предложит вам спокойную, не отвлекающую музыку. А если вы в дороге, вас ждут треки с динамичным ритмом, чтобы поездка была более живой.
Роль данных в точности рекомендаций и локальных предпочтений
— Данные — основа всего в мире рекомендаций. Yandex Music становится всё умнее и точнее с каждым вашим кликом, лайком и даже пропуском. Чем больше информации она получает о вашем поведении, тем точнее она может предсказать, какую музыку вы захотите слушать. И, что важно, она учитывает локальные предпочтения.
Объём данных: как информация помогает сделать рекомендации точными
— Каждый ваш шаг в приложении оставляет след — и чем больше этих шагов, тем лучше работает система. Мы говорим не только о тех треках, которые вы слушаете, но и о том, как вы с ними взаимодействуете: ставите ли вы лайки, добавляете их в плейлисты, пропускаете или слушаете снова. Эти действия становятся важными сигналами для алгоритмов. Если представить, что ваши музыкальные предпочтения — это пазл, то чем больше кусочков у нас есть, тем точнее мы можем его собрать.
Локальные данные: как они влияют на подборку музыки в Узбекистане
Решающее значение имеет индивидуальная история прослушивания. Она может быть настолько уникальной, что местные особенности или культура вообще не будут играть особой роли. Например, даже если человек находится в Узбекистане, он может слушать исключительно западную музыку, и система этому не препятствует.
Yandex стремится к тому, чтобы дать пользователю возможность послушать что-то именно на узбекском языке, если ему хочется. Например, та же настройка для выбора настроения трека, которая позволяет настроить волну под определенное настроение, включая узбекистанскую музыку.
Больше новостей про финансы и бизнес в Телеграм-канале @KPTLUZ