biLSTM

forkortelse for Bidirectional Long Short-Term Memory

En type rekurrent neurale netværk, der behandler sekvenser i både fremad- og bagudgående retning for at fange kontekst fra begge sider.

Kort fortalt

Kort fortalt: biLSTM er en avanceret version af LSTM, der læser data både fra start til slut og omvendt, så modellen kan forstå hele konteksten – nyttigt til fx oversættelse og tekstklassifikation.

Kategori
arkitektur
Niveau
øvet

Betydninger

1
  1. 1

    Et neuralt netværk bestående af to LSTM-lag, der behandler en sekvens i hver sin retning, og hvis output kombineres (fx ved konkatenation) for at give en kontekstafhængig repræsentation.

    • I et biLSTM-lag læses sætningen 'Jeg elsker NLP' både forfra og bagfra.
    • BiLSTM opnår ofte bedre resultater end almindelig LSTM på opgaver med opmærksomhed på hele sekvensen.

Hvornår bruges det

BiLSTM bruges ofte i sekvensmodelleringsopgaver som maskinoversættelse, navnegenkendelse og sentimentanalyse, hvor kontekst fra både før og efter et ord er vigtig. Den kombinerer to LSTM-lag, ét for hver retning, og flettet typisk deres output.

Kodeeksempel

import torch
import torch.nn as nn

class BiLSTM(nn.Module):
    def __init__(self, input_size, hidden_size, num_layers=1):
        super().__init__()
        self.lstm = nn.LSTM(input_size, hidden_size, num_layers, bidirectional=True)
    
    def forward(self, x):
        # x shape: (seq_len, batch, input_size)
        out, (h_n, c_n) = self.lstm(x)
        # out shape: (seq_len, batch, hidden_size*2)
        return out

Eksempel på en biLSTM-modul i PyTorch med indbygget bidirektional LSTM.

Oprindelse

Sammensat af 'bi-' (to) og LSTM (Long Short-Term Memory), en type neuralt netværk introduceret af Hochreiter og Schmidhuber i 1997.

Afledte ord

1

Kilder

2
  • Long Short-Term Memory (Hochreiter & Schmidhuber, 1997)
  • Bidirectional Recurrent Neural Networks (Schuster & Paliwal, 1997)