[Music Beta] Machine Learning per la creazione di playlist

Di - 4 November 2011 - in

Machine learning è un metodo alla base dell’intelligenza artificiale il cui scopo è la generazione di algoritmi che, a partire dall’osservazione di dati reali, generano comportamenti voluti e adattativi. Ovviamente questa descrizione è riduttiva, ma ci serve ad introdurre il “dietro le quinte” della funzione Instant mixes di Music Beta, il nuovo contenitore di musica on-the-cloud di Google.

Chiaramente non è questa la sede per approfondire l’argomento relativo al machine learning,  per il quale vi rimando all’ottima pagina di Wikipedia. Vi segnalo solo che Google  ha rilasciato delle API, chiamate appunto Prediction API, proprio per dare la possibilità a chiunque di utilizzare il proprio motore interno per compiere operazioni di machine learning.

Instant mixes è un nuovo sistema in grado di generare una playlist automatica a partire da una traccia di input.
Il sistema analizza la traccia di partenza per isolare elementi quali: la strumentazione e il timbro, lo stile (arrabbiato, dolce, ecc..), il tempo, la metrica, e così via.
A questo punto gli algoritmi di machine learning comparano gli elementi audio con le tracce presenti nella collezione dell’utente, con un’importante aggiunta: le varie tracce vengono categorizzate dall’algoritmo in base a come sono identificate a livello di “storia della musica”.
Per esempio una traccia viene identificata con il nome dell’artista e, in base alle risorse presenti sul web, con lo stile musicale (metal, pop, jazz, acoustic, indie, e via dicendo).

Grazie all’utilizzo per somma algebrica di entrambi questi macro-parametri l’algoritmo genera una playlist. Nonostante la traccia input possa provenire da uno stesso artista, non è detto che lo stile di due playlist diverse sia identico. Perché accade questo? La risposta è semplice e cioè che uno stesso artista può suonare pezzi anche molto diversi tra loro, per esempio un pezzo vivace e una ballata. Instant mixes è in grado di identificare questa differenza e in questo caso possiamo dire che i dati musicali estrapolati dalla singola traccia hanno la precedenza sullo stile generale conosciuto dell’artista.

Di seguito presentiamo due playlist che si comportano esattamente come descritto sopra.

Playlist A
Input: U2 “Mysterious Ways”

  1. Track 1:David Bowie “Fame”
  2. Track 2: Oingo Boingo “Gratitude”
  3. Track 3: Infectious Grooves “Spreck”
  4. Track 4: Red Hot Chili Peppers “Special Secret Song Inside”

Playlist B
Input: U2 “MLK”

  1. Track 1: Jewel “Don’t”
  2. Track 2: Antony and the Johnsons “What Can I Do?”
  3. Track 3: The Beatles “And I Love Her”
  4. Track 4: Van Morrison “Crazy Love”

Pur partendo entrambe da una canzone degli U2, la prima playlist ha un tono funky mentre la seconda più da ballata.
Ovviamente il sistema funziona anche per tracce provenienti da artisti sconosciuti. In questo caso naturalmente la componente di informazioni recuperate dal web sarà irrilevante.
Se avete avuto modo di iscrivervi a Music Beta e di provare Instant mixes, vi sarete accorti che l’algoritmo funziona davvero bene.
Ora sapete anche in che modo questo tipo di funzione viene implementata.
Quello che mi piacerebbe sapere è come si configura Instant Mixes di Google rispetto a funzioni simili da tempo presenti ad esempio su iTunes o Pandora, ecc…
Personalmente non ho avuto modo di provare nessuna delle alternative ad Instant Mixes, però sono curioso.

Via | Google Research Blog

Leave a Reply

Gabriele Visconti Articolo scritto da

Editor in Chief per Engeene. Appassionato di Linux, FOSS, videogame e, da poco, di cucina. Parla quattro lingue ed ama leggere libri in lingua inglese.

Contatta l'autore

Previous post:

Next post: