applied convex models - kevin t. carlberg · outline imagein-painting(inpaint.ipynb)...

54
Applied Convex Models Nick Henderson, AJ Friend (Stanford University) Kevin Carlberg (Sandia National Laboratories) August 13, 2019 1

Upload: others

Post on 17-Oct-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Applied Convex Models - Kevin T. Carlberg · Outline Imagein-painting(inpaint.ipynb) Kalmanfiltering(robust_kalman.ipynb) Portfoliooptimization(portfolio_optimization.ipynb) Nonnegativematrixfactorization

Applied Convex Models

Nick Henderson, AJ Friend (Stanford University)Kevin Carlberg (Sandia National Laboratories)

August 13, 2019

1

Page 2: Applied Convex Models - Kevin T. Carlberg · Outline Imagein-painting(inpaint.ipynb) Kalmanfiltering(robust_kalman.ipynb) Portfoliooptimization(portfolio_optimization.ipynb) Nonnegativematrixfactorization

Image in-painting (inpaint.ipynb)

Image in-painting (inpaint.ipynb) 2

Page 3: Applied Convex Models - Kevin T. Carlberg · Outline Imagein-painting(inpaint.ipynb) Kalmanfiltering(robust_kalman.ipynb) Portfoliooptimization(portfolio_optimization.ipynb) Nonnegativematrixfactorization

Outline

Image in-painting (inpaint.ipynb)

Kalman filtering (robust_kalman.ipynb)

Portfolio optimization (portfolio_optimization.ipynb)

Nonnegative matrix factorization (nonneg_matrix_fact.ipynb)

Optimal advertising (optimal_advertising.ipynb)

Image in-painting (inpaint.ipynb) 3

Page 4: Applied Convex Models - Kevin T. Carlberg · Outline Imagein-painting(inpaint.ipynb) Kalmanfiltering(robust_kalman.ipynb) Portfoliooptimization(portfolio_optimization.ipynb) Nonnegativematrixfactorization

Image in-painting

Original Corrupted

Image in-painting (inpaint.ipynb) 4

Page 5: Applied Convex Models - Kevin T. Carlberg · Outline Imagein-painting(inpaint.ipynb) Kalmanfiltering(robust_kalman.ipynb) Portfoliooptimization(portfolio_optimization.ipynb) Nonnegativematrixfactorization

Image in-painting

guess pixel values in obscured/corrupted parts of imageI decision variable x ∈ Rm×n×3

I xi,j ∈ [0, 1]3 gives RGB values of pixel (i, j)I many pixels missingI K: set of known pixel IDs, whose values given by data y ∈ Rm×n×3

total variation in-painting: choose pixel values xi,j ∈ R3 to minimize

TV(x) =∑i,j

∥∥∥∥∥[xi+1,j − xi,j

xi,j+1 − xi,j

]∥∥∥∥∥2

that is, for each pixel, minimize distance to neighbors below and to the right, subject toknown pixel values

Image in-painting (inpaint.ipynb) 5

Page 6: Applied Convex Models - Kevin T. Carlberg · Outline Imagein-painting(inpaint.ipynb) Kalmanfiltering(robust_kalman.ipynb) Portfoliooptimization(portfolio_optimization.ipynb) Nonnegativematrixfactorization

In-painting: Convex model

minimize TV(x)subject to xi,j = yi,j if (i, j) ∈ K

Image in-painting (inpaint.ipynb) 6

Page 7: Applied Convex Models - Kevin T. Carlberg · Outline Imagein-painting(inpaint.ipynb) Kalmanfiltering(robust_kalman.ipynb) Portfoliooptimization(portfolio_optimization.ipynb) Nonnegativematrixfactorization

In-painting: Code example

# K[i, j] == 1 if pixel value known, 0 if unknownfrom cvxpy import *variables = []constr = []for i in range(3):

x = Variable(rows, cols)variables += [x]constr += [multiply(K, x - y[:,:,i]) == 0]

