Incorporate Concept Drifts In User Models

To assume that preferences of users will never change is not very reasonable. For instance, a user might have a strong affinity for sci-fi movies but at some point he might drift from the genre to sci-fi action and than to action without any sci-fi. It is also likely that some pattern are also temporal, for instance, Christmas movies are not very popular in summer, or stated differently, some movies are likely to have a bias for a specific season or even a particular month. For now, we ignore those temporal aspects and focus on long-term drifts in the preferences. To analyze the impact, we assume that every rating consists of (movie_id, time_stamp, rating).

Let us start with a simple example. A user used a recommender for about a year and during this time, he continually created ratings. We further assume that the model to suggest new movies is trained in batch mode, which means from time to time, the model is trained from scratch again with all available ratings. To reduce the number of parameters to learn, an unsupervised method, like an RBM, is used to learn general pattern from the movie meta data, or phrased differently, a compressed representation is learned.

The longer the system is in use, the more likely concept drifts will happen. They might be gradually from one genre to another, or abrupt for some unknown reason. Therefore, it is plausible to weight ratings differently according to its age. For example, a rating hat was created 8 month ago has a different value than one that was created 8 days ago. In terms of learning, we can say that a wrong prediction of the older rating is not as important as for a fresh one. That means, we should penalize errors according to the age of the record in combination with the chosen loss function.

The idea is that the preferences of a user are likely to drift and that is more important to model the more recent preferences than the older ones. To incorporate this into a model, we need to calculate a normalized “reversed” age for each rating that is close to zero if the rating is old and close to one if it is new. The value can be further scaled to put more emphasis on recent ratings, but also more eight on older ratings.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s