# Google’s Point Kinematics Model of the Marketplace

Continuing my analysis from the last blog.  The term, ‘point kinematics’ is mine — it reminds me of models of nuclear reactors.  In the simplest model of a reactor, the various control parameters are elaborated in a way that makes it clear how ‘inputs’ and ‘outputs’ and various ‘efficiencies’ or ratios all work together.  This is called kinematics because it describes how the reactor operates.  Dynamics describes how the control variables evolve in time.  The simplest kinematic model is a point model if it doesn’t elaborate any structure — where the control rods and fuel rods are located relative to each other.

The Google researchers, Chan, Yuan, Koehler, and Kumar (CYKK) casually employ a rather complex and non-linear model, in their Bayesian analysis, without reference or further explanation.  The model relates organic and paid clicks, in an advertising campaign, to total spend on that campaign, S, and total page impressions received, I:

O.clicks = (I + alpha1)*[kappa1 + (kappa2 - kappa1)*exp(- beta1*S/I)]

P.clicks = beta0*(I+alpha2)*[1 - exp(- beta2*S/I)]

This is the model that the authors estimate using Bayesian techniques, meaning they determine for their data of Clicks, Spend, and Search Impressions, the seven parameters, beta0, beta1, beta2, kappa1, kappa2, and alpha1 and alpha2, are assigned distributions — which means we don’t get told what those distributions look like nor even what the expectation values of those parameters are.  In a normal ‘Frequentist’ (non-Bayesian) model, we would get estimates of the parameters that are a single number, not a distribution.

Be that as it may, there is a good reason we are not told the expected value of the parameters — they would be very revealing of how the Google paid search marketplace scales.  The model estimated succinctly describes the response function (Clicks), as a function of two stimuli — how advertisers spend, and how often users choose to visit Google in a way that causes them to view either an organic or paid listing for that advertiser.  The model appears to be over the space of *all* advertisers, who receive different shares of clicks, impressions, and have different spends.  Let’s see if we can give an interpretation to the functional form of the model.

S/I (spend per search page impression), is an important metric to Google, close enough to RPM (revenue per mille).  Using the physicist’s approach of dimensional analysis, and noting that the argument of an exponential must be dimensionless, the coefficients beta1 and beta2 have dimensions of reciprocal RPM.  Another way of saying this is that we can rewrite beta1*S/I as R/R1, where R is RPM share of that data point (ad campaign), and R1 is a scaling factor, R1 = 1/beta1.  That is, Google’s RPM has a natural scaling length, and that is the meaning if beta1 (and beta2).  It is interesting that there are two different scale lengths, one for paid search and one for organic listings.

The role of the exponentials is to introduce a sigmoidal, or S-shaped, ‘switch’ between the two limiting cases of no ad spend, and infinite (saturated) ad spend.  In the ‘zero spend’ limit, for example, the complex factor in the first equation simplifies the RHS to (I + alpha1)*kappa2 — kappa1 drops out and the exponential has value unity. Paid search clicks goes to zero in this limiting case — of course, since there are no ads to click on!

The simple form of

O.clicks = (I + alpha1)*kappa2

suggests that kappa2 (and kappa1) have dimensions of Clicks per Search Impressions, that is, they are click yields.  In fact kappa2 is the organic click yield in the limit there are no ad impressions, and kappa1 is limiting click yield in which ad impressions are saturated.  kappa2 – kappa1 is the delta (‘drop in click yield due to ads cannibalising organic clicks’) — in the limit of a saturated ad campaign.

Likewise, beta0 in the P.clicks equation is the saturation (high page impression) limit of click yield for clicks on paid search ads.

What about alpha1 and alpha2?  A physicist would probably think of those as virial coefficients in a virial expansion — a correction to a product relation, like the ideal gas law.  The limiting, or ad-saturated, equations are ‘linear’, but adding in an extra degree of freedom, an intercept, likely helps the fit.

In effect, what we have here is a simple two ‘feature’ click prediction model for all of Google advertising. (!)  If you know your spend and search page impressions (and you do), then you can predict your clicks.  Would that it were so easy!  Of course, that is what the Bayesian methods are about — to make it so that those equations have a bit of give, and allow different ad campaigns to ‘be distributed’ the way they do end up being — different.

In fact, there is more information to be wrung from the two equations — more about Google than individual ad campaigns, though perhaps interesting if you have to scale campaigns from the size of a small pilot project to a large spend.  Notice that neither equation presents the response variables (organic and paid search) clicks, as simple linear responses to search page impressions.  Stimulus-Response scaling laws have a long history in neurobiology, where a linear scaling law for light adaptation in the eye was proposed by Weber, and a square root law proposed by de Vries-Rose.  Transition between a non-linear and linear regime of response to a visual stimulus (such as a search page) is very common in nature.

To get a feel for this, let’s explore the ‘low RPM’ limit of the above equation, and temporarily hold ad spend, S, fixed, while varying search page impressions, I, and observing paid ad clicks (we will concentrate on the second equation now).  Expanding the exponential exp ( – beta2*S/I) = (1 – beta2*S/I) we obtain:

P.clicks = beta0*( Imp + alpha2)*(beta2*S/Imp) = beta0*beta2*S*( 1 + alpha2/Imp )

I spelled out Imp her so you could see it.   The product beta0*beta2 now has dimensions of click yield per RPM (!) and when multiplied by Spend gives clicks.  Alpha2 has to have the same dimensions as search page impressions.  If, in addition to our ‘low RPM’ limit that we used to expand the exponential, we take a ‘high traffic’ limit, large Imp, we find the alpha2/Imp term ‘decays away’ at the 1/Impressions power.  That is, it is some sort of ‘finite impressions’ correction that goes way in the ‘big data’ limit of lots of searches.  In that limit, Google says it gets linear scaling of clicks.

That is the half-full way to look at things.  The half-empty way is to walk in the other direction, and say the ‘empirical marginal click yield’ (d P.clicks / d Imp) does not equal the ‘empirical average click yield’ ( P.clicks / Imp).  However, what an economist would call ‘unit elasticity’ and ‘constant return to scale’ (CRTS), is approached, in the *high traffic* limit (for a given spend).

But wait, there’s more!  We have been exploring a ‘linearised’ version of the epxonential.  What happens if we keep the quadratic term in the expansion, exp ( – beta2*S/I) = 1 – beta2*S/I  + 0.5*(beta2*S/I)^2 + … ?  Let’s rewrite the argument as -I2/Imp, where we interpret I2 = beta2*S as a scaling factor for Impressions, rather than beta2 along for revenue per search:

P.clicks = beta0*(Imp + alpha2)*[ I2/Imp - 0.5*(I2/Imp)^2 ]

Here we seen the next order correction to ‘diminishing returns’ implicit in the rather rich set of equations the Google researchers chose.