394 測定値
394 測定値

音楽と機械学習: Spotify オーディオ機能のクラスタリング

Aidar Gain7m2025/04/01
Read on Terminal Reader

長すぎる; 読むには

私は、Spotifyのオーディオ機能を使用して5000曲を有意義な再生リストにグループ化するために、監督されていない機械学習を使用する方法を探索しました。K-Means、PCA、およびLast.fmのジャンルの外部認証などのクラスタリングテクニックを組み合わせることにより、シルエットスコアやNMIのようなメトリックでクラスタリングの品質を評価しました。
featured image - 音楽と機械学習: Spotify オーディオ機能のクラスタリング
Aidar Gain HackerNoon profile picture
0-item


紹介

音楽は毎日私たちを取り囲んでいます. それは私たちをセットアップし、私たちを動機づけ、さらには認知パフォーマンスを向上させます. スピードリズムのビートは私たちのエネルギーを高めますが、よりゆっくりとした、よりメロディックな音声は私たちをリラックスさせるのに役立ちます. しかし、完璧な再生リストを作成することは、しばしば個人的で時間密集した仕事です. 主要なストリーミングプラットフォームは、音楽のエキスパートに頼り、再生リストを編集するが、明らかに、ほとんどの分野のように、私たちはデータを使用して自動化と機械のサポートが必要です。


さまざまなジャンルの音楽を毎日2時間以上聴き、音楽を制作し、個人的に使用するためのプレーリストを作成する人として、このテーマは私と深く共鳴します。このプロジェクトにより、私は音楽に対する私の情熱とデータ分析の専門知識を組み合わせ、機械学習アルゴリズムの実用的なアプリケーションを探索することができます。さらに、私はSpotifyのエンジニアリング記事 - 音楽ストリーミングのリーダーとして、彼らはこの空間でのイノベーションのベンチマークを設定し、高品質のデータを提供しました。Spotifyのエンジニアリング記事

問題の発言

このプロジェクトの目的は、自動的に楽曲を有意義なプレーリストにグループ化するクラスタリング技術を探求することでした。Machine learning can help us create playlists that feel as curated as those by human experts? Or, at least, can it ensure that death metal and classical suites are not on the same list?


To address this, I used a dataset of ~5,000 songs with Spotify audio features, such as danceability, tempo, and energy. Additionally, I incorporated Last.fm API data to retrieve genre information, enabling external validation of clustering quality.

さらに、Last.fm APIデータを組み込み、ジャンルの情報を取得し、クラスターリング品質の外部の検証を可能にしました。