prob = Problem(Minimize(tv(*variables)), constr)prob.solve(solver=SCS)

Image in-painting (inpaint.ipynb) 7

Page 8: Applied Convex Models - Kevin T. Carlberg · Outline Imagein-painting(inpaint.ipynb) Kalmanfiltering(robust_kalman.ipynb) Portfoliooptimization(portfolio_optimization.ipynb) Nonnegativematrixfactorization

In-painting: 600× 512 color image; about 900k variablesOriginal Corrupted

Image in-painting (inpaint.ipynb) 8

Page 9: Applied Convex Models - Kevin T. Carlberg · Outline Imagein-painting(inpaint.ipynb) Kalmanfiltering(robust_kalman.ipynb) Portfoliooptimization(portfolio_optimization.ipynb) Nonnegativematrixfactorization

In-paintingOriginal Recovered

Image in-painting (inpaint.ipynb) 9

Page 10: Applied Convex Models - Kevin T. Carlberg · Outline Imagein-painting(inpaint.ipynb) Kalmanfiltering(robust_kalman.ipynb) Portfoliooptimization(portfolio_optimization.ipynb) Nonnegativematrixfactorization

In-painting (80% of pixels removed)Original Corrupted

Image in-painting (inpaint.ipynb) 10

Page 11: Applied Convex Models - Kevin T. Carlberg · Outline Imagein-painting(inpaint.ipynb) Kalmanfiltering(robust_kalman.ipynb) Portfoliooptimization(portfolio_optimization.ipynb) Nonnegativematrixfactorization

In-painting (80% of pixels removed)Original Recovered

Image in-painting (inpaint.ipynb) 11

Page 12: Applied Convex Models - Kevin T. Carlberg · Outline Imagein-painting(inpaint.ipynb) Kalmanfiltering(robust_kalman.ipynb) Portfoliooptimization(portfolio_optimization.ipynb) Nonnegativematrixfactorization

Kalman filtering (robust_kalman.ipynb)

Kalman filtering (robust_kalman.ipynb) 12

Page 13: Applied Convex Models - Kevin T. Carlberg · Outline Imagein-painting(inpaint.ipynb) Kalmanfiltering(robust_kalman.ipynb) Portfoliooptimization(portfolio_optimization.ipynb) Nonnegativematrixfactorization

Outline

Image in-painting (inpaint.ipynb)

Kalman filtering (robust_kalman.ipynb)

Portfolio optimization (portfolio_optimization.ipynb)

Nonnegative matrix factorization (nonneg_matrix_fact.ipynb)

Optimal advertising (optimal_advertising.ipynb)

Kalman filtering (robust_kalman.ipynb) 13

Page 14: Applied Convex Models - Kevin T. Carlberg · Outline Imagein-painting(inpaint.ipynb) Kalmanfiltering(robust_kalman.ipynb) Portfoliooptimization(portfolio_optimization.ipynb) Nonnegativematrixfactorization

Vehicle tracking

4 2 0 2 4 6 8 10 12 145

0

5

10

15

20True

4 2 0 2 4 6 8 10 12 14

Observed

Kalman filtering (robust_kalman.ipynb) 14

Page 15: Applied Convex Models - Kevin T. Carlberg · Outline Imagein-painting(inpaint.ipynb) Kalmanfiltering(robust_kalman.ipynb) Portfoliooptimization(portfolio_optimization.ipynb) Nonnegativematrixfactorization

Kalman filtering

I estimate vehicle path from noisy position measurements (with outliers)I dynamic model of vehicle state xt:

xt+1 = Axt +Bwt, yt = Cxt + vt

I Given:I A, B: matrices characterizing time-discrete dynamicsI C: output-measurement matrixI yt, t = 1, . . . , N : position measurements over N time steps

I Unknown:I xt: vehicle state (position, velocity): to be estimatedI wt: unknown drive force on vehicleI vt: noise

Kalman filtering (robust_kalman.ipynb) 15

