
Qualche giorno fa, un ingegnere del team iTunes Genius di Apple, Erik Goldman, ha svelato (tramite un post su Quora) qualche piccolo dettaglio riguardo il funzionamento della feature di iTunes. Il punto di partenza di Genius è una raccolta di dati utente, cioè una collezione delle canzoni presenti nelle playlist degli utenti (con il relativo contatore degli ascolti), “conservata in un vasto database di utenti e canzoni”.
Il funzionamento primordiale consiste nel confrontare tra loro le librerie di tracce musicali Genius; periodicamente, infatti, vengono eseguiti degli algoritmi segreti di raccomandazione basati sul modello dello spazio vettoriale (che Goldman paragona a quelli utilizzati da Netflix per consigliare un film agli utenti) che generano un valore statistico per ogni brano. “Le statistiche”, scrive Goldman, “sono calcolate globalmente ad intervalli regolari e salvate in una cache”.
Successivamente, viene dato un peso ai diversi fattori (ad esempio, la frequenza con la quale un utente ascolta un determinato genere o artista) che permettono di valutare approssimativamente quali sono i gusti dell’utente. Il modo più semplice per dare un peso ai fattori di valutazione è conosciuto come “term frequency-inverse document frequency (tf-idf)”; in pratica, un fattore che compare spesso nella libreria di un certo utente avrà un peso dominante, a meno che non compaia altrettanto spesso nella totalità dei dati raccolti nei server Genius. Ovvero, il fatto che a un utente piacciano i Beatles non dice molto a Genius (considerando che a un vasto numero di utenti piacciono i Beatles).
A chi volesse approfondire l’argomento, Goldman suggerisce di leggere gli articoli che descrivono l’algoritmo con il quale Netflix ha vinto il premio da un milione di dollari e che gli ingegneri di Apple hanno preso come spunto per creare il loro Genius, cercando di perfezionarlo e di diminuirne il carico computazionale.
[via]