Solved – Dynamic recommender systems

recommender-system

A Recommender System would measure the correlation between ratings of different users and yield recommendations for a given user about the items which may be of interest to him.

However, tastes change over time so old ratings might not reflect current preferences and vice versa. You may once have put "excellent" to a book you would now rate as "not too disgusting" and so on. Moreover, the interests themselves do change as well.

How should recommender systems work in a changing environment?

  1. One option is to cut off the "old" ratings, which may work just fine assuming you correctly define "old" (you can even say ratings never expire and pretend that the problem doesn't exist). But it's not the best possible option: of course tastes evolve, it's a normal life flow, and there's no reason why we cannot use the extra knowledge of once correct past ratings.
  2. Another option is to somehow accommodate this extra knowledge. Thus we could not just find an "instant match" for your current interests but suggest you the things you may like next (as opposed to the things you may like now).

I'm not sure if I'm explaining this well enough. Basically I'm in favor of the second approach and am talking about a Recommender System which would measure the correlations of taste trajectories and yield recommendations which will cater for.. well, let's call it personal growth – because they will be coming from people whose "tastes trajectory" (and not just "tastes snapshot") is similar to yours.

Now the question: I wonder if something similar to the "option 2" already exists and, if it does, I wonder how it works. And if it doesn't exist, you're welcome to discuss how it should work! đŸ™‚

Best Answer

I really recommend the paper Collaborative filtering with temporal dynamics by Yehuda Koren (Netflix Contest !) where this issue is discussed in detail.

I agree with the author, that the first option ("cutting off") is not the way to go. It is true that outdated preferences are ignored that way, but a) some preferences do never change, hence one kills data in order to identify the evergreens and b) some preferences in the past are required in order to understand the preferences of the future (e.g. buy season 1 -> you are likely to buy season 2).

However, Koren does not try to identify such trajectories explicitly (i.e. so that one can predict future change behaviors of a user), since this a very very hard task. You can imagine this by keeping that in mind, that preference "stations" along a trajectory are NOT bound to time, but to the personal development of a user, maybe interrupted or crossed by other trajectories or expressed simply in a different way. E.g. if one moves from hard action movies to action movies, there is no such a thing as a definite "entry soft action movie" or something like that. The user can enter this area at any point (in time and item space). This problems combined with the sparseness of the data makes it almost impossible to create a feasible model here.

Instead, Koren tries to separate the past data into long-term-pattern-signals and daily noise in order to increase the effectiveness of rating predictions. He applies this approach to both SVD and a simple collaborative neigborbood model. Unfortunately, I am not done with the math yet, so I cannot provide more details on this.

Additional note on explicit modelling of the trajectories

The area of Sequence Mining provides methods to do, but the critical point is to find a suitable abstract representation of the items (since using the items itself will not work due to sparseness), e.g. clustering into tags. However, while this approach may provide some insights into the behavior of some users (Data Mining !) it might not be relevant when it comes to the application to all customers (i.e. the mass), so that implicit modelling as suggested by Koren might be better in the end.

Related Question