LSTM
The smallest sequence model on the board. One LSTM layer, 48 hidden units, one shared trunk into three heads. The point is to anchor what 0.7 GBs of parameters can extract from the raw 21-step session sequence before the bigger sequence models are allowed to compete.
Scores
How it works
A single LSTM layer reads the 38-dim per-step sequence (slightly smaller per-step encoding than the BiGRU and transformer: no per-step side info). The last hidden state becomes the session summary, gets pushed through a 48-unit MLP trunk, then into three linear heads. No attention pooling, no side-feature fusion, no fancy training schedule.
Loses to the BiGRU on every column but stays within 0.05 MAE on the regression heads, which is the small-model story this row is supposed to tell: extra capacity in the sequence family helps gender, barely helps regression.
Configuration
- Hidden size48
- Layers1
- Per-step input38 dims (no step-type one-hot vs BiGRU's 40)
- PoolingLast hidden state
- Dropout0.4
- OptimiserAdam, lr 1e-3, cosine decay over 100 epochs
- CV5-fold StratifiedKFold on gender, seed 42