394 lectures
394 lectures

Musique & ML: Clustering sur les fonctionnalités audio de Spotify

par Aidar Gain7m2025/04/01
Read on Terminal Reader

Trop long; Pour lire

J'ai exploré comment utiliser l'apprentissage automatique non supervisé pour regrouper 5 000 chansons en playlists pertinentes grâce aux fonctionnalités audio de Spotify. En combinant des techniques de clustering comme K-Means, PCA et la validation externe des genres Last.fm, j'ai évalué la qualité du clustering avec des indicateurs comme Silhouette Score et NMI, en équilibrant la solidité statistique et le sens musical.
featured image - Musique & ML: Clustering sur les fonctionnalités audio de Spotify
Aidar Gain HackerNoon profile picture
0-item


Introduction

La musique nous entoure tous les jours. Elle nous met en place, nous motive, et même améliore les performances cognitives. Les battements rythmiques rapides peuvent stimuler notre énergie, tandis que les sons plus lents et plus mélodiques nous aident à nous détendre.La création de la liste de lecture parfaite est cependant souvent une tâche personnelle et longue.Les grandes plateformes de streaming comptent sur des experts musicaux pour organiser des playlists, mais évidemment, comme dans la plupart des domaines, nous avons besoin d'une certaine automatisation et d'une aide automatique à l'aide de données.


En tant que quelqu'un qui écoute plus de 2 heures de musique par jour dans différents genres, produit de la musique et crée des playlists pour un usage personnel, ce sujet résonne profondément avec moi.Ce projet m'a permis de combiner ma passion pour la musique avec mon expertise professionnelle en analyse de données tout en explorant les applications pratiques des algorithmes d'apprentissage automatique.Plus, j'ai été inspiré par L'article d'ingénierie de Spotify - étant le leader dans le streaming de musique, ils ont établi le point de référence pour l'innovation dans cet espace et nous ont fourni des données de haute qualité.

Article d'ingénierie de Spotify

Déclaration du problème

L'objectif de ce projet était d'explorer des techniques de regroupement pour regrouper automatiquement des chansons en listes de lecture significatives.Le machine learning peut-il nous aider à créer des listes de lecture qui se sentent aussi curées que celles des experts humains?Ou, au moins, peut-il s'assurer que le death metal et les suites classiques ne figurent pas sur la même liste?


Pour y remédier, j'ai utilisé un ensemble de données de ~5.000 chansons avec des fonctionnalités audio Spotify, telles que la danse, le rythme et l'énergie.En outre, j'ai incorporé les données de l'API Last.fm pour récupérer des informations de genre, permettant une validation externe de la qualité du cluster.


