In the scenario where we recommend movies that a user has not yet watched based on how he/she rated previously watched movies, it seems that:

  1. A movie released 5 years ago is [possibly] as good a candidate for recommendation as a movie released 5 hours ago.
  2. The amount of movies released over the course of a week is typically rather small.

How could those two things be address in a recommender system in the context of news articles, where:

  1. An article published 5 days ago is likely irrelevant (too old).
  2. There are dozens or hundreds of new articles published every day.

For example, almost nobody cares to read an article about the weather two or three days ago.

How do you train a model (and keep it up to date) where the data has such a short usable live span?

  • 2
    $\begingroup$ Include latency as a feature $\endgroup$ – AdamO Jan 22 '18 at 15:54
  • $\begingroup$ But wouldn't latency will change constantly for the same article? $\endgroup$ – rodrigo-silveira Jan 22 '18 at 16:36
  • 2
    $\begingroup$ Yes. The model depends on time. Is that not a desired function? $\endgroup$ – AdamO Jan 22 '18 at 16:39

I see it is not a matter of regularly training your model on a daily basis. It seems that what it is required is to firstly build a classifier for news article; business, weather, sport, technology (etc.). This is necessarily required unless it is applied already

For the time factor, stated in your question, you can add a feature to the model whether the classification of a news article is affected by this factor. Then, a recommender system can be built based on matching demographics of users with the views on news articles (already classified by the news classifier).

In regards to the "dozens or hundreds of news articles published every day", this can be rich (and free) sources for data for your model, generally speaking, which it does not require you to train your model every day. That is, building a predictive model differs from building a descriptive model (whether for real-time analysis or not). By a predictive model, it can be predicted (or forecasted) what will happen in the future. Therefore, we train data recorded in the past to be used in predicting what may happen. However, such a model could require you update your model bi-weekly or monthly as a result of the huge volume of data increases every day.

| cite | improve this answer | |
  • $\begingroup$ The time factor, in my answer here, could be utilized for information retrieval purposes. That is, it should not be included as a feature for the ML model training, rather, it could help what article to show (or recommend). For instance, weather articles should not be recommended to viewers after a specific period of time. This period can be extracted using classical statistical methods based on how long (first and last views) an article had been read (or seen) by users. $\endgroup$ – Rami Azmi Apr 30 '19 at 11:47
  • $\begingroup$ Just to let you know that this question popped to me while I was doing research about recommender systems. Although this question was asked a long time ago, I can see that it is still a valid and good question to have it discussed. $\endgroup$ – Rami Azmi Apr 30 '19 at 11:52

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.