Long short-term memory (LSTM) é um tipo de rede neural recorrente (RNN) introduzido para abordar o problema do gradiente desaparecente que limita as RNNs tradicionais. Diferente das RNNs padrão, as unidades LSTM incorporam um estado de célula e três mecanismos de portão - um portão de entrada, um portão de saída e um portão de esquecimento - que regulam o fluxo de informação ao longo de intervalos de tempo arbitrários. Esse design permite que redes LSTM mantenham dependências ao longo de milhares de passos de tempo, tornando-as eficazes para tarefas de aprendizado de sequências, como reconhecimento de fala, tradução automática e previsão de séries temporais. O nome reflete uma analogia aos conceitos da psicologia cognitiva de memória de longo prazo e de curto prazo, estudados desde o início do século 20.
A relativa insensibilidade do LSTM ao comprimento do intervalo dá-lhe uma vantagem sobre outras RNNs, modelos ocultos de Markov e métodos alternativos de aprendizado de sequências. A arquitetura foi proposta por Sepp Hochreiter e Jürgen Schmidhuber em 1997, e desde então tornou-se um componente fundamental em aprendizado profundo, particularmente antes do surgimento dos modelos baseados em transformadores.
Motivação
As RNNs clássicas teoricamente podem capturar dependências arbitrárias de longo prazo, mas na prática sofrem de gradientes desaparecentes durante a retropropagação. Ao treinar com retropropagação, gradientes que se propagam ao longo de muitos passos de tempo podem encolher exponencialmente, fazendo com que a rede pare de aprender efetivamente. As unidades LSTM mitigam isso permitindo que gradientes fluam com pouca atenuação através do estado de célula, embora ainda possam encontrar gradientes explosivos
A intuição por trás do LSTM é criar um módulo que aprende quando lembrar e quando esquecer informação. A rede aprende quais peças de informação são provavelmente necessárias mais tarde na sequência e quando se tornam irrelevantes. Por exemplo, em processamento de linguagem natural, um LSTM processando a frase "Dave, como resultado de suas alegações controversas, agora é um pária" pode lembrar o gênero gramatical e o número do sujeito "Dave" para interpretar corretamente o pronome "suas", e depois descartar essa informação após o verbo "é".
Arquitetura
Uma unidade LSTM consiste de uma célula e três portões. A célula lembra valores ao longo de intervalos de tempo arbitrários. O portão de esquecimento decide qual informação descartar do estado anterior, mapeando o estado anterior e a entrada atual para um valor entre 0 e 1, onde 1 significa reter e 0 significa descartar. O portão de entrada determina qual nova informação armazenar no estado de célula, usando um mecanismo similar. O portão de saída controla quais partes do estado de célula atual emitir, novamente usando um valor entre 0 e 1, considerando tanto os estados anteriores quanto os atuais
Matematicamente, o passe para frente de uma célula LSTM com um portão de esquecimento pode ser descrito usando notação vetorial. Seja \(x_t\) a entrada no passo de tempo \(t\), \(h_{t-1}\) o estado oculto anterior, e \(c_{t-1}\) o estado de célula anterior. Os portões são calculados como:
- Portão de esquecimento: \(f_t = \sigma_g(W_f x_t + U_f h_{t-1} + b_f)\)
- Portão de entrada: \(i_t = \sigma_g(W_i x_t + U_i h_{t-1} + b_i)\)
- Portão de saída: \(o_t = \sigma_g(W_o x_t + U_o h_{t-1} + b_o)\)
- Estado de célula candidato: \(\tilde{c}_t = \tanh(W_c x_t + U_c h_{t-1} + b_c)\)
- Atualização do estado de célula: \(c_t = f_t \odot c_{t-1} + i_t \odot \tilde{c}_t\)
- Estado oculto: \(h_t = o_t \odot \tanh(c_t)\)
Aqui, \(\sigma_g\) é a função de ativação sigmoide, \(\tanh\) é a tangente hiperbólica, e \(\odot\) denota multiplicação elemento a elemento. As matrizes de peso \(W_q\) e \(U_q\) (onde \(q\) pode ser \(i\), \(o\), \(f\), ou \(c\)) contêm conexões de entrada e recorrentes, respectivamente.
Variantes e Extensões
Várias variantes de LSTM foram desenvolvidas para melhorar o desempenho ou adaptar-se a tarefas específicas. A variante mais comum é o LSTM com um portão de esquecimento, que agora é padrão. Outras variantes notáveis incluem:
- Unidade Recorrente Fechada (GRU): Uma arquitetura simplificada que combina os portões de entrada e de esquecimento em um único portão de atualização, reduzindo a complexidade computacional.
- LSTM Bidirecional: Processa sequências em ambas as direções, para frente e para trás, capturando contexto tanto do passado quanto do futuro.
- Conexões de olho mágico: Permitem que os portões acessem o estado de célula diretamente, melhorando o tempo e a precisão.
Essas variantes foram amplamente adotadas em aplicações de Deep learning, incluindo Large language models e sistemas baseados em Neural network.
Aplicações
Redes LSTM foram aplicadas a uma ampla gama de tarefas, incluindo classificação, processamento de dados, análise de séries temporais, reconhecimento de fala, tradução automática, detecção de atividade de fala, controle de robôs, jogos de vídeo, saúde e previsão de energia. No início dos anos 2010, modelos baseados em LSTM alcançaram resultados de ponta em reconhecimento de fala e tradução automática, pavimentando o caminho para sistemas modernos de Artificial intelligence.
Com o advento da arquitetura Transformer (architecture) em 2017, o domínio do LSTM no processamento de sequências diminuiu, particularmente em modelos de grande escala de Generative AI. No entanto, o LSTM permanece relevante para muitas aplicações, especialmente aquelas com recursos computacionais limitados ou onde o processamento sequencial é inerente, como em sistemas embutidos e controle em tempo real.
Limitações
Apesar de suas vantagens, o LSTM tem limitações. É computacionalmente mais caro do que RNNs simples devido aos portões adicionais. Ainda pode sofrer de gradientes explosivos, embora técnicas como recorte de gradiente ajudem. Além disso, o LSTM processa sequências sequencialmente, dificultando a paralelização ao longo de passos de tempo, que é uma razão chave pela qual transformadores se tornaram preferidos para modelos de grande escala. Não obstante, a capacidade do LSTM de modelar dependências de longo prazo com relativa insensibilidade ao comprimento do intervalo continua a torná-lo uma ferramenta valiosa no arsenal de Machine learning.