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! :)


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.

| cite | improve this answer | |
  • $\begingroup$ Yehuda paper is very close to what I was talking about, although indeed he doesn't talk about "taste trajectories". Perhaps you're correct and the "taste change rate" is not fixed for any person.. Thanks for the link! $\endgroup$ – andreister Feb 20 '12 at 13:05
  • $\begingroup$ Yeah, this is the first thing I thought of. $\endgroup$ – Stumpy Joe Pete Sep 18 '12 at 5:14

I am not aware of a working system, but would not be surprised if Amazon, NetFlix or someone has such a system. Even the Google search engine might have a similar type of system.

I thought about this while taking Dr. Ng's course last semester. The approach I first thought would be optimal would be to add a weighting factor based on age. The more current a piece of data is, the more heavily it would be weighted. This approach would be relatively simple and computationally inexpensive to implement.

However, after thinking about this approach more carefully I think it has serious flaws for many applications. Personally, I will often follow a genre or show for some time, tire of it, move on to something else, but return to the original genre later. This burnout, rekindling cycle does appear in society as well.

Therefore, I am leaning towards a slightly more complicated system. Data would need to be divided into two sets; current data -- the threshold would need to vary depending on application plus length of the individual's interactions -- which would be weighted more heavily and "historical" data which would be rated lower with slow decline in values over time. Second, a factor would be included to try to detect "turn-off" where a heavy interest or involvement suddenly disappears. The "current" data which is similarly classified would be reclassified as if it were historical.

None of this approach has any rigor or validation, but I believe it would be worth constructing some trials of the hypothesis.

| cite | improve this answer | |
  • $\begingroup$ Your idea of lower weights for old data is similar to "option 1" in fact. Instead, I'm saying that the whole trajectory of the changing taste is important - ie, if yesterday you liked genre A and today you like genre B, the system would look at other people with same "A-B-??" taste moves and would suggest that tomorrow you would like genre C. $\endgroup$ – andreister Feb 16 '12 at 5:55

As I see it, a modified version of collaborative filtering can work. However, you will need to keep a timestamp on each ranking, and pose a penalty while calculating the weight of a rank that is older.

| cite | improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.