Anshumali Shrivastava è un assistente professore di informatica alla Rice University. Credito:Jeff Fitlow/Rice University
Gli acquirenti online in genere mettono insieme alcune parole per cercare il prodotto che desiderano, ma in un mondo con milioni di prodotti e acquirenti, il compito di abbinare quelle parole non specifiche al prodotto giusto è una delle maggiori sfide nel recupero delle informazioni.
Utilizzando un approccio divide et impera che sfrutta la potenza del rilevamento compresso, gli scienziati informatici della Rice University e di Amazon hanno dimostrato di poter ridurre drasticamente la quantità di tempo e le risorse computazionali necessarie per addestrare i computer alla ricerca di prodotti e simili "problemi di classificazione estremi" come la traduzione vocale e la risposta a domande generali.
La ricerca sarà presentata questa settimana alla Conferenza 2019 sui sistemi di elaborazione delle informazioni neurali (NeurIPS 2019) a Vancouver. I risultati includono test eseguiti nel 2018 quando il ricercatore capo Anshumali Shrivastava e l'autore principale Tharun Medini, entrambi di Riso, stavano visitando Amazon Search a Palo Alto, California.
Nei test su un set di dati di ricerca Amazon che includeva circa 70 milioni di query e oltre 49 milioni di prodotti, Shrivastava, Medini e colleghi hanno mostrato il loro approccio all'utilizzo di "classificatori medi uniti tramite hashing, " (MACH) ha richiesto una frazione delle risorse formative di alcuni sistemi commerciali all'avanguardia.
"I nostri tempi di formazione sono circa 7-10 volte più veloci, e le nostre impronte di memoria sono 2-4 volte più piccole delle migliori prestazioni di base di precedenti su larga scala, sistemi di deep learning distribuiti, " disse Shrivastava, un assistente professore di informatica alla Rice.
Medini, un dottorato di ricerca studente presso Riso, ha detto che la ricerca del prodotto è impegnativa, in parte, a causa del gran numero di prodotti. "Ci sono circa 1 milione di parole inglesi, Per esempio, ma ci sono facilmente più di 100 milioni di prodotti online."
Gli studenti laureati in informatica della Rice University Beidi Chen e Tharun Medini collaborano durante un incontro di gruppo. Credito:Jeff Fitlow/Rice University
Ci sono anche milioni di persone che acquistano quei prodotti, ognuno a modo suo. Alcuni scrivono una domanda. Altri usano parole chiave. E molti non sono sicuri di cosa stanno cercando quando iniziano. Ma poiché ogni giorno vengono eseguite milioni di ricerche online, aziende tecnologiche come Amazon, Google e Microsoft hanno molti dati sulle ricerche riuscite e non riuscite. E l'utilizzo di questi dati per un tipo di apprendimento automatico chiamato deep learning è uno dei modi più efficaci per fornire risultati migliori agli utenti.
Sistemi di apprendimento profondo, o modelli di reti neurali, sono vaste raccolte di equazioni matematiche che prendono un insieme di numeri chiamati vettori di input, e trasformarli in un diverso insieme di numeri chiamati vettori di output. Le reti sono composte da matrici con più parametri, e i sistemi di deep learning distribuiti all'avanguardia contengono miliardi di parametri suddivisi in più livelli. Durante l'allenamento, i dati vengono inviati al primo livello, i vettori sono trasformati, e le uscite vengono inviate al livello successivo e così via.
I "problemi di classificazione estremi" sono quelli con molti possibili esiti, e quindi, molti parametri. I modelli di deep learning per la classificazione estrema sono così grandi che in genere devono essere addestrati su quello che è effettivamente un supercomputer, un insieme collegato di unità di elaborazione grafica (GPU) in cui i parametri sono distribuiti ed eseguiti in parallelo, spesso per diversi giorni.
"Una rete neurale che prende input di ricerca e prevede da 100 milioni di output, o prodotti, in genere finirà con circa 2, 000 parametri per prodotto, " disse Medini. "Così moltiplichi quelli, e lo strato finale della rete neurale è ora di 200 miliardi di parametri. E non ho fatto nulla di sofisticato. sto parlando di un molto, modello di rete neurale molto semplice e morto."
"Ci vorrebbero circa 500 gigabyte di memoria per memorizzare quei 200 miliardi di parametri, " ha detto Medini. "Ma se guardi agli attuali algoritmi di allenamento, ce n'è uno famoso chiamato Adam che prende altri due parametri per ogni parametro nel modello, perché ha bisogno di statistiche da quei parametri per monitorare il processo di formazione. Così, ora siamo a 200 miliardi per tre, e avrò bisogno di 1,5 terabyte di memoria di lavoro solo per memorizzare il modello. Non sono nemmeno arrivato ai dati di allenamento. Le migliori GPU in circolazione hanno solo 32 gigabyte di memoria, quindi addestrare un tale modello è proibitivo a causa della massiccia comunicazione inter-GPU."
MACH ha un approccio molto diverso. Shrivastava lo descrive con un esperimento mentale dividendo casualmente i 100 milioni di prodotti in tre classi, che assumono la forma di secchi. "mi sto mescolando, diciamo, iPhone con caricabatterie e magliette tutti nello stesso secchio, " ha detto. "Si tratta di una drastica riduzione da 100 milioni a tre".
Nell'esperimento mentale, i 100 milioni di prodotti vengono ordinati casualmente in tre contenitori in due mondi diversi, il che significa che i prodotti possono finire in secchi diversi in ogni mondo. Un classificatore è addestrato ad assegnare le ricerche ai bucket piuttosto che ai prodotti al loro interno, il che significa che il classificatore deve solo mappare una ricerca su una delle tre classi di prodotto.
"Ora invio una ricerca al classificatore nel mondo uno, e dice secchio tre, e lo do in pasto al classificatore nel mondo due, e dice secchio uno, " ha detto. "A cosa sta pensando questa persona? La classe più probabile è qualcosa che è comune tra questi due bucket. Se guardi la possibile intersezione dei secchi ce ne sono tre nel mondo uno per tre nel mondo due, o nove possibilità, " ha detto. "Così ho ridotto il mio spazio di ricerca a uno su nove, e ho pagato solo il costo della creazione di sei classi."
Aggiungendo un terzo mondo, e altri tre secchi, aumenta il numero di intersezioni possibili di un fattore tre. "Ora ci sono 27 possibilità per ciò che questa persona sta pensando, " ha detto. "Così ho ridotto il mio spazio di ricerca di uno su 27, ma ho pagato solo il costo per nove classi. Sto pagando un costo linearmente, e sto ottenendo un miglioramento esponenziale."
Nei loro esperimenti con il database di formazione di Amazon, Shrivastava, Medini e colleghi hanno diviso casualmente i 49 milioni di prodotti in 10, 000 classi, o secchi, e ripetuto il processo 32 volte. Ciò ha ridotto il numero di parametri nel modello da circa 100 miliardi a 6,4 miliardi. E l'addestramento del modello ha richiesto meno tempo e meno memoria rispetto ad alcuni dei migliori tempi di addestramento riportati su modelli con parametri comparabili, incluso il modello Sparsely-Gated Mixture-of-Experts (MoE) di Google, ha detto Medini.
Ha detto che la caratteristica più significativa di MACH è che non richiede comunicazione tra processori paralleli. Nell'esperimento mentale, questo è ciò che è rappresentato dal separato, mondi indipendenti.
"Non devono nemmeno parlarsi, "Medini ha detto. "In linea di principio, potresti addestrare ciascuno dei 32 su una GPU, che è qualcosa che non potresti mai fare con un approccio non indipendente."
Shrivastava ha detto, "Generalmente, la formazione ha richiesto la comunicazione tra parametri, il che significa che tutti i processori che funzionano in parallelo devono condividere le informazioni. Guardare avanti, la comunicazione è un problema enorme nel deep learning distribuito. Google ha espresso l'aspirazione di formare una rete di parametri da 1 trilione, Per esempio. MACH, attualmente, non può essere applicato a casi d'uso con un numero ridotto di classi, ma per la classificazione estrema, raggiunge il Santo Graal della comunicazione zero."