LSTM vs GRU: Which Recurrent Net for Time-Series Forecasting?

Both gate away the vanishing-gradient problem, but they trade memory for speed differently. When GRU wins, when LSTM does, and why an ensemble often beats both.

Recurrent networks were supposed to be obsolete by now — transformers took the headlines, and for language they largely won. Yet on tabular time series with a few thousand steps and a handful of features, a small LSTM or GRU still quietly outperforms a transformer that has too many parameters and too little data to feed them. The interesting question is rarely "RNN or transformer?" It's the older one: LSTM or GRU?

The problem both of them solve

A plain RNN multiplies the same weight matrix at every step. Backpropagate through a hundred steps and the gradient either vanishes toward zero or explodes — so the network forgets anything that happened more than a few steps ago. Both the LSTM and the GRU fix this the same way: a gated cell that can carry information forward unchanged unless the data says otherwise. The gates learn when to remember, when to overwrite, and when to read out.

Where they differ

The LSTM keeps a separate cell state and hidden state, governed by three gates — input, forget, and output. The GRU collapses this into a single hidden state with two gates — update and reset — and drops the output gate entirely.

0
1
2
3
LSTM gatesGRU gates

Fewer gates means fewer parameters — roughly 25% less per cell. That is the whole trade in a sentence: the LSTM has more capacity and finer control over its memory; the GRU is leaner, trains faster, and needs less data to fit without overfitting.

When each one wins

Honestly, on most real datasets the two land within noise of each other. Architecture matters less than getting your windowing, normalization, and validation split right. Benchmark both; let the validation set decide.

Why not use both

If they make different errors, averaging them helps. In our work on portfolio management we don't pick a winner at all — we run an LSTM-GRU ensemble as the forecasting front-end, then let a risk-aware controller act on the blended signal:

01Market data
02LSTM + GRU forecasts
03Blended signal
04Risk-aware RL controller

The ensemble smooths out the idiosyncratic mistakes of each cell type, and the controller never has to bet the whole pipeline on one architectural guess.

The takeaway

GRU for speed and scarce data, LSTM for long-horizon memory — but the gap is small, and the real leverage is in disciplined evaluation. When you can afford it, ensemble the two and stop choosing.

Read the full paper →