Atenția (attention-based approaches)

attention

Data încărcării
May 17, 2022
Autor
Cristian Padurariu
Descriere

[Bahdanau et al., 2015] propun modelul de rețea care prezice cuvântul țintă, ținând cont cu predilecție de anumite cuvinte din fraza de intrare. Acest mecanism reflectă atenția focalizată, pe care oamenii o aplică instinctiv în enorm de multe activități mentale, atunci când o decizie se bazează doar pe unele dintre semnele pe care le avem la dispoziție, anumite părți ale tabloului pe care îl decodificăm fiind mai importante decât altele. De exemplu, în paradigma traducerii automate, fraza din intrare poate fi mai lungă decât cele pe care a fost antrenat sistemul, ceea ce va produce erori în traducere, pentru că deteriorarea ieșirii este accelerată de lungimea intrării [Cho et al., 2014a]. De accea, limitarea contextului, dublată de focalizare, poate da rezultate mult mai bune.

Modelul propus de [Bahdanau et al., 2015] reprezintă o extensie a modelului codor-decodor, care aliniază și traduce simultan. De fiecare dată când un cuvânt este generat în traducere, se caută un set de poziții din propoziția sursă unde sunt concentrate cele mai relevante informații. Cuvântul țintă este astfel prezis pe baza vectorilor de context asociați acestor poziții sursă precum și a tuturor cuvintelor țintă generate anterior.

În [Bahdanau et al., 2015] mai întâi se definește:

 

DECODORUL

Probabilitățile condiționate din (3), detaliate în (4), devin acum:

p(yi | y1, · · · , yi−1, x) = g(yi−1, si, ci),                     (5)

unde si este o stare ascunsă a RNN la momentul i, compusă din:

si = f(si−1, yi-1, ci).               (6)

Diferența față de ecuația (3) a unui codor-decodor clasic este că aici probabilitatea este condiționată de un vector de context distinct ci pentru fiecare cuvânt țintă yi. Vectorul de context ci depinde de o serie de adnotări (h1, · · · , hTx) cărora encoderul mapează fraza de intrare. Astfel, ci se calculează ca o sumă ponderată a acestor adnotări hi:

Ci = SUMA, cu j de la 1 la Tx, din  αij hj     (7)

iar ponderea αij  a fiecărei adnotări hj e calculată ca:

αij = exp(eij ) / SUMA, cu k de la 1 la Tx, din exp(eik), (8)

unde:

eij  = a(si-1 , hj).                    (9)

este un model de aliniere, care apreciază cât de bine se aliniază ieșirea din poziția j cu intrarea din poziția i. În această formulă si-1 reprezintă starea ascunsă RNN de dinainte de emiterea lui yi.

         În felul acesta decodorul decide asupra unor părți din fraza sursă cărora să le dea o importanță mai mare, iar codorul este degrevat de sarcina de a coda toată informația conținută în fraza sursă într-un vector de lungime constantă.

 

CODORUL

         Rețeaua neuronală descrisă în ecuația (1) citește o secvență de intrare x în ordine, de la primul (x1) la ultimul simbol (xTx). Pentru a se lua în considerare nu numai cuvântul precedent, dar și cel care urmează, autorii propun utilizarea unei rețele bidirecționale (BiRNN, ca în Schuster and Paliwal, 1997). Ea e compusă dintr-o rețea neuronală “înainte”, care citește secvența de intrare (de la x1 la xTx) și calculează secvența de stări ascunse “spre înainte” (forward hidden states) , și o rețea neuronală “înapoi”, care citește în sens invers secvența de intrare (de la xTx la x1) și calculează secvența de stări ascunse “spre înapoi” (backward hidden states) . Se obține astfel o adnotare pentru fiecare cuvânt xj prin concatenarea stării ascunse “înainte” cu cea “înapoi” , adică hj = . Astfel, adnotările ascunse hj  conțin în rezumat atât cuvintele anterioare cât și pe cele ulterioare lui xj . Această secvență de adnotări este apoi folosită de decodor pentru a compune vectorul context - ec. (7) și (8).

Figura 1 (împrumutată din [Bahdanau et al., 2015]) sugerează că pentru generarea unui cuvânt pe canalul de ieșire nu numai că se ține seama de contextul intrării pentru toată fraza curentă, dar anumite cuvinte pot căpăta ponderi mai mari decât celelalte. Acesta este însuși esența mecanismului de atenție.

Referințe