Как нейросети рекомендуют музыку

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

Эволюция музыкального стриминга

В период расцвета формата mp3, в конце 90-х годов, появились первые онлайн-библиотеки песен. Конечно, тогда ещё не существовало никаких алгоритмов для рекомендации треков: пользователи заходили на эти ресурсы с конкретным запросом или просто перебирали файлы в поисках подходящего.

Первая система рекомендаций появилась на стриминговом сервисе Pandora Radio в 2005 году. Она была довольно простой: пользователи ставили лайки или дизлайки трекам и на основе этой информации формировался рейтинг песен, аналогичный радиочартам.

Но традиционный поиск музыки уже не удовлетворял пользователей. Он приводил к «инфляции интереса»: люди ограничивались прослушиванием уже известных треков, а не искали новое. Также было сложно следить за новинками. На музыкальных форумах в 2000-х годах даже была целая группа «переслушивателей», которые отслеживали новые релизы и выбирали интересные треки.

С появлением MySpace и развитием YouTube стали использоваться первые рекомендательные системы, основанные на алгоритмах машинного обучения. А в 2010-х в мире стриминга появились такие гиганты, как Spotify и Apple Music.

Эти стриминговые платформы отошли от поиска по ключевым словам и чартам. Они внедрили рекомендательные системы на основе искусственного интеллекта, чтобы бесконечно советовать новую музыку. Теперь нейросети учитывают интересы и пристрастия пользователей — и превратились в лучшее в мире радио.

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

Есть два класса рекомендательных алгоритмов:

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

  • Контентные. Здесь алгоритм, наоборот, заглядывает внутрь и анализирует содержание. Даже если трек никто никогда не слушал, система по звуку может догадаться, что он подходит пользователю. Анализируя треки, которые вы слушаете чаще всего и охотнее дослушиваете, нейросеть понимает, что вам, например, нравится медленная и спокойная минорная музыка, и начинает рекомендовать похожую. При этом алгоритм может довольно точно попадать в ваши интересы, совсем не разбираясь в музыке и не имея возможности прослушать её как человек.

Artboard

Интересно. То есть модель действительно слушает музыку и анализирует её?

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

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

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

А при чём тут нейросети?

Нейросеть — это частный случай алгоритма. Чтобы рекомендации в Яндексе работали верно, нужны различные методы машинного обучения, в том числе нейронные сети с миллионами параметров и разные виды разметки. Например, разметка релевантности контента запросам пользователей. Это гибридная система, которая анализирует данные и рекомендует лучшее.

Вау! А как устроен процесс рекомендаций в «Моей волне»?

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

«Моя волна» готова к разным сценариям и адаптируется под настроение пользователя. Это не плейлист, не статичная закрытая система, а действительно волна, подвижная и текучая. Она не стоит на месте, свободно меняется и подстраивается.

Для ранжирования музыки используется порядка 2 тысяч разных признаков: например, есть в композиции вокал или нет, быстрая она или медленная. Часто за каждый признак отвечает отдельная языковая модель, которая делает своё предсказание аналогично тому, как это происходит с текстами.

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

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

А так было всегда?

Раньше алгоритмы могли держать относительно короткий контекст: только текущую сессию пользователя или сегодняшнее его поведение в приложении. Они перестраивали поток рекомендаций в зависимости от того, дослушал ли пользователь трек до конца, лайкнул ли его в короткий промежуток времени.

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

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

Краткий пересказ от YandexGPT

Ещё про нейросети

Смотреть всё
Смотреть всё