Skip to main content

Context-Aware Models

Beyond who you are and what you've liked, context-aware systems also ask when, where, how, and with whom you interact.

Not everything is always and under every circumstance to be recommended. But often times the outside world changes on what is best recommended. Amazon might not recommend you sunglasses during the winter, but during the summer they would.

These types of models which can interact with context are called Context Aware Recommendation Systems (CARS for short). And context can include:

  • Physical / Environmental (Time, Location, Weather)
  • User Related (Age, language, Mood, Device type)
  • Social (Who your friends and family are)
  • Task (What you're trying to achieve, e.g. If I buy a desk, I might also want to buy a chair)

There are many ways of gathering this information, some of them are not pretty and can be very aggresive, such as getting your location, gathering your browser history or other privacy intruding behaivior. However others can be as simple as getting the time of day or weather via API.

Algorithmic paradigms

There are 3 main ways of adding this context to your models:

  1. Pre-filtering (Filter the training data to only those interactions matching the current context)
  2. Post-filtering (Re-rank or filter out items that don't match the user's context)
  3. Contextual-Modeling (Incorporate context directly into the model, treating recommendation as a function of (User, Item, Context) rather than (User, Item) alone)