kontekstvektor
En vektor, der repræsenterer en opsummeret kontekst af en inputsekvens, ofte genereret af en encoders sidste skjulte tilstand eller som output fra en attention-mekanisme.
Kort fortalt
En kontekstvektor er en komprimeret repræsentation af al relevant information fra inputdata, som modellen bruger til at træffe beslutninger.
- Kategori
- begreb
- Niveau
- øvet
- Udtale
- /ˈkɔnˌtɛkstˌvɛktor/
Betydninger
2- 1
I sekvens-til-sekvens (seq2seq) modeller: den sidste skjulte tilstand i encoder-netværket, der opsummerer hele inputsekvensen og overføres til decoder-netværket som initial tilstand.
- I en oversættelsesmodel initialiseres decoderens tilstande med kontekstvektoren fra encoderen.
- 2
I attention-mekanismer: en vægtet sum af input-repræsentationer, hvor vægtene bestemmes af relevansen mellem en query og hvert input-element, hvilket skaber en kontekstspecifik vektor.
- Attention-laget beregner en kontekstvektor ved at kombinere encoder-outputs med attention-vægte.
Hvornår bruges det
Kontekstvektorer anvendes i sekvens-til-sekvens modeller (seq2seq) for at opsummere inputsekvensen, og i attention-mekanismer for at vægte forskellige dele af inputtet efter relevans. De er centrale i oversættelsesmodeller, tekstgenerering og andre opgaver med variabel længde.
Kodeeksempel
# Eksempel: beregning af kontekstvektor i en simpel seq2seq-encoder
import torch
import torch.nn as nn
class Encoder(nn.Module):
def __init__(self, input_dim, hidden_dim):
super().__init__()
self.rnn = nn.GRU(input_dim, hidden_dim)
def forward(self, x):
# x: (seq_len, batch, input_dim)
outputs, hidden = self.rnn(x)
# hidden er kontekstvektoren (1, batch, hidden_dim)
return hidden
encoder = Encoder(10, 20)
input_seq = torch.randn(5, 3, 10) # (seq_len=5, batch=3, input_dim=10)
context_vector = encoder(input_seq)
print(context_vector.shape) # (1, 3, 20)En simpel GRU-encoder, der returnerer kontekstvektoren (den sidste skjulte tilstand) for en inputsekvens.
Oprindelse
Sammensat af 'kontekst' (fra latin contextus, 'sammenvævning') og 'vektor' (fra latin vector, 'bærer').
Afledte ord
2Kilder
2- Sequence to Sequence Learning with Neural Networks (2014)
- Neural Machine Translation by Jointly Learning to Align and Translate (2015)