Netflix e il machine learning: così si migliora la qualità dello streaming

Ecco come il machine learning viene impiegato per migliorare la qualità dello streaming, tra dati, statistiche e previsioni.

Netflix e il machine learning: così si migliora la qualità dello streaming
Articolo a cura di

Dopo gli approfondimenti dedicati ad AVA e al nuovo programma di segnalazione dei bug, continua il nostro viaggio nei meandri di Netflix. Oggi, in particolare, tratteremo gli algoritmi di machine learning utilizzati dalla piattaforma per migliorare la qualità dello streaming. Pensate che il bacino d'utenza globale raggiunto ammonta a circa 117 milioni di persone, motivo per cui è impossibile pensare a una "soluzione" unica, vista l'elevata differenza tra le varie connessioni disponibili, cosa che noi italiani conosciamo purtroppo bene. La sfida tecnica che comporta tutto questo è molto affascinante, come lo sono gli algoritmi dietro al servizio di streaming più diffuso al mondo.

I problemi dello streaming video

Le variabili in gioco sono molte durante lo streaming. Basti pensare agli utenti che guardano Netflix in viaggio tramite la connessione dati, che per sua natura risulta instabile. Per farvi un esempio concreto, pensiamo di percorrere la tratta Roma/Milano in treno. Quante volte passerete dal 4G al 3G? E le gallerie? Eppure il vostro streaming video continua ininterrottamente, con la qualità che si adatta in automatico. Non parliamo poi delle differenze hardware che potrebbero causare problemi nonostante si utilizzi la stessa connessione, della congestione della rete e via discorrendo. Ebbene, qui entra in gioco il machine learning, in grado di rilevare la stabilità della vostra connessione e rendere al meglio la fruizione dello streaming.
Netflix ha preso a cuore la causa sin dai suoi primi vagiti, vedendola anche come una sfida per riuscire a espandersi in nuovi mercati. Questo ha consentito alla società di sviluppare degli appositi algoritmi attraverso i quali vengono analizzati i dati forniti dai dispositivi degli utenti, le condizioni della rete e dell'hardware, nonché gli aspetti scelti direttamente dal consumatore, come la qualità video. Per ogni sessione, vengono dunque combinati tutti questi dati e il machine learning è in grado di imparare quali sono le esigenze di quello specifico utente. In parole povere, se siete soliti viaggiare molto e vi accontentate di una qualità non troppo alta, l'algoritmo farà caricare i contenuti presenti sulla piattaforma in base alle vostre esigenze. Insomma, stiamo parlando di "previsioni".

Previsione di stabilità della rete

La qualità della rete è difficile da delineare e prevedere. Dati come la larghezza di banda media e il ping offerti da una connessione sono indicatori spesso non stabili e non bastano, per forza di cose, a stabilire un andamento nel tempo. Il fattore che fa la vera differenza è invece la previsione della stabilità della rete.

Qui sopra potete vedere alcuni esempi di throughput della rete misurati durante delle reali sessioni di visualizzazione di contenuti su Netflix. Si nota subito che non si tratta di un valori stabili Quindi, come può la piattaforma prevedere quale sarà la connessione nei prossimi 15 minuti avendo questi dati? La realtà è che non si può prevedere con certezza assoluta quando avverrà un calo di stabilità, ma analizzando un quantitativo enorme di dati è possibile ottenere delle statistiche più o meno affidabili, che consentono all'algoritmo di adattare la qualità dello streaming video durante la riproduzione.

La scelta della qualità video

I contenuti presenti su Netflix sono spesso codificati con qualità video diverse, proprio per consentire la riproduzione in ogni condizione di rete. L'obiettivo finale degli algoritmi di machine learning, dunque, è quello di scegliere con quale risoluzione riprodurre il contenuto. Ma quali sono i dati fondamentali da tenere in considerazione? Innanzitutto il tempo di attesa per caricare inizialmente il video, che consente all'algoritmo di stabilire quale codifica dispone di tempi accettabili per essere riprodotta. Ci sono poi le statistiche dedicate alla qualità con cui un determinato utente ha già visto in passato gli altri contenuti, il numero di volte in cui la riproduzione è stata messa in pausa e la quantità di "cambi di qualità" durante la riproduzione. Potrebbe sembrare banale, ma tutto questo viene effettuato nell'arco di pochissimi secondi, grazie appunto al machine learning.

Previsione dei contenuti

Altra tecnica fondamentale messa in atto dagli algoritmi di Netflix è quello di scaricare in anticipo un determinato contenuto che si prevede l'utente guarderà in futuro. Vi facciamo un esempio concreto: se state guardando la penultima puntata di Stranger Things, molto probabilmente non vi perderete il gran finale. L'algoritmo, dunque, penserà a scaricare con il dovuto anticipo la parte iniziale di quel determinato contenuto, in modo da fornirvi la miglior esperienza possibile. Insomma, Netflix utilizza la vostra "cronologia di visualizzazione" per giocare d'anticipo, ma solamente quando disponete di una connessione ritenuta sufficientemente stabile, in base ai fattori citati in precedenza.