В этом году рекомендательная группа Deezer научила функцию Flow распознавать эмоции в музыке. Вот история настроений Флоу.

В соавторстве с Бенджамином Чапу и Тео Бонтемпелли

Поток меня к настроениям: немного контекста

Парадокс выбора

Развитие платформ потоковой передачи музыки в конце 2000-х произвело революцию в потреблении музыки: любители музыки наконец-то получили дешевый и легкий доступ ко всей музыке в мире.
Хотя это новое блаженство полезно во многих аспектах, оно усугубляет проблему для слушателей музыки: перегрузку выбором. Обилие вариантов требует от пользователей больше усилий и может оставить их неудовлетворенными своим решением. Интересно, что до внедрения Flow на Deezer многие пользователи открывали и выходили из приложения, не слушая музыку.
Сначала наши команды подумали о проблеме с контентом: возможно, пользователи не могли найти музыку, которую хотели послушать? Нам потребовалось некоторое время, чтобы понять, что проблема заключалась в другом: некоторые пользователи просто не знали, что выбрать. Столкнувшись с каталогом из более чем 90 миллионов треков, выбор вскоре из подарка превратился в бремя. Требовалось новое решение. Решение, облегчающее выбор.

Flow, волшебная кнопка воспроизведения

Вот почему в 2014 году Deezer представила Flow — волшебную кнопку, воспроизводящую музыку, которая в режиме реального времени адаптировалась к вкусу, настроению, активности пользователя, а также времени, погоде, местоположению и так далее. Волшебная кнопка воспроизведения, которая освободила наших пользователей от бремени выбора.
Первая задача — адаптироваться к музыкальным вкусам наших пользователей и их эволюции — была передана нашей группе рекомендаций, экспертам в этой области. Что касается других критериев, мы не были уверены, должны ли мы просить пользователей внести свой вклад или мы должны позволить «ИИ» разобраться с ними. Чтобы сделать волшебную кнопку как можно более «волшебной» и максимально упростить работу с ней, мы решили попытаться позволить Flow разобраться с ними.
Эти решения и усилия нашей группы рекомендаций, похоже, окупились. так как в течение последних семи лет миллионы меломанов постоянно используют Flow, чтобы воспроизводить и находить свою любимую музыку.

Flow развивается

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

Почему настроения?

Запрашивать мнение пользователей

Сначала мы думали, что Flow должен слушать биение своего сердца и помогать вам находить песни, которые ему соответствуют». Мы думали, что ИИ угадает ваше настроение на основе ваших взаимодействий с предлагаемыми треками. Дело в том, что вы можете взаимодействовать с рекомендованным треком только 3-мя способами: поставить лайк, забанить или пропустить. У нас не возникло проблем с интерпретацией первых двух, поскольку они довольно явные, но оказалось, что наиболее часто используемым взаимодействием в реальном времени в проигрывателе является кнопка пропуска. Кнопка пропуска — это сложный сигнал для интерпретации, потому что он неявный: есть множество причин, по которым вы могли бы его использовать. Вам может не понравиться трек, вы его уже слишком много слышали, время может быть неудачным, он может навести вас на мысли о бывшем, он не соответствует вашему нынешнему настроению…

Таким образом, если система пытается угадать, что проигрывать после того, как вы пропустили дорожку, она может не соответствовать биению вашего сердца с самого начала.< br /> Если вам интересны подробности, вы можете ознакомиться с документом по теме, который был опубликован одним из наших коллег (и фактически помог убедить вице-президента по дизайну, что ИИ будет не определять настроение пользователя на основе неявных взаимодействий).

Единственным другим вариантом было попросить пользователей внести свой вклад, что, как мы выяснили, многие пользователи Flow стремились сделать.

Подверженность эмоциям

Какими бы уникальными и разнообразными ни были музыкальные вкусы, у большинства пользователей Flow довольно схожий подход к прослушиванию музыки: они ищут музыку, соответствующую их настроению и занятиям. Их не так заботит исполнитель, жанр или история музыки, которая играет, пока это помогает им чувствовать то, что они хотят чувствовать в данный момент. Для них музыка — это инструмент, катализатор жизни и эмоций, она заставляет их работать лучше, бегать усерднее, веселиться дольше… Они рассматривают Deezer как эмоциональный музыкальный автомат, пульт дистанционного управления, который помогает им управлять своим настроением с помощью музыки.

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

Мы решили позволить людям явно сообщать Flow, в каком они настроении. Это позволит пользователям Flow легко слушать музыку, которая соответствует как их личному вкусу, так и их эмоциональному контексту.

Какое настроение у Flow?

Новое изобретение колеса

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

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

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

Теперь Flow мог получать информацию о настроении пользователя. Оставался вопрос понимания и использования этого ввода.

Урожайное настроение: как определить настроение?

Понимание связи между звуком и эмоциями

Человеческому уху легко почувствовать настроение песни. Первые ноты Ne me quitte pas Jacques Brel вызовут меланхолию, а вступление Good Times Chic может вызвать желание спуститься на танцпол. С такой властью над нашими чувствами приходит и большая ответственность за алгоритм!

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

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

Конечно, компьютеры не могут понимать эмоции (пока? 😱), но мы подумали, что можно будет разложить их для них и позволить им изучить связь между типичными музыкальными подписями и эмоциями, которые они передают.

Учитесь на примере

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

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

Благодаря Исследовательской группе в Deezer мы располагали огромным разнообразием аудиодескрипторов для каждой доступной песни. Используя методы поиска музыкальной информации и звуковые отпечатки пальцев, мы могли бы получить представление о различных звуках, из которых состоит музыка. Это своего рода технология, лежащая в основе Spleeter, то есть алгоритма разделения источников, который может изолировать инструменты или голоса, позволяя извлекать еще больше аудиодеталей.

Музыкальный трек, показанный с помощью логарифмической спектрограммы.
В этом представлении можно визуально наблюдать последовательные записи инструментов.

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

Когда наш набор данных со всеми настроениями песен и их атрибутами был завершен, мы смогли начать процесс обучения. Этот шаг может показаться простым, но помните, что качество модели обычно такое же хорошее, как и ваши входные данные! Чтобы получить удовлетворительный результат, потребовалось много итераций и тонких настроек, и особое внимание было уделено разнообразию музыкальных жанров, представленных в обучающих данных. Например, если бы все примеры сэмплов chill были джазовыми песнями, модель со временем научилась бы распознавать jazz вместо chill в сочетании с плохой точностью в других жанрах.

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

Пусть течет

Начните с музыкального профиля пользователя

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

Пример моделирования музыкального пространства для пользователя. В этом представлении показаны различные музыкальные интересы пользователя.

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

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

Исследуй и сочиняй: Эти настроения созданы для прогулок

Как только у нас будет начальная локация, мы можем начать исследовать ее, чтобы создать пул треков, которые, как мы думаем, понравятся пользователю. Лежащая в основе модель сходства гарантирует, что песни, расположенные поблизости от выбранного места, будут хорошими кандидатами для микса.

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

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

Заключение и будущая работа

В этом посте мы представили Flow moods, эмоциональный музыкальный автомат, рекомендующий персонализированную музыку в любом масштабе. Помимо своей многообещающей производительности, эта система помогает нам изучать взаимодействие между пользователями и музыкой. Кроме того, будущая работа будет направлена ​​на улучшение настроения Flow путем изучения более продвинутых моделей определения музыкального настроения. Например, хотя наши текущие классификаторы полагаются только на звуковые сигналы, мы могли бы рассмотреть возможность дополнения их данными текстов песен и вхождениями в плейлисты. Более подробную информацию можно найти в нашем постере, принятом на Recsys 2022!

Готовы к новым впечатлениям? Ознакомьтесь с нашими открытыми вакансиями, присоединитесь к одной из наших команд и помогите нам расширить эмоциональное музыкальное путешествие миллионов пользователей!