liveBook · Manning

Exploitation

As explained in Experimentation for Engineers

A decision strategy that selects the alternative currently believed to produce the best observed outcome.

Exploitation selects the alternative currently believed to produce the best observed outcome. In a live experiment, it directs most measurements toward the version with the higher measured business metric, such as click-through rate (CTR), so the system benefits from its current best choice while uncertainty remains. section 3.1.2

Exploitation is not the same as certainty. Early measurements may rank versions incorrectly because their standard errors are large. Multi-armed bandit methods therefore pair exploitation with exploration: they capitalize on the apparent winner while continuing to measure alternatives that might actually be better. section 3.1.2 section 3.4

A practical exploitation policy follows this pattern:

  • Estimate each alternative’s observed performance from its accumulated measurements. section 3.1.2
  • Choose the current leader most of the time, while reserving some probability for random exploration. section 3.1.2
  • Reassess as new measurements reduce uncertainty; a previously worse alternative can become the better-supported choice. section 3.1.2

Epsilon-greedy A/B testing

With epsilon = 0.10, epsilon-greedy chooses the version with the higher observed CTR 90% of the time and randomly chooses A or B 10% of the time. In the cited comparison, it achieved about 0.0067 CTR versus about 0.0058 for an A/B test, while repeated runs reached a mean CTR near 0.0068 against B’s 0.0070. section 3.1.2

Listing 3.6 The epsilon-greedy algorithm
def epsilon_greedy(num_ind, epsilon):
    sum_clicks = 0.0
    num_ads = 0.0
    sum_a = 0.0
    num_a = 0
    sum_b = 0.0
    num_b = 0
    ctr_vs_n = []
    used_b = []
    for _ in range(num_ind):                         #1
        select = "Randomize"
        if np.random.uniform(0,1) < 1-epsilon:       #2
            ctr_a = sum_a/num_a if num_a>0 else 0
            ctr_b = sum_b/num_b if num_b>0 else 0
            if ctr_a > ctr_b:                        #3
                select = "A"
            elif ctr_b > ctr_a:                      #3
                select = "B"
            # else, if they're equal, randomize
            
        if select == "Randomize":                    #4
            if np.random.uniform(0,1) < 0.5:
                select = "A"
            else:
                select = "B"
                
        if select == "A":
            clicked = measure_a()
            sum_a += clicked
            num_a += 1
            used_b.append(False)
        else:
            clicked = measure_b()
            sum_b += clicked
            num_b += 1
            used_b.append(True)
        sum_clicks += clicked
        num_ads += 1
        
        ctr_vs_n.append(sum_clicks / num_ads)
    
    return ctr_vs_n, used_b

The implementation makes the decision rule explicit: compare observed CTRs, exploit the larger value, and randomize when exploring or when estimates tie. section 3.1.2

Bayesian optimization applies the same idea to parameter selection. Pure exploitation chooses the parameter minimizing predicted CPU time; a combined heuristic minimizes CPU time minus model uncertainty, selecting a value around 0.11. Continued iterations can stop changing the selected parameter. section 6.1.5

How Experimentation for Engineers covers it

How deep it goes
Explains uncertainty, probability-based selection, numerical outcomes, and a Bayesian optimization heuristic, but does not develop formal regret derivations.
Examples
Uses A/B click-through rates, epsilon-greedy selection, CPU-time optimization, and a parameter value around 0.11.
What it assumes
Assumes measured performance and competing alternatives, while introducing exploration as the safeguard against premature commitment.
What you can do after
Apply it via epsilon-greedy or Bayesian optimization to favor promising alternatives without abandoning informative measurements.
How it connects
Connects exploitation to exploration, multi-armed bandits, epsilon-greedy, Bayesian optimization, surrogate functions, and experimental optimization.

Also explained in

Compare how 6 books explain exploitation →

Related concepts

This explainer was generated by Manning's knowledge graph from the text of Experimentation for Engineers. The section links point to the parts of the book it draws on.