Page 16: Applied Convex Models - Kevin T. Carlberg · Outline Imagein-painting(inpaint.ipynb) Kalmanfiltering(robust_kalman.ipynb) Portfoliooptimization(portfolio_optimization.ipynb) Nonnegativematrixfactorization

Kalman filter and Robust Kalman filterKalman filter:I estimate xt by solving

minimize∑N

t=1(‖wt‖22 + γ‖vt‖22

)subject to xt+1 = Axt +Bwt, yt = Cxt + vt, t = 1, . . . , N

I can interpret wt and vt as the residuals of the equationsI a least-squares problem; maximum likelihood if assuming wt, vt Gaussian

Robust Kalman filter:I to handle outliers in vt, replace square cost with Huber cost φ

minimize∑N

t=1(‖wt‖22 + γφ(vt)

)subject to xt+1 = Axt +Bwt, yt = Cxt + vt, t = 1, . . . , N

I No longer least squares due to Huber costKalman filtering (robust_kalman.ipynb) 16

Page 17: Applied Convex Models - Kevin T. Carlberg · Outline Imagein-painting(inpaint.ipynb) Kalmanfiltering(robust_kalman.ipynb) Portfoliooptimization(portfolio_optimization.ipynb) Nonnegativematrixfactorization

Robust KF CVXPY codefrom cvxpy import *x = Variable(4,n+1)w = Variable(2,n)v = Variable(2,n)

obj = sum_squares(w)obj += sum(huber(norm(v[:,t])) for t in range(n))obj = Minimize(obj)constr = []for t in range(n):

constr += [ x[:,t+1] == A*x[:,t] + B*w[:,t] ,y[:,t] == C*x[:,t] + v[:,t] ]

Problem(obj, constr).solve()Kalman filtering (robust_kalman.ipynb) 17

Page 18: Applied Convex Models - Kevin T. Carlberg · Outline Imagein-painting(inpaint.ipynb) Kalmanfiltering(robust_kalman.ipynb) Portfoliooptimization(portfolio_optimization.ipynb) Nonnegativematrixfactorization

Example

I N = 1000 time stepsI wt standard GaussianI vt standard Gaussian, except 30% are outliers with σ = 10

Kalman filtering (robust_kalman.ipynb) 18

Page 19: Applied Convex Models - Kevin T. Carlberg · Outline Imagein-painting(inpaint.ipynb) Kalmanfiltering(robust_kalman.ipynb) Portfoliooptimization(portfolio_optimization.ipynb) Nonnegativematrixfactorization

Example

4 2 0 2 4 6 8 10 12 145

0

5

10

15

20True

4 2 0 2 4 6 8 10 12 14

Observed

Kalman filtering (robust_kalman.ipynb) 19

Page 20: Applied Convex Models - Kevin T. Carlberg · Outline Imagein-painting(inpaint.ipynb) Kalmanfiltering(robust_kalman.ipynb) Portfoliooptimization(portfolio_optimization.ipynb) Nonnegativematrixfactorization

Example

4 2 0 2 4 6 8 10 12 145

0

5

10

15

20True

4 2 0 2 4 6 8 10 12 14

KF recovery

Kalman filtering (robust_kalman.ipynb) 20

Page 21: Applied Convex Models - Kevin T. Carlberg · Outline Imagein-painting(inpaint.ipynb) Kalmanfiltering(robust_kalman.ipynb) Portfoliooptimization(portfolio_optimization.ipynb) Nonnegativematrixfactorization

Example

4 2 0 2 4 6 8 10 12 145

0

5

10

15

20True

4 2 0 2 4 6 8 10 12 14

Robust KF recovery

Kalman filtering (robust_kalman.ipynb) 21

Page 22: Applied Convex Models - Kevin T. Carlberg · Outline Imagein-painting(inpaint.ipynb) Kalmanfiltering(robust_kalman.ipynb) Portfoliooptimization(portfolio_optimization.ipynb) Nonnegativematrixfactorization

Portfolio optimization (portfolio_optimization.ipynb)

