Concepten die u moet kennen voordat u in Transformers stapt

Concepten die u moet kennen voordat u in Transformers stapt

Bronknooppunt: 1894868

Neurale netwerken leren door getallen, dus elk woord wordt toegewezen aan vectoren om een ​​bepaald woord weer te geven. De inbeddingslaag kan worden gezien als een opzoektabel die woordinbeddingen opslaat en ophaalt met behulp van indices.

 

Concepten die u moet kennen voordat u in Transformer stapt
 

Woorden met dezelfde betekenis zullen dicht bij elkaar liggen in termen van euclidische afstand/cosinusovereenkomst. in de onderstaande woordweergave worden bijvoorbeeld "Zaterdag", "Zondag" en "Maandag" geassocieerd met hetzelfde concept, dus we kunnen zien dat de woorden vergelijkbaar zijn.
 

Concepten die u moet kennen voordat u in Transformer stapt

Het bepalen van de positie van het woord, waarom moeten we de positie van het woord bepalen? omdat de transformator-encoder geen herhaling heeft zoals terugkerende neurale netwerken, moeten we wat informatie over de posities toevoegen aan de ingangsinbeddingen. Dit gebeurt met behulp van positionele codering. De auteurs van het artikel gebruikten de volgende functies om de positie van een woord te modelleren.

 

Concepten die u moet kennen voordat u in Transformer stapt
 

We zullen positionele codering proberen uit te leggen.

 

Concepten die u moet kennen voordat u in Transformer stapt
 

Hier verwijst "pos" naar de positie van het "woord" in de reeks. P0 verwijst naar de positie-inbedding van het eerste woord; "d" betekent de grootte van de inbedding van het woord/token. In dit voorbeeld d=5. Ten slotte verwijst "i" naar elk van de 5 individuele dimensies van de inbedding (dwz 0, 1,2,3,4)

als "i" varieert in de bovenstaande vergelijking, krijgt u een aantal curven met verschillende frequenties. Het aflezen van de positie-inbeddingswaarden tegen verschillende frequenties, geeft verschillende waarden bij verschillende inbeddingsdimensies voor P0 en P4.

Concepten die u moet kennen voordat u in Transformer stapt
 

In deze vraag, Q vertegenwoordigt een vectorwoord, de sleutels K zijn alle andere woorden in de zin, en waarde V vertegenwoordigt de vector van het woord.

Het doel van aandacht is om het belang van de sleutelterm te berekenen in vergelijking met de zoekterm die betrekking heeft op dezelfde persoon/ding of hetzelfde concept.

In ons geval is V gelijk aan Q.

Het aandachtsmechanisme geeft ons het belang van het woord in een zin.

 

Concepten die u moet kennen voordat u in Transformer stapt
 

Wanneer we het genormaliseerde puntproduct tussen de query en de sleutels berekenen, krijgen we een tensor die het relatieve belang van elk ander woord voor de query weergeeft.

 

Concepten die u moet kennen voordat u in Transformer stapt
 

Bij het berekenen van het puntproduct tussen Q en KT proberen we te schatten hoe de vectoren (dwz woorden tussen query en sleutels) zijn uitgelijnd en geven we een gewicht terug voor elk woord in de zin.

Vervolgens normaliseren we het resultaat in het kwadraat van d_k en de softmax-functie regulariseert de termen en herschaalt ze tussen 0 en 1.

Ten slotte vermenigvuldigen we het resultaat (dwz gewichten) met de waarde (dwz alle woorden) om het belang van niet-relevante woorden te verminderen en alleen op de belangrijkste woorden te focussen.

De meerkoppige attentie-outputvector wordt toegevoegd aan de originele positionele input-inbedding. Dit wordt een restaansluiting/skip-aansluiting genoemd. De uitvoer van de resterende verbinding gaat door laagnormalisatie. De genormaliseerde residuele output wordt voor verdere verwerking door een puntsgewijs feed-forward netwerk geleid.

 

Concepten die u moet kennen voordat u in Transformer stapt

Het masker is een matrix die even groot is als de aandachtsscores gevuld met waarden van nullen en negatieve oneindigheden.

 

Concepten die u moet kennen voordat u in Transformer stapt
 

De reden voor het masker is dat als je eenmaal de softmax van de gemaskeerde scores hebt genomen, de negatieve oneindigheden nul worden, waardoor er geen aandachtsscores overblijven voor toekomstige tokens.

Dit vertelt het model om geen focus op die woorden te leggen.

Het doel van de softmax-functie is om reële getallen (positief en negatief) te pakken en ze om te zetten in positieve getallen die optellen tot 1.

 

Concepten die u moet kennen voordat u in Transformer stapt

 
 
Ravikumar Naduvin is bezig met het bouwen en begrijpen van NLP-taken met behulp van PyTorch.

 
ORIGINELE. Met toestemming opnieuw gepost.
 

Tijdstempel:

Meer van KDnuggets