SLIDE 1
New Online Algorithms for Story Scheduling in Web Advertising - - PowerPoint PPT Presentation
New Online Algorithms for Story Scheduling in Web Advertising - - PowerPoint PPT Presentation
New Online Algorithms for Story Scheduling in Web Advertising Susanne Albers Achim Paen TU Munich HU Berlin Online advertising Worldwide online ad spending 2012/13: $ 100 billion Expected to surpass print ad spending soon Display
SLIDE 2
SLIDE 3
Story boarding
SLIDE 4
Story boarding
- Maintain ad position of a web site during browsing session of a user.
- Position depicts image sequences of advertisers.
Advertiser pay unit shown.
- Depending on history/state user becomes interesting for advertisers.
- Maximize revenue of session.
SLIDE 5
Model
- Session time is slotted
Time t: user continues surfing with probability β 0 < β < 1
- I = J1, . . . , JN
Ji = (ai, li, vi) ai = arrival time li = length vi = per-unit value
- Preemption: Job Ji may be scheduled for < li time units
- max
- t≥0
βtv(t) v(t) = per-unit value of job scheduled at time t Dasgupta, Ghosh, Nazerzadeh, Raghavan SODA’09
SLIDE 6
Competitive analysis
A(I) A: Online algorithm OPT(I) OPT: Offline algorithm A is c-competitive if for all I A(I) ≥ 1 c · OPT(I).
SLIDE 7
Previous results
- Lower bound: c ≥ 2 for general β
c ≥ β + β2
- Upper bound: c = 7
ALG: ∀t vi of current Ji ⇐ ⇒ loss in delaying Jk with vk > vi for 1 time unit Dasgupta, Ghosh, Nazerzadeh, Raghavan SODA’09
SLIDE 8
Previous results
- Lower bound: c ≥ 2 for general β
c ≥ β + β2
- Upper bound: c = 7
- Jobs to be scheduled immediately upon arrival
c = Ω(
- log µ/ log log µ)
µ = max{lmax/lmin, vmax/vmin}
- Total value of vi gained only if entire Ji is shown
c = O(log(vmax/vmin)) Dasgupta, Ghosh, Nazerzadeh, Raghavan SODA’09
SLIDE 9
Our contribution
- Upper bound: c = 4/(2 − β)
- Upper bound: c = 1 + Φ ≈ 2.62
Φ = 1+
√ 5 2
Golden Ratio
- Problem extension: Web page with m ad positions, where stories can be
shown simultaneously; job migration not allowed max
- t≥0
m
- j=1
βtv(t, j) v(t, j) = per-unit value of job scheduled on ad position j at time t Upper bound: 3.414 ≈ 2/(2 − √ 2) ≤ c ≤ 1/(3 − 2 √ 2) ≈ 5.828
SLIDE 10
Algorithmic approach
k 2k
Time: P1 P2 P3
2k − 1 k − 1 3k − 1
- Phases P1, P2, P3, . . . of k consecutive time steps.
- Scheduling decisions are made at the beginning of the phase.
- Jobs arriving during the phase are ignored.
SLIDE 11
Simple algorithm
Time:
(n − 1)k nk − 1
Qn : Pn
ALG1: Phase Pn: Qn = {unscheduled jobs Ji with ai ≤ (n − 1)k} Schedule jobs of Qn in order of non-increasing per-unit value Preempt job at the end of Pn Thm: c = 1/(βk−1(1 − βk)) c = 4/(2 − β) for k = ⌈− logβ 2⌉ c = 1/(1 − β) for k = 1
SLIDE 12
Refined algorithm
Time:
(n − 1)k nk − 1
Qn : Pn
ALG2: Phase Pn: Jn = remainder of last job in Pn−1 Qn = {Jn + unscheduled jobs Ji with ai ≤ (n − 1)k} Schedule jobs of Qn in order of non-increasing per-unit value If Jn contained in schedule, move it to the front Thm: c = 1/βk−1 · max{1/βk−1, 1/(1 − β2k), β3k/(1 − βk)} c = 1 + Φ ≈ 2.618, where Φ = (1 + √ 5)/2 for k = ⌊− 1
2 logβ(1 + Φ)⌋ + 1
SLIDE 13
Refined algorithm
Time:
(n − 1)k nk − 1
Qn : Pn
ALG2: Phase Pn: Jn = remainder of last job in Pn−1 Qn = {Jn + unscheduled jobs Ji with ai ≤ (n − 1)k} Schedule jobs of Qn in order of non-increasing per-unit value If Jn contained in schedule, move it to the front Thm: c = 1/βk−1 · max{1/βk−1, 1/(1 − β2k), β3k/(1 − βk)} c = 1 + Φ ≈ 2.618, where Φ = (1 + √ 5)/2 for k = ⌊− 1
2 logβ(1 + Φ)⌋ + 1
SLIDE 14
Algorithm for m ad positions
(n − 1)k nk − 1
Qn :
- Pos. 1
- Pos. 2
ALG3: Phase Pn: Qn = {unscheduled jobs Ji with ai ≤ (n − 1)k} For t = (n − 1)k, . . . , nk − 1, schedule m jobs of highest per-unit value Preempt jobs at the end of Pn Implementation: Units of a job are placed on same ad position
SLIDE 15
Algorithm for m ad positions
(n − 1)k nk − 1
Qn :
- Pos. 1
- Pos. 2
ALG3: Phase Pn: Qn = {unscheduled jobs Ji with ai ≤ (n − 1)k} For t = (n − 1)k, . . . , nk − 1, schedule m jobs of highest per-unit value Preempt jobs at the end of Pn Thm: c = 1/βk−1 · (1 + 1/(1 − βk)) c = (1 + 1/(1 − β(2 − √ 2)))/(2 − √ 2) for k = ⌈logβ(2 − √ 2)⌉ 3.414 ≈ 2/(2 − √ 2) ≤ c ≤ 1/(3 − 2 √ 2) ≈ 5.828
SLIDE 16
Simple algorithm
Time:
(n − 1)k nk − 1
Qn : Pn
ALG1: Phase Pn: Qn = {unscheduled jobs Ji with ai ≤ (n − 1)k} Schedule jobs of Qn in order of non-increasing per-unit value Jobs of same value sorted in order of increasing arrival time Preempt job at the end of Pn
SLIDE 17
Analysis simple algorithm
I = J1, . . . , JN Ji = (ai, li, vi) k-quantized input Ik = J′
1, . . . , J′ N
J′
i = (a′ i, li, vi)
a′
i = k⌈ai/k⌉
(n − 1)k nk − 1
Pn
SLIDE 18
Analysis simple algorithm
Lemma: OPT(Ik) ≥ βk−1 · OPT(I) Proof: Shift optimal schedule for I by k − 1 time units to the right. Observation: ALG1(Ik) = ALG1(I)
SLIDE 19
Relaxed offline algorithm
CHOP: Optimal algorithm that may resume preempted jobs Always schedule job with highest per-unit value. Jobs with same per-unit value are scheduled in the same order as in ALG1. Observation: CHOP(Ik) ≥ OPT(Ik)
SLIDE 20
Timing property
S = ALG1’s schedule for Ik tS(i) = start time of Ji in S S∗ = CHOP’s schedule for Ik tS∗(i) = start time of Ji in S∗ Lemma: tS(i) ≤ tS⋆(i)
SLIDE 21
tS(i) ≤ tS⋆(i)
Let Ji⋆ be first job in S⋆ with tS(i⋆) > tS⋆(i⋆) = t⋆
Ji
CHOP ALG1:
t⋆ Ji⋆
- vi ≥ vi⋆
- At time t⋆ CHOP has finished Ji
vi > vi⋆ : √ vi = vi⋆ : CHOP schedules jobs of value vi in the same order as ALG1
- tS⋆(i) ≤ t⋆ − li
tS(i) ≥ t⋆ − li + 1
SLIDE 22
Phase analysis
Time:
(n − 1)k nk − 1
Pn
Jn = {jobs scheduled by ALG1 in Pn} ALG1(Pn) = value achieved for Jn ALG1(Ik) =
- n
ALG1(Pn) CHOP(Pn) = value achieved for Jn Lemma: CHOP(Ik) =
- n
CHOP(Pn) Proof: For any Ji scheduled by CHOP, tS(i) ≤ tS⋆(i) {jobs scheduled by CHOP} ⊆
- n
Jn
SLIDE 23
Phase analysis
Time:
(n − 1)k nk − 1
Pn
Lemma: CHOP(Pn) ≤ ALG1(Pn)/(1 − βk) Proof: J = last job of Pn with value v CHOP(Pn) ≤ ALG1(Pn) + extra value in scheduling preempted portion of J ALG1(Pn) =
nk−1
- t=(n−1)k
βtv = (β(n−1)k − βnk)/(1 − β) · v extra value =
- t≥nk
βtv = βnk/(1 − β) · v CHOP(Pn)/ALG1(Pn) ≤ 1 + βnk/(β(n−1)k − βnk) = 1/(1 − βk)
SLIDE 24
Wrapping up
CHOP(Ik) ≤ ALG1(Ik)/(1 − βk) βk−1 · OPT(I) ≤ CHOP(Ik) OPT(I) ≤ ALG1(I)/(βk−1(1 − βk))
SLIDE 25
Analysis refined algorithm
- Take care of delays if last job of previous phase is continued.
- Loss of preempted jobs have to amortized over several phases;
segments of up to three phases.
SLIDE 26
Analysis m ad positions
- ∃ S⋆ value is at least as high as that of optimal schedule
- S⋆ schedules up to 2m jobs at any time
- ∀t: each Ji scheduled in S⋆ but not in S can be mapped
(a) to a unit vi′ ≥ vi scheduled in S or (b) to a job preempted by S at time t′ < t
SLIDE 27
Open problems
- Tight bounds for deterministic algorithms
- Design randomized algorithms