Portfolio optimization (portfolio_optimization.ipynb) 22

Page 23: Applied Convex Models - Kevin T. Carlberg · Outline Imagein-painting(inpaint.ipynb) Kalmanfiltering(robust_kalman.ipynb) Portfoliooptimization(portfolio_optimization.ipynb) Nonnegativematrixfactorization

Outline

Image in-painting (inpaint.ipynb)

Kalman filtering (robust_kalman.ipynb)

Portfolio optimization (portfolio_optimization.ipynb)

Nonnegative matrix factorization (nonneg_matrix_fact.ipynb)

Optimal advertising (optimal_advertising.ipynb)

Portfolio optimization (portfolio_optimization.ipynb) 23

Page 24: Applied Convex Models - Kevin T. Carlberg · Outline Imagein-painting(inpaint.ipynb) Kalmanfiltering(robust_kalman.ipynb) Portfoliooptimization(portfolio_optimization.ipynb) Nonnegativematrixfactorization

Portfolio allocation vector

I invest fraction wi in asset i for i = 1, . . . , nI w ∈ Rn is portfolio allocation vectorI 1Tw = 1I wi < 0 means short position in asset i (borrow shares and sell now; replace later)I w ≥ 0 is a long only portfolioI ‖w‖1 = 1Tw+ + 1Tw− is leverage (there are other definitions)

I smaller leverage = fewer investments (sparser)

Portfolio optimization (portfolio_optimization.ipynb) 24

Page 25: Applied Convex Models - Kevin T. Carlberg · Outline Imagein-painting(inpaint.ipynb) Kalmanfiltering(robust_kalman.ipynb) Portfoliooptimization(portfolio_optimization.ipynb) Nonnegativematrixfactorization

Asset Returns

I investments held for one periodI initial prices pi > 0; end of period process p+

i > 0I asset (fractional) returns ri = (p+

i − pi)/pi

I portfolio (fractional) return R =∑

i riwi = rTwI common model: r is a random variable, with mean E[r] = µ, covariance

E[(r − µ)(r − µ)T ] = ΣI so R is a random variable with E[R] = µTw, var[R] = wT ΣwI E[R] is (mean) return of portfolioI var[R] = wT Σw is risk of portfolioI Finance: high return, low risk (multiobjective)

Portfolio optimization (portfolio_optimization.ipynb) 25

Page 26: Applied Convex Models - Kevin T. Carlberg · Outline Imagein-painting(inpaint.ipynb) Kalmanfiltering(robust_kalman.ipynb) Portfoliooptimization(portfolio_optimization.ipynb) Nonnegativematrixfactorization

Classical (Markowitz) portfolio optimization

minimize −µTw + γwT Σwsubject to 1Tw = 1, w ∈ W

I variable w ∈ Rn

I W is set of allowed portfoliosI common case W = Rn

+ (long only)I γ > 0 is risk aversion parameterI µTw − γwT Σw is risk-adjusted returnI varying γ gives (convex hull of) Pareto-optimal risk-return trade-offI can also fix return and minimize risk, etc.I To limit leverage use ‖w‖1 ≤ Lmax

Portfolio optimization (portfolio_optimization.ipynb) 26

Page 27: Applied Convex Models - Kevin T. Carlberg · Outline Imagein-painting(inpaint.ipynb) Kalmanfiltering(robust_kalman.ipynb) Portfoliooptimization(portfolio_optimization.ipynb) Nonnegativematrixfactorization

Pareto front

I Pareto front shows Pareto-optimal allocationsI Red points show single-asset allocation points

Portfolio optimization (portfolio_optimization.ipynb) 27

Page 28: Applied Convex Models - Kevin T. Carlberg · Outline Imagein-painting(inpaint.ipynb) Kalmanfiltering(robust_kalman.ipynb) Portfoliooptimization(portfolio_optimization.ipynb) Nonnegativematrixfactorization

Pareto front

