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. 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. 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

2

Kilder

2
  • Sequence to Sequence Learning with Neural Networks (2014)
  • Neural Machine Translation by Jointly Learning to Align and Translate (2015)