Skip to content
9 / 10

Why can't you split recommender data randomly, and how should you split it?

A random split puts future events into training and leaks: the model learns a film became a hit and "predicts" that on test events which happened earlier. Online, that information never exists. The correct approach is a temporal split: train on everything before time T, evaluate after it. For personalisation, the leave-last-out variant holds out each user's final interaction. A gap between train and test equal to the model's deployment lag is mandatory.

Why can't you split recommender data randomly, and how should you split it? | JScriptiser