Two Pareto-optimal portfolios:I γ = 0.29: higher return, higher riskI γ = 1.05: lower return, lower risk

Portfolio optimization (portfolio_optimization.ipynb) 28

Page 29: Applied Convex Models - Kevin T. Carlberg · Outline Imagein-painting(inpaint.ipynb) Kalmanfiltering(robust_kalman.ipynb) Portfoliooptimization(portfolio_optimization.ipynb) Nonnegativematrixfactorization

Leverage

I Now, introduce a constraint on leverage:

minimize −µTw + γwT Σwsubject to 1Tw = 1, w ∈ W

‖w‖1 ≤ Lmax

Portfolio optimization (portfolio_optimization.ipynb) 29

Page 30: Applied Convex Models - Kevin T. Carlberg · Outline Imagein-painting(inpaint.ipynb) Kalmanfiltering(robust_kalman.ipynb) Portfoliooptimization(portfolio_optimization.ipynb) Nonnegativematrixfactorization

Pareto curves for different values of Lmax:

I Larger values of Lmax are less restrictive and enable superior portfolios in terms ofrisk and return

Portfolio optimization (portfolio_optimization.ipynb) 30

Page 31: Applied Convex Models - Kevin T. Carlberg · Outline Imagein-painting(inpaint.ipynb) Kalmanfiltering(robust_kalman.ipynb) Portfoliooptimization(portfolio_optimization.ipynb) Nonnegativematrixfactorization

Leverage

I Now, introduce a constraint on risk:

minimize −µTwsubject to 1Tw = 1, w ∈ W

‖w‖1 ≤ LmaxwT Σw ≤ 2

I Single objective

Portfolio optimization (portfolio_optimization.ipynb) 31

Page 32: Applied Convex Models - Kevin T. Carlberg · Outline Imagein-painting(inpaint.ipynb) Kalmanfiltering(robust_kalman.ipynb) Portfoliooptimization(portfolio_optimization.ipynb) Nonnegativematrixfactorization

Portfolios for different values of Lmax:

I Smaller values of Lmax enforce sparsity and smaller variation in the resultingportfolios (lower leverage)

Portfolio optimization (portfolio_optimization.ipynb) 32

Page 33: Applied Convex Models - Kevin T. Carlberg · Outline Imagein-painting(inpaint.ipynb) Kalmanfiltering(robust_kalman.ipynb) Portfoliooptimization(portfolio_optimization.ipynb) Nonnegativematrixfactorization

Nonnegative matrix factorization(nonneg_matrix_fact.ipynb)

Nonnegative matrix factorization (nonneg_matrix_fact.ipynb) 33

Page 34: Applied Convex Models - Kevin T. Carlberg · Outline Imagein-painting(inpaint.ipynb) Kalmanfiltering(robust_kalman.ipynb) Portfoliooptimization(portfolio_optimization.ipynb) Nonnegativematrixfactorization

Outline

Image in-painting (inpaint.ipynb)

Kalman filtering (robust_kalman.ipynb)

Portfolio optimization (portfolio_optimization.ipynb)

Nonnegative matrix factorization (nonneg_matrix_fact.ipynb)

Optimal advertising (optimal_advertising.ipynb)

Nonnegative matrix factorization (nonneg_matrix_fact.ipynb) 34

Page 35: Applied Convex Models - Kevin T. Carlberg · Outline Imagein-painting(inpaint.ipynb) Kalmanfiltering(robust_kalman.ipynb) Portfoliooptimization(portfolio_optimization.ipynb) Nonnegativematrixfactorization

Nonnegative matrix factorization

I goal: factor A ∈ Rm×n+ such that

A ≈WH,

where W ∈ Rm×k+ , H ∈ Rk×n

+ and k n,mI W , H give nonnegative low-rank approximation to AI low-rank means data more interpretable as combination of just k featuresI nonegativity may be natural to the data, e.g., no negative words in a documentI applications in recommendation systems, signal processing, clustering, computer

vision, natural language processing

