Scopri come le reti BERT siamesi trasformano accuratamente le frasi in incorporamenti

Non è un segreto questo trasformatori fatto progressi evolutivi nella PNL. Sulla base dei trasformatori si sono evoluti molti altri modelli di machine learning. Uno di essi è BERT che consiste principalmente di diversi trasformatori impilati codificatori. Oltre ad essere utilizzato per una serie di problemi diversi come l’analisi del sentiment o la risposta alle domande, BERT è diventato sempre più popolare per la costruzione di parole incastri — vettori di numeri che rappresentano i significati semantici delle parole.

Rappresentare le parole sotto forma di incorporamenti ha dato un enorme vantaggio poiché gli algoritmi di apprendimento automatico non possono funzionare con testi grezzi ma possono operare su vettori di vettori. Ciò consente di confrontare parole diverse in base alla loro somiglianza utilizzando una metrica standard come la distanza euclidea o coseno.

Il problema è che, in pratica, spesso abbiamo bisogno di costruire incorporamenti non per singole parole ma per intere frasi. Tuttavia, la versione base di BERT crea incorporamenti solo a livello di parola. Per questo motivo, sono stati successivamente sviluppati diversi approcci simili a BERT per risolvere questo problema che verrà discusso in questo articolo. Discutendoli progressivamente si giungerà poi al modello di stato dell’arte denominato CONSAPEVOLE.

Per comprendere a fondo come funziona SBERT, si consiglia di avere già familiarità con BERT. In caso contrario, la parte precedente di questa serie di articoli lo spiega in dettaglio.

Innanzitutto ricordiamo come BERT elabora le informazioni. Come input, richiede a (CLS) token e due frasi separate da uno speciale (SETTEMBRE) gettone. A seconda della configurazione del modello, queste informazioni vengono elaborate 12 o 24 volte da blocchi di attenzione multi-testa. L’output viene quindi aggregato e passato a un semplice modello di regressione per ottenere l’etichetta finale.

Architettura BERT

Per ulteriori informazioni sul funzionamento interno del BERT, è possibile fare riferimento alla parte precedente di questa serie di articoli:

Architettura cross-encoder

È possibile utilizzare BERT per il calcolo della somiglianza tra una coppia di documenti. Considera l’obiettivo di trovare la coppia di frasi più simili in una vasta raccolta. Per risolvere questo problema, ogni possibile coppia viene inserita nel modello BERT. Ciò porta alla complessità quadratica durante l’inferenza. Ad esempio, occuparsi di n = 10.000 le frasi richiedono n * (n — 1) / 2 = 49 995 000 calcoli BERT di inferenza che non sono realmente scalabili.

Altri approcci

Analizzando l’inefficienza dell’architettura cross-encoder, sembra logico precalcolare gli incorporamenti in modo indipendente per ogni frase. Successivamente, possiamo calcolare direttamente la metrica della distanza scelta su tutte le coppie di documenti, il che è molto più veloce che fornire a BERT un numero quadratico di coppie di frasi.

Sfortunatamente, questo approccio non è possibile con BERT: il problema principale di BERT è che ogni volta che due frasi vengono passate ed elaborate simultaneamente, è difficile ottenere incorporamenti che rappresenterebbero indipendentemente solo una singola frase.

I ricercatori hanno cercato di eliminare questo problema utilizzando l’output di (CLS) incorporamento di token sperando che contenga informazioni sufficienti per rappresentare una frase. comunque, il (CLS) si è rivelato non essere affatto utile per questo compito semplicemente perché inizialmente era stato pre-addestrato in BERT per la previsione della frase successiva.

Un altro approccio consisteva nel passare una singola frase a BERT e quindi nel calcolare la media degli incorporamenti dei token di output. Tuttavia, i risultati ottenuti sono stati addirittura peggiori rispetto alla semplice media degli incorporamenti GLoVe.

Derivare incorporamenti di frasi indipendenti è uno dei problemi principali di BERT. Per alleviare questo aspetto è stato sviluppato SBERT.

