Наука о хитовых песнях занимается возможностью предсказать, станет ли песня хитом, до ее распространения с использованием автоматизированных средств, таких как программное обеспечение для машинного обучения. Это побудило нас копнуть глубже, чтобы выяснить, как различные звуковые функции помогут предсказать, попадет ли песня в чарт Billboard Top 100, и построить двустороннюю модель удобства использования — как для музыкантов, сочиняющих музыку, так и для лейблов, транслирующих ее. Проект также соответствует видению нашей команды по изучению реальных приложений методов машинного обучения и их использованию в общих областях. Мы изучаем модели прогнозирования на основе данных из MSD, Billboard и Spotify с использованием методов машинного обучения.

Репозиторий GitHub:



Введение

С постоянно расширяющейся музыкальной индустрией и количеством людей, увлеченных прослушиванием популярной музыки, становится очень важным придумать классификатор, который может предсказать, является ли песня «хитовой» или «не-хитовой», чтобы помочь музыкантам и музыкальные лейблы. Используя данные, собранные из Billboard, Spotify и Million Song Dataset, наш проект учитывает несколько функций для песни, таких как звуковые характеристики и связанные данные об исполнителе, и на основе этого использует алгоритмы классификации на основе машинного обучения для разработки моделей, которые могут помочь нам достичь желаемого. классификация. Наша цель — делать точные и точные прогнозы. Наши модели покажут, какой выбор конкретной функции оказывает положительное влияние, чтобы музыканты и музыкальные инженеры могли планировать соответствующим образом, чтобы дать своим песням наилучшие шансы быть классифицированными как «хит». Мы включаем как низкоуровневые, так и высокоуровневые анализы. Низкоуровневый анализ выполняется с использованием аудиоданных и извлечением необработанных аудиофункций, таких как спектрограммы, для обучения моделей. Анализ высокого уровня включает в себя использование понятных человеку функций высокого уровня, таких как танцевальность, громкость и акустика.

Литературное исследование

  • Пачет и Рой (2008) использовали внешние (извлекаемые из музыкальной экосистемы, такой как присутствие в социальных сетях) и внутренние характеристики (извлекаемые из аудио), чтобы предсказать популярность песни. Они использовали 632 помеченных вручную функции для каждой песни, чтобы инкапсулировать все внутренние и внешние функции. Они не смогли разработать точную модель и пришли к выводу, что это невозможно сделать с помощью современного машинного обучения.
  • Ni и коллеги (2011) сосредоточились на использовании низкоуровневых внутренних функций для прогнозирования популярности песни. Они использовали классификатор, который был функцией времени, а также изменяющийся обучающий агент персептрона. Их модель значительно превзошла случайный оракул и получила 60% точность своих предсказаний. Ограничено рекламными щитами Великобритании и может не подходить для обобщения.
  • Zangerle et al (2019) сосредоточились на использовании внутренних функций низкого и высокого уровня для прогнозирования коммерческого успеха песни. Они добавили дату в качестве функции высокого уровня, чтобы контекстуализировать песню во времени и повысить точность. Использовали широкую и глубокую сетевую регрессию для получения точности 75%. Тем не менее, они имеют более жесткий критерий для того, чтобы быть классифицированными как хит.

Набор данных

Извлечение набора данных

Мы использовали подмножество набора данных «Миллион песен» из 1 миллиона песен, из которых мы дополнительно использовали одну десятую подмножества. Мы извлекли высокоуровневые аудиофункции каждой песни и связанные данные об исполнителях, используя Spotipy для запроса Spotify API, и получили 29 371 точку данных после сужения списка песен, выпущенных в период с 2006 по 2020 год. Используя billboard.py для запроса Billboard API, мы также собрали 4778 песен. представлены в Billboard Top 100, распределенные поровну в период с 2006 по 2020 год, и получили функцию аудио и информацию об исполнителе для 4063 песен и удалили песни, которые не были выпущены в период с 2006 по 2020 год. Некоторые песни, накладывающиеся между данными Billboard и MSD, были удалены, и, наконец, мы данные примерно о 9 758 песнях, из которых 3 796 были хитами Billboard и 5 962 не-хитами. Попадание в Billboard помечается как 1, а непопадание — как 0.

