Koncepti, ki bi jih morali poznati, preden se lotite Transformers

Koncepti, ki bi jih morali poznati, preden se lotite Transformers

Izvorno vozlišče: 1894868

Nevronske mreže se učijo s pomočjo številk, zato bo vsaka beseda preslikana v vektorje, ki predstavljajo določeno besedo. Vdelano plast si lahko predstavljamo kot iskalno tabelo, ki shranjuje vdelane besede in jih pridobiva z uporabo indeksov.

 

Koncepti, ki bi jih morali poznati, preden se lotite Transformerja
 

Besede, ki imajo enak pomen, bodo blizu v smislu podobnosti evklidske razdalje/kosinusa. na primer, v spodnji besedni predstavitvi so »sobota«, »nedelja« in »ponedeljek« povezani z istim konceptom, tako da lahko vidimo, da so besede podobne.
 

Koncepti, ki bi jih morali poznati, preden se lotite Transformerja

Določanje položaja besede, Zakaj moramo določiti položaj besede? ker transformatorski kodirnik nima ponavljanja kot ponavljajoče se nevronske mreže, moramo v vhodne vdelave dodati nekaj informacij o položajih. To se izvede z uporabo pozicijskega kodiranja. Avtorji prispevka so za modeliranje položaja besede uporabili naslednje funkcije.

 

Koncepti, ki bi jih morali poznati, preden se lotite Transformerja
 

Poskusili bomo razložiti pozicijsko kodiranje.

 

Koncepti, ki bi jih morali poznati, preden se lotite Transformerja
 

Tu se "pos" nanaša na položaj "besede" v zaporedju. P0 se nanaša na položajno vdelavo prve besede; »d« pomeni velikost vdelane besede/žetona. V tem primeru d=5. Končno se »i« nanaša na vsako od 5 posameznih dimenzij vdelave (tj. 0, 1,2,3,4)

če se "i" spreminja v zgornji enačbi, boste dobili kup krivulj z različnimi frekvencami. Odčitavanje vrednosti vdelave položaja glede na različne frekvence, kar daje različne vrednosti pri različnih dimenzijah vdelave za P0 in P4.

Koncepti, ki bi jih morali poznati, preden se lotite Transformerja
 

V tem primeru poizvedba, Q predstavlja vektorsko besedo, the ključi K so vse druge besede v stavku in vrednost V predstavlja vektor besede.

Namen pozornosti je izračunati pomembnost ključnega izraza v primerjavi s poizvedbenim izrazom, ki se nanaša na isto osebo/stvar ali koncept.

V našem primeru je V enako Q.

Mehanizem pozornosti nam pove pomembnost besede v stavku.

 

Koncepti, ki bi jih morali poznati, preden se lotite Transformerja
 

Ko izračunamo normalizirani pikčasti produkt med poizvedbo in ključi, dobimo tenzor, ki predstavlja relativno pomembnost vsake druge besede za poizvedbo.

 

Koncepti, ki bi jih morali poznati, preden se lotite Transformerja
 

Pri računanju pikčastega produkta med Q in KT poskušamo oceniti, kako so vektorji (tj. besede med poizvedbo in ključi) poravnani, in vrnemo težo za vsako besedo v stavku.

Nato normaliziramo rezultat na kvadrat d_k in funkcija softmax regulira izraze in jih ponovno skalira med 0 in 1.

Na koncu pomnožimo rezultat (tj. uteži) z vrednostjo (tj. vse besede), da zmanjšamo pomen nepomembnih besed in se osredotočimo samo na najpomembnejše besede.

Izhodni vektor pozornosti z več glavami je dodan prvotni pozicijski vhodni vdelavi. To se imenuje preostala povezava/preskočna povezava. Izhod preostale povezave gre skozi normalizacijo plasti. Normalizirani preostali izhod se prenese skozi točkovno omrežje za nadaljnjo obdelavo.

 

Koncepti, ki bi jih morali poznati, preden se lotite Transformerja

Maska je matrika, ki je enake velikosti kot rezultati pozornosti, napolnjena z vrednostmi 0 in negativnimi neskončnostmi.

 

Koncepti, ki bi jih morali poznati, preden se lotite Transformerja
 

Razlog za masko je v tem, da ko vzamete mehki maksimum zamaskiranih rezultatov, negativne neskončnosti dobijo vrednost nič, kar pomeni nič pozornosti za prihodnje žetone.

To modelu pove, naj se ne osredotoči na te besede.

Namen funkcije softmax je zgrabiti realna števila (pozitivna in negativna) in jih spremeniti v pozitivna števila, katerih vsota je 1.

 

Koncepti, ki bi jih morali poznati, preden se lotite Transformerja

 
 
Ravikumar Naduvin je zaposlen z gradnjo in razumevanjem NLP nalog z uporabo PyTorcha.

 
prvotni. Poročeno z dovoljenjem.
 

Časovni žig:

Več od KDnuggets