CONSAPEVOLE introduce il Rete siamese concetto che significa che ogni volta due frasi sono superato indipendentemente attraverso lo stesso modello BERT. Prima di discutere dell’architettura SBERT, facciamo riferimento a una sottile nota sulle reti siamesi:

Nella maggior parte dei casi, negli articoli scientifici, l’architettura di una rete siamese viene raffigurata con diversi modelli che ricevono così tanti input. In realtà si può pensare ad un unico modello con la stessa configurazione e pesi condivisi su più ingressi paralleli. Ogni volta che i pesi del modello vengono aggiornati per un singolo input, vengono aggiornati ugualmente anche per gli altri input.

L’architettura non siamese (codificatore incrociato) è mostrata a sinistra, mentre l’architettura siamese (bi-codificatore) è sulla destra. La differenza principale è che a sinistra il modello accetta entrambi gli input contemporaneamente. A destra, il modello accetta entrambi gli input in parallelo, quindi entrambi gli output non dipendono l’uno dall’altro.

Tornando a SBERT, dopo aver passato una frase attraverso BERT, un livello di pooling viene applicato agli incorporamenti BERT per ottenere la loro rappresentazione di dimensionalità inferiore: i 512 vettori a 768 dimensioni iniziali vengono trasformati in un singolo vettore a 768 dimensioni. Per il livello di pooling, gli autori di SBERT propongono di scegliere un livello di mean-pooling come predefinito, sebbene menzionino anche che è possibile utilizzare la strategia di max-pooling o semplicemente prendere l’output del (CLS) gettone invece.

Quando entrambe le frasi vengono passate attraverso i livelli di pooling, abbiamo due vettori a 768 dimensioni tu E v. Utilizzando questi due vettori, gli autori propongono tre approcci per ottimizzare obiettivi diversi che verranno discussi di seguito.

Funzione obiettivo di classificazione

Lo scopo di questo problema è classificare correttamente una data coppia di frasi in una delle diverse classi.

Dopo la generazione degli incorporamenti tu E vi ricercatori hanno trovato utile generare un altro vettore derivato da questi due come differenza assoluta in termini di elementi |uv|. Hanno provato anche altre tecniche di ingegneria delle funzionalità, ma questa ha mostrato i risultati migliori.

Infine, tre vettori tu, v E |uv| sono concatenati, moltiplicati per una matrice di pesi addestrabili W e il risultato della moltiplicazione viene inserito nel classificatore softmax che restituisce probabilità normalizzate di frasi corrispondenti a classi diverse. La funzione di perdita di entropia incrociata viene utilizzata per aggiornare i pesi del modello.

Architettura SBERT per l’obiettivo di classificazione. Il parametro n indica la dimensionalità degli incorporamenti (768 per impostazione predefinita per la base BERT) mentre k designa il numero di etichette.

Uno dei problemi esistenti più popolari da risolvere con questo obiettivo è NLI (Inferenza del linguaggio naturale) dove per una data coppia di enunciati A e B che definiscono ipotesi e premessa è necessario prevedere se l’ipotesi è vera (implicazione), falso (contraddizione) o indeterminato (neutro) data la premessa. Per questo problema, il processo di inferenza è lo stesso dell’addestramento.

Come affermato nel cartail modello SBERT è originariamente addestrato su due set di dati SNLI e MultiNLI che contengono un milione di coppie di frasi con etichette corrispondenti implicazione, contraddizione O neutro. Successivamente, i ricercatori dell’articolo menzionano i dettagli sui parametri di ottimizzazione SBERT:

“Perfezioniamo SBERT con una funzione obiettivo del classificatore softmax a 3 vie per un’epoca. Abbiamo utilizzato una dimensione batch di 16, un ottimizzatore Adam con una velocità di apprendimento 2e−5 e un riscaldamento della velocità di apprendimento lineare superiore al 10% dei dati di addestramento. La nostra strategia di pooling predefinita è meschina”.

Funzione obiettivo di regressione

In questa formulazione, dopo aver ottenuto i vettori u e v, il punteggio di somiglianza tra loro viene calcolato direttamente da una metrica di somiglianza scelta. Il punteggio di somiglianza previsto viene confrontato con il valore reale e il modello viene aggiornato utilizzando la funzione di perdita MSE. Per impostazione predefinita, gli autori scelgono la somiglianza del coseno come metrica di somiglianza.

