Un paio di anni fa, Google ha rilasciato un modello inedito che ha rivoluzionato il modo di rappresentare il linguaggio nel Natural Language Processing (NLP). Questa nuova creatura prende il nome di BERT (Rappresentazioni di Encoder Bidirezionali dai Trasformatori, ndr), e può essere vista come il successore di un altro modello chiamato ELMo, come il famoso personaggio dei Muppet. In meno di due anni Google BERT ha ispirato un gran numero di ricercatori, portando la comunità del NLP a studiare e analizzare in profondità questo modello. I numerosi articoli pubblicati sull’argomento hanno dato vita a una nuova area di ricerca, nota come BERTology.
Il modello BERT di Google
Il modello BERT di Google consiste in una rete neurale con milioni di parametri che mirano a cogliere quanta più conoscenza semantica e sintattica possibile dal testo grezzo e a utilizzarla per eseguire compiti specifici relativi al linguaggio.
La rete neurale Google BERT riceve frasi come input e restituisce un vettore a valore reale come output, che può quindi essere inserito in un classificatore per fornire a sua volta un input altamente informativo.
Per chi mastica un po’ di SEO è chiaro come tutto questo abbia avuto implicazioni importanti sul modo di concepire i contenuti digitali. Nel mese di Ottobre 2019, infatti, viene rilasciato un Core Google Update chiamato, appunto, BERT , proprio perché basato sull’omonimo modello.
L’algoritmo Google cambia per farsi più “umano” perché è in grado di processare le query di ricerca degli utenti in base al cosiddetto “principio di pertinenza”. In poche parole: BERT contestualizza le query di ricerca e risponde all’utente mostrando il contenuto più pertinente.
Le novità introdotte dal nuovo modello di rete neurale
Le novità introdotte da questo nuovo modello di rete neurale di Google, che coincidono con i suoi punti di forza, si possono riassumere in due punti:
1. Training in due fasi
BERT adotta un training suddiviso in due fasi. Nella fase 1, chiamata pre-training, la rete viene addestrata su attività generiche (vale a dire il masked language modeling e la Next Sentence Prediction) in modo non supervisionato, ricevendo un’enorme quantità di testo grezzo come dati di input. Nella fase 2, questa stessa rete viene addestrata su un compito specifico (per esempio. risposta alle domande, analisi della polarità, ecc.) utilizzando invece un approccio supervisionato, ricevendo una quantità relativamente piccola di testo etichettato come dati.
Questo metodo di doppio training consente all’algoritmo BERT di apprendere sia la semantica generale (nella fase di pre-training) sia la conoscenza specifica per compito di una lingua (nella fase di fine-tuning). È importante sottolineare che la fase di pre-training si traduce in un’operazione computazionalmente lunga e dispendiosa, poiché richiede un’enorme quantità di dati per apprendere schemi linguistici significativi. Una volta completato il pre-training, il modello viene archiviato, pronto per essere utilizzato quando necessario e messo a punto (cioè fine-tuned) per qualsiasi attività supervisionata, richiedendo per questa fase uno sforzo computazionale molto inferiore.
2. Tecnologia Transformer
I livelli della rete BERT sono composti da blocchi di Transformer. Questa tecnologia, spiegata nel famosa pubblicazione Attention is all you need, si basa sul cosiddetto Meccanismo di Attenzione per fornire vettori di output di alta qualità.
L’idea alla base di attenzione e Transformers consiste nel prendere in considerazione l’intera frase durante l’elaborazione di un termine in essa: più una parola nella frase è correlata al termine elaborato, più influenzerà il vettore di output fornito. Sebbene questo fosse già stato fatto dai Recurrent Neural Networks (reti neurali ricorrenti, ndr), i meccanismi di attenzione ci hanno permesso di prendere in considerazione intere frasi contemporaneamente, rendendo il calcolo dei vettori di output più veloce e parallelizzabile.
Il mondo BERTology
Gli articoli che contribuiscono ad arricchire il campo di BERTology possono essere suddivisi in due ambiti.
La prima serie di pubblicazioni si concentra sulla comprensione di quali aspetti del linguaggio BERT è in grado di apprendere.
Per dare una panoramica dei risultati raccolti, è stato dimostrato che il modello può codificare informazioni sui tipi di entità e sui ruoli semantici ma ha problemi a rappresentare i numeri. Inoltre, BERT sembra in grado di apprendere alcune proprietà di buon senso sugli oggetti (es. le case sono grandi e le persone possono entrare nelle case) ma non può dedurre relazioni tra gli oggetti (es. non sa che le case sono più grandi delle persone).
Per una panoramica completa su questi argomenti, suggerirei di leggere l’articolo A Primer in BERTology: What we know about how BERT works.
La seconda serie di articoli indica nuovi modelli che possono migliorare le prestazioni di Google BERT facendo comunque affidamento sulle novità evidenziate sopra, vale a dire training in due fasi e tecnologia Transformer. Tra questi vale la pena ricordare:
- RoBERTa, una rete BERT con iperparametri ottimizzati e pre-addestrata su un corpus più grande. Grazie a questi piccoli cambiamenti, RoBERTa ha superato BERT e ha raggiunto lo stato dell’arte in 4 compiti del benchmark GLUE.
- XLNet, un modello che risolve i limiti delle attività di pre-training di BERT. In particolare, XLNet evita la pratica della corruzione dei token (applicata invece nel masked language modeling) eseguendo permutazioni della sequenza di input. Con questo trucco, XLNet ha superato BERT in 20 compiti, inclusi Question Answering e Natural Language Inference.
- DistilBERT, una rete neurale BERT leggera (con meno strati e parametri) che può raggiungere prestazioni paragonabili all’architettura originale di BERT grazie alla soluzione di distillazione della conoscenza utilizzata in pre-training.
- Electra, un modello che propone un’alternativa al masked language modeling un’attività efficiente a livello di campione (indicata col nome di Replaced Token Detection). Nel Replaced Token Detection, una certa quantità di termini nel corpus di input viene sostituita da alternative plausibili. La rete viene quindi addestrata a discriminare se ogni token di input è modificato o è quello originale. Il sostanziale miglioramento apportato da questo compito di pre-training consiste nel fatto che la funzione di perdita è definita su tutti i token di input (contrariamente al masked language modeling dove la perdita è definita esclusivamente su masked token), risultando in un migliore sfruttamento dell’intero input corpus. Electra ha stabilito lo stato dell’arte per il compito SQuAD 2.0.
Sebbene i miglioramenti apportati da questi modelli nella rappresentazione del linguaggio siano impressionanti, la loro applicabilità è limitata dal fatto che si basano su grandi reti neurali con milioni di parametri. Per questo motivo, opzioni come DistilBERT, che mirano a ridurre lo sforzo computazionale richiesto, assumono grande rilevanza e consentono di utilizzare la potenza di BERTology in sistemi leggeri e dispositivi mobili.
Risorse utili:
- BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding, Jacob Devlin, Ming-Wei Chang, Kenton Lee, Kristina Toutanova – Google AI Language – (24 maggio 2019).
- Deep contextualized word representations, Matthew E. Peters, Mark Neumann, Mohit Iyyer, Matt Gardner, Christopher Clark, Kenton Lee, Luke Zettlemoyer – Allen Institute for Artificial Intelligence – Paul G. Allen School of Computer Science & Engineering, University of Washington (22 marzo 2018).