Attention (Machine Learning): differenze tra le versioni

Da Wiki AI.
Nessun oggetto della modifica
Nessun oggetto della modifica
Riga 10: Riga 10:


[[File:Attention Scores.png|nessuno|miniatura|600x600px|Attention Scores, dal Paper di Bahdanau et al. Gli score vanno letti con sull'asse delle x la lingua sorgente e asse delle y la lingua di destinazione]]
[[File:Attention Scores.png|nessuno|miniatura|600x600px|Attention Scores, dal Paper di Bahdanau et al. Gli score vanno letti con sull'asse delle x la lingua sorgente e asse delle y la lingua di destinazione]]
==== Cosa viene appreso durante la retropropagazione ====
Durante il processo di apprendimento, il modello regola i pesi delle sue matrici per affinare la qualità della traduzione. In particolare:
* '''\mathbf{W}_1 e \mathbf{W}_2''': Queste matrici trasformano rispettivamente la query e le chiavi, permettendo al modello di apprendere come rappresentare al meglio sia le informazioni sorgenti che quelle di destinazione. L'apprendimento in queste matrici consente al modello di:
** Estrarre caratteristiche sintattiche e semantiche rilevanti.
** Regolare la sensibilità alle diverse tipologie di allineamento tra la sequenza sorgente e quella di destinazione.
* '''\mathbf{v}_a''': Il vettore di pesi \mathbf{v}_a proietta il risultato dell'attivazione non lineare a un valore scalare, che rappresenta il punteggio di allineamento. L'apprendimento in \mathbf{v}_a si concentra su:
** Determinare l'importanza delle caratteristiche estratte, influenzando così la distribuzione dell'attenzione attraverso la sequenza di input.
** Affinare la focalizzazione del modello su parti specifiche dell'input per generare ciascuna parte dell'output.
===== Risultati dell'Apprendimento ======
* Il meccanismo di attenzione impara a identificare quali parti della sequenza di input siano più rilevanti per la generazione di ciascuna parola nella sequenza di output, consentendo traduzioni più accurate e contestualmente appropriate.
* Il modello generalizza le strategie di allineamento apprese a nuovi testi, migliorando la capacità di tradurre accuratamente tra lingue con strutture diverse.
Questo processo di apprendimento dinamico rende il meccanismo di attenzione di Bahdanau particolarmente efficace nella traduzione automatica neurale, permettendo ai modelli di adattarsi e gestire varie complessità linguistiche e contestuali.


=== Luong Attention (dot-product attention) ===
=== Luong Attention (dot-product attention) ===

Versione delle 09:41, 1 apr 2024

L'implementazione della "Bahdanau Attention" è proposta originariamente in "Neural Machine Translation by Jointly Learning to Align and Translate, 2014": essa sorpassa il lavoro di Cho et al (2014) e di Sutskever et al. (2014), che usavano un framework encoder-decoder basato su RNN per il task di traduzione automatica codificando una frase di lunghezza variabile in un vettore di dimensione fissa.

Bahdanau Attention (Additive Attention)

Bahdanau et al., in "Neural Machine Translation by Jointly Learning to Align and Translate", sostengono che questo vettore di lunghezza fissa spesso non riesca a contenere tutta l'informazione presente nella frase di origine, e la performance degradi velocemente all'allungarsi della sequenza di input, proponendo quindi un vettore di lunghezza variabile.

Propongono quindi, nell'encoder, una RNN bi-direzionale che, per ogni token all'interno della frase, codifichi non solo l'interno contenuto della frase, ma soprattutto il significato delle parole vicine al token corrente: gli stati nascosti della rete per quel token vengono quindi concatenati ed utilizzati, nel decoder, per aggiornare il contesto che non è più "statico" come in Cho et al (2014) (descritto in Sequence to Sequence (seq2seq) ) e in Sutskever et al. (2014). Il contesto, a ogni token di output che deve essere prodotto, si confronta quindi con gli "attention scores" che indicano quanto debbano essere tenuti in considerazione i task di input nella generazione del token corrente.

Il fatto che tutti gli stati nascosti corrispondenti alla sequenza di input vengano utilizzati nell'attention la rende un tipo di attention globale, e ha delle ricadute sulla performance, che verranno indirizzate nelle ricerche successive.

Attention Scores, dal Paper di Bahdanau et al. Gli score vanno letti con sull'asse delle x la lingua sorgente e asse delle y la lingua di destinazione

Cosa viene appreso durante la retropropagazione

Durante il processo di apprendimento, il modello regola i pesi delle sue matrici per affinare la qualità della traduzione. In particolare:

  • \mathbf{W}_1 e \mathbf{W}_2: Queste matrici trasformano rispettivamente la query e le chiavi, permettendo al modello di apprendere come rappresentare al meglio sia le informazioni sorgenti che quelle di destinazione. L'apprendimento in queste matrici consente al modello di:
    • Estrarre caratteristiche sintattiche e semantiche rilevanti.
    • Regolare la sensibilità alle diverse tipologie di allineamento tra la sequenza sorgente e quella di destinazione.
  • \mathbf{v}_a: Il vettore di pesi \mathbf{v}_a proietta il risultato dell'attivazione non lineare a un valore scalare, che rappresenta il punteggio di allineamento. L'apprendimento in \mathbf{v}_a si concentra su:
    • Determinare l'importanza delle caratteristiche estratte, influenzando così la distribuzione dell'attenzione attraverso la sequenza di input.
    • Affinare la focalizzazione del modello su parti specifiche dell'input per generare ciascuna parte dell'output.
Risultati dell'Apprendimento =
  • Il meccanismo di attenzione impara a identificare quali parti della sequenza di input siano più rilevanti per la generazione di ciascuna parola nella sequenza di output, consentendo traduzioni più accurate e contestualmente appropriate.
  • Il modello generalizza le strategie di allineamento apprese a nuovi testi, migliorando la capacità di tradurre accuratamente tra lingue con strutture diverse.

Questo processo di apprendimento dinamico rende il meccanismo di attenzione di Bahdanau particolarmente efficace nella traduzione automatica neurale, permettendo ai modelli di adattarsi e gestire varie complessità linguistiche e contestuali.


Luong Attention (dot-product attention)

L'attention come modulo generalizzato

L'attention è spesso implementata come un modulo generico che:

  • Dato un insieme di vettori chiamati keys o chiavi
  • Dato un vettore chiamato query
  • Restituisce una somma pesata delle chiavi, in vettori di valori (values) a seconda di quanto esse siano importanti come risultati della ricerca


Links

Paper originale

Effective Approaches to Attention-based Neural Machine Translation (Luong Attention)

The Annotated Encoder-Decoder with Attention (Bahdanau)

https://arxiv.org/abs/1506.07503

https://arxiv.org/abs/1406.1078

https://arxiv.org/abs/1409.3215

Differenza fra Bahdanau e Luong Attention

Tutorial

Si vedano i video di Andrej Karpathy