Nonnegative matrix factorization (nonneg_matrix_fact.ipynb) 35

Page 36: Applied Convex Models - Kevin T. Carlberg · Outline Imagein-painting(inpaint.ipynb) Kalmanfiltering(robust_kalman.ipynb) Portfoliooptimization(portfolio_optimization.ipynb) Nonnegativematrixfactorization

NMF formulation

I many ways to formalize A ≈WHI for given A and k, we’ll try to find W and H that solve

minimizeW,H ‖A−WH‖2Fsubject to Wij ≥ 0

Hij ≥ 0

I ‖X‖F =√∑

ij X2ij is the matrix Frobenius norm

Nonnegative matrix factorization (nonneg_matrix_fact.ipynb) 36

Page 37: Applied Convex Models - Kevin T. Carlberg · Outline Imagein-painting(inpaint.ipynb) Kalmanfiltering(robust_kalman.ipynb) Portfoliooptimization(portfolio_optimization.ipynb) Nonnegativematrixfactorization

Principal component analysis

I NMF can be thought of as a dimensionality reduction techniqueI PCA is a related dimensionality reduction method, solving the problem

minimizeW,H ‖A−WH‖2F

for W ∈ Rm×k+ , H ∈ Rk×n

+ , without nonnegativity constraintI PCA has “analytical” solution via the singular value decompositionI won’t go further into the interpretation of the models; focus on methods for

computing NMF instead

Nonnegative matrix factorization (nonneg_matrix_fact.ipynb) 37

Page 38: Applied Convex Models - Kevin T. Carlberg · Outline Imagein-painting(inpaint.ipynb) Kalmanfiltering(robust_kalman.ipynb) Portfoliooptimization(portfolio_optimization.ipynb) Nonnegativematrixfactorization

Biconvexity

I the NMF problemminimizeW,H ‖A−WH‖2Fsubject to Wij ≥ 0

Hij ≥ 0

is nonconvex due to the product WHI however, the objective function is biconvex: convex in either W or H if we hold

the other fixed

Nonnegative matrix factorization (nonneg_matrix_fact.ipynb) 38

Page 39: Applied Convex Models - Kevin T. Carlberg · Outline Imagein-painting(inpaint.ipynb) Kalmanfiltering(robust_kalman.ipynb) Portfoliooptimization(portfolio_optimization.ipynb) Nonnegativematrixfactorization

Alternating minimization

biconvexity suggests the following algorithm:I initialize W 0

I for k = 0, 1, 2, . . .I

Hk+1 = argminH ‖A−W kH‖2Fsubject to Hij ≥ 0

IW k+1 = argminW ‖A−WHk+1‖2F

subject to Wij ≥ 0

Nonnegative matrix factorization (nonneg_matrix_fact.ipynb) 39

Page 40: Applied Convex Models - Kevin T. Carlberg · Outline Imagein-painting(inpaint.ipynb) Kalmanfiltering(robust_kalman.ipynb) Portfoliooptimization(portfolio_optimization.ipynb) Nonnegativematrixfactorization

In CVXPYfor iter_num in range(1, 1+MAX_ITERS):

# For odd iterations, treat Y constant, optimize over X.if iter_num % 2 == 1:

X = cvx.Variable(k, n)constraint = [X >= 0]

# For even iterations, treat X constant, optimize over Y.else:

Y = cvx.Variable(m, k)constraint = [Y >= 0]

# Solve the problem.obj = cvx.Minimize(cvx.norm(A - Y*X, 'fro'))prob = cvx.Problem(obj, constraint)prob.solve(solver=cvx.SCS)

Nonnegative matrix factorization (nonneg_matrix_fact.ipynb) 40

Page 41: Applied Convex Models - Kevin T. Carlberg · Outline Imagein-painting(inpaint.ipynb) Kalmanfiltering(robust_kalman.ipynb) Portfoliooptimization(portfolio_optimization.ipynb) Nonnegativematrixfactorization

NMF results in CVXPY

