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

Из-за множества языков и даже большего числа исполнителей поиск песен на свой вкус - утомительная работа. Какова цель музыкальной платформы, если пользователю в конечном итоге приходится искать и создавать собственный плейлист? Интернет всегда служил этой цели. Системы рекомендаций по музыке позволяют пользователям пропустить поиск и напрямую слушать песни из автоматически созданного списка воспроизведения, который не просто создается случайным образом, но и основан на первоначальном выборе пользователя. Предлагаемая система работает с фильтрацией на основе контента, и контент, в свою очередь, зависит от значения Mel-Frequency Cepstral Coefficients (MFCC) песни. Это также включает механизм обратной связи по релевантности для улучшения рекомендаций.

Что такое контентная фильтрация и совместная фильтрация?

Совместная фильтрация:

Это рекомендует песни на основе уже данного рейтинга пользователей. Он использует такую ​​информацию, как автор, название альбома, год выпуска альбома, для классификации песен по различным категориям, что не всегда дает желаемые результаты. Рекомендуемые песни не отличаются по своему характеру, как правило, они принадлежат одному исполнителю, одному и тому же альбому и т. Д.

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

Контентная фильтрация:

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

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

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

Используемый набор данных

Набор данных FMA (Free Music Archive) используется для системы рекомендаций по музыке, основанной на содержании. Набор данных FMA содержит 106 574 песни 161 жанра. Полный набор данных может похвастаться размером 917 ГБ. Однако из-за ограничений мощности для хранения и обработки используется подмножество, состоящее из 8000 песен (30-секундные выборки). Этот набор данных используется для обучения моделей машинного обучения и нейронных сетей. Каждый файл в наборе данных представляет собой 30-секундный музыкальный клип. Набор данных сбалансирован и включает 8 жанров (хип-хоп, международный, электронный, народный, экспериментальный, рок, поп и инструментальный).

Извлечение функций и жанров

Этикетки были извлечены из файла метаданных, доступного на сайте FMA. Он содержит 12 файлов. Файл с именем «track.csv» содержит метаданные для каждой дорожки, такие как идентификатор, название, исполнитель, жанры, теги и количество воспроизведений для всех 106 574 дорожек. Жанры треков, подходящие для нашего подмножества песен, были разделены, в результате чего был получен следующий результат:

Затем каждая песня продолжительностью 30 секунд была вырезана в аудиофайл по 5 секунд каждая. Особенности MFCC этого клипа были извлечены с помощью библиотеки Librosa audio.

Входными данными в дескриптор признака должна быть матрица размеров (mxn), так что произведение m * n должно быть точным квадратом. Причина выбора конкретной длины скачка и окна спектрограммы мощности в масштабе mel (n_fft) заключалась в том, чтобы гарантировать, что конечное изображение можно легко уменьшить до размеров 16x400, которые могут быть вычислены с использованием доступных ресурсов и могут быть переданы в дескриптор функции.

Количество выходных отсчетов = (длительность в секундах) * (частота дискретизации) / (длина_перехода)

После извлечения функций mfcc были получены следующие изображения:

Необходимость дескриптора изображения

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

На самом деле существует несколько методов извлечения признаков. Из них здесь используется дескриптор функции HOG или Гистограмма ориентированных градиентов.

Но что такое HOG?

«Это упрощенное представление изображения, которое содержит только самую важную информацию об изображении».

Дескриптор HOG фокусируется на структуре или форме объекта. Помимо определения того, является ли пиксель краем или нет, HOG также может предоставить направление края. Полное изображение разбито на более мелкие области, и для каждой области HOG генерирует гистограмму. Гистограммы создаются с использованием градиентов и ориентации значений пикселей, отсюда и название «Гистограмма ориентированных градиентов».

Обучение модели

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

  1. Сверточная нейронная сеть (CNN): Мы использовали CNN с 4 сверточными слоями и 2 скрытыми полносвязными слоями. Используя 1000 контрольных точек в качестве набора для проверки, мы получили точность 45%.
  2. Многослойный персептрон (MLP): в нейронной сети с прямой связью использовались 3 скрытых слоя, каждый с функцией активации Relu. Уровень вывода использовал функцию активации Soft-max. Достигнутая точность варьировалась от 47% до 52%.
  3. Машина опорных векторов (SVM): Модель SVM использовалась для тестирования тех же данных, что дало точность 49,37%.
  4. Случайный лес. Мы проверили точность около 1600 точек в качестве проверочного набора с использованием 900 деревьев в классификаторе случайного леса. Это привело к лучшей точности 54,31% для данного набора данных.

Достигнутая точность набора тестов соответствует точности, сообщенной Исследовательским исследованием FMA.

Создание рекомендаций

Пользователь выбирает одну песню. Характеристики этой песни, извлеченные указанным выше методом, передаются в наш классификатор Random Forest, который предсказывает жанр выбранной песни. Затем песни рекомендуются путем вычисления сходства между песнями прогнозируемого жанра и другими песнями библиотеки. Пользователю отображается список из 50 песен, основанный на наивысших показателях схожести.

Пользователь выбирает песню из библиотеки песен для воспроизведения:

Список песен, рекомендуемых пользователю системой на основе первоначального выбора:

Рассмотрение актуальной обратной связи

В систему включен механизм, позволяющий пользователям заявить о своих предпочтениях, чтобы генерировать более персонализированные рекомендации. Эта обратная связь немедленно принимается во внимание для расчета следующего набора рекомендаций. Это было реализовано с использованием классического алгоритма Роккио. Система учитывает отзывы пользователей и дает более точные рекомендации.

Взносы

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

Аян Раха (MT19032): Извлечение признаков и применение моделей нейронных сетей.

Самикша Гупта (MT19096): Разработка функций и применение моделей машинного обучения.

Арнаб Чаттерджи (MT19130): Механизм обратной связи по вопросам сходства и релевантности