Notes

Context-Aware Recommendation

The same person wants different things on a Tuesday morning commute than on a Saturday night at home with friends. A recommender that knows only who you are and what exists treats those two requests identically. Context-aware recommendation refuses to.

From two dimensions to three
Classical recommendation predicts a score from a user and an item. Context-aware recommendation adds the situation of the request — time of day, day of week, location, device, weather, who the user is with — as a third input. Three families implement it. Contextual pre-filtering narrows the interaction data to the records matching the current context and runs an ordinary model on that slice. Contextual post-filtering ranks without context and then adjusts the list. Contextual modelling puts the context variables inside the model itself, as extra fields in a factorisation machine or a third mode in a tensor factorisation.

What changes in practice

  • Short clips on a phone at eight in the morning and a feature film on a television at nine at night are the same user and genuinely different inventory.
  • In food delivery, the ranking that works at lunch is wrong at midnight, and one global model averages the two into something that suits neither.
  • Context makes data sparser, because every interaction now carries one more field — which is the trade-off the three families differ on.

Why it matters
Without it, preference that shifts by situation arrives at the model as unexplained noise and gets averaged away. The result is a recommender that is predictably wrong at predictable moments — holiday films in February, commute-length clips on a lazy Sunday — and whose offline metrics never reveal why.

Context-aware recommendation conditions the prediction on the situation of the request — time, location, device, companion — instead of on user and item alone. It is implemented by pre-filtering the interaction data to the current context, post-filtering a context-free ranking, or modelling context inside the model, as tensor factorisation does. It captures preference that shifts by situation, which a single global model averages away into noise.

What you want depends on when and where you are asking. The film you would happily start at nine on a Friday is not the one you would open on a crowded bus on Monday morning — and you are the same person in both.

Context-aware recommendation is software taking that seriously. Alongside who you are and what is available, it uses the situation: the time, the day, the device in your hand, whether you seem to be watching alone. The point is not to know more about you. It is to notice that one person has several different moods, and to stop blending them into a single bland guess that fits none of them.