AI 101
Vad är Transformer Neurala Nätverk?

Transformer Neurala Nätverk Beskrivna
Transformers är en typ av maskinlärningsmodell som specialiserar sig på att bearbeta och tolka sekventiella data, vilket gör dem optimala för uppgifter inom naturlig språkbehandling. För att bättre förstå vad en maskinlärningstransformator är och hur de fungerar, låt oss titta närmare på transformatormodeller och de mekanismer som driver dem.
Den här artikeln kommer att täcka:
- Sekvens-till-Sekvens-Modeller
- Transformer Neurala Nätverksarkitektur
- Uppmärksamhetsmekanismen
- Skillnader Mellan Transformers och RNNs/LSTMs
Sekvens-till-Sekvens-Modeller
Sekvens-till-sekvens-modeller är en typ av NLP-modell som används för att omvandla sekvenser av en typ till en sekvens av en annan typ. Det finns olika typer av sekvens-till-sekvens-modeller, såsom Recurrent Neural Network-modeller och Long Short-Term Memory (LSTM)-modeller.
Traditionella sekvens-till-sekvens-modeller som RNNs och LSTMs är inte fokus för den här artikeln, men en förståelse för dem är nödvändig för att uppskatta hur transformatormodeller fungerar och varför de är överlägsna traditionella sekvens-till-sekvens-modeller.
I korthet består RNN-modeller och LSTM-modeller av encoder- och decoder-nätverk som analyserar indata vid olika tidssteg. Encoder-modellen är ansvarig för att bilda en kodad representation av orden i indata. Vid varje tidssteg tar encoder-nätverket emot en indatasekvens och en dold tillstånd från föregående tidssteg i serien. De dolda tillstånds-värdena uppdateras när data förs genom nätverket, tills det sista tidssteget, där en “kontextvektor” genereras. Kontextvektorn skickas sedan till decoder-nätverket, som används för att generera en målsekvens genom att förutsäga det mest sannolika ordet som parar med indataordet för respektive tidssteg.
Dessa modeller kan förbättras genom att använda en “uppmärksamhetsmekanism”. En uppmärksamhetsmekanism definierar vilka delar av indatavektorn nätverket ska fokusera på för att generera rätt utdata. Med andra ord låter en uppmärksamhetsmekanism transformatorn bearbeta ett indataord medan den också uppmärksammar relevant information som innehålls av andra indataord. Uppmärksamhetsmekanismer maskerar också ut ord som inte innehåller relevant information.
Transformer Neurala Nätverksarkitektur
Vi kommer att gå in på uppmärksamhetsmekanismen i mer detalj senare, men för nu låt oss titta på arkitekturen för ett transformer neurala nätverk på en högre nivå.
I allmänhet ser ett transformer neurala nätverk ut så här:

