Let's say I am building a recommender system where items change through time. We suppose that each transaction is composed of :

  • an item $i$ in list of items $(i_1, i_2, i_3, .., i_m)$.
  • a user $u$ in list of users $(u_1, u_2, u_3, ..., u_n)$.
  • a date $t$ in list of dates $(t_1, t_2, ... t_k)$.

We suppose that items have underlying features that change over time.For example, If we consider retail products, underlying features could be :

  • The discount level that is applied on the item when the customer has purchased the transaction (5%, 10%, 20%, 30%, ...).

An other example, if we consider financial stocks, underlying features that change over time could be :

  • The stock situation at time of the transaction (underpriced or overpriced).
  • The stock's central bank politics at time of the transaction (low interest rates, medium interest rates, high interest rates).

We suppose that these underlying features have a strong impact on users. It completly drives their decisions to buy or not an object. If we consider two items $i_1$ and $i_2$, at time $t_1$, a given user $u_1$ could prefer $i_1$ over $i_2$ because $i_1$'s underlying features are more interesting than $i_2$'s. If we consider a different time, maybe $u_1$ could be more interested in $i_2$ than $i_1$.

My question is : how to take into account underlying features that change over time in recommender systems such as user-user collaborative filtering, SVD, ALS... ?.


In the case of collaborative filtering where everything is done based on a rating matrix, then a change in the product's features should first be reflected into the new ratings of your users and therefore to the final recommendation.

This is done in the same way a user changes its preferences in time. usually two approaches are followed, creating time aware models (timeSVD++) where the rating drifts is modeled in time or through a time decaying function on the ratings. A good resource on the first opnes can be found here

If you are using a classification approach i.e if a user will use a product, then this should not be an issue.


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.