私たちの仕事:

  • クラスタ曲をオーディオ機能に基づく一貫した再生リストにまとめます。
  • 品質を確保するために、これらのクラスタを Last.fm ジャンルに対して検証します。
  • オーディオ機能に基づく一貫した再生リストにクラスター曲。
  • 品質を確保するために Last.fm ジャンルに対してこれらのクラスターを検証します。

    Initial Look at the Data

    機械学習に潜入する前に、私は基本的な機能を使用してデータセットを視覚化しました。以下は、tempodanceabilityに基づく曲のスパイスプレスです。トップ > スピード > スピード >ダンス能力

    たとえば、ブラームズの Lullaby は低テンポ、低ダンス性の領域で容易に識別できる一方で、エミネムの The Real Slim Shady は中テンポ、高ダンス性の領域に現れる。ラッキーThe Real Slim Shady


    しかし、利用可能なすべての機能を活用すると、より豊かなパターンを発見し、再生リストの作成を自動化することができます。

    Get Track’s Audio Features API response sample

    Get Track’s Audio Features API response sample

    Unsupervised Clustering

    今、私たちの目標は、いくつかの初期のクラスタリングを実行することです。ここでのアイデアは、純粋に監督されていない機械学習を適用することです - 私たちは本当のクラスタリングラベルを知らないし、実践的な方法を使用してクラスタリングの最適な数を決定することを目指しています。

    スケールアップ

    スケーリング

    私たちが後で適用するアルゴリズムや方法のほとんどの場合、スケーリングデータは不可欠です。これらのアルゴリズムは、機能のスケールに敏感な計算(距離やバリアンスなど)に依存します。スケーリングはすべてを共通の単位に変換し、すべての機能が公平に扱われます。


    Below is an example of projecting our data on two features: duration_ms and tempo. The left plot shows the original data; the right shows the result after applying two scalers — PowerTransformer and MinMaxScaler:

    <コード>duration_ms<コード>時間

    スケーリングは機能を比較する - クラスタリングはより有意義な

    スケーリングは機能を比較する - クラスタリングはより有意義な


    Dimensionality Reduction With PCA

    Dimensionality Reduction With PCA

    次のステップは、主要コンポーネント分析(PCA)で、最も重要な情報を保持しながら機能の数を減らします。


    図面的に言えば、PCAは3Dオブジェクトにフラッシュライトを点灯して2Dの影を作成するようなプロジェクションを見つける。


    We will try different numbers of components and compare the results. In our case, we will test 10 options. Here is an example of projecting songs on two main components:

    私たちのケースでは、10のオプションをテストします。

    PCAプロジェクション

    PCAプロジェクション


    K-Meansクラスタリング

    K-Meansは、データを事前定義されたクラスター数(k)にグループ化する一般的なクラスターアルゴリズムです。

    時には、ビジネス上の制約があります。当社のデータセットには約5000曲が含まれています。通常、ストリーミングサービスのプレイリストには20〜250曲が含まれています。


    The Silhouette Score helps evaluate the quality of clustering by measuring how well each data point fits within its assigned cluster compared to others. A higher silhouette score (nearer to 1) means that clusters are well defined and clearly separated.

    シルエットスコアの高さ(1に近い)は、クラスターがよく定義され、明確に分離されていることを意味します。シルエットスコア

    ベストパラメータの組み合わせ

    自由度の多い場合、どのようにしてパラメータの最適な組み合わせを見つけることができますか? 答えはシミュレーションです。 スケーラー、PCAコンポーネントの数、クラスターの数など、さまざまな組み合わせを試してみて、最適な組み合わせを選択できます。

    このプロットは、PCAコンポーネント(サークルサイズで表される)、スケーラー(色)、クラスター数(y軸)の異なる組み合わせのシルエットスコア(x軸)を示しています。選択を簡素化するために、我々は右上部の領域のオプションに焦点を当てるべきです:

    最高のシルエットスコアを持つ最初の有意義な組み合わせは、MinMaxスケーラー、2つの主要なコンポーネント、6つのクラスターを使用しています。

    初期クラスタリング結果

    以前にも述べたように、私はアーティストのためのジャンル情報とLast.fmデータを組み込みました。これは私たちのデータセットに有用な検証基準として適用するのに最適な瞬間です。


    トップパフォーマンスの組み合わせに戻り、ジャンルのラベルを使用して結果を得たクラスターを比較する準備ができています。

    あなたが覚えているなら、私は問題の声明で、私の目標の1つは、デッドメタルとクラシック音楽を区別することでした - 正直、それはランダムな例でした。しかし、驚くべきことに、この基準はこの特定のクラスタリング設定でかなりうまく機能します。


    しかし、我々はまだ多くのクラスターでジャンルの混合を観察し、そのうちのいくつかは音楽的に互換性がない。


    最終的には、あなたの特定の使用例に統計的に強力で実用的に有意義なクラスターソリューションを見つけることが目標です。

    Clustering with External Validation

    このセクションでは、ジャンルの情報をより幅広く使用します。このデータはクラスタリングの品質を検証するための私たちの「理想的なラベル」として機能します。もちろん、これはプレーリストを作成するための完璧な基準や最も洗練されたアプローチではありませんが、個人的には、音楽の愛好家として、それはうまく機能します。例えば、私はしばしばジャンル特有の音楽を聴くことを好みます:動機づけのためのヒップホップ、パーティーでのロック、または仕事中のクラシック。


    Let's try to answer such a question: Can we separate music by genre using only features such as danceability, energy, tempo, etc.?

    Can we separate music by genre using only features such as danceability, energy, tempo, etc.?

    Normalized Mutual Information (NMI)

    Normalized Mutual Information (NMI)

    Normalized Mutual Information (NMI) は、2 つのクラスター間の類似性を測定します. It scores between 0 and 1, where:

    • 0は、クラスター割り当てと真のラベルとの間の重複を意味しません。
    • 1は、真の真理と完璧に一致することを意味します。
    • 0 は、クラスター割り当てと真のラベルとの間の重複がないことを意味します。0
    • 1は、地上の真理と完璧に一致することを意味します。1


      NMIを使用して最適なクラスタリングセットアップを見つける前に、先に識別したコンポーネント、MinMaxScaler、2つのPCAコンポーネント、および6つのクラスタを用いてそれを評価しましょう。

      We see that the NMI score for n=6 is significantly higher than for n=2 (0.29 vs. 0.18). Let's visualize the resulting cluster distributions:

      n=6n=2

      これはすでに大きな改善です。私たちは今、デッドメタルを2つのクラスターに素晴らしく分離し、クラシック音楽のすべてを1つに集めています。


      For reference, below is a comparison of NMI scores across various clustering configurations:

      最高のNMIスコアは、最高のジャンルに焦点を当てたクラスタリングを示しています。この結果はかなり期待されます - 検証データを使用して、我々は我々の音楽クラスタリングを大幅に改善することができます。

      結論

      このプロジェクトでは、機械学習が音楽トラックを有意義なクラスターにグループ化するのに役立つ方法を調べました. スケーリング、PCA、K-Means などの基本的な監督されていない学習技術から始めて、Last.fm からのリアルなジャンルのデータを使用して結果を検証しました.


      シルエットのスコアは内部の一貫性を最適化するのに役立つ一方で、ジャンルの調和による外部の検証は、クラスターの実用的な品質に深い洞察を提供しました。


      これは出発点に過ぎません。将来の改善には、UMAPやHDBSCANなどの高度なテクニックを探索し、クラスタリングを強化し、SHAPを使用してより良い解釈を可能にすることも含まれます。


      最終的には、機械学習は確実に人間の癒しを補完することができるが、現在では、大規模な音楽ライブラリを組織し、探索するためのスケーラブルな方法を提供している。

Trending Topics

blockchaincryptocurrencyhackernoon-top-storyprogrammingsoftware-developmenttechnologystartuphackernoon-booksBitcoinbooks