3
$\begingroup$

Definition of Click Through Rates:

CTR is the number of clicks that your ad receives divided by the number of times your ad is shown expressed as a percentage (clicks รท impressions = CTR).

$\endgroup$
3
$\begingroup$

Logistic regression is very common and efficient.

This will provide you with a probability of click for a given impression. You will likely need additional information for optimization, like keywords or A/B testing.

$\endgroup$
  • $\begingroup$ Thank you for the answer. Yeah, it is one of the methods. And I have found Bandit algorithms perform really nice (better than Logistic and A/B). Please have a look at my answer below :) $\endgroup$ – Dawny33 Nov 16 '15 at 18:01
2
$\begingroup$

There are a group of algorithms (or techniques) called the Bandit algorithms, which deal especially with the problem statement, which is the optimization of Click-through rates of advertisements.

The problem is framed in a setting of multiple bandits with vending machines. There are various strategies which can be implemented:

  • Epsilon-greedy strategy
  • Epsilon-first strategy
  • Epsilon-decreasing strategy
  • Contextual Epsilon strategy

Reference on why Bandit algorithms are better than A/B testing frameworks.

$\endgroup$
2
$\begingroup$

I've tried the following algorithms:

  1. Factorization Machines by Steffen Rendle - Really good algorithm for sparse feature sets, in construct to polynomial-regression. Measures the interaction between features. Model that in addition to learning linear weights on features, learn a vector space for each feature to learn pairing interactions between features in this new space.

  2. Field-Aware Factorization Machines - an improvement of the FM model. Recently, have been used to win two Kaggle's click-through rate prediction competitions.

  3. FTRL - "Follow The (Proximally) Regularized Leader" algorithm - regularized online logistic regression. Equivalent to Online (Stochastic) Gradient Descent when no regularization is used. Very easy to implement.

  4. AdPredictor algorithm by Microsoft The algorithm is based on a probit regression model that maps discrete or real-valued input features to probabilities. It maintains Gaussian beliefs over weights of the model and performs Gaussian online updates derived from approximate message passing.

$\endgroup$
  • $\begingroup$ Thank you. Can you please explain a bit more about them? $\endgroup$ – Dawny33 Dec 9 '15 at 10:15
  • 1
    $\begingroup$ Added information in my comment. Please note that in my opinion any of these algorithm can't really be explained in one line, you'll have to read the articles. $\endgroup$ – Serendipity Dec 9 '15 at 13:57
  • $\begingroup$ In addition, do you have code implementation of a Bandit algorithm? I would give it try on my dataset. $\endgroup$ – Serendipity Dec 9 '15 at 14:01
  • $\begingroup$ Is there an open-source implementation or at least a binary for Microsoft's AdPredictor? $\endgroup$ – Ahmedov Nov 23 '16 at 13:17
  • $\begingroup$ @Ahmedov see: [link] (github.com/ajtulloch/adpredictor) in Python and this: [link] (github.com/mayconbordin/adpredictor-java) in Java. $\endgroup$ – Serendipity Nov 23 '16 at 16:03
2
$\begingroup$

You can see nice algorithms in kaggle competitions about CTR:

Just go to forum of each competition and search for winning solutions ;)

$\endgroup$
1
$\begingroup$

Factorization machines - libfm open source software has been used widely among top companies in recommender applications.

Check it out. It contains various algorithms to play with (e.g. stochastic gradient descent).

I guess your data has like "click/view" label for each pair of user-product or say cookie-advertisement saying "whether user clicked or just viewed product". You can treat this as binary classification with two classes click or just view.

$\endgroup$
  • $\begingroup$ Can you please elaborate a bit more on your answer $\endgroup$ – Dawny33 Nov 18 '15 at 13:54
  • $\begingroup$ edited. Check it out. Hope its useful. $\endgroup$ – p.paliwal Nov 18 '15 at 15:00
  • $\begingroup$ I really didn't apply this till now. (Would do it though). As I have self-answered, using the Bandit algorithms proved very useful. $\endgroup$ – Dawny33 Nov 20 '15 at 12:30

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.