
I dati di tipo testuale stanno aumentando in modo esorbitante, e la maggior parte di questi dati non sono strutturati, quindi è difficile ricavarne informazioni utili. Degli esempi di questa enorme quantità di dati che vengono diffusi ogni giorno sono i tweet, i post sui social media o i forum online. Le persone scrivono i loro commenti utilizzando un linguaggio non sempre corretto, spesso ricorrendo al dialetto o alle emoji per far capire le loro emozioni, e quindi generando dati di bassa qualità.
L’obiettivo principale dei diversi approcci di Natural Language Processing (NLP) è quello di ottenere una comprensione del testo simile a quella umana. L’NLP ci aiuta a esaminare una grande quantità di testo non strutturato e ad estrarne caratteristiche (o feature) e pattern.
In genere, in un task di NLP come il sentiment analysis o named entity recognition, ci sono dei passaggi standard da seguire. Il problema principale è che gli algoritmi di apprendimento automatico non sanno come gestire le parole, quindi dobbiamo trovare una rappresentazione numerica appropriata dei nostri testi. Per generare questa rappresentazione dobbiamo ripulire i dati da qualsiasi rumore e poi eseguire l’estrazione delle feature, cioè trasformare i dati grezzi in dati numerici comprensibili alle macchine.

Avvio delle iscrizioni al corso Cyber Offensive Fundamentals Vuoi smettere di guardare tutorial e iniziare a capire davvero come funziona la sicurezza informatica? La base della sicurezza informatica, al di là di norme e tecnologie, ha sempre un unico obiettivo: fermare gli attacchi dei criminali informatici. Pertanto "Pensa come un attaccante, agisci come un difensore". Ti porteremo nel mondo dell'ethical hacking e del penetration test come nessuno ha mai fatto prima. Per informazioni potete accedere alla pagina del corso oppure contattarci tramite WhatsApp al numero 379 163 8765 oppure scrivendoci alla casella di posta [email protected].
Se ti piacciono le novità e gli articoli riportati su di Red Hot Cyber, iscriviti immediatamente alla newsletter settimanale per non perdere nessun articolo. La newsletter generalmente viene inviata ai nostri lettori ad inizio settimana, indicativamente di lunedì. |
Esaminiamo gli step più comuni del preprocessing del testo. Di seguito descriverò un elenco di step di preprocessing, ma non è necessario eseguirli tutti per risolvere un determinato task. Al contrario, spesso utilizzando reti neurali basati suu transformers si tende a lasciare il testo invariato (quindi non si applica preprocessing) al fine di non alterare il contesto delle frasi. Sta quindi a voi, come professionisti dell’NLP, capire di cosa avete bisogno.


Le rappresentazioni precedenti non tengono conto della frequenza delle parole nel testo, che tuttavia può essere un dato importante per comprenderne l’importanza.

Le rappresentazioni numeriche del testo appena viste sono molto intuitive e facili da usare, ma presentano diversi problemi.
In primo luogo, non riescono a catturare il significato sintattico e semantico delle parole e soffrono anche della cosiddetta maledizione della dimensionalità. Un vettore che rappresenta una parola avrà una lunghezza pari alla dimensione del vocabolario di parole di una lingua. Se lavorassimo su testi in più lingue contemporaneamente, la dimensionalità crescerebbe di molto!
Per questo motivo, ora vediamo modelli che riescono ad apprendere una rappresentazione delle parole utilizzando vettori con una dimensionalità fissa e limitata. Il vantaggio più significativo di questi vettori o word embeddings è che forniscono una rappresentazione più efficiente ed espressiva, mantenendo la somiglianza delle parole con il contesto e utilizzano una bassa dimensionalità. Questi vettori tendono quindi a catturare il significato delle parole. Questo tipo di rappresentazione è detta anche rappresentazione continua delle parole.
Perché ci interessa il contesto? Per spiegarlo meglio, a mio avviso, è più facile mostrare un esempio. Una parola può assumere significati diversi a seconda del contesto in cui è inserita. Nella frase: “Dove sei? Sono gia le sei, facciamo tardi!”. la parola “sei” assume due significati diversi e quindi dovrà avere due rappresentazioni diverse. Creare l’embedding di una parola a seconda del contesto potrebbe essere un boost per il vostro modello ML. Attenzione, però, alle fasi di preprocessing che potrebbero alterare il contesto. Vediamo i metodi principali per creare rappresentazioni contestuali di dati testuali.
Prima di capire come funzionano i seguenti modelli vi cosniglio di dare una letta ai seguenti documenti:


Se volete imparare ad usare BERT potete leggere alcuni dei miei articoli online:
RoBERTa : apporta alcune modifiche al modello BERT e ottiene miglioramenti sostanziali. Le modifiche includono: (1) addestramento più lungo del modello con batch più grandi e più dati (2) eliminazione del task NSP (3) addestramento su sequenze più lunghe (4) modifica dinamica delle posizioni mascherate durante il preaddestramento.
ALBERT : presenta tecniche di riduzione dei parametri per ridurre il consumo di memoria e aumentare la velocità di addestramento del BERT.
XLNet : XLNet, un metodo di pretraining autoregressivo generalizzato che (1) consente l’apprendimento di contesti bidirezionali (2) supera i limiti di BERT grazie alla sua impostazione autoregressiva..
ELECTRA : Invece di alterare alcune posizioni degli input con il tag [MASK], ELECTRA sostituisce alcuni token degli input con le loro alternative plausibili. ELECTRA quindi addestra un discriminatore per prevedere se ogni token dell’input corrotto è stato sostituito o meno dal generatore. Il discriminatore preaddestrato può essere fine-tunato (addestrato ulteriormente) in compiti piu specifici.
T5 : è un modello di rete neurale estremamente grande, addestrato su una combinazione di testo non etichettato e di dati etichettati provenienti da task comunii di NLP, poi fine-tunato (addestrato ulteriorlmente su task specifici) individualmente per ciascuno dei task che gli autori intendono risolvere [3].
BART : BART viene addestrato (1) corrompendo il testo con una funzione di rumore arbitraria e (2) addestrando un modello per ricostruire il testo originale[4].
Una volta che gli embedding (vettori) di un testo sono stati appressi, possono essere utilizzati per risolvere vari compiti di NLP, chiamati downstream tasks. Gli embeddings contestuali hanno dimostrato prestazioni impressionanti rispetto agli embeddings non contestuali. Ma la domanda che ci si pone ora è: “Come possiamo utilizzare i modelli pretrainati a riconoscere il contesto per downstream tasks?”.
Feature-based
Con questo metodo si congela il modello, in modo che quando si deve risolvere il task, il modello non venga addestrato sul dataset custom. Si utilizzerà solo il modello preaddestrato per generare le feature (gli embeddings) che verranno utilizzati, ad esempio, come input per un classificatore.
Fine-tuning
A differenza del metodo precedente, il modello pre-addestrato sarà addestrato per qualche epoca in più sul dataset del downstream task, per adattarsi al caso specifico.
Adapters
Gli adapters sono piccoli moduli che si inseriscono tra gli strati dei modelli pre-addestrati per
per ottenere modelli in grado di essere addestrati in stile multitasking. I parametri del modello pre-addestrato vengono congelati mentre gli adattatori vengono addestrati.
Contrastare l’oblio catastrofico
Ogni volta che andiamo ad addestrare reti pre-trainate per adattarle a un particolare task, lo facciamo per migliorare le prestazioni di quei modelli al nostro caso specifico. Ma la modifica dei parametri pre-addestrati può portare il modello a dimenticare completamente le cose che ha imparato. Ad esempio, se utilizzo un modello linguistico che comprende bene la lingua italiana e voglio perfezionarlo per il dialetto siciliano, il modello potrebbe dimenticare del tutto l’italiano. Gli studi sull’oblio catastrofico sono ancora molti, ma vediamo i metodi per attenuare questo effetto:
Ad oggi, i modelli di deep learning sono diventati enormi, contenenti milioni e milioni di parametri. Oltre a richiedere gigantesche risorse computazionali, questi modelli sono anche dannosi per l’ambiente. È stato stimato che l’addestramento di un modello può emettere una quantità di CO2 pari alla vita media di 5 automobili in America. Fortunatamente, si stanno studiando metodi per ridurre le dimensioni di queste reti, vediamone alcuni.
Pruning: ho affrontato questo problema durante la stesura della mia tesi di laurea e potete leggere l’articolo che ho scritto sull’implementazione del pruning in Julia. Il pruning cerca di rimuovere dalla rete i pesi meno importanti, andando così a diminuire le dimensioni della rete e mantenendo comunque costanti le prestazioni.
Knowledge Distillation: è il processo di trasferimento della conoscenza da un modello di grandi dimensioni a uno più piccolo. Un esempio di modello e della sua versione distillata sono Bert e DistilBert.
Quantization: è il processo di riduzione della precisione dei pesi usando meno cifre decimali in modo da consumare meno memoria.
Librerie da conoscere: CoreNLP, NLTK, Gensim, spaCY, PyTorch, Tensorflow
In questo articolo non ho parlato di tematiche all’avanguardia di NLP come i modelli generativi e librerie come Langchain, perchè scriverò degli articoli più dettagliati su questi argomenti in futuro.
Spero che utilizzando questa breve guida non perderete come me troppo tempo a cercare su Google quali sono le cose fondamentali da sapere in NLP, ma potrete concentrarvi sull’apprendimento di questa fantastica materia!
Ti è piaciuto questo articolo? Ne stiamo discutendo nella nostra Community su LinkedIn, Facebook e Instagram. Seguici anche su Google News, per ricevere aggiornamenti quotidiani sulla sicurezza informatica o Scrivici se desideri segnalarci notizie, approfondimenti o contributi da pubblicare.

CybercrimeSappiamo che i criminal hacker riescono sempre a sorprenderci, e anche questa volta ci stupiscono per le innovazione e i modi che inventano per poter superare gli ostacoli, come i filtri di antispam. I criminali…
VulnerabilitàI backup sono generalmente considerati l’ultima linea di difesa, ma questa settimana Veeam ci ha ricordato che i sistemi di backup stessi possono diventare punti di accesso per gli attacchi. L’azienda ha rilasciato aggiornamenti di…
DirittiIl presente contributo approfondisce le criticità tecniche e costituzionali della proposta di Regolamento COM/2022/209 CSAR(Child Sexual Abuse Regulation). Questo studio fa seguito all’inquadramento generale già delineato e si concentra sul conflitto tra l’integrità dei sistemi…
CybercrimePer gran parte degli ultimi due decenni, la sicurezza informatica si è fondata su un presupposto fondamentale: le attività malevole possono essere individuate, analizzate e contrastate prima che producano danni significativi. Questo assunto ha modellato…
CybercrimeUn nuovo report pubblicato dall’Huntress Tactical Response Team documenta un’intrusione estremamente sofisticata individuata nel dicembre 2025, nella quale un attore avanzato è riuscito a compromettere un’infrastruttura VMware ESXi sfruttando una VM escape, ovvero l’evasione da…