Использование данных Spotify и Billboard, чтобы понять, что делает песню хитом.

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

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

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

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

Мои данные

У меня не могло быть набора данных из единого источника, содержащего все переменные. Чтобы решить эту проблему, я прибег к методам обогащения данных со следующими тремя источниками данных: Billboard, Spotify и Genius.

Сначала, используя Beautiful Soup, я собрал список песен Billboard Year-End Hot 100 с 2010 по 2019 год из расчета 100 песен в год. Затем пакет Spotipy был использован для восстановления данных, относящихся к звуковым характеристикам песен, таким как танцевальность, инструментальность, живость и т. Д., С одной стороны; и, с другой стороны, те, которые связаны с профилем исполнителя, такие как количество подписчиков, популярность и т. д. как для ранее восстановленных хитовых, так и для других нехитовых песен того же периода.

И, наконец, Genius будет использоваться в основном для поиска текстов всех песен, которые были собраны.

Песня в нашем наборе данных считается хитом, если она попадала в чарт Billboard Year-End Hot 100 хотя бы один раз в течение любого года отчетного периода. Другими словами, нашей модели было поручено предсказать, попадет ли песня в список 100 самых популярных песен Billboard.

Используемые инструменты:

  • Пакет spotipy для доступа к данным с музыкальной платформы Spotify.
  • seaborn и matplotlib для визуализации данных
  • pandas и numpy для анализа данных
  • LightGBM и библиотека scikit-learn для построения и оценки модели

Возможности

Spotify - одна из крупнейших потоковых платформ в мире. Как и Twitter или Facebook, он предоставляет API (интерфейс прикладного программирования), чтобы разработчики могли взаимодействовать с его огромной музыкальной базой данных. Через конечные точки этого API я смог собрать данные для более чем 22 000 песен; каждая песня характеризуется более чем двадцатью переменными.

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

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

Визуализация данных

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

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

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

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

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

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

Подход машинного обучения

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

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

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

Кроме того, мне нужна была модель, которая работала бы как можно лучше. Для этого я обучил несколько алгоритмов и сравнил результаты на основе выбранных критериев оценки. Оказалось, что алгоритм классификации LightGBM - это тот алгоритм, который во время обучения лучше обнаруживал закономерности между независимыми переменными и переменной, которая должна быть предсказана (попаданием).

Матрица неточностей

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

Эта матрица измеряет качество системы классификации. В бинарной классификации главная диагональ представляет наблюдения, правильно классифицированные моделью; и вторичная диагональ, классифицированные неправильно. Таким образом, наиболее частая ошибка модели - это классификация песни как не хитовой, хотя на самом деле она была хитом (129 случаев), точнее, ошибка типа II.

Ошибка типа I заключается в том, что модель классифицирует песню как хит, когда она не попала (ложное попадание); и ошибка типа II, обратная; то есть случай, когда он классифицирует музыку как не попадание, но попадание в него (ложное отсутствие попадания). Если мы пытаемся понять психологию музыкального продюсера, ошибка типа I менее приемлема, чем ошибка типа II. Мы не хотели бы нести все расходы, связанные с производством и продвижением песни, которая, по прогнозам модели, станет хитом, так что в конце концов это не так. Значение ошибки типа I должно быть минимальным.

Отчет о классификации

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

Точность, которая в целом измеряет процент правильной классификации, выполненной моделью, составляет 96%. Поскольку тестовое подмножество несбалансировано, этот процент растягивается из-за избыточно представленного класса, в данном случае класса без совпадений. Так что это не лучшая метрика, которую мы могли бы использовать.

Отзыв измеряет процент случаев, правильно классифицированных моделью для каждого класса. Классификация считается правильной, если прогнозируемый класс совпадает с фактическим классом. С одной стороны, из 5 484 не популярных песен, которые мы использовали для тестирования модели, 98% были правильно классифицированы. С другой стороны, алгоритм правильно классифицировал только 52% из 271 хита, который мы отправили ему. Вы поймете: алгоритму труднее классифицировать хитовую песню как хит (истинный хит), чем классифицировать песню, не попавшую в хит, как не попавшуюся (истинно не попавшуюся).

Уровни точности для классов без попадания и попадания составляют 0,98 и 0,55 соответственно. Это означает, что 98% всех песен, классифицируемых моделью как нехиты, действительно не являются хитами; и только 55% песен, которые он предсказал, являются хитами.

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

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

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

Этот анализ обращает внимание на кое-что важное. По сути, песня является хитом, если она популярна на Spotify, исполняется артистом, который также популярен на Spotify и имеет значительное количество подписчиков, и, наконец, если она доступна в наибольшем количестве стран мира. Этот вывод кажется логичным, и… Eurêka🙂, он также подтверждается эмпирически с помощью нашей модели.

Чтобы лучше понять актуальность этого вывода, следует иметь в виду, что список 100 лучших музыкальных композиций Billboard на конец года основан в первую очередь на коммерческом аспекте. Действительно, этот рейтинг точно отражает физические и цифровые продажи, прослушивание радио и потоковую передачу музыки в Соединенных Штатах; все виды деятельности, приносящие доход, прямо или косвенно.

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

Чем больше доходов приносит музыка, тем больше вероятность того, что она попадет в список 100 лучших музыкальных композиций Billboard в конце года; следовательно, более вероятно, что наша модель также попадет в ранжирование, потому что переменные, которые в основном определяют уровень дохода от музыки, являются наиболее влиятельными в процессе ранжирования в соответствии с нашим графиком важности (логично, не так ли?).

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

Как всегда, приветствую конструктивную критику и отзывы. Со мной можно связаться в Твиттере @ jbobym.