I am trying to identify a ML technique to score products based on the number of times the product was "viewed", "clicked" and knowing the "cost per click" for each product. Given the product ID and category ID, how can I proceed to score each product?

I am sure I have to coarse classify them (some have no clicks, but views, some have both, some have none)? Since there are 1000s of products... Any tip?

I guess the technique is also used in e-commerce to design recommender systems, like based on popularity of a product. Any one can shed some light?

*Edit: Though the suggestions here are interesting, still I couldn't figure out best way to do this.

  • $\begingroup$ If want to classify them into some classes, what are you expecting from that class/cluster? Is it popularity? If not, what is it ? $\endgroup$ Apr 12 '17 at 8:00
  • $\begingroup$ The idea is to measure performance of the products, could be in online advertising and provide a score for the products. $\endgroup$ Apr 12 '17 at 8:07
  • $\begingroup$ Why wouldn't performance just be measured by revenue? Number of clicks multiplied by cost per click in a given timeframe? $\endgroup$
    – Hobbes
    Apr 12 '17 at 15:25
  • $\begingroup$ So you do suggest that I do some feature engineering for the cost per click and number of clicks and score the products accordingly? $\endgroup$ Apr 13 '17 at 7:35
  • $\begingroup$ Appropriate feature engineering can often times surpass neural nets. It may take more time however to find the right engineered feature. I would definitely recommend thoroughly exploring feat. engineering before moving to a more complicated methods. $\endgroup$
    – Hobbes
    Apr 13 '17 at 21:24

So I am assuming you just want to be pushed in the right direction. There are 2 different ways you can go about this.

Netflix up until very recently did all its recommendations using classical algorithms and setups, see paper on their architecture.

For this type of light recommendation problem I would recommend using something from PredictionIO. It is very versatile and can be used to classify using a variety of inputs. It's also not very hard to learn.

You can also solve this problem using neural nets, it can be viewed as a recommendation by classification. Deep learning is all the jazz now and you can utilize these breakthroughs in the recommender space.

Youtube is the big one when it comes to deep neural nets applied to recommendations, see this paper.

They split their system into 2 separate neural net models. One for candidate generation, and then another for producing the actual recommendations.

Spotify also did some awesome stuff applying Convolutional Neural Nets to the actual audio streams with some equally interesting results: http://benanne.github.io/2014/08/05/spotify-cnns.html

As far as implementing something like that goes I would look for examples and build in python using either tensorflow or theano and keras. It wouldn't have to be too 'deep'.

Hope that helped!

  • $\begingroup$ Hi hisairmessag3, certainly it helps. I will have a look in more details at these inputs. Thanks a lot. $\endgroup$ Apr 13 '17 at 7:28

What you are looking for is called Collaborative Filtering / Matrix completion. See my blog post for a short introduction.


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.