Мы выполняем как высокоуровневую, так и низкоуровневую классификацию. Классификация высокого уровня выполняется с использованием понятных человеку характеристик высокого уровня, таких как танцевальность, громкость и акустика, тогда как классификация низкого уровня выполняется 1 путем выборки из фактических аудиоданных и использования спектрограммы аудиосигнала. Обратите внимание, что все модели, кроме CNN, используют функции высокого уровня; CNN использует низкоуровневые аудиоданные для классификации.

Предварительная обработка и анализ

Из извлеченных 23 признаков мы изначально сократили набор данных до 16 числовых признаков, которые можно использовать для построения моделей классификации. Мы проверили отсутствующие функции (значения NaN, NULL и т. д.) и ничего не нашли, так как они уже были удалены во время извлечения данных.

Стандартизация данных

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

Как видно из рисунка выше, после выполнения преобразования данные напоминают распределение Гаусса.

Выбор функций путем наблюдения за корреляцией

Мы строим тепловую карту корреляции функций и делаем следующие наблюдения:

  • Энергия имеет высокую положительную корреляцию с громкостью (0,71) и высокую отрицательную корреляцию с акустикой (-0,66).
  • Подписчики и популярность артиста имеют высокую положительную корреляцию (0,53). Популярность исполнителя также имеет высокую положительную корреляцию (0,76) с выходным лейблом.

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

Обработка выбросов

Поскольку данные стандартизированы, для конкретной функции мы идентифицируем выбросы как точки данных с абсолютным значением Z-показателя выше 2,6. Это означает, что любая точка данных, которая отличается от среднего значения более чем на 2,6 стандартных отклонения, считается выбросом. Мы попробовали пороговое значение Z-оценки для всех значений в диапазоне [2, 4] с размером шага 0,1. Пороговое значение 2,6 дало наилучшие результаты. После удаления выбросов у нас осталось 3690 совпадений (выходная метка = 1) и 5486 не совпадений (выходная метка = 0). 40% точек данных являются совпадениями, а 60% - непопаданиями.

После выполнения всех шагов предварительной обработки окончательный набор данных содержит 9 176 точек данных и 14 признаков.

Уменьшение размерности

t-SNE: t-распределенное стохастическое соседнее встраивание (t-SNE) сводит к минимуму расхождение между двумя распределениями: распределением, которое измеряет попарное сходство входных объектов, и распределением, которое измеряет попарное сходство соответствующих низких -мерные точки вложения.

Мы используем t-SNE, чтобы уменьшить размеры точек данных до двух измерений. Благодаря этому мы можем визуализировать многомерные данные и почувствовать сходство между точками данных.

PCA

PCA используется для уменьшения количества измерений данных при попытке сохранить максимум информации, хранящейся в нем. Он пытается максимизировать количество вариаций, оставшихся от исходного распределения данных. Мы используем PCA, чтобы уменьшить размеры точек данных до трех измерений и построить то же самое. Объясненный коэффициент дисперсии на компонент составляет [9,99952230e-01, 4,77703879e-05, 6,88124530e-12].

Это говорит о том, что большая часть информации содержится только в первых трех основных компонентах.

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

Методология

Мы стремимся сделать прогноз для песни на основе ее звуковых характеристик и соответствующих данных, связанных с исполнителем (популярность), и выполнить бинарную классификацию, предсказав ее как хит на билборде (метка 1) или не хит (метка 0). Для этого мы использовали следующие модели классификации: логистическая регрессия, гауссовский наивный байесовский алгоритм, деревья решений, случайный лес, SVM, AdaBoost (базовый классификатор: дерево решений), MLP и CNN. Мы также выполняем настройку гиперпараметров, используя метод поиска по сетке по выбранным параметрам, чтобы получить наилучшие результаты. Метрики, используемые в целом для оценки, включают точность, прецизионность, полноту и показатель AUC для кривых ROC.

Модели