I Residual goes to zero

Nonnegative matrix factorization (nonneg_matrix_fact.ipynb) 41

Page 42: Applied Convex Models - Kevin T. Carlberg · Outline Imagein-painting(inpaint.ipynb) Kalmanfiltering(robust_kalman.ipynb) Portfoliooptimization(portfolio_optimization.ipynb) Nonnegativematrixfactorization

Discussion

I expression A−W kH is linear in variable HI ‖A−W kH‖2F is exactly the least squares objective, but with matrix instead of

vector variableI each subproblem is a convex nonnegative least squares problemI no guarantee of global minimum, but we do get a local minimumI due to biconvexity, the objective function decreases at each iteration, meaning that

the iteration converges

Nonnegative matrix factorization (nonneg_matrix_fact.ipynb) 42

Page 43: Applied Convex Models - Kevin T. Carlberg · Outline Imagein-painting(inpaint.ipynb) Kalmanfiltering(robust_kalman.ipynb) Portfoliooptimization(portfolio_optimization.ipynb) Nonnegativematrixfactorization

Extensions

sparse factors with `1 penalty

minimizeW,H ‖A−WH‖2F +∑

ij (|Wij |+ |Hij |)subject to Wij ≥ 0

Hij ≥ 0

Nonnegative matrix factorization (nonneg_matrix_fact.ipynb) 43

Page 44: Applied Convex Models - Kevin T. Carlberg · Outline Imagein-painting(inpaint.ipynb) Kalmanfiltering(robust_kalman.ipynb) Portfoliooptimization(portfolio_optimization.ipynb) Nonnegativematrixfactorization

Extensions

matrix completion: only observe subet of entries Aij for (i, j) ∈ ΩI use low-rank assumption to estimate missing entries

minimizeW,H,Z∑

i,j∈Ω(Aij − Zij)2

subject to Z = WHWij ≥ 0Hij ≥ 0

Nonnegative matrix factorization (nonneg_matrix_fact.ipynb) 44

Page 45: Applied Convex Models - Kevin T. Carlberg · Outline Imagein-painting(inpaint.ipynb) Kalmanfiltering(robust_kalman.ipynb) Portfoliooptimization(portfolio_optimization.ipynb) Nonnegativematrixfactorization

Optimal advertising (optimal_advertising.ipynb)

Optimal advertising (optimal_advertising.ipynb) 45

Page 46: Applied Convex Models - Kevin T. Carlberg · Outline Imagein-painting(inpaint.ipynb) Kalmanfiltering(robust_kalman.ipynb) Portfoliooptimization(portfolio_optimization.ipynb) Nonnegativematrixfactorization

Outline

Image in-painting (inpaint.ipynb)

Kalman filtering (robust_kalman.ipynb)

Portfolio optimization (portfolio_optimization.ipynb)

Nonnegative matrix factorization (nonneg_matrix_fact.ipynb)

Optimal advertising (optimal_advertising.ipynb)

Optimal advertising (optimal_advertising.ipynb) 46

Page 47: Applied Convex Models - Kevin T. Carlberg · Outline Imagein-painting(inpaint.ipynb) Kalmanfiltering(robust_kalman.ipynb) Portfoliooptimization(portfolio_optimization.ipynb) Nonnegativematrixfactorization

Ad display

I m advertisers/ads, i = 1, . . . ,mI n time slots, t = 1, . . . , nI Tt is total traffic in time slot tI Dit ≥ 0 is number of ad i displayed in period tI∑

iDit ≤ Tt

I contracted minimum total displays:∑

tDit ≥ ci

I goal: choose Dit

Optimal advertising (optimal_advertising.ipynb) 47

Page 48: Applied Convex Models - Kevin T. Carlberg · Outline Imagein-painting(inpaint.ipynb) Kalmanfiltering(robust_kalman.ipynb) Portfoliooptimization(portfolio_optimization.ipynb) Nonnegativematrixfactorization

Clicks and revenue

I Cit is number of clicks on ad i in period tI click model: Cit = PitDit

I Pit ∈ [0, 1]: fraction of ads i in period t that are clickedI payment: Ri > 0 per click for ad i, up to budget Bi

I ad revenueSi = minRi

∑t

Cit, Bi

is a concave function of D

Optimal advertising (optimal_advertising.ipynb) 48

Page 49: Applied Convex Models - Kevin T. Carlberg · Outline Imagein-painting(inpaint.ipynb) Kalmanfiltering(robust_kalman.ipynb) Portfoliooptimization(portfolio_optimization.ipynb) Nonnegativematrixfactorization

Ad optimization

I choose displays to maximize revenue:

maximize∑

i Si = minRi∑

t PitDit, Bisubject to D ≥ 0, DT 1 ≤ T, D1 ≥ c

I variable is D ∈ Rm×n

I data are T , c, R, B, PI constraint interpretation:

I D ≥ 0: non-negative number of each ad in each time periodI DT 1 ≤ T : cannot exceed total traffic in each time slotI D1 ≥ c: cannot violate minimum number of contracted ad displays

Optimal advertising (optimal_advertising.ipynb) 49

Page 50: Applied Convex Models - Kevin T. Carlberg · Outline Imagein-painting(inpaint.ipynb) Kalmanfiltering(robust_kalman.ipynb) Portfoliooptimization(portfolio_optimization.ipynb) Nonnegativematrixfactorization

Ad optimization exampleI 24 hourly periods, 5 ads (A–E)I total traffic Tt:

Optimal advertising (optimal_advertising.ipynb) 50

Page 51: Applied Convex Models - Kevin T. Carlberg · Outline Imagein-painting(inpaint.ipynb) Kalmanfiltering(robust_kalman.ipynb) Portfoliooptimization(portfolio_optimization.ipynb) Nonnegativematrixfactorization

Example

I ad data:

Ad A B C D E

ci 61000 80000 61000 23000 64000Ri 0.15 1.18 0.57 2.08 2.43Bi 25000 12000 12000 11000 17000

I ci: minimum contracted amount for ad iI Ri: payment per click for ad iI Bi: maximum budget for ad i

Optimal advertising (optimal_advertising.ipynb) 51

Page 52: Applied Convex Models - Kevin T. Carlberg · Outline Imagein-painting(inpaint.ipynb) Kalmanfiltering(robust_kalman.ipynb) Portfoliooptimization(portfolio_optimization.ipynb) Nonnegativematrixfactorization

Ad optimization CVXPY code

from cvxpy import *D = Variable(m,n)Si = [minimum(R[i]*P[i,:]*D[i,:].T, B[i]) for i in range(m)]prob = Problem(Maximize(sum(Si)),

[D >= 0,D.T*np.ones(m) <= T,D*np.ones(n) >= c])

prob.solve()

Optimal advertising (optimal_advertising.ipynb) 52

Page 53: Applied Convex Models - Kevin T. Carlberg · Outline Imagein-painting(inpaint.ipynb) Kalmanfiltering(robust_kalman.ipynb) Portfoliooptimization(portfolio_optimization.ipynb) Nonnegativematrixfactorization

Ad optimization results in CVXPY

Optimal advertising (optimal_advertising.ipynb) 53

Page 54: Applied Convex Models - Kevin T. Carlberg · Outline Imagein-painting(inpaint.ipynb) Kalmanfiltering(robust_kalman.ipynb) Portfoliooptimization(portfolio_optimization.ipynb) Nonnegativematrixfactorization

Example

I ad revenue

Ad A B C D E

ci 61000 80000 61000 23000 64000Ri 0.15 1.18 0.57 2.08 2.43Bi 25000 12000 12000 11000 17000∑

tDit 61000 80000 148116 23000 167323Si 182 12000 12000 11000 7760

I Only show minimum number of ad A; makes very little moneyI Maximize the budget for ads B, C, and D

Optimal advertising (optimal_advertising.ipynb) 54