ECLIPSE: An Extreme-Scale Linear Program Solver for Web-Applications
Kinjal Basu
LinkedIn AI
Amol Ghoting
LinkedIn AI
Rahul Mazumder
MIT
Yao Pan
LinkedIn AI
ECLIPSE: An Extreme-Scale Linear Program Solver for Web-Applications - - PowerPoint PPT Presentation
ECLIPSE: An Extreme-Scale Linear Program Solver for Web-Applications Kinjal Basu Amol Ghoting Rahul Mazumder Yao Pan LinkedIn AI LinkedIn AI MIT LinkedIn AI 1 Overview 2 ECLIPSE: Extreme Scale LP Solver Agenda 3 Applications 4
Kinjal Basu
LinkedIn AI
Amol Ghoting
LinkedIn AI
Rahul Mazumder
MIT
Yao Pan
LinkedIn AI
Overview
ECLIPSE: Extreme Scale LP Solver
System Architecture
Experimental Results Applications
Introduction
Large-Scale Linear Programs (LP) has several applications on web
Problems of Extreme Scale
Motivating Example
Friend or Connection Matching Problem
Scale:
( 1 Trillion Decision Variables)
min
x
cT x s.t. Ax b xi 2 Ci, i 2 [I]
✓A(1)
= B @ D11 . . . D1I . . . · · · . . . Dm21 . . . Dm2I 1 C A
between (𝑗, 𝑘)
projections)
General Framework
Global Constraints Cohort Level Constraints Eg: Total Invite Constraint Item level constraints Eg: Limits on invitation per user
min
x
cT x s.t. Ax b, xi 2 Ci, i 2 [I]
min
x
cT x + γ 2 xT x s.t. Ax b, xi 2 Ci, i 2 [I]
gγ(λ) := min
x∈QCi
n cT x + γ 2 xT x + λT (Ax b)
0 :=
P ∗
γ :=
Key Observation: Primal LP: Primal QP: Old idea: Perturbation of the LP (Mangasarian & Meyer ’79; Nesterov ‘05; Osher et al ‘11…) Dual QP:
Dualize
length(λ) is small
= max
λ≥0 gγ(λ)
Solve the Dual QP:
g∗
γ :=
P ∗
γ
Strong duality
Solving The Problem
min
x
cT x s.t. Ax b, xi 2 Ci, i 2 [I]
gγ(λ) := min
x∈QCi
n cT x + γ 2 xT x + λT (Ax b)
γ − P ∗ 0 | = O(γ)
| − ∃¯ γ > 0 such that x∗
γ solves LP for all γ ≤ ¯
γ x∗
γ 2 argmin x
cT x + γ 2 xT x s.t. Ax b, xi 2 Ci, i 2 [I]
Primal:
= max
λ≥0 gγ(λ)
g∗
γ :=
P ∗
0 :=
Solving The Problem
Dual:
= max
λ≥0 gγ(λ)
rgγ(λ) = Aˆ x(λ) b
λ 7! gγ(λ) is O(1/γ)-smooth.
[Nesterov ‘05]
Q
n
x(λ) 2 argmin
x∈QCi
n cT x + γ 2 xT x + λT (Ax b)
xi(λ) = ΠCi ✓ 1 γ (AT λ + c)i ◆
(Acceleration, Restarts)
ECLIPSE Algorithm
n n
Solving The Problem
Overall Algorithm
Input: At Iteration k: Dual Get Primal: Compute Gradient: Update Dual: GD: AGD: Next Iteration
Volume Optimization
Maximize Sessions
notifications bounded
Generalized from global to cohort level systems and member level systems
Multi-Objective Optimization
minimum
Email Volume
System Architecture
and restructured to form Input 𝐵, 𝑐, 𝑑
System Architecture
and restructured to form Input 𝐵, 𝑐, 𝑑
iterations.
they perform matrix vector multiplications in parallel
it back to continue the iterations
System Architecture
and restructured to form Input 𝐵, 𝑐, 𝑑
iterations.
they perform matrix vector multiplications in parallel
it back to continue the iterations
returned which are used in online serving
Detailed Spark Implementation
Data Representation
API
Apache MLLib
structure and implement DistributedVector API using RDD (index, Vector)
Estimating Primal
Multiplications and Projections are done in parallel
broadcast duals to minimize communication cost.
the primal is 𝑃(𝐾)
Estimating Gradient
expensive step to get
𝑃 𝑜 = 𝐽𝐾
Comparative Results
Please see the full paper for other comparisons
splitting the problem (SOTA):
Real Data Results
problems
executors
converged within 12 hours
SCS: O’Donoghue et al (2016)
Key Takeaways
from internet industry