Medan denna allmänna struktur kan förändras mellan nätverk, kommer de grundläggande delarna att förbli desamma: positionskodningar, ordvektorer, uppmärksamhetsmekanism, feed-forward neurala nätverk.
Positionskodningar och Ordvektorer
Ett transformer neurala nätverk fungerar genom att ta en sekvens av indata och omvandla dem till två andra sekvenser. Transformatorn producerar en sekvens av ordvektorinbäddningar och positionskodningar.
Ordvektorinbäddningar är bara texten representerad i ett numeriskt format som neurala nätverket kan bearbeta. Medan positionskodningarna är vektoriserade representationer som innehåller information om den aktuella ordets position i indata-meningen, i förhållande till andra ord.
Andra textbaserade neurala nätverksmodeller som RNNs och LSTMs använder vektorer för att representera orden i indata. Dessa vektorinbäddningar kartlägger ord till konstanta värden, men detta är begränsande eftersom ord kan användas i olika sammanhang. En transformatornätverkslösning löser detta problem genom att göra ordvärdena mer flexibla, med hjälp av sinusformade funktioner för att låta ordvektorerna ta på sig olika värden beroende på ordets position i meningen.
Detta tillåter neurala nätverksmodellen att bevara information om den relativa positionen för indataorden, även efter att vektorerna har passerat genom transformatornätverkets lager.
Positionskodningarna och ordvektorinbäddningarna adderas sedan och skickas till både encoder- och decoder-nätverken. Medan transformer neurala nätverk använder encoder/decoder-scheman precis som RNNs och LSTMs, är en stor skillnad mellan dem att all indata skickas till nätverket samtidigt, medan i RNNs/LSTMs skickas data sekventiellt.
Encoder-nätverken är ansvariga för att omvandla indata till representationer som nätverket kan lära sig från, medan decoder-nätverken gör det omvända och omvandlar kodningarna till en sannolikhetsfördelning som används för att generera de mest sannolika orden i utdata-meningen. Avgörande är att både encoder- och decoder-nätverken har en uppmärksamhetsmekanism.
Eftersom GPU:er kan bearbeta parallellt, används flera uppmärksamhetsmekanismer parallellt, beräknar den relevanta informationen för alla indataord. Denna förmåga att uppmärksamma flera ord, kallad “multi-head”-uppmärksamhet, vid en tidpunkt hjälper neurala nätverket att lära sig ordets sammanhang i en mening, och det är en av de primära fördelarna som transformer-nätverk har över RNNs och LSTMs.
Uppmärksamhetsmekanismen
Uppmärksamhetsmekanismen är den viktigaste delen av ett transformer-nätverk. Uppmärksamhetsmekanismen är vad som möjliggör för transformator-modeller att gå utöver uppmärksamhetsgränsen för en typisk RNN eller LSTM-modell. Traditionella sekvens-till-sekvens-modeller kasserar alla mellanliggande tillstånd och använder endast det sista tillståndet/kontextvektorn när de initierar decoder-nätverket för att generera förutsägelser om en indata-sekvens.
Att kassera allt utom den sista kontextvektorn fungerar bra när indata-sekvenserna är ganska små. Men när längden på en indata-sekvens ökar, kommer modellens prestanda att försämras när denna metod används. Detta beror på att det blir ganska svårt att sammanfatta en lång indata-sekvens som en enda vektor. Lösningen är att öka “uppmärksamheten” hos modellen och använda de mellanliggande encoder-tillstånden för att konstruera kontextvektorer för decoder.
Uppmärksamhetsmekanismen definierar hur viktiga andra indata-token är för modellen när kodningar skapas för ett visst token. Till exempel är “det” ett allmänt pronomen, ofta använt för att hänvisa till djur när deras kön inte är känt. En uppmärksamhetsmekanism skulle låta ett transformer-modell bestämma att i den aktuella kontexten “det” hänvisar till en ekorre, eftersom den kan undersöka alla relevanta ord i indata-meningen.
En uppmärksamhetsmekanism kan användas på tre olika sätt: encoder-till-decoder, encoder-endast, decoder-endast.
Encoder-decoder-uppmärksamhet låter decoder-nätverket överväga indata-sekvenser när den genererar en utdata, medan encoder-endast och decoder-endast uppmärksamhetsmekanismer låter nätverken överväga alla delar av de föregående och nuvarande sekvenserna.
Konstruktionen av en uppmärksamhetsmekanism kan delas in i fem steg:
- Beräkna en poäng för alla encoder-tillstånd.
- Beräkna uppmärksamhetsviktningarna
- Beräkna kontextvektorer
- Uppdatera kontextvektorn med föregående tidsstegs utdata
- Generera utdata med decoder
Det första steget är att låta decoder-nätverket beräkna en poäng för alla encoder-tillstånd. Detta görs genom att träna decoder-nätverket, som är ett grundläggande feed-forward neurala nätverk. När decoder-nätverket tränas på det första ordet i indata-sekvensen, har inget internt/dolt tillstånd skapats ännu, så encoder-nätverkets sista tillstånd används vanligtvis som decoder-nätverkets föregående tillstånd.
För att beräkna uppmärksamhetsviktningarna används en softmax-funktion för att generera en sannolikhetsfördelning för uppmärksamhetsviktningarna.
När uppmärksamhetsviktningarna har beräknats, måste kontextvektorn beräknas. Detta görs genom att multiplicera uppmärksamhetsviktningarna och det dolda tillståndet tillsammans för varje tidssteg.
Efter att kontextvektorn har beräknats, används den tillsammans med ordet som genererades i föregående tidssteg för att generera nästa ord i utdata-sekvensen. Eftersom decoder-nätverket inte har någon föregående utdata att hänvisa till i det första tidssteget, används ofta ett särskilt “start”-token istället.
Skillnader Mellan Transformers & RNNs/LSTMs
Låt oss snabbt täcka några av skillnaderna mellan RNNs och LSTMs.
RNNs bearbetar indata sekventiellt, medan ett dolt tillståndsvektor underhålls och ändras av indata-orden när de passerar genom nätverket. De dolda tillstånden i en RNN innehåller vanligtvis mycket lite relevant information om tidigare indata. Nya indata skriver ofta över det aktuella tillståndet, vilket orsakar informationsförlust och försämrar prestanda över tid.
I kontrast bearbetar transformer-modeller hela indata-sekvensen på en gång. Uppmärksamhetsmekanismen låter varje utdata-ord informeras av varje indata och dolt tillstånd, vilket gör nätverket mer tillförlitligt för långa textstycken.
LSTMs är modifierade versioner av RNNs, justerade för att hantera längre indata-sekvenser. LSTM-arkitekturen använder en struktur som kallas “gates”, med “input-gates”, “output-gates” och “forget-gates”. Den gated-designen hanterar den informationsförlust som är vanlig för RNN-modeller. Data bearbetas fortfarande sekventiellt, och arkitekturens rekurrerande design gör det svårt att träna LSTM-modeller med parallell datorbearbetning, vilket gör tränings-tiden längre totalt sett.
LSTM-ingenjörer skulle ofta lägga till uppmärksamhetsmekanismer i nätverket, vilket var känt för att förbättra modellens prestanda. Men det upptäcktes så småningom att uppmärksamhetsmekanismen ensam förbättrade noggrannheten. Denna upptäckt ledde till skapandet av transformer-nätverk som använde uppmärksamhetsmekanismer och parallell datorbearbetning tack vare GPU:er.








