Red Hot Cyber

La cybersecurity è condivisione.
Riconosci il rischio, combattilo, condividi le tue esperienze ed 
incentiva gli altri a fare meglio di te.

Cerca
Crowdstrike

Un semplice approccio basato su compressione e kNN batte le reti neurali più sofisticate

Francesco Conti : 15 Luglio 2023 09:12

La comunità del Natural Language Processing (NLP) è da tempo in fermento grazie al successo riscosso da ChatGPT, Transformers e Large Language Models. Questo tipo di approcci sono estremamente complessi e costosi da replicare, e verranno prossimamente descritti nella rubrica “Alla scoperta dell’Intelligenza Artificiale” di Red Hot Cyber!

Tuttavia, in questi giorni, i professionisti e ricercatori in campo NLP sono stati scossi da un nuovo lavoro pubblicato dalla Association for Computational Linguistics e disponibile in ACL Anthology.

Il paper discute un approccio per la classificazione del testo che utilizza una tecnica molto semplice ma con risultati sorprendenti! Di fatto, l’approccio proposto si basa sulla compressione del testo attraverso gzip (esatto, la stessa compressione che viene usata per comuni archivi di file!) e la più semplice tecnica di classificazione, l’algoritmo kNN (k-Nearest-Neighbor).

Ma vediamo più in dettaglio l’approccio e perché sta riscuotendo attenzione nel mondo AI!

Il Rasoio di Occam: semplicità ed efficacia.

La classificazione del testo è un problema molto intuitivo: data una descrizione, un tweet o una qualsiasi sequenza di frasi, si vuole associare ad essi una classe, ovvero una categoria di appartenenza. Ad esempio, in un problema di categorizzazione di notizie, si vuole associare ad ogni articolo un tag, come “cronaca”, “politica” o “sport”.

Nella sentiment-analysis su social network si potrebbe essere interessati a discriminare i post che trasmettono un pensiero positivo da quelli negativi. Anche per le la posta elettronica, componenti di filtri anti-spam sono spesso basati su classificatori di testo.

Attualmente, le tecniche più performanti di classificazione del testo si basano su reti neurali profonde (Deep Neural Networks, DNN), modelli che apprendono come classificare attraverso molti testi forniti in un insieme di dati chiamato training-set.

Tra le architetture più diffuse c’è BERT (Bidirectional Encoder Representations from Transformers), una rete neurale sviluppata da Google basata su Transformers. L’addestramento di queste reti ha l’obiettivo di ottimizzare centinaia di milioni di parametri attraverso l’utilizzo di enormi insiemi di testi. Questi addestramenti sono molto costosi computazionalmente e non sono alla portata di tutti.

Il lavoro recentemente pubblicato non richiede una fase di addestramento e si è dimostrato migliore dei modelli allo stato dell’arte per il problema di classificazione, con un giusto bilanciamento tra efficacia e semplicità.

Il metodo proposto

La semplicità dell’algoritmo proposto si basa su gzip, un compressore loss-less di dati, una misura di distanza e un classificatore kNN. L’idea è utilizzare il compressore per individuare i pattern regolari nel testo e tradurli in punteggi di similarità utilizzando la metrica di distanza.

Questi punteggi vengono quindi utilizzati per classificare il testo con l’algoritmo kNN, che assegna un nuovo testo ad una classe basandosi sui K testi più vicini nel set di addestramento, come si può vedere nell’immagine seguente.

In questo esempio, il nuovo elemento da classificare è assegnato alla classe sport, dato che tra i 3 elementi più vicini è la classe maggiormente rappresentata. Come si può intuire, il kNN è tra gli algoritmi più semplici del Machine Learning. Questo algoritmo, inoltre, non ha bisogno di una vera fase di addestramento.

La semplicità del metodo proposto ha stupito gli esperti di NLP. L’algoritmo ideato è implementabile attraverso sole 14 righe di codice in Python, come mostrato di seguito.

Il metodo è stato testato su diversi set di dati, mostrando performance migliori rispetto reti neurali allo stato dell’arte, superando anche BERT su alcuni dataset. Si dimostra anche eccellente quando c’è solo una piccola quantità di dati etichettati disponibili.

Conclusioni

La comunità è in fermento per questo lavoro innovativo, i cui risultati suscitano grande interesse e certamente saranno oggetto di approfondimenti nei prossimi mesi.

L’importante lezione che possiamo trarre è che ogni problema ha la sua soluzione. Spesso, soprattutto nell’intelligenza artificiale, i problemi più semplici possono trarre enormi vantaggi da soluzioni altrettanto semplici.

Francesco Conti
Ingegnere delle telecomunicazioni specializzato in machine learning e intelligenza artificiale. Applica le sue competenze nel campo della cyber security per automatizzare operazioni noiose e ripetitive!