Cả ba xử lý chuỗi bằng cách giữ một trạng thái ẩn (hidden state) truyền qua từng bước thời gian.
- RNN thường:
h_t = f(W·[h_{t-1}, x_t]). Đơn giản nhưng gặp vanishing/exploding gradient trên chuỗi dài → khó học phụ thuộc xa. - LSTM: thêm cell state (bộ nhớ) và ba cổng (forget, input, output) điều tiết việc giữ / ghi / đọc thông tin. Đường cell-state cộng dồn cho phép gradient chảy qua rất nhiều bước → học được phụ thuộc dài hạn. Đây là vấn đề chính LSTM giải quyết so với RNN thường.
- GRU: bản rút gọn với hai cổng (reset, update), gộp cell state và hidden state → ít tham số hơn, hiệu năng thường tương đương, huấn luyện nhanh hơn.
Chọn: GRU khi dữ liệu nhỏ / cần nhanh; LSTM khi nó nhỉnh hơn. Cả hai phần lớn đã bị Transformer vượt về phụ thuộc xa, nhưng vẫn dùng nhiều.