Мы разделили данные на обучающий набор и тестовый набор в соотношении 70:30. Учебный набор содержит 6268 образцов, а набор для тестирования — 2687 образцов.

  • Логистическая регрессия. Это модель линейной бинарной классификации, в которой для классификации используется логистическая функция. Мы используем его с потерей журнала и регуляризацией L2.
  • Дерево решений. Это модель классификации, которая создает границы решений для классификации данных. Он создает древовидную модель с использованием функций и постоянно разбивает данные на основе параметров.
  • Случайный лес. Это ансамблевая модель деревьев решений, объединяющая выходные данные различных деревьев решений. Поскольку это ансамблевая модель, она имеет тенденцию работать лучше, чем обычные деревья решений.
  • Наивный байесовский алгоритм Гаусса. Это вероятностная модель, которая предполагает независимость признаков для назначения вероятностей выходным классам.
  • Классификатор SGD: мы используем классификатор SGD для выполнения логистической регрессии с использованием стохастического градиентного спуска и регуляризации L1.
  • SVM: это модель классификации, которая создает оптимальные гиперплоскости для разделения классов. Если данные не являются линейно разделимыми, мы можем использовать такие методы, как мягкая маржа и трюк с ядром (которые увеличивают размерность данных). Увеличение размерности данных обычно делает данные линейно разделимыми (теорема Кавера).
  • AdaBoost: это алгоритм статистической классификации, который повышает результаты слабых моделей.
  • MLP: MLP — это класс искусственных нейронных сетей с прямой связью. Строго говоря, он состоит из нескольких слоев персептронов с пороговой активацией.
  • CNN: CNN — это класс искусственных нейронных сетей, которые обычно используются для изображений или данных, подобных изображениям.

Метрика производительности

Мы используем точность, точность и полноту для оценки производительности в целом. В общем, желательна высокая точность, прецизионность и полнота. Точность (отношение истинных срабатываний к общему количеству положительных прогнозов) особенно важна, поскольку мы хотим уменьшить количество ложных срабатываний (непопадания прогнозируются как совпадения). Это необходимо, потому что музыкальные лейблы не захотят вкладывать средства в песни, которые не являются потенциальными хитами. Строят кривую ROC и наблюдают площадь под кривой (AUC). Желательна более высокая AUC, которая указывает на лучшую прогнозирующую способность модели и хорошую производительность.

Результат и анализ

Классификация высокого уровня

Мы обучаем наши модели, используя 5-кратную перекрестную проверку (лучший общий «k» от 2 до 10) при выполнении поиска по сетке гиперпараметров. Используя лучшую модель, полученную с помощью поиска по сетке (используя точность в качестве метрики оценки, поскольку мы хотим минимизировать количество ложных срабатываний), мы вычисляем точность, точность, полноту и оценку F1. Краткое изложение моделей на тестовых данных приведено ниже:

MLP показала лучшие результаты среди всех моделей, выбранных для анализа, по всем показателям производительности. Это неудивительно, поскольку ИНС являются очень мощными аппроксиматорами функций. Как видно из графика t-SNE, данные не являются линейно разделимыми.

Деревья решений (DT) хорошо работают с такими данными и, таким образом, обеспечивают высокую точность и аккуратность. Поскольку случайные леса представляют собой ансамблевую модель деревьев решений, они объединяют выходные данные различных деревьев решений и, таким образом, работают лучше, чем одно дерево решений.

Низкоуровневая классификация

Набор данных, использованный для низкоуровневой классификации, содержит 7 408 песен (некоторые песни не имели возможности предварительного прослушивания, поэтому они были удалены). Из-за вычислительных ограничений мы сэмплируем аудиоданные только 10 секунд. Мы делаем сплит-тест 80:20. Частота дискретизации звука составляет 44160 (стандартная частота дискретизации). Это создает образцы данных размером 331 264.

Мы используем данные спектрограммы, извлеченные из аудиофайлов, для низкоуровневой классификации. Используется CNN с 4 сверточными слоями и 1 полносвязным слоем. Модель обучается в течение 30 эпох с размером пакета 128. Начальная скорость обучения составляет 0,001. Оптимизатор Adam используется для обратного распространения.

Результаты модели приведены ниже:

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

Заключение

Обучение

Благодаря проекту мы узнали о методах извлечения данных с помощью API. Мы узнали о методах, связанных с визуализацией и анализом данных. Мы узнали о методах предварительной обработки данных и методах EDA. Мы можем применять для прогнозирования различные модели классификации, такие как логистическая регрессия, деревья решений, случайные леса, MLP, SVM, CNN, AdaBoosting и Naive Bayes. Мы также узнали о важности данных в проектах машинного обучения и изучили различные типы наборов данных. Мы также узнали об анализе признаков для одного и того же и о важности изучения различных типов данных признаков низкого и высокого уровня. Нам нужно узнать о способах анализа производительности наших моделей с использованием различных показателей, таких как точность, точность, полнота, а также визуализировать их с помощью кривых, таких как ROC.

Будущая работа

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

Рекомендации

Члены команды

Парт Чабра





Самьяк Джейн





Сартак Джохари





Яш Матне