Notre mission :

  • Cluster des chansons dans des playlists cohérents basés sur des caractéristiques audio.
  • Validez ces clusters contre les genres Last.fm pour assurer la qualité.
  • Cluster des chansons dans des playlists cohérents basés sur des fonctionnalités audio.
  • Validez ces clusters contre les genres Last.fm pour assurer la qualité.
  • Observation des données

    Avant de plonger dans l'apprentissage automatique, j'ai visualisé le dataset en utilisant des fonctionnalités de base. Ci-dessous est un scatter de chansons basées sur tempo et danceability:

    Temps de travailDansabilité

    Par exemple, Brahms' Lullaby est facilement identifiable dans la région à bas rythme, à bas rythme, tandis que Eminem's The Real Slim Shady apparaît dans la zone à moyen rythme, à haut rythme.


    BouillardTitre original : The Real Slim Shady


    Toutefois, en tirant parti de toutes les fonctionnalités disponibles, nous pourrons découvrir des modèles plus riches et automatiser la création de listes de lecture.

    Get Track’s Audio Features API réponse échantillon

    Get Track’s Audio Features API response sample

    Classification non supervisée

    Maintenant, notre objectif est de réaliser un cluster initial.L’idée ici est d’appliquer l’apprentissage automatique pur non supervisé – nous ne connaissons pas les vraies étiquettes de cluster et nous visons à déterminer le nombre optimal de clusters en utilisant des méthodes pratiques.

    Scalage

    Création

    Pour la plupart des algorithmes et méthodes que nous appliquerons ultérieurement, les données évolutives sont essentielles. Ces algorithmes s'appuient sur des calculs (tels que les distances ou les variances) qui sont sensibles à l'échelle des caractéristiques.


    En dessous est un exemple de la projection de nos données sur deux caractéristiques: duration_ms et tempo. Le parcours gauche affiche les données originales; le côté droit affiche le résultat après l'application de deux échelles - PowerTransformer et MinMaxScaler:

    duration_ms à partir deTemps et temps

    Scaling rend les fonctionnalités comparables - maintenant cluster fait plus de sens

    Scaling rend les fonctionnalités comparables - maintenant cluster fait plus de sens


    Réduction de la dimension avec PCA

    Réduction de la dimension avec PCA

    La prochaine étape est l'analyse des composants principaux (PCA), qui réduit le nombre de fonctionnalités tout en conservant les informations les plus importantes.

    Cela facilite la visualisation et accélère le regroupement.



    Parlant figurativement, PCA trouve des projections – comme allumer un phare sur un objet 3D pour créer une ombre 2D. Le phare est positionné de sorte que l'ombre (projection) conserve autant de détails que possible sur l'objet d'origine.


    Nous allons essayer différents nombres de composants et comparer les résultats. Dans notre cas, nous allons tester 10 options. Voici un exemple de la projection de chansons sur deux composants principaux:

    PCA projection

    PCA projection


    K signifie cluster

    K-Means est un algorithme de clustering populaire qui regroupe les données en un nombre prédéfini de clusters (k).

    Parfois, nous avons des contraintes commerciales. Notre ensemble de données comprend environ 5 000 chansons. Typiquement, les playlists sur les services de streaming contiennent entre 20 et 250 chansons.


    Le score de silhouette aide à évaluer la qualité du regroupement en mesurant à quel point chaque point de données s'intègre dans son regroupement attribué par rapport aux autres.Un score de silhouette plus élevé (plus proche de 1) signifie que les regroupements sont bien définis et clairement séparés.

    Score de silhouette

    Meilleure combinaison de paramètres

    Avec tant de degrés de liberté, comment pouvons-nous trouver la meilleure combinaison de paramètres? La réponse est la simulation.Je peux essayer différentes combinaisons – scalers, nombre de composants PCA et nombre de clusters – et choisir celle qui fonctionne le mieux. Dans mon cas, il y avait 935 candidats possibles.

    Cette parcelle montre des scores de silhouette (x-axe) pour différentes combinaisons de composants PCA (représentés par la taille du cercle), des échelles (couleur) et le nombre de clusters (y-axe).Pour simplifier le choix, nous devrions nous concentrer sur les options dans la zone supérieure droite, comme ceci:

    La première combinaison significative avec le score de silhouette le plus élevé utilise l'échelleur MinMax, 2 composants principaux et 6 clusters.

    Résultat de cluster initial

    Comme mentionné précédemment, j'ai incorporé les données Last.fm avec des informations de genre pour nos artistes. C'est le moment idéal pour l'appliquer à notre ensemble de données en tant que critère de validation utile. J'ai sélectionné les 5 genres les plus populaires de ce groupe de données, le reste étant regroupé sous « autre ».


    En revenant à notre combinaison de performances les plus élevées, nous sommes maintenant prêts à comparer les clusters obtenus en utilisant les étiquettes de genre.

    Si vous vous souvenez, j’ai mentionné dans la déclaration du problème que l’un de mes objectifs était de distinguer le death metal de la musique classique – honnêtement, c’était un exemple aléatoire.Mais étonnamment, ce critère fonctionne assez bien pour cette configuration de clustering particulière.Regardez de plus près: les clusters 0 et 4 sont composés d’environ la moitié de la musique classique, sans presque aucun death metal, tandis que les clusters 2 et 3 sont le contraire, représentant fortement le death metal.Un début prometteur!


    Cela dit, nous observons toujours un mélange de genres dans de nombreux clusters, dont certains ne sont pas compatibles sur le plan musical.


    En fin de compte, l'objectif est de trouver une solution de regroupement qui soit à la fois statistiquement robuste et pratiquement significative pour votre cas d'utilisation spécifique.

    Cluster avec validation externe

    Dans cette section, nous allons utiliser plus largement les informations de genre. Ces données agissent comme nos « étiquettes idéales » pour valider la qualité du regroupement. Bien sûr, ce n’est pas un critère parfait ou l’approche la plus sophistiquée pour la création de playlists – mais pour moi personnellement, en tant que fan de musique, cela fonctionne bien. Par exemple, je préfère souvent écouter de la musique spécifique au genre: le hip-hop pour la motivation, le rock aux fêtes ou le classique pendant le travail.


    Tentons-nous répondre à une telle question: Pourrions-nous séparer la musique par genre en utilisant uniquement des caractéristiques telles que la danse, l'énergie, le tempo, etc.?

    Pouvons-nous séparer la musique par genre en utilisant uniquement des caractéristiques telles que la danse, l'énergie, le tempo, etc.?

    Information mutuelle normalisée (NMI)

    Information mutuelle normalisée (NMI)

    Normalised Mutual Information (NMI) mesure la similitude entre deux clusters. Il note entre 0 et 1, où:

    • 0 signifie qu'il n'y a pas de superposition entre les attributions de cluster et les étiquettes vraies.
    • 1 signifie une correspondance parfaite avec la vérité fondamentale.
  • 0 signifie qu'il n'y a pas de superposition entre les attributions de cluster et les étiquettes vraies.
  • > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >
  • 1 signifie une correspondance parfaite avec la vérité de fond.
  • 1 1


    Avant de commencer à trouver la meilleure configuration de clustering à l'aide de NMI, évaluons-la sur une configuration familière - celle que nous avons identifiée plus tôt: MinMaxScaler, 2 composants PCA et 6 clusters.

    Nous voyons que le score NMI pour n=6 est significativement plus élevé que pour n=2 (0.29 vs. 0.18).n = 6 > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >

    Ceci est déjà une grande amélioration.Nous voyons maintenant le death metal bien isolé en deux groupes et toute la musique classique regroupée en un seul.


    Pour référence, voici une comparaison des scores NMI dans différentes configurations de clustering:

    Le score NMI le plus élevé indique le meilleur regroupement axé sur le genre. Ce résultat est très attendu – en utilisant les données de validation, nous pouvons améliorer considérablement notre regroupement de musique.

    Conclusion

    Dans ce projet, j'ai exploré comment l'apprentissage automatique peut aider à regrouper des pistes musicales en clusters significatifs en utilisant uniquement des fonctionnalités audio. À partir de techniques d'apprentissage non supervisées de base telles que l'échelle, PCA et K-Means, j'ai validé les résultats en utilisant des données de genre du monde réel de Last.fm.


    Tandis que les scores de silhouette ont contribué à optimiser la cohérence interne, la validation externe à travers l'alignement de genre a offert une meilleure compréhension de la qualité pratique des clusters.


    Ce n'est qu'un point de départ.Les améliorations futures incluraient l'exploration de techniques avancées telles que UMAP et HDBSCAN pour améliorer le regroupement et l'utilisation de SHAP pour une meilleure interprétation.

    Avec ces outils, nous pouvons nous rapprocher de la construction de systèmes de playlist intelligents et musicalement significatifs.


    En fin de compte, l'apprentissage automatique peut certainement compléter la guérison humaine.Pour l'instant, il offre un moyen évolutif d'organiser et d'explorer de vastes bibliothèques de musique.

    Trending Topics

    blockchaincryptocurrencyhackernoon-top-storyprogrammingsoftware-developmenttechnologystartuphackernoon-booksBitcoinbooks