Architettura SBERT per obiettivo di regressione. Il parametro n rappresenta la dimensionalità degli incastri (768 per impostazione predefinita per la base BERT).

Durante l’inferenza, questa architettura può essere utilizzata in due modi:

  • Per una determinata coppia di frasi è possibile calcolare il punteggio di somiglianza. Il flusso di lavoro dell’inferenza è assolutamente lo stesso della formazione.
  • Per una data frase, è possibile estrarre l’incorporamento della frase (subito dopo aver applicato il livello di pooling) per un uso successivo. Ciò è particolarmente utile quando ci viene fornita una vasta raccolta di frasi con l’obiettivo di calcolare i punteggi di somiglianza a coppie tra di loro. Eseguendo ciascuna frase attraverso BERT una sola volta, estraiamo tutti gli incorporamenti di frasi necessari. Successivamente, possiamo calcolare direttamente la metrica di somiglianza scelta tra tutti i vettori (senza dubbio, richiede ancora un numero quadratico di confronti ma allo stesso tempo evitiamo calcoli di inferenza quadratica con BERT come avveniva prima).

Funzione obiettivo tripletta

L’obiettivo della tripletta introduce una perdita di tripletta che viene calcolata su tre frasi solitamente denominate ancora, positivo E negativo. Si presume che ancora E positivo le frasi sono molto vicine tra loro mentre ancora E negativo sono molto diversi. Durante il processo di addestramento, il modello valuta quanto è vicina la coppia (ancora, positivo) è, rispetto alla coppia (ancora, negativo). Matematicamente, la seguente funzione di perdita è minimizzata:

La funzione di perdita di triplette da carta originale. Le variabili sₐ, sₚ, sₙ rappresentano rispettivamente ancoraggi, incorporamenti positivi e negativi. Simbolo ||s|| è la norma del vettore s. Il parametro ε è chiamato margine.

Il margine ε garantisce che a positivo la frase è più vicina all’ancora almeno di ε rispetto a negativo sentenza al ancora. Altrimenti, la perdita diventa maggiore di 0. Per impostazione predefinita, in questa formula, gli autori scelgono la distanza euclidea come norma vettoriale e il parametro ε è impostato su 1.

L’architettura tripletta SBERT differisce dalle due precedenti in quanto il modello ora accetta in parallelo tre frasi di input (invece di due).

Architettura SBERT per obiettivo di regressione. Il parametro n rappresenta la dimensionalità degli incastri (768 per impostazione predefinita per la base BERT).

Trasformatori di frasi è una libreria Python all’avanguardia per la creazione di incorporamenti di frasi. Ne contiene diversi modelli preaddestrati per compiti diversi. Creare incorporamenti con SentenceTransformers è semplice e un esempio è mostrato nello snippet di codice seguente.

Costruire incorporamenti con SentenceTransformers

Gli incorporamenti costruiti possono quindi essere utilizzati per il confronto della somiglianza. Ogni modello è addestrato per un determinato compito, quindi è sempre importante scegliere una metrica di somiglianza appropriata per il confronto facendo riferimento alla documentazione.

Abbiamo esaminato uno dei modelli avanzati di PNL per ottenere incorporamenti di frasi. Riducendo un numero quadratico di esecuzioni di inferenza BERT a lineare, SBERT ottiene un aumento massiccio della velocità pur mantenendo un’elevata precisione.

Per comprendere finalmente quanto sia significativa questa differenza, è sufficiente fare riferimento all’esempio descritto nell’articolo in cui i ricercatori hanno cercato di trovare la coppia più simile tra n = 10000 frasi. Su una moderna GPU V100, questa procedura ha richiesto circa 65 ore con BERT e solo 5 secondi con SBERT! Questo esempio dimostra che SBERT rappresenta un enorme progresso nella PNL.

Tutte le immagini, se non diversamente specificato, sono dell’autore

Fonte: towardsdatascience.com

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *