Budget

Optimization

in

Search-Based

Advertising

Auctions

Jon

Feldman

Google,

Inc.

New

York,

NY

jonfeld@google.com

S.

Muthukrishnan

Google,

Inc.

New

York,

NY

muthu@google.com

Martin

P´al

Google,

Inc.

New

York,

NY

mpal@google.com

Cliff

Stein

Department

of

IEOR

Columbia

University

cliff@ieor.columbia.edu

ABSTRACT

Internet

search

companies

sell

advertisement

slots

based

on

users"

search

queries

via

an

auction.

While

there

has

been

previous

work

on

the

auction

process

and

its

game-theoretic

aspects,

most

of

it

focuses

on

the

Internet

company.

In

this

work,

we

focus

on

the

advertisers,

who

must

solve

a

complex

optimization

problem

to

decide

how

to

place

bids

on

keywords

to

maximize

their

return

(the

number

of

user

clicks

on

their

ads)

for

a

given

budget.

We

model

the

entire

process

and

study

this

budget

optimization

problem.

While

most

variants

are

NP-hard,

we

show,

perhaps

surprisingly,

that

simply

randomizing

between

two

uniform

strategies

that

bid

equally

on

all

the

keywords

works

well.

More

precisely,

this

strategy

gets

at

least

a

fraction

of

the

maximum

clicks

possible.

As

our

preliminary

experiments

show,

such

uniform

strategies

are

likely

to

be

practical.

We

also

present

inapproximability

results,

and

optimal

algorithms

for

variants

of

the

budget

optimization

problem.

Categories

and

Subject

Descriptors

[Theory

of

Computation]:

Analysis

of

Algorithms

and

Problem

Complexity;

[Computer

Applications]:

Social

and

Behavioral

Sciences

-Economics

General

Terms

Algorithms,

Economics,

Theory.

INTRODUCTION

Online

search

is

now

ubiquitous

and

Internet

search

companies

such

as

Google,

Yahoo!

and

MSN

let

companies

and

individuals

advertise

based

on

search

queries

posed

by

users.

Conventional

media

outlets,

such

as

TV

stations

or

newspapers,

price

their

ad

slots

individually,

and

the

advertisers

buy

the

ones

they

can

afford.

In

contrast,

Internet

search

companies

find

it

difficult

to

set

a

price

explicitly

for

the

advertisements

they

place

in

response

to

user

queries.

This

difficulty

arises

because

supply

(and

demand)

varies

widely

and

unpredictably

across

the

user

queries,

and

they

must

price

slots

for

billions

of

such

queries

in

real

time.

Thus,

they

rely

on

the

market

to

determine

suitable

prices

by

using

auctions

amongst

the

advertisers.

It

is

a

challenging

problem

to

set

up

the

auction

in

order

to

effect

a

stable

market

in

which

all

the

parties

(the

advertisers,

users

as

well

as

the

Internet

search

company)

are

adequately

satisfied.

Recently

there

has

been

systematic

study

of

the

issues

involved

in

the

game

theory

of

the

auctions

revenue

maximization

etc.

The

perspective

in

this

paper

is

not

of

the

Internet

search

company

that

displays

the

advertisements,

but

rather

of

the

advertisers.

The

challenge

from

an

advertiser"s

point

of

view

is

to

understand

and

interact

with

the

auction

mechanism.

The

advertiser

determines

a

set

of

keywords

of

their

interest

and

then

must

create

ads,

set

the

bids

for

each

keyword,

and

provide

a

total

(often

daily)

budget.

When

a

user

poses

a

search

query,

the

Internet

search

company

determines

the

advertisers

whose

keywords

match

the

query

and

who

still

have

budget

left

over,

runs

an

auction

amongst

them,

and

presents

the

set

of

ads

corresponding

to

the

advertisers

who

win

the

auction.

The

advertiser

whose

ad

appears

pays

the

Internet

search

company

if

the

user

clicks

on

the

ad.

The

focus

in

this

paper

is

on

how

the

advertisers

bid.

For

the

particular

choice

of

keywords

of

their

an

advertiser

wants

to

optimize

the

overall

effect

of

the

advertising

campaign.

While

the

effect

of

an

ad

campaign

in

any

medium

is

a

complicated

phenomenon

to

quantify,

one

commonly

accepted

(and

easily

quantified)

notion

in

searchbased

advertising

on

the

Internet

is

to

maximize

the

number

of

clicks.

The

Internet

search

companies

are

supportive

The

choice

of

keywords

is

related

to

the

domain-knowledge

of

the

advertiser,

user

behavior

and

strategic

considerations.

Internet

search

companies

provide

the

advertisers

with

summaries

of

the

query

traffic

which

is

useful

for

them

to

optimize

their

keyword

choices

interactively.

We

do

not

directly

address

the

choice

of

keywords

in

this

paper,

which

is

addressed

elsewhere

wards

advertisers

and

provide

statistics

about

the

history

of

click

volumes

and

prediction

about

the

future

performance

of

various

keywords.

Still,

this

is

a

complex

problem

for

the

following

reasons

(among

others):

Individual

keywords

have

significantly

different

characteristics

from

each

other;

e.g.,

while

fishing

is

a

broad

keyword

that

matches

many

user

queries

and

has

many

competing

advertisers,

humane

fishing

bait

is

a

niche

keyword

that

matches

only

a

few

queries,

but

might

have

less

competition.

There

are

complex

interactions

between

keywords

because

a

user

query

may

match

two

or

more

keywords,

since

the

advertiser

is

trying

to

cover

all

the

possible

keywords

in

some

domain.

In

effect

the

advertiser

ends

up

competing

with

herself.

As

a

result,

the

advertisers

face

a

challenging

optimization

problem.

The

focus

of

this

paper

is

to

solve

this

optimization

problem.

The

Budget

Optimization

Problem

We

present

a

short

discussion

and

formulation

of

the

optimization

problem

faced

by

advertisers;

a

more

detailed

description

is

in

Section

A

given

advertiser

sees

the

state

of

the

auctions

for

searchbased

advertising

as

follows.

There

is

a

set

K

of

keywords

of

interest;

in

practice,

even

small

advertisers

typically

have

a

large

set

K.

There

is

a

set

Q

of

queries

posed

by

the

users.

For

each

query

q

Q,

there

are

functions

giving

the

clicksq(b)

and

costq(b)

that

result

from

bidding

a

particular

amount

b

in

the

auction

for

that

query,

which

we

model

more

formally

in

the

next

section.

There

is

a

bipartite

graph

G

on

the

two

vertex

sets

representing

K

and

Q.

For

any

query

q

Q,

the

neighbors

of

q

in

K

are

the

keywords

that

are

said

to

match

the

query

The

budget

optimization

problem

is

as

follows.

Given

graph

G

together

with

the

functions

clicksq(·)

and

costq(·)

on

the

queries,

as

well

as

a

budget

U,

determine

the

bids

bk

for

each

keyword

k

K

such

that

P

q

clicksq(bq)

is

maximized

subject

to

P

q

costq(bq)

U,

where

the

effective

bid

bq

on

a

query

is

some

function

of

the

keyword

bids

in

the

neighborhood

of

q.

While

we

can

cast

this

problem

as

a

traditional

optimization

problem,

there

are

different

challenges

in

practice

depending

on

the

advertiser"s

access

to

the

query

and

graph

information,

and

indeed

the

reliability

of

this

information

(e.g.,

it

could

be

based

on

unstable

historical

data).

Thus

it

is

important

to

find

solutions

to

this

problem

that

not

only

get

many

clicks,

but

are

also

simple,

robust

and

less

reliant

on

the

information.

In

this

paper

we

define

the

notion

of

a

uniform

strategy

which

is

essentially

a

strategy

that

bids

uniformly

on

all

keywords.

Since

this

type

of

strategy

obviates

the

need

to

know

anything

about

the

particulars

of

the

graph,

and

effectively

aggregates

the

click

and

cost

functions

on

the

queries,

it

is

quite

robust,

and

thus

desirable

in

practice.

What

is

surprising

is

that

uniform

strategy

actually

performs

well,

which

we

will

prove.

The

particulars

of

the

matching

rule

are

determined

by

the

Internet

search

company;

here

we

treat

the

function

as

arbitrary.

Our

Main

Results

and

Technical

Overview

We

present

positive

and

negative

results

for

the

budget

optimization

problem.

In

particular,

we

show:

Nearly

all

formulations

of

the

problem

are

NP-Hard.

In

cases

slightly

more

general

than

the

formulation

above,

where

the

clicks

have

weights,

the

problem

is

inapproximable

better

than

a

factor

of

e

unless

P=NP.

We

give

a

algorithm

for

the

budget

optimization

problem.

The

strategy

found

by

the

algorithm

is

a

two-bid

uniform

strategy,

which

means

that

it

randomizes

between

bidding

some

value

on

all

keywords,

and

bidding

some

other

value

on

all

keywords

until

the

budget

is

We

show

that

this

approximation

ratio

is

tight

for

uniform

strategies.

We

also

give

a

algorithm

that

offers

a

single-bid

uniform

strategy,

only

using

one

value

(This

is

tight

for

single-bid

uniform

strategies.)

These

strategies

can

be

computed

in

time

nearly

linear

in

|Q|

|K|,

the

input

size.

Uniform

strategies

may

appear

to

be

naive

in

first

consideration

because

the

keywords

vary

significantly

in

their

click

and

cost

functions,

and

there

may

be

complex

interaction

between

them

when

multiple

keywords

are

relevant

to

a

query.

After

all,

the

optimum

can

configure

arbitrary

bids

on

each

of

the

keywords.

Even

for

the

simple

case

when

the

graph

is

a

matching,

the

optimal

algorithm

involves

placing

different

bids

on

different

keywords

via

a

knapsack-like

packing

(Section

So,

it

might

be

surprising

that

a

simple

two-bid

uniform

strategy

is

or

more

effective

compared

to

the

optimum.

In

fact,

our

proof

is

stronger,

showing

that

this

strategy

is

effective

against

a

strictly

more

powerful

adversary

who

can

bid

independently

on

the

individual

queries,

i.e.,

not

be

constrained

by

the

interaction

imposed

by

the

graph

G.

Our

proof

of

the

approximation

ratio

relies

on

an

adversarial

analysis.

We

define

a

factor-revealing

LP

(Section

where

primal

solutions

correspond

to

possible

instances,

and

dual

solutions

correspond

to

distributions

over

bidding

strategies.

By

deriving

the

optimal

solution

to

this

LP,

we

obtain

both

the

proof

of

the

approximation

ratio,

and

a

tight

worst-case

instance.

We

have

conducted

simulations

using

real

auction

data

from

Google.

The

results

of

these

simulations,

which

are

highlighted

at

the

end

of

Section

suggest

that

uniform

bidding

strategies

could

be

useful

in

practice.

However,

important

questions

remain

about

(among

other

things)

alternate

bidding

goals,

on-line

or

stochastic

bidding

models

and

game-theoretic

concerns

which

we

briefly

discuss

in

Section

MODELING

A

KEYWORD

AUCTION

We

describe

an

auction

from

an

advertiser"s

point

of

view.

An

advertiser

bids

on

a

keyword,

which

we

can

think

of

as

a

word

or

set

of

words.

Users

of

the

search

engine

submit

queries.

If

the

query

matches

a

keyword

that

has

been

bid

on

by

an

advertiser,

then

the

advertiser

is

entered

into

an

auction

for

the

available

ad

slots

on

the

results

page.

What

constitutes

a

match

varies

depending

on

the

search

engine.

This

type

of

strategy

can

also

be

interpreted

as

bidding

one

value

(on

all

keywords)

for

part

of

the

day,

and

a

different

value

for

the

rest

of

the

day.

An

advertiser

makes

a

single

bid

for

a

keyword

that

remains

in

effect

for

a

period

of

time,

say

one

day.

The

keyword

could

match

many

different

user

queries

throughout

the

day.

Each

user

query

might

have

a

different

set

of

advertisers

competing

for

clicks.

The

advertiser

could

also

bid

different

amounts

on

multiple

keywords,

each

matching

a

(possibly

overlapping)

set

of

user

queries.

The

ultimate

goal

of

an

advertiser

is

to

maximize

traffic

to

their

website,

given

a

certain

advertising

budget.

We

now

formalize

a

model

of

keyword

bidding

and

define

an

optimization

problem

that

captures

this

goal.

Landscapes

We

begin

by

considering

the

case

of

a

single

keyword

that

matches

a

single

user

query.

In

this

section

we

define

the

notion

of

a

query

landscape

that

describes

the

relationship

between

the

advertiser"s

bid

and

what

will

happen

on

this

query

as

a

result

of

this

This

definition

will

be

central

to

the

discussion

as

we

continue

to

more

general

cases.

Positions,

bids

and

click-through

rate

The

search

results

page

for

a

query

contains

p

possible

positions

in

which

our

ad

can

appear.

We

denote

the

highest

(most

favorable)

position

by

and

lowest

by

p.

Associated

with

each

position

i

is

a

value

α[i]

that

denotes

the

click-through

rate

(ctr)

of

the

ad

in

position

i.

The

ctr

is

a

measure

of

how

likely

it

is

that

our

ad

will

receive

a

click

if

placed

in

position

i.

The

ctr

can

be

measured

empirically

using

past

history.

We

assume

throughout

this

work

that

that

α[i]

α[j]

if

j

i,

that

is,

higher

positions

receive

at

least

as

many

clicks

as

lower

positions.

In

order

to

place

an

ad

on

this

page,

we

must

enter

the

auction

that

is

carried

out

among

all

advertisers

that

have

submitted

a

bid

on

a

keyword

that

matches

the

user"s

query.

We

will

refer

to

such

an

auction

as

a

query

auction,

to

emphasize

that

there

is

an

auction

for

each

query

rather

than

for

each

keyword.

We

assume

that

the

auction

is

a

generalized

second

price

(GSP)

auction

the

advertisers

are

ranked

in

decreasing

order

of

bid,

and

each

advertiser

is

assigned

a

price

equal

to

the

amount

bid

by

the

advertiser

below

them

in

the

In

sponsored

search

auctions,

this

advertiser

pays

only

if

the

user

actually

clicks

on

the

ad.

Let

b[p])

denote

the

bids

of

the

top

p

advertisers

in

this

query

auction.

For

notational

convenience,

we

assume

that

and

b[p]

α[p]

Since

the

auction

is

a

generalized

second

price

auction,

higher

bids

win

higher

positions;

i.e.

b[i]

b[i

Suppose

that

we

bid

b

on

some

keyword

that

matches

the

user"s

query,

then

our

position

is

defined

by

the

largest

b[i]

that

is

at

most

b,

that

is,

pos(b)

arg

max

i

(b[i]

b[i]

b).

Since

we

only

pay

if

the

user

clicks

(and

that

happens

with

probability

α[i]),

our

expected

cost

for

winning

position

i

Google,

Yahoo!

and

MSN

all

use

some

variant

of

the

GSP

auction.

In

the

Google

auction,

the

advertisers"

bids

are

multiplied

by

a

quality

score

before

they

are

ranked;

our

results

carry

over

to

this

case

as

well,

which

we

omit

from

this

paper

for

clarity.

Also,

other

auctions

besides

GSP

have

been

considered;

e.g.,

the

Vickrey

Clark

Groves

(VCG)

auction

Each

auction

mechanism

will

result

in

a

different

sort

of

optimization

problem.

In

the

conclusion

we

point

out

that

for

the

VCG

auction,

the

bidding

optimization

problem

becomes

quite

easy.

would

be

cost[i]

α[i]

b[i],

where

i

pos(b).

We

use

costq(b)

and

clicksq(b)

to

denote

the

expected

cost

and

clicks

that

result

from

having

a

bid

b

that

qualifies

for

a

query

auction

q,

and

thus

costq(b)

α[i]

b[i]

where

i

pos(b),

clicksq(b)

α[i]

where

i

pos(b).

The

following

observations

about

cost

and

clicks

follow

immediately

from

the

definitions

and

equations

and

We

use

R+

to

denote

the

nonnegative

reals.

Observation

For

b

R+,

(costq(b),

clicksq(b))

can

only

take

on

one

of

a

finite

set

of

values

Vq

(cost[p],

α[p])}.

Both

costq(b)

and

clicksq(b)

are

non-decreasing

functions

of

b.

Also,

cost-per-click

(cpc)

costq(b)/clicksq(b)

is

non-decreasing

in

b.

costq(b)/clicksq(b)

b.

For

bids

b[p])

that

correspond

to

the

bids

of

other

advertisers,

we

have:

costq(b[i])/clicksq(b[i])

b[i],

i

[p].

When

the

context

is

clear,

we

drop

the

subscript

q.

Query

Landscapes

We

can

summarize

the

data

contained

in

the

functions

cost(b)

and

clicks(b)

as

a

collection

of

points

in

a

plot

of

cost

vs.

clicks,

which

we

refer

to

as

a

landscape.

For

example,

for

a

query

with

four

slots,

a

landscape

might

look

like

Table

bid

range

cost

per

click

cost

clicks

Table

A

landscape

for

a

query

It

is

convenient

to

represent

this

data

graphically

as

in

Figure

(ignore

the

dashed

line

for

now).

Here

we

graph

clicks

as

a

function

of

cost.

Observe

that

in

this

graph,

the

cpc

(cost(b)/clicks(b))

of

each

point

is

the

reciprocal

of

the

slope

of

the

line

from

the

origin

to

the

point.

Since

cost(b),

clicks(b)

and

cost(b)/clicks(b)

are

non-decreasing,

the

slope

of

the

line

from

the

origin

to

successive

points

on

the

plot

decreases.

This

condition

is

slightly

weaker

than

concavity.

Suppose

we

would

like

to

solve

the

budget

optimization

problem

for

a

single

query

As

we

increase

our

bid

from

zero,

our

cost

increases

and

our

expected

number

of

clicks

increases,

and

so

we

simply

submit

the

highest

bid

such

that

we

remain

within

our

budget.

One

problem

we

see

right

away

is

that

since

there

are

only

a

finite

set

of

points

in

this

landscape,

we

may

not

be

able

to

target

arbitrary

budgets

efficiently.

Suppose

in

the

example

from

Table

and

Figure

that

we

had

a

budget

Of

course

it

is

a

bit

unrealistic

to

imagine

that

an

advertiser

would

have

to

worry

about

a

budget

if

only

one

user

query

was

being

considered;

however

one

could

imagine

multiple

instances

of

the

same

query

and

the

problem

scales.

Clicks

Cost

Figure

A

bid

landscape.

of

Bidding

between

and

uses

only

and

so

we

are

under-spending.

Bidding

more

than

is

not

an

option,

since

we

would

then

incur

a

cost

of

and

overspend

our

budget.

Randomized

strategies

To

rectify

this

problem

and

better

utilize

our

available

budget,

we

allow

randomized

bidding

strategies.

Let

B

be

a

distribution

on

bids

b

R+.

Now

we

define

cost(B)

Eb∼B[cost(b)]

and

clicks(B)

Eb∼B[clicks(b)].

Graphically,

the

possible

values

of

(cost(B),

clicks(B))

lie

in

the

convex

hull

of

the

landscape

points.

This

is

represented

in

Figure

by

the

dashed

line.

To

find

a

bid

distribution

B

that

maximizes

clicks

subject

to

a

budget,

we

simply

draw

a

vertical

line

on

the

plot

where

the

cost

is

equal

to

the

budget,

and

find

the

highest

point

on

this

line

in

the

convex

hull.

This

point

will

always

be

the

convex

combination

of

at

most

two

original

landscape

points

which

themselves

lie

on

the

convex

hull.

Thus,

given

the

point

on

the

convex

hull,

it

is

easy

to

compute

a

distribution

on

two

bids

which

led

to

this

point.

Summarizing,

Lemma

If

an

advertiser

is

bidding

on

one

keyword,

subject

to

a

budget

U,

then

the

optimal

strategy

is

to

pick

a

convex

combination

of

(at

most)

two

bids

which

are

at

the

endpoints

of

the

line

on

the

convex

hull

at

the

highest

point

for

cost

U.

There

is

one

subtlety

in

this

formulation.

Given

any

bidding

strategy,

randomized

or

otherwise,

the

resulting

cost

is

itself

a

random

variable

representing

the

expected

cost.

Thus

if

our

budget

constraint

is

a

hard

budget,

we

have

to

deal

with

the

difficulties

that

arise

if

our

strategy

would

be

over

budget.

Therefore,

we

think

of

our

budget

constraint

as

soft,

that

is,

we

only

require

that

our

expected

cost

be

less

than

the

budget.

In

practice,

the

budget

is

often

an

average

daily

budget,

and

thus

we

don"t

worry

if

we

exceed

it

one

day,

as

long

as

we

are

meeting

the

budget

in

expectation.

Further,

either

the

advertiser

or

the

search

engine

(possibly

both),

monitor

the

cost

incurred

over

the

day;

hence,

the

advertiser"s

bid

can

be

changed

to

zero

for

part

of

the

day,

so

that

the

budget

is

not

Thus

in

the

See

for

example.

der

of

this

paper,

we

will

formulate

a

budget

constraint

that

only

needs

to

be

respected

in

expectation.

Multiple

Queries:

a

Knapsack

Problem

As

a

warm-up,

we

will

consider

next

the

case

when

we

have

a

set

of

queries,

each

which

its

own

landscape.

We

want

to

bid

on

each

query

independently

subject

to

our

budget:

the

resulting

optimization

problem

is

a

small

generalization

of

the

fractional

knapsack

problem,

and

was

solved

in

The

first

step

of

the

algorithm

is

to

take

the

convex

hull

of

each

landscape,

as

in

Figure

and

remove

any

landscape

points

not

on

the

convex

hull.

Each

piecewise

linear

section

of

the

curve

represents

the

incremental

number

of

clicks

and

cost

incurred

by

moving

one"s

bid

from

one

particular

value

to

another.

We

regard

these

pieces

as

items

in

an

instance

of

fractional

knapsack

with

value

equal

to

the

incremental

number

of

clicks

and

size

equal

to

the

incremental

cost.

More

precisely,

for

each

piece

connecting

two

consecutive

bids

b

and

b

on

the

convex

hull,

we

create

a

knapsack

item

with

value

[clicks(b

clicks(b

and

size

[cost(b

cost(b

We

then

emulate

the

greedy

algorithm

for

knapsack,

sorting

by

value/size

(cost-per-click),

and

choosing

greedily

until

the

budget

is

exhausted.

In

this

reduction

to

knapsack

we

have

ignored

the

fact

that

some

of

the

pieces

come

from

the

same

landscape

and

cannot

be

treated

independently.

However,

since

each

curve

is

concave,

the

pieces

that

come

from

a

particular

query

curve

are

in

increasing

order

of

cost-per-click;

thus

from

each

landscape

we

have

chosen

for

our

knapsack

a

set

of

pieces

that

form

a

prefix

of

the

curve.

Keyword

Interaction

In

reality,

search

advertisers

can

bid

on

a

large

set

of

keywords,

each

of

them

qualifying

for

a

different

(possibly

overlapping)

set

of

queries,

but

most

search

engines

do

not

allow

an

advertiser

to

appear

twice

in

the

same

search

results

Thus,

if

an

advertiser

has

a

bid

on

two

different

keywords

that

match

the

same

query,

this

conflict

must

be

resolved

somehow.

For

example,

if

an

advertiser

has

a

bid

out

on

the

keywords

shoes

and

high-heel,

then

if

a

user

issues

the

query

high-heel

shoes,

it

will

match

on

two

different

keywords.

The

search

engine

specifies,

in

advance,

a

rule

for

resolution

based

on

the

query

the

keyword

and

the

bid.

A

natural

rule

is

to

take

the

keyword

with

the

highest

bid,

which

we

adopt

here,

but

our

results

apply

to

other

resolution

rules.

We

model

the

keyword

interaction

problem

using

an

undirected

bipartite

graph

G

(K

Q,

E)

where

K

is

a

set

of

keywords

and

Q

is

a

set

of

queries.

Each

q

Q

has

an

associated

landscape,

as

defined

by

costq(b)

and

clicksq(b).

An

edge

(k,

q)

E

means

that

keyword

k

matches

query

q.

The

advertiser

can

control

their

individual

keyword

bid

vector

a

R

|K|

specifying

a

bid

ak

for

each

keyword

k

K.

(For

now,

we

do

not

consider

randomized

bids,

but

we

will

introduce

that

shortly.)

Given

a

particular

bid

vector

a

on

the

keywords,

we

use

the

resolution

rule

of

taking

the

maximum

to

define

the

effective

bid

on

query

q

as

bq(a)

max

k:(k,q)∈E

ak.

By

submitting

a

bid

vector

a,

the

advertiser

receives

some

See

for

example.

number

of

clicks

and

pays

some

cost

on

each

keyword.

We

use

the

term

spend

to

denote

the

total

cost;

similarly,

we

use

the

term

traffic

to

denote

the

total

number

of

clicks:

spend(a)=

X

q∈Q

costq(bq(a));

traffic(a)=

X

q∈Q

clicksq(bq(a))

We

also

allow

randomized

strategies,

where

an

advertiser

gives

a

distribution

A

over

bid

vectors

a

R

|K|

The

resulting

spend

and

traffic

are

given

by

spend(A)=Ea∼A[spend(a)];

traffic(A)=Ea∼A[traffic(a)]

We

can

now

state

the

problem

in

its

full

generality:

Budget

Optimization

Input:

a

budget

U,

a

keyword-query

graph

G

(K

Q,

E),

and

landscapes

(costq(·),

clicksq(·))

for

each

q

Q.

Find:

a

distribution

A

over

bid

vectors

a

R

|K|

such

that

spend(A)

U

and

traffic(A)

is

maximized.

We

conclude

this

section

with

a

small

example

to

illustrate

some

feature

of

the

budget

optimization

problem.

Suppose

you

have

two

keywords

K

{u,

v}

and

two

queries

Q

{x,

y}

and

edges

E

{(u,

x),

(u,

y),

(v,

y)}.

Suppose

query

x

has

one

position

with

ctr

αx

and

there

is

one

bid

bx

Query

y

has

two

positions

with

ctrs

αy

αy

and

bids

by

and

by

To

get

any

clicks

from

x,

an

advertiser

must

bid

at

least

on

u.

However,

because

of

the

structure

of

the

graph,

if

the

advertiser

sets

bu

to

then

his

effective

bid

is

on

both

x

and

y.

Thus

he

must

trade-off

between

getting

the

clicks

from

x

and

getting

the

bargain

of

a

click

for

that

would

be

possible

otherwise.

UNIFORM

BIDDING

STRATEGIES

As

we

will

show

in

Section

solving

the

Budget

Optimization

problem

in

its

full

generality

is

difficult.

In

addition,

it

may

be

difficult

to

reason

about

strategies

that

involve

arbitrary

distributions

over

arbitrary

bid

vectors.

Advertisers

generally

prefer

strategies

that

are

easy

to

understand,

evaluate

and

use

within

their

larger

goals.

With

this

motivation,

we

look

at

restricted

classes

of

strategies

that

we

can

easily

compute,

explain

and

analyze.

We

define

a

uniform

bidding

strategy

to

be

a

distribution

A

over

bid

vectors

a

R

|K|

where

each

bid

vector

in

the

distribution

is

of

the

form

(b,

b,

b)

for

some

real-valued

bid

b.

In

other

words,

each

vector

in

the

distribution

bids

the

same

value

on

every

keyword.

Uniform

strategies

have

several

advantages.

First,

they

do

not

depend

on

the

edges

of

the

interaction

graph,

since

all

effective

bids

on

queries

are

the

same.

Thus,

they

are

effective

in

the

face

of

limited

or

noisy

information

about

the

keyword

interaction

graph.

Second,

uniform

strategies

are

also

independent

of

the

priority

rule

being

used.

Third,

any

algorithm

that

gives

an

approximation

guarantee

will

then

be

valid

for

any

interaction

graph

over

those

keywords

and

queries.

We

now

show

that

we

can

compute

the

best

uniform

strategy

efficiently.

Suppose

we

have

a

set

of

queries

Q,

where

the

landscape

Vq

for

each

query

q

is

defined

by

the

set

of

points

Vq

(costq[p],

αq[p])}.

We

define

the

set

of

interesting

bids

Iq

costq[p]/αq

[p]},

let

I

∪q∈QIq,

and

let

N

|I|.

We

can

index

the

points

in

I

as

bN

in

increasing

order.

The

ith

point

in

our

aggregate

landscape

V

is

found

by

summing,

over

the

queries,

the

cost

and

clicks

associated

with

bid

bi,

that

is,

V

∪N

P

q∈Q

costq(bi),

P

q∈Q

clicksq(bi)).

For

any

possible

bid

b,

if

we

use

the

aggregate

landscape

just

as

we

would

a

regular

landscape,

we

exactly

represent

the

cost

and

clicks

associated

with

making

that

bid

simultaneously

on

all

queries

associated

with

the

aggregate

landscape.

Therefore,

all

the

definitions

and

results

of

Section

about

landscapes

can

be

extended

to

aggregate

landscapes,

and

we

can

apply

Lemma

to

compute

the

best

uniform

strategy

(using

the

convex

hull

of

the

points

in

this

aggregate

landscape).

The

running

time

is

dominated

by

the

time

to

compute

the

convex

hull,

which

is

O(N

log

The

resulting

strategy

is

the

convex

combination

of

two

points

on

the

aggregate

landscape.

Define

a

two-bid

strategy

to

be

a

uniform

strategy

which

puts

non-zero

weight

on

at

most

two

bid

vectors.

We

have

shown

Lemma

Given

an

instance

of

Budget

Optimization

in

which

there

are

a

total

of

N

points

in

all

the

landscapes,

we

can

find

the

best

uniform

strategy

in

O(N

log

N)

time.

Furthermore,

this

strategy

will

always

be

a

two-bid

strategy.

Putting

these

ideas

together,

we

get

an

O(N

log

N)-time

algorithm

for

Budget

Optimization,

where

N

is

the

total

number

of

landscape

points

(we

later

show

that

this

is

a

e

)-approximation

algorithm):

Aggregate

all

the

points

from

the

individual

query

landscapes

into

a

single

aggregate

landscape.

Find

the

convex

hull

of

the

points

in

the

aggregate

landscape.

Compute

the

point

on

the

convex

hull

for

the

given

budget,

which

is

the

convex

combination

of

two

points

α

and

β.

Output

the

strategy

which

is

the

appropriate

convex

combination

of

the

uniform

bid

vectors

corresponding

to

α

and

β.

We

will

also

consider

a

special

case

of

two-bid

strategies.

A

single-bid

strategy

is

a

uniform

strategy

which

puts

nonzero

weight

on

at

most

one

non-zero

vector,

i.e.

advertiser

randomizes

between

bidding

a

certain

amount

b∗

on

all

keywords,

and

not

bidding

at

all.

A

single-bid

strategy

is

even

easier

to

implement

in

practice

than

a

two-bid

strategy.

For

example,

the

search

engines

often

allow

advertisers

to

set

a

maximum

daily

budget.

In

this

case,

the

advertiser

would

simply

bid

b∗

until

her

budget

runs

out,

and

the

ad

serving

system

would

remove

her

from

all

subsequent

auctions

until

the

end

of

the

day.

One

could

also

use

an

ad

scheduling

tool

offered

by

some

search

to

implement

this

strategy.

The

best

single-bid

strategy

can

also

be

computed

easily

from

the

aggregate

landscape.

The

optimal

strategy

for

a

budget

U

will

either

be

the

point

x

s.t.

cost(x)

is

as

large

as

possible

without

exceeding

U,

or

a

convex

combination

of

zero

and

the

point

y,

where

cost(y)

is

as

small

as

possible

while

larger

than

U.

See

for

example.

B

D

A

C

clicks

cost

cpc

A

B

C

D

cpc

Total

clicks:

Figure

Four

queries

and

their

click-price

curve.

APPROXIMATION

ALGORITHMS

In

the

previous

section

we

proposed

using

uniform

strategies

and

gave

an

efficient

algorithm

to

compute

the

best

such

strategy.

In

section

we

prove

that

there

is

always

a

good

uniform

strategy:

Theorem

There

always

exists

a

uniform

bidding

strategy

that

is

e

)-optimal.

Furthermore,

for

any

there

exists

an

instance

for

which

all

uniform

strategies

are

at

most

e

)-optimal.

We

introduce

the

notion

of

a

click-price

curve,

which

is

central

to

our

analysis.

This

definition

makes

it

simple

to

show

that

there

is

always

a

single-bid

strategy

that

is

a

approximation

(and

this

is

tight);

we

then

build

on

this

to

prove

Theorem

Click-price

curves

Consider

a

set

of

queries

Q,

and

for

each

query

q

Q,

let

(clicksq(·),

costq(·))

be

the

corresponding

bid

landscape.

Consider

an

adversarial

bidder

Ω

with

the

power

to

bid

independently

on

each

query.

Note

that

this

bidder

is

more

powerful

than

an

optimal

bidder,

which

has

to

bid

on

the

keywords.

Suppose

this

strategy

bids

b∗

q

for

each

query

q.

Thus,

Ω

achieves

traffic

CΩ

P

i

clicks(b∗

i

and

incurs

total

spend

UΩ

P

i

cost(b∗

i

Without

loss

of

generality

we

can

assume

that

Ω

bids

so

that

for

each

query

q,

the

cost

per

click

is

equal

to

b∗

q

i.e.

costq(b∗

q

)/clicksq(b∗

q

b∗

q

We

may

assume

this

because

for

some

query

q,

if

costq(b∗

q)/clicksq(b∗

q)

b∗

q

we

can

always

lower

b∗

q

and

without

changing

the

cost

and

clicks.

To

aid

our

discussion,

we

introduce

the

notion

of

a

clickprice

curve

(an

example

of

which

is

shown

in

Figure

which

describes

the

cpc

distribution

obtained

by

Ω.

Formally

the

curve

is

a

non-decreasing

function

h

CΩ]

R+

defined

as

h(r)

min{c

P

q:b∗

q

≤c

clicksq(b∗

q

r}.

Another

way

to

construct

this

curve

is

to

sort

the

queries

in

increasing

order

by

b∗

q

costq(b∗

q)/clicksq(b∗

q),

then

make

a

step

function

where

the

qth

step

has

height

b∗

q

and

width

clicksq(b∗

q

(see

Figure

Note

that

the

area

of

each

step

is

costq(b∗

q

The

following

claim

follows

immediately:

Claim

UΩ

R

CΩ

h(r)dr.

Suppose

we

wanted

to

buy

some

fraction

r

/CΩ

of

the

traffic

that

Ω

is

getting.

The

click-price

curve

says

that

if

we

bid

h(r

on

every

keyword

(and

therefore

every

query),

we

get

at

least

r

traffic,

since

this

bid

would

ensure

that

for

all

q

such

that

b∗

q

h(r

we

win

as

many

clicks

as

Ω.

Note

that

by

bidding

h(r

on

every

keyword,

we

may

actually

get

even

more

than

r

traffic,

since

for

queries

q

where

b∗

q

is

much

less

than

h(r

we

may

win

more

clicks

than

Ω.

However,

all

of

these

extra

clicks

still

cost

at

most

h(r

per

click.

Thus

we

see

that

for

any

r

CΩ],

if

we

bid

h(r

on

every

keyword,

we

receive

at

least

r

traffic

at

a

total

spend

of

at

most

h(r

per

click.

Note

that

by

randomizing

between

bidding

zero

and

bidding

h(r

we

can

receive

exactly

r

traffic

at

a

total

spend

of

at

most

r

h(r

We

summarize

this

discussion

in

the

following

lemma:

Lemma

For

any

r

CΩ],

there

exists

a

single-bid

strategy

that

randomizes

between

bidding

h(r)

and

bidding

zero,

and

this

strategy

receives

exactly

r

traffic

with

total

spend

at

most

r

h(r).

Lemma

describes

a

landscape

as

a

continuous

function.

For

our

lower

bounds,

we

will

need

to

show

that

given

any

continuous

function,

there

exists

a

discrete

landscape

that

approximates

it

arbitrarily

well.

Lemma

For

any

C,

U

and

non-decreasing

function

f

C]

R+

such

that

R

C

f(r)dr

U,

and

any

small

there

exists

an

instance

of

Budget

Optimization

with

budget

U

where

the

optimal

solution

achieves

C

clicks

at

cost

U

and

all

uniform

bidding

strategies

are

convex

combinations

of

single-bid

strategies

that

achieve

exactly

r

clicks

at

cost

exactly

rf(r)

by

bidding

f(r)

on

all

keywords.

Proof.

Construct

an

instance

as

follows.

Let

be

a

small

number

that

we

will

later

define

in

terms

of

Define

rm

C

such

that

ri

f(ri)

and

m

(C

+f(C))/

(This

is

possible

by

choosing

ri"s

spaced

by

min(

Now

make

a

query

qi

for

all

i

[m]

with

bidders

bidding

h(ri),

h(rm),

and

ctrs

α[m−

ri

The

graph

is

a

matching

with

one

keyword

per

query,

and

so

we

can

imagine

the

optimal

solution

as

bidding

on

queries.

The

optimal

solution

will

always

bid

exactly

h(ri)

on

query

qi,

and

if

it

did

so

on

all

queries,

it

would

spend

U

Pm

Define

small

enough

so

that

U

U

which

is

always

possible

since

U

Z

C

f(r)dr

mX

(ri

U

m

U

(C

f(C)).

Note

that

the

only

possible

bids

(i.e.,

all

others

have

the

same

results

as

one

of

these)

are

f(rm),

and

bidding

uniformly

with

f(ri)

results

in

Pi

ri

ri

clicks

at

cost

h(ri)ri.

A

-approximation

algorithm

Using

Lemma

we

can

now

show

that

there

is

a

uniform

single-bid

strategy

that

is

-optimal.

In

addition

to

being

an

interesting

result

in

its

own

right,

it

also

serves

as

a

warm-up

for

our

main

result.

Theorem

There

always

exists

a

uniform

single-bid

strategy

that

is

-optimal.

Furthermore,

for

any

there

exists

an

instance

for

which

all

single-bid

strategies

are

at

most

)-optimal.

Proof.

Applying

Lemma

with

r

we

see

that

there

is

a

strategy

that

achieves

traffic

with

spend

Now,

using

the

fact

that

h

is

a

non-decreasing

function

combined

with

Claim

we

have

Z

CΩ

h(r)dr

Z

CΩ

h(r)dr

UΩ,

which

shows

that

we

spend

at

most

UΩ.

We

conclude

that

there

is

a

-optimal

single-bid

strategy

randomizing

between

bidding

and

zero.

For

the

second

part

of

the

theorem,

we

construct

a

tight

example

using

two

queries

Q

{x,

y},

two

keywords

K

{u,

v},

and

edges

E

{(u,

x),

(v,

y)}.

Fix

some

α

where

α

and

fix

some

very

small

Query

x

has

two

positions,

with

bids

of

bx

and

bx

and

with

identical

click-through

rates

αx

αx

α.

Query

y

has

one

position,

with

a

bid

of

by

and

a

click-through

rate

of

αy

α.

The

budget

is

U

α.

The

optimal

solution

is

to

bid

on

u

(and

therefore

x)

and

bid

on

v

(and

therefore

y),

both

with

probability

This

achieves

a

total

of

2α

clicks

and

spends

the

budget

exactly.

The

only

useful

bids

are

and

since

for

both

queries

all

other

bids

are

identical

in

terms

of

cost

and

clicks

to

one

of

those

three.

Any

single-bid

solution

that

uses

as

its

non-zero

bid

gets

at

most

α

clicks.

Bidding

on

both

keywords

results

in

2α

clicks

and

total

cost

Thus,

since

the

budget

is

U

α

a

single-bid

solution

using

can

put

weight

at

most

on

the

bid.

This

results

in

at

most

α)

clicks.

This

can

be

made

arbitrarily

close

to

α

by

lowering

A

e

)-approximation

algorithm

The

key

to

the

proof

of

Theorem

is

to

show

that

there

is

a

distribution

over

single-bid

strategies

from

Lemma

that

obtains

at

least

e

)CΩ

clicks.

In

order

to

figure

out

the

best

distribution,

we

wrote

a

linear

program

that

models

the

behavior

of

a

player

who

is

trying

to

maximize

clicks

and

an

adversary

who

is

trying

to

create

an

input

that

is

hard

for

the

player.

Then

using

linear

programming

duality,

we

were

able

to

derive

both

an

optimal

strategy

and

a

tight

instance.

After

solving

the

LP

numerically,

we

were

also

able

to

see

that

there

is

a

uniform

strategy

for

the

player

that

always

obtains

e

)CΩ

clicks;

and

then

from

the

solution

were

easily

able

to

guess

the

optimal

distribution.

This

methodology

is

similar

to

that

used

in

work

on

factor-revealing

LPs

An

LP

for

the

worst-case

click-price

curve.

Consider

the

adversary"s

problem

of

finding

a

click-price

curve

for

which

no

uniform

bidding

strategy

can

achieve

αCΩ

clicks.

Recall

that

by

Lemma

we

can

assume

that

a

uniform

strategy

randomizes

between

two

bids

u

and

v.

We

also

assume

that

the

uniform

strategy

uses

a

convex

combination

of

strategies

from

Lemma

which

we

can

assume

by

Lemma

Thus,

to

achieve

αCΩ

clicks,

a

uniform

strategy

must

randomize

between

bids

h(u)

and

h(v)

where

u

αCΩ

and

v

αCΩ.

Call

the

set

of

such

strategies

S.

Given

a

(u,

v)

S,

the

necessary

probabilities

in

order

to

achieve

αCΩ

clicks

are

easily

determined,

and

we

denote

them

by

v)

and

v)

respectively.

Note

further

that

the

advertiser

is

trying

to

figure

out

which

of

these

strategies

to

use,

and

ultimately

wants

to

compute

a

distribution

over

uniform

strategies.

In

the

LP,

she

is

actually

going

to

compute

a

distribution

over

pairs

of

strategies

in

S,

which

we

will

then

interpret

as

a

distribution

over

strategies.

Using

this

set

of

uniform

strategies

as

constraints,

we

can

characterize

a

set

of

worst-case

click-price

curves

by

the

constraints

Z

CΩ

h(r)dr

U

∀(u,

v)

S

v)uh(u)

v)vh(v)

U

A

curve

h

that

satisfies

these

constraints

has

the

property

that

all

uniform

strategies

that

obtain

αCΩ

clicks

spend

more

than

U.

Discretizing

this

set

of

inequalities,

and

pushing

the

first

constraint

into

the

objective

function,

we

get

the

following

LP

over

variables

hr

representing

the

curve:

min

X

,...,CΩ}

hr

s.t.

∀(u,

v)

S,

v)uhu

v)vhv

U

In

this

LP,

S

is

defined

in

the

discrete

domain

as

S

{(u,

v)

u

αCΩ

v

CΩ}.

Solving

this

LP

for

a

particular

α,

if

we

get

an

objective

less

than

U,

we

know

(up

to

some

discretization)

that

an

instance

of

Budget

Optimization

exists

that

cannot

be

approximated

better

than

α.

(The

instance

is

constructed

as

in

the

proof

of

Lemma

A

binary

search

yields

the

smallest

such

α

where

the

objective

is

exactly

U.

To

obtain

a

strategy

for

the

advertiser,

we

look

at

the

dual,

constraining

the

objective

to

be

equal

to

U

in

order

to

get

the

polytope

of

optimum

solutions:

X

(u,v)∈S

wu,v

∀(u,

v)

S,

X

v

:(u,v

)∈S

v

u

wu,v

and

X

u

:(u

,v)∈S

v)

v

wu

,v

It

is

straightforward

to

show

that

the

second

set

of

constraints

is

equivalent

to

the

following:

∀h

RCΩ/

X

r

hr

U,

X

(u,v)∈S

v)

u

hu

v)

v

hv)

U.

Here

the

variables

can

be

interpreted

as

weights

on

strategies

in

S.

A

point

in

this

polytope

represents

a

convex

combination

over

strategies

in

S,

with

the

property

that

for

any

click-price

curve

h,

the

cost

of

the

mixed

strategy

is

at

most

U.

Since

all

strategies

in

S

get

at

least

αCΩ

clicks,

we

have

a

strategy

that

achieves

an

α-approximation.

Interestingly,

the

equivalence

between

this

polytope

and

the

LP

dual

above

shows

that

there

is

a

mixture

over

values

r

C]

that

achieves

an

α-approximation

for

any

curve

h.

After

a

search

for

the

appropriate

α

(which

turned

out

to

be

e

we

solved

these

two

LPs

and

came

up

with

the

plots

in

Figure

which

reveal

not

only

the

right

approximation

ratio,

but

also

a

picture

of

the

worst-case

distribution

and

the

approximation-achieving

From

the

The

parameters

U

and

CΩ

can

be

set

arbitrarily

using

scaling

arguments.

C/e

C

C/e

C

Figure

The

worst-case

click-price

curve

and

uniform

bidding

strategy,

as

found

by

linear

programming.

tures,

we

were

able

to

quickly

guess

the

optimal

strategy

and

worst

case

example.

Proof

of

Theorem

By

Lemma

we

know

that

for

each

r

UΩ,

there

is

a

strategy

that

can

obtain

traffic

r

at

cost

r

h(r).

By

mixing

strategies

for

multiple

values

of

r,

we

construct

a

uniform

strategy

that

is

guaranteed

to

achieve

at

least

fraction

of

Ω"s

traffic

and

remain

within

budget.

Note

that

the

final

resulting

bid

distribution

will

have

some

weight

on

the

zero

bid,

since

the

single-bid

strategies

from

Lemma

put

some

weight

on

bidding

zero.

Consider

the

following

probability

density

function

over

such

strategies

(also

depicted

in

Figure

g(r)

j

for

r

CΩ/e,

for

r

CΩ/e.

Note

that

R

CΩ

g(r)dr

R

CΩ

CΩ/e

r

dr

i.e.

g

is

a

probability

density

function.

The

traffic

achieved

by

our

strategy

is

equal

to

traffic

Z

CΩ

g(r)·r

dr

Z

CΩ

CΩ/e

r

·r

dr

e

CΩ.

The

expected

total

spend

of

this

strategy

is

at

most

spend

Z

CΩ

g(r)

rh(r)

dr

Z

CΩ

CΩ/e

h(r)

dr

Z

CΩ

h(r)

dr

UΩ.

Thus

we

have

shown

that

there

exists

a

uniform

bidding

strategy

that

is

e

)-optimal.

We

now

show

that

no

uniform

strategy

can

do

better.

We

will

prove

that

for

all

there

exists

an

instance

for

which

all

uniform

strategies

are

at

most

e

)-optimal.

First

we

define

the

following

click-price

curve

over

the

domain

h(r)

for

r

e

e

r

for

r

Note

that

h

is

non-decreasing

and

non-negative.

Since

the

curve

is

over

the

domain

it

corresponds

to

an

instance

where

CΩ

Note

also

that

R

h(r)

dr

R

e

r

dr

Thus,

this

curve

corresponds

to

an

instance

where

UΩ

Using

Lemma

we

construct

an

actual

instance

where

the

best

uniform

strategies

are

convex

combinations

of

strategies

that

bid

h(u)

and

achieve

u

clicks

and

u

h(u)

cost.

Suppose

for

the

sake

of

contradiction

that

there

exists

a

uniform

bidding

strategy

that

achieves

α

traffic

on

this

instance.

By

Lemma

there

is

always

a

two-bid

optimal

uniform

bidding

strategy

and

so

we

may

assume

that

the

strategy

achieving

α

clicks

randomizes

over

two

bids.

To

achieve

α

clicks,

the

two

bids

must

be

on

values

h(u)

and

h(v)

with

probabilities

pu

and

pv

such

that

pu

pv

u

α

v

and

puu

pvv

α.

To

calculate

the

spend

of

this

strategy

consider

two

cases:

if

u

then

we

are

bidding

h(v)

with

probability

pv

α/v.

The

spend

in

this

case

is:

spend

pv

v

h(v)

αh(v)

αe

α/v

e

Using

v

α

and

then

α

e

we

get

spend

αe

e

e

contradicting

the

assumption.

We

turn

to

the

case

u

Here

we

have

pu

v−α

v−u

and

pv

α−u

v−u

Note

that

for

r

we

have

h(r)

(e

r

Thus

spend

pu

uh(u)

pv

vh(v)

(v

α)(ue

(α

u)(ve

(v

u)(e

αe

e

The

final

inequality

follows

from

α

e

Thus

in

both

cases

the

spend

of

our

strategy

is

over

the

budget

of

Experimental

Results

We

ran

simulations

using

the

data

available

at

Google

which

we

briefly

summarize

here.

We

took

a

large

advertising

campaign,

and,

using

the

set

of

keywords

in

the

campaign,

computed

three

different

curves

(see

Figure

for

three

different

bidding

strategies.

The

x-axis

is

the

budget

(units

removed),

and

the

y-axis

is

the

number

of

clicks

obtained

(again

without

units)

by

the

optimal

bid(s)

under

each

respective

strategy.

Query

bidding

represents

our

(unachievable)

upper

bound

Ω,

bidding

on

each

query

independently.

The

uniform

bidding

curves

represent

the

results

of

applying

our

algorithm:

deterministic

uses

a

single

bid

level,

while

randomized

uses

a

distribution.

For

reference,

we

include

the

lower

bound

of

a

(e

fraction

of

the

top

curve.

The

data

clearly

demonstrate

that

the

best

single

uniform

bid

obtains

almost

all

the

possible

clicks

in

practice.

Of

course

in

a

more

realistic

environment

without

full

knowledge,

it

is

not

always

possible

to

find

the

best

such

bid,

so

further

investigation

is

required

to

make

this

approach

useful.

However,

just

knowing

that

there

is

such

a

bid

available

should

make

the

on-line

versions

of

the

problem

simpler.

HARDNESS

RESULTS

By

a

reduction

from

vertex

cover

we

can

show

the

following

(proof

omitted):

Theorem

Budget

Optimization

is

strongly

NP-hard.

Query

Bidding

Uniform

Bidding

(randomized)

Uniform

Bidding

(deterministic)

Lower

bound

Budget

Clicks

Figure

An

example

with

real

data.

Now

suppose

we

introduce

weights

on

the

queries

that

indicate

the

relative

value

of

a

click

from

the

various

search

users.

Formally,

we

have

weights

wq

for

all

q

Q

and

our

goal

is

maximize

the

total

weighted

traffic

given

a

budget.

Call

this

the

Weighted

Keyword

Bidding

problem.

With

this

additional

generalization

we

can

show

hardness

of

approximation

via

a

simple

reduction

from

the

Maximum

Coverage

problem,

which

is

known

to

be

(proof

omitted).

Theorem

The

Weighted

Keyword

Bidding

problem

is

hard

to

approximate

to

within

EXACT

ALGORITHMS

FOR

LAMINAR

GRAPHS

If

a

graph

has

special

structure,

we

can

sometimes

solve

the

budget

optimization

problem

exactly.

Note

that

the

knapsack

algorithm

in

Section

solves

the

problem

for

the

case

when

the

graph

is

a

simple

matching.

Here

we

generalize

this

to

the

case

when

the

graph

has

a

laminar

structure,

which

will

allow

us

to

impose

a

(partial)

ordering

on

the

possible

bid

values,

and

thereby

give

a

pseudopolynomial

algorithm

via

dynamic

programming.

We

first

show

that

to

solve

the

Budget

Optimization

problem

(for

general

graphs)

optimally

in

pseudopolynomial

time,

it

suffices

to

provide

an

algorithm

that

solves

the

deterministic

case.

The

proof

(omitted)

uses

ideas

similar

to

Observation

and

Lemma

Lemma

Let

I

be

an

input

to

the

Budget

Optimization

problem

and

suppose

that

we

find

the

optimal

deterministic

solution

for

every

possible

budget

U

U.

Then

we

can

find

the

optimal

solution

in

time

O(U

log

U).

A

collection

S

of

n

sets

is

laminar

if,

for

any

two

sets

Si

and

Sj,

if

Si

Sj

then

either

Si

Sj

or

Sj

Si.

Given

a

keyword

interaction

graph

G,

we

associate

a

set

of

neighboring

queries

Qk

{q

(k,

q)

E}

with

each

keyword

k.

If

this

collection

of

sets

if

laminar,

we

say

that

the

graph

has

the

laminar

property.

Note

that

a

laminar

interaction

graph

would

naturally

fall

out

as

a

consequence

of

designing

a

hierarchical

keyword

set

(e.g.,

shoes,

highheel

shoes,

athletic

shoes).

We

call

a

solution

deterministic

if

it

consists

of

one

bid

vector,

rather

than

a

general

distribution

over

bid

vectors.

The

following

lemma

will

be

useful

for

giving

a

structure

to

the

optimal

solution,

and

will

allow

dynamic

programming.

Lemma

For

keywords

i,

j

K,

if

Qi

Qj

then

there

exists

an

optimal

deterministic

solution

to

the

Budget

Optimization

problem

with

ai

aj.

We

can

view

the

laminar

order

as

a

tree

with

keyword

j

as

a

parent

of

keyword

i

if

Qj

is

the

minimal

set

containing

Qi.

In

this

case

we

say

that

j

is

a

child

of

i.

Given

a

keyword

j

with

c

children

ic,

we

now

need

to

enumerate

over

all

ways

to

allocate

the

budget

among

the

children

and

also

over

all

possible

minimum

bids

for

the

children.

A

complication

is

that

a

node

may

have

many

children

and

thus

a

term

of

Uc

would

not

even

be

pseudopolynomial.

We

can

solve

this

problem

by

showing

that

given

any

laminar

ordering,

there

is

an

equivalent

one

in

which

each

keyword

has

at

most

children.

Lemma

Let

G

be

a

graph

with

the

laminar

property.

There

exists

another

graph

G

with

the

same

optimal

solution

to

the

Budget

Optimization

problem,

where

each

node

has

at

most

two

children

in

the

laminar

ordering.

Furthermore,

G

has

at

most

twice

as

many

nodes

as

G.

Given

a

graph

with

at

most

two

children

per

node,

we

define

F[i,

b,

U]

to

be

the

maximum

number

of

clicks

achievable

by

bidding

at

least

b

on

each

of

keywords

j

s.t.

Qj

Qi

(and

exactly

b

on

keyword

i)

while

spending

at

most

U.

For

this

definition,

we

use

Z(b,

U)

to

denote

set

of

allowable

bids

and

budgets

over

children:

Z(b,

U)

{b,

b

U

U

b

b,

U

U,

b

b,

U

U,

U

U

U}

Given

a

keyword

i

and

a

bid

ai,

compute

an

incremental

spend

and

traffic

associated

with

bidding

ai

on

keyword

i,

that

is

ˆt(i,

ai)

X

clicksq(ai),

and

ˆs(i,

ai)

X

costq(ai).

Now

we

define

F[i,

b,

U]

as

max

b,

b

,U

,U

∈Z(b,U)

j

F[j

b

U

F[j

b

U

ˆt(i,

b)

ff

if

(ˆs(i,

b)

U

U

U

and

i

and

F[i,

b,

U]

otherwise.

Lemma

If

the

graph

G

has

the

laminar

property,

then,

after

applying

Lemma

the

dynamic

programming

recurrence

in

finds

an

optimal

deterministic

solution

to

the

Budget

Optimization

problem

exactly

in

n)

time.

In

addition,

we

can

apply

Lemma

to

compute

the

optimal

(randomized)

solution.

Observe

that

in

the

dynamic

program,

we

have

already

solved

the

instance

for

every

budget

U

U,

so

we

can

find

the

randomized

solution

with

no

additional

asymptotic

overhead.

Lemma

If

the

graph

G

has

the

laminar

property,

then,

by

applying

Lemma

the

dynamic

programming

recurrence

in

and

Lemma

we

can

find

an

optimal

solution

to

the

Budget

Optimization

problem

in

n)

time.

The

bounds

in

this

section

make

pessimistic

assumptions

about

having

to

try

every

budget

and

every

level.

For

many

problems,

you

only

need

to

choose

from

a

discrete

set

of

bid

levels

(e.g.,

multiples

of

one

cent).

Doing

so

yields

the

obvious

improvement

in

the

bounds.

BID

OPTIMIZATION

UNDER

VCG

The

GSP

auction

is

not

the

only

possible

auction

one

could

use

for

sponsored

search.

Indeed

the

VCG

auction

and

variants

offer

alternatives

with

compelling

game-theoretic

properties.

In

this

section

we

argue

that

the

budget

optimization

problem

is

easy

under

the

VCG

auction.

For

a

full

definition

of

VCG

and

its

application

to

sponsored

search

we

refer

the

reader

to

For

the

sake

of

the

budget

optimization

problem

we

can

define

VCG

by

just

redefining

costq(b)

(replacing

Equation

costq(b)

X

j=i

(α[j]

α[j

b[j]

where

i

pos(b).

Observation

still

holds,

and

we

can

construct

a

landscape

as

before,

where

each

landscape

point

corresponds

to

a

particular

bid

b[i].

We

claim

that

in

the

VCG

auction,

the

landscapes

are

convex.

To

see

this,

consider

two

consecutive

positions

i,i

The

slope

of

line

segment

between

the

points

corresponding

to

those

two

positions

is

cost(b[i])

cost(b[i

clicks(b[i])

clicks(b[i

(α[i]

α[i

b[i]

α[i]

α[i

b[i].

Since

b[i]

b[i

the

slopes

of

the

pieces

of

the

landscape

decrease,

and

we

get

that

the

curve

is

convex.

Now

consider

running

the

algorithm

described

in

Section

for

finding

the

optimal

bids

for

a

set

of

queries.

In

this

algorithm

we

took

all

the

pieces

from

the

landscape

curves,

sorted

them

by

incremental

cpc,

then

took

a

prefix

of

those

pieces,

giving

us

bids

for

each

of

the

queries.

But,

the

equation

above

shows

that

each

piece

has

its

incremental

cpc

equal

to

the

bid

that

achieves

it;

thus

in

the

case

of

VCG

the

pieces

are

also

sorted

by

bid.

Hence

we

can

obtain

any

prefix

of

the

pieces

via

a

uniform

bid

on

all

the

keywords.

We

conclude

that

the

best

uniform

bid

is

an

optimal

solution

to

the

budget

optimization

problem.

CONCLUDING

REMARKS

Our

algorithmic

result

presents

an

intriguing

heuristic

in

practice:

bid

a

single

value

b

on

all

keywords;

at

the

end

of

the

day,

if

the

budget

is

under-spent,

adjust

b

to

be

higher;

if

budget

is

overspent,

adjust

b

to

be

lower;

else,

maintain

b.

If

the

scenario

does

not

change

from

day

to

day,

this

simple

strategy

will

have

the

same

theoretical

properties

as

our

one-bid

strategy,

and

in

practice,

is

likely

to

be

much

better.

Of

course

the

scenario

does

change,

however,

and

so

coming

up

with

a

stochastic

bidding

strategy

remains

an

important

open

direction,

explored

somewhat

by

Another

interesting

generalization

is

to

consider

weights

on

the

clicks,

which

is

a

way

to

model

conversions.

(A

conversion

corresponds

to

an

action

on

the

part

of

the

user

who

clicked

through

to

the

advertiser

site;

e.g.,

a

sale

or

an

account

sign-up.)

Finally,

we

have

looked

at

this

system

as

a

black

box

returning

clicks

as

a

function

of

bid,

whereas

in

reality

it

is

a

complex

repeated

game

involving

multiple

advertisers.

In

it

was

shown

that

when

a

set

of

advertisers

use

a

strategy

similar

to

the

one

we

suggest

here,

under

a

slightly

modified

first-price

auction,

the

prices

approach

a

well-understood

market

equilibrium.

Acknowledgments

We

thank

Rohit

Rao,

Zoya

Svitkina

and

Adam

Wildavsky

for

helpful

discussions.

REFERENCES

G.

Aggarwal,

A.

Goel

and

R.

Motwani.

Truthful

auctions

for

pricing

search

keywords.

ACM

Conference

on

Electronic

Commerce,

G.

Aggarwal,

J.

Feldman

and

S.

Muthukrishnan

Bidding

to

the

Top:

VCG

and

Equilibria

of

Position-Based

Auctions

Proc.

WAOA,

C.

Borgs,

J.

Chayes,

O.

Etesami,

N.

Immorlica,

K.

Jain,

and

M.

Mahdian.

Dynamics

of

bid

optimization

in

online

advertisement

auctions.

Proc.

WWW

E.

Clarke.

Multipart

pricing

of

public

goods.

Public

Choice,

B.

Edelman,

M.

Ostrovsky

and

M.

Schwarz.

Internet

Advertising

and

the

Generalized

Second

Price

Auction:

Selling

Billions

of

Dollars

Worth

of

Keywords.

Second

workshop

on

sponsored

search

auctions,

U.

Feige.

A

threshold

of

ln

n

for

approximating

set

cover.

ACM

Symposium

on

Theory

of

Computing,

pp.

T.

Groves.

Incentives

in

teams.

Econometrica,

K.

Jain,

M.

Mahdian,

E.

Markakis,

A.

Sabieri

and

V.

Vazirani.

Greedy

facility

location

algorithms

analyzed

using

dual

fitting

with

factor-revealing

LP.

J.

ACM,

W.

Labio,

M.

Rose,

S.

Ramaswamy.

Internal

Document,

Google,

Inc.

May,

A.

Mehta,

A.

Saberi,

U.

Vazirani,

and

V.

Vazirani,

Adwords

and

Generalized

Online

Matching.

FOCS

S.

Muthukrishnan,

M.

P´al

and

Z.

Svitkina.

Stochastic

models

for

budget

optimization

in

search-based

advertising.

To

appear

in

Workshop

on

Sponsored

Search

Auctions,

WWW

F.

Preparata

and

M.

Shamos.

Computational

Geometry:

An

Introduction.

Springer-Verlag,

New

York,

NY,

P.

Rusmevichientong

and

D.

Williamson.

An

adaptive

algorithm

for

selecting

profitable

keywords

for

search-based

advertising

services

Proc.

ACM

conference

on

Electronic

commerce,

W.

Vickrey.

Counterspeculation,

auctions

and

competitive-sealed

tenders.

Journal

of

Finance,

B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O B O O O O O O O O B O O O O O O O O O O O B O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O B O O B O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O B O B O O O O O B O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O B O O O O O O O O O O O O O O O O B O O O O O B O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O B O O O O O O O O O O O O O B O O O O O O O O O O B O O O B I O O O O O O O O O O B O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O B O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B B O O O B O O O O O O O B O O O B O O O O O O O O O O O O O O O O O O O O O O O O B O O O B O O O B O O B O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O B O O B O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O B O O B O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O B O O O O B O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O B O O B O O O O O O O O O O O B O O O B O O O O O O B O O O O O O O B O O O O B O O B I I O B O O O O O O O O O O B O O B O O O O O O O O B O O B O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O B O O B I I B O O O O O O O O O O O O O O B O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O B O O O O O O O O B O O O O O O O O O O O B O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O B O O B O O O O O O O O O O O O O O O O O O O B O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O B O O O O O O O B O O O B O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O B O O O O B B O O O O O O O O B O O O B O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O B O O O B O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O B O O O O O O O O O O O O O O O B O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O B O O O O O O O O B O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O B O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O B O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O B O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O B O O O O O B O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O B O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O B B O O O O B O O O O O B O O O O O O O O O B O O O O O O O O O O O O O O O O O O O B I O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O B O O O O O O O O O O O O B O O O O O O O O O O B O O O O O O B I O O O O O O O O O B I O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B B O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O B I I B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O

search-based advertising auction
vickrey clark grove
sponsor search

budget optimization
internet
advertiser
game theory
intriguing heuristic
keyword
uniform bidding strategy
lp
generalized second price
optimization
auction
bid