A Light-speed Linear Program Solver for Personalized Recommendation with Diversity Constraints
Abstract
We study a structured linear program (LP) that emerges in the need of ranking candidates or items in personalized recommender systems.
Since the candidate set is only known in real time, the LP also needs to be formed and solved in real time.
Latency and user experience are major considerations, requiring the LP to be solved within just a few milliseconds.
Although typical instances of the problem are not very large in size, this stringent time limit appears to be beyond the capability of most existing (commercial) LP solvers, which can take 20 milliseconds or more to find a solution.
Thus, reliable methods that address the real-world complication of latency become necessary.
In this paper, we propose a fast specialized LP solver for a structured problem with diversity constraints.
Our method solves the dual problem, making use of the piece-wise affine structure of the dual objective function, with an additional screening technique that helps reduce the dimensionality of the problem as the algorithm progresses.
Experiments reveal that our method can solve the problem within roughly 1 millisecond, yielding a 20x improvement in speed over efficient off-the-shelf LP solvers.
This speed-up can help improve the quality of recommendations without affecting user experience, highlighting how optimization can provide solid orthogonal value to machine-learned recommender systems.
1. Introduction
Linear programs (LPs) arise naturally in several applications across various scientific and industrial disciplines.
Examples include scheduling [16], matching entities [7, 11, 22], network flow [4, 9], recommender systems [1–3, 18] and many others [13, 14].
Despite the significant development of LP solvers after decades of research, modern applications bring new challenges in solving LP problems, either with extreme-scale datasets [8], or with strict restrictions on time budget (e.g. in an online setting where LPs need to be solved in real-time).
These challenges have sparked recent explorations for more efficient algorithms to solve LPs in both academia and industry, see e.g.
In this paper, we focus on a framework for re-ranking candidates in recommender systems under diversity or grouping constraints [12].
Consider a social media platform that makes personalized recommendations for its users.
Suppose there are m candidates (which could be items [3] or people [22]) for generating recommendations for user u ; each candidate i has a utility score c i ∈
R
that is generated by a machine learning model, representing the probability that u may interact with this candidate.
Suppose there are n slots to present the recommendations, with weight w j >representing the importance of the slot j .
In particular, we assume w 1 > w 2 > · · · > w n , i.e., slots in the ‘front’ are more important.
In light of the applications we consider, we assume that n is much smaller than m : for example, n equals 10 ∼ 20 , while m can range from hundreds to thousands.
The recommendations and scores are specific to a given user u , and vary across users.
The primary goal of the system is to find an assignment of the m candidates into the n slots so as to maximize the total weighted utility score.
We formulate the LP problem per user u , and solve the
LPs for all different users in parallel.
Let matrix X u ∈ R m × n represent a randomized 1 assignment for each user u ’s recommendations, where each X uij ∈
[0 , 1] stands for the probability that candidate i is assigned to slot j .
For simplicity, we remove the superscript of u in all the following notations.
Then for each user u , the recommendation problem can be formulated as:
[Equation]
where c = ( c 1 , c 2 , ..., c m ) ⊤ ∈ R m , w = ( w 1 , w 2 , ..., w n ) ⊤ ∈ R n , and the set S m,n is defined by
[Equation]
where 1 k is the vector in R k with all coordinates being 1 (for any k ≥ 1 ).
The constraint X 1 n ≤ 1 m implies that for each candidate i , the probability that i is assigned to some slot is at most 1 .
The constraint 1 ⊤ m X = 1 ⊤ n implies that each slot must be assigned a candidate.
Note that (1) has a simple closed-form solution: let σ ∗ be a permutation on [ m ] such that c σ ∗ (1) ≥ c σ ∗ (2) ≥ · · · ≥ c σ ∗ ( m ) , then matrix X ∗ with X ∗ σ ∗ ( j ) ,j = 1 for all j ∈ [ n ] and all other entries being 0 , is an optimal solution of (1).
In other words, the candidates with the top n scores are placed in the top n slots, in descending order of the scores.
In the system described above, only utility scores are used to make assignments.
Recommendations obtained this way often lead to selection bias and can favor a particular group in terms of the overall ranking.
For example, different kinds of people, different activity levels across the platform, different types of content etc. may get a very different exposure or placement in the rankings.
Average ranks of one group may be much higher than those of another group when the system is solely optimized for overall utility which increases homogeneity over time.
To allow for diverse recommendations, we introduce an additional diversity constraint to this problem.
Let a i ∈ R denote the diversity feature of the candidate i .
The following LP places a constraint on the weighted sum of the diversity features:
[Equation]
where a = ( a 1 , a 2 , ..., a m ) ⊤ ∈ R m , and b 1 and b 2 are chosen lower and upper bounds on the total weighted diversity.
This allows us to incorporate a family of desired diversity restrictions with appropriate choices on a, b 1 and b 2 .
For example, in “People You May Know” (PYMK) recommendations, if the user (viewer) is a software engineer, then it is likely that the system would give candidates who are also software engineers
a favorably higher score c
i . It may be better to blend more candidates who are not software engineers but share other common similarities with the user. In this case, we model a i = 1 if the candidate has similar job as the user, and a i = − 1 if not. By properly setting values b 1 and b 2 we can diversify the PYMK recommendations.
A few more concrete examples of real-world use cases which can benefit from our specialized solver are discussed in the appendix (Section G).
Unlike (1), the LP in (3) does not have a closed-form solution.
As an example: A leading commercial solver Gurobi can solve Problem (3) with small or medium size (e.g., m = 100 , n = 10 ) in roughly 20 milli-seconds using their proprietary solver.
However, for an online application where data c i (and the set of candidates themselves) are frequently updated, the personalized LP problem (3) needs to be solved in an “on-click” manner: when a user clicks a button to load the recommendations, the LP problem under the hood needs to be solved in an instant, i.e. ideally within 3 ∼ 5 milli-seconds.
Our goal here is to develop a novel algorithm to be able to solve this LP under such strict time-requirements.
In this paper, we introduce a specialized algorithm for problem (3) that can solve an instance with m = 100 and n = 10 within one milli-second, which is a 20x speedup compared to commercial
LP solvers.
Our method introduces a dual variable for the diversity constraint in (3) and solves the one-dimensional dual problem using a bisection method. When we are sufficiently close to an optimal dual solution, we trace the piece-wise linear structure of the dual objective function to locate the exact value of the dual optimal solution.
The primal optimal solution can then be recovered from the dual optimal solution.
We also introduce a screening technique that can detect and drop candidates that would not be assigned to any slots in the optimal solution.
This screening technique can significantly accelerate the algorithm when the number of candidates m is large.
The remainder of the paper is organized as follows.
In Section 2, we simplify the program (3) and introduce our main algorithmic framework.
In Section 3 we introduce the screening technique to further accelerate the algorithm.
In Section 4, we present numerical results of our algorithm.
We finally wrap up with a discussion in Section 5.
Proofs of all results are placed in the appendix for easier reading of the main paper.
2. Dual problem and our solution approach
Reduction to a one-sided diversity constraint: In problem (3), the diversity constraint places both a lower bound b 1 and an upper bound b 2 on a ⊤ Xw .
However, to find the optimal solution of (3), either the lower bound or the upper bound can be dropped, as shown by the following lemma.
Define X 0 to be the set of optimal solution without the diversity constraint, i.e.,
X 0 :
= argmax { c ⊤ Xw | X ∈ S m,n } .
Lemma 1 (i)
If min X ∈X 0 { a ⊤ Xw } > b 2 , then the set of optimal solutions of (3) is the same as [Equation] ii)
If max X ∈X
0 { a ⊤ Xw
} < b 1 , then the set of optimal solutions of (3) is the same as
[Equation]
[Equation]
(iii)
If there exists ¯ X ∈ X 0 such that b 1 ≤ a ⊤ ¯ Xw ≤ b 2 , then ¯ X is an optimal solution of (3)
Lemma 1 provides a procedure to drop one side of the diversity constraint without changing the optimal solution.
To use it in practice, we need to evaluate X 0 , which can be efficiently computed via a ranking of the coordinates of c .
When there is no tie in the ranking of the coordinates of c , the optimal set X 0 will only contain one point, say X
0 = { ¯ X } .
Properties of the dual objective function: Having made use of the reduction result of Lemma 1, we now discuss how to solve problem (4).
Note that problem (5) can also be written into a similar form as (4), with a replaced by − a and b 2 replaced by − b 1 .
To solve problem (4), we introduce a dual variable λ ≥ 0 for the constraint a ⊤ X ∗ w ≤ b 2 , and define the dual objective function:
[Equation]
then g is a piece-wise linear convex function, and the dual problem of (4) is {+min λ ≥ 
+}
g ( λ ) .
For each fixed λ ≥ 0 , the value g ( λ ) can be evaluated by solving the maximization in (6), which can be computed in closed form via a sorting of the coordinates of c − λa .
Let X λ be the set of optimal solutions of (6).
Then the extreme points of X λ are given by:
[Equation]
permutation on [ m ] with
[Equation]
where X ( σ ) ∈ S m,n is the matrix with X σ ( i ) ,i = 1 for i ∈ [ n ] and all other entries being 0 .
If there are no ties among the top n values of c − λa , the set ext( X λ ) (and also X λ ) contains only one element, i.e., (6) has a unique solution.
Once X λ is computed, the derivatives of g can also be evaluated, via a standard application of Danskin’s theorem [10].
Lemma
For any λ > 0 , the left derivative and right derivative of g are given by
[Equation]
and
[Equation]
Note that g is a piece-wise linear function.
For λ in the interior of a linear block, the left and right derivatives are the same: g ′− ( λ ) =
g ′ + ( λ ) .
For λ at the intersection of two linear blocks (called a kink of g ), it holds g ′− ( λ ) <
g ′ + ( λ ) .
In particular, if at some λ > 0 , the top n coordinates of c − λa is unique, then X λ contains only one point, and by (8), we know that λ must lie in the interior of a linear block.
Furthermore, the top n values of c − λa are the same for all other λ in the interior of the same linear block.
This motivates a method to trace the piece-wise linear structure of g via observing the top n coordinates of c − λa as λ changes.
For λ > 0 , let K R ( λ ) be the smallest kink of g that is larger than λ , and K L ( λ ) be the largest kink of g that is smaller than λ .
For any vector y ∈ R m , let T n ( y ) be the set of top n coordinates of y (including ties), that is, [Equation]
[Equation]
For a given λ > 0 , let z := c − λa , then K R ( λ ) and K L ( λ ) can be computed in closed form:
[Equation]
As shown in (11) and (10), one can trace the exact value of the kinks of g starting from an arbitrary λ > 0 .
As long as |T n ( y ) | =
O ( n ) , the computation cost of K R ( λ ) and K L ( λ ) is O ( mn ) operations.
Bisection and tracing for the dual problem: To solve problem (4), we solve the one-dimensional dual problem (7) using a bisection method, which maintains and updates an interval [ λ min , λ max ] that contains the dual optimal solution λ ∗ (for simplicity, assume it is unique).
In each iteration, the algorithm computes the value and derivatives of g at the midpoint λ
= ( λ min + λ max ) / 2 of this interval, and consider the following cases: (1) If g ′ + ( λ ) < 0 , then we know λ < λ ∗ , and update the interval to [ λ, λ max ] ; (2) if g ′− ( λ ) > 0 , then we know λ > λ ∗ , and update the interval to [ λ min , λ ] ; (3) otherwise it holds g ′− ( λ ) ≤ 0 ≤ g ′ + ( λ ) , which indicates that λ
= λ ∗ .
In the above, the bisection method shrinks the interval by a half in each iteration, so the value of the dual optimal solution can be quickly located in a small interval after a few iterations.
When the interval is small enough, the algorithm computes a nearby kink following (11) or (10), and checks if this kink is the exact optimal dual solution (using the signs of left and right derivatives).
If the kink is the optimal solution, the algorithm is terminated immediately; otherwise we continue the bisection iterations.
Details of our algorithm are summarized in Algorithm 1 in the appendix.
Once the dual problem is solved, the primal solution can be recovered in closed form – see Section D in the appendix for details.
Note that in this algorithm, the major algebraic operations are conducted in the computations of
X λ and K L ( λ ) (or K R ( λ ) ).
In each iteration of Algorithm 1, to compute X λ , one needs to sort the vector c − λa , which takes m log( m ) operations.
When λ max − λ min < ∆ , an additional tracing step is needed to compute K L ( λ ) or K R ( λ ) , which takes O ( mn ) operations.
Therefore, the cost of Algorithm 1 scales (at least) linearly with respect to m which can get expensive when m is large.
In Section 3 we discuss a screening procedure to accelerate the algorithm in such a case.
3. A screening procedure when m is large
When the number of candidates m is large, we propose a screening technique that is used in the process of Algorithm 1, which can quickly detect and discard candidates that will not be in the optimal solution.
Note that the candidates that are present in the optimal solution must be the top n coordinates of the vector c − λ ∗ a , where λ ∗ is the dual optimal solution.
Although λ ∗ is not available at the beginning, after a few iterations of Algorithm 1, we have an interval [ λ min , λ max ] that can approximately locate the value of λ ∗ .
If at some point λ that is close to λ ∗ , we observe that some candidate i has a very low rank (i.e., far from being in the top n ) in the sorted sequence c − λa , it is a strong evidence that i is not in the top n elements of vector c − λ ∗ a .
The following lemma provides a precise statement underlying this intuition.
Lemma 3 Let λ ∗ be the solution of (7) , and let λ min , λ max satisfy λ min ≤ λ ∗ ≤ λ max .
For any i ∈ [ m ] , if there exist indices i 1 , ...., i n ∈ [ m ] such that [Equation] and
[Equation]
Then the i -th row of the solution of (4) is zero.
According to Lemma 3, to prove that candidate i ∈ [ m ] is not selected in the optimal assignment, it suffices to find a set of “good” indices i 1 , ...., i n such that (12) holds true.
Different choices of i 1 , ...., i n may lead to different screening qualities.
When the interval [ λ min , λ max ] is small enough, if we take i 1 , ...., i n to be the top n coordinates of c − λa for some λ ∈ [ λ min , λ max ] , then they may also have a high rank in the sortings of both c − λ min a and c − λ max a , and can be used as good candidates for the screening in (12).
We apply a screening step in each iteration of Algorithm 1.
In particular, we take i 1 , ...., i n as the top n coordinates of c − ¯ λa for λ =
( λ min + λ max ) / 2 , and check the inequalities in (12) for all other i ∈ [ m ] .
If for some i the inequalities (12) hold true, then i can be discarded, and the dimension of the problem is reduced.
This is summarized in Algorithm 2 in appendix.
4. Numerical experiments
We conduct experiments on synthetic and real datasets to assess the performance of our algorithm.
All the experiments are conducted on a Macbook Pro with 4 CPUs and 16GB RAM.
Speedup by the screening procedure .
To show the advantage of the screening steps introduced in
Section 3, we compare the runtimes of Algorithms 1 and 2 on synthetic examples with n = 10 and different values of m .
See Section E for data generation procedure.
n =n =
Alg
Gurobi
Alg
Gurobi m =0.
m
=1. m =2. m
=5. m =14.
are in milli-
[Figure]
Figure 1 shows runtime comparison of Algorithms 1 and 2 with the number of slots n = 10 and number of candidates m ∈ { 100 , 300 , 1000 , 3000 } .
The results are the average of 20 independent replications (with standard errors).
As shown in Figure 1, when m = 100 , the runtimes of Algorithm 1 and Algorithm 2 are close (both are roughly one ms).
For larger values of m , Algorithmis faster than Algorithm 1, and the gap widens as m increases.
In particular, when m = 3000 ,
Algorithm 2 achieves a 3 ∼ 4 times acceleration over Algorithm 1.
Comparison with Gurobi .
We compare the performance of Algorithm 2 with the commercial LP solver Gurobi [15] on the synthetic data as described above.
Gurobi is used under the default settings.
Note that both methods find the exact optimal solution of the problem.
Table 1 compares the runtimes of Algorithm 2 and Gurobi on instances of problem (3) with m ∈ { 100 , 300 , 1000 , 3000 , 10000 } and n ∈ { 10 , 30 } .
As shown by Table 1, when n = 10 , Algorithm 2 is roughly 20 times faster than Gurobi, and the acceleration is more significant for larger values of m .
For n = 30 , the gap between Algorithm 2 and Gurobi is even larger; in particular, for the largest example with m = 10000 and n = 30 , Algorithm 2 achieves more than 90 times acceleration over Gurobi.
5. Conclusion
We develop a highly efficient specialized linear program solver for recommender system with diversity constraints, where recommendations are made in real time with time budget in milli-seconds.
Our solver is efficient in both runtime and memory requirement, with an acceleration of more than 20 times over Gurobi.
Although our primary application appears in personalized recommendation, this algorithm can be applied in other ranking applications where the problem can be formulated in the form (3). 6. Acknowledgements
Haoyue Wang contributed to this work while he was an intern at LinkedIn during summer 2022.
This work is not a part of his MIT research.
Rahul Mazumder contributed to this work while he was a consultant for LinkedIn (in compliance with MIT’s outside professional activities policies).
This work is not a part of his MIT research.
Appendix A. Proof of Lemma
(i)
Actually we can prove that both (3) and (4) have the same set of optimal solutions as the following problem:
[Equation]
Note that for any X ∈ S m,n with a ⊤ Xw < b 2 , one can write ˜ X ∈ S m,n as a convex combination of X and some X 0 ∈ X 0 , such that a ⊤ ˜
Xw = b 2 and c ⊤ ˜
Xw > c ⊤ Xw .
(ii) can be proved via a similar argument as the proof of (i); (iii) holds true trivially.
Appendix B. Proof of Lemma
Note that there exists α ∈ [0 , 1] such that λ ∗ =
(1 − α ) λ min + αλ max .
Hence, ( c − λ ∗ a ) i =
(1 − α )
( c − λ min a )
i + α ( c − λ max a ) i < (1 − α )( c − λ min a ) i k
+ α ( c − λ max a )
i k
= ( c − λ ∗ a )
i k for all k ∈ [ n ] , where the inequality is by (12).
As a result, we know that i is not the top n coordinates of c − λ ∗ a , and hence the i -th row of the solution of (4) is zero.
Appendix C. Algorithm Details and Discussions
Algorithm 1 Bisection + tracing to solve (7)
Input : Tolerances ∆ > δ ≥ 0 .
Initially set λ min = 0 , λ max = ∞ and λ = 1 .
while λ max − λ min > δ :
Solve (6) and get X λ .
Compute g ′
+ ( λ ) and g ′− ( λ ) using (8).
If g ′ + ( λ ) > 0 :
If λ max − λ min < ∆ :
Compute K R ( λ ) and g ′
+ ( K R ( λ )) and g ′− ( K R ( λ )) .
If g ′ + ( K R ( λ )) ≤ 0 ≤ g ′− ( K R ( λ )) , break and output
λ ∗ =
K R ( λ ) .
If λ max < ∞ , then set λ min = λ , and λ = ( λ max + λ min ) / 2 ;
Else, λ max = ∞ , then set λ min = λ and λ = 2 λ .
If g ′− ( λ ) < 0 :
If λ max − λ min < ∆ :
Compute K L ( λ ) and g ′
+ ( K L ( λ )) and g ′− ( K L ( λ )) .
If g ′ + ( K L ( λ )) ≤ 0 ≤ g ′− ( K L ( λ )) , break and output λ ∗ =
K L ( λ ) .
Set λ max = λ and λ = ( λ max + λ min ) / 2 .
If g ′ + ( λ ) ≤ 0 ≤ g ′− ( λ ) : output λ ∗ = λ as an optimal solution of (7).
end while
Output The interval [ λ min , λ max ] .
Algorithm
Input : Tolerances ∆ > δ > 0 .
Initially set λ min = 0 , λ max = ∞ and λ = 1 .
Set I =
[ m ] .
while λ max − λ min > δ :
Solve (6) and get X λ (with I in place of [ m ] ).
Compute g ′ + ( λ ) and g ′− ( λ ) using (8).
If g ′ + ( λ ) > 0 :
If λ max − λ min < ∆ :
Compute K R ( λ ) and g ′
+ ( K R ( λ )) and g ′− ( K R ( λ )) (with I in place of [ m ] ).
If g ′ + ( K R ( λ )) ≤ 0 ≤ g ′− ( K R ( λ )) , break and output
λ ∗ =
K R ( λ ) .
If λ max < ∞ , then set λ min = λ , and λ = ( λ max + λ min ) / 2 ;
Else, λ max = ∞ , then set λ min = λ and λ = 2 λ .
If g ′− ( λ ) < 0 :
If λ max − λ min < ∆ :
Compute K L ( λ ) and g ′
+ ( K L ( λ )) and g ′− ( K L ( λ )) (with I in place of [ m ] ).
If g ′ + ( K L ( λ )) ≤ 0 ≤ g ′− ( K L ( λ )) , break and output λ ∗ =
K L ( λ ) .
Set λ max = λ and λ = ( λ max + λ min ) / 2 .
If g ′ + ( λ ) ≤ 0 ≤ g ′− ( λ ) : output λ ∗ = λ as an optimal solution of (7).
(Screening to shrink I )
If λ max < ∞ :
Let i 1 , ..., i n be the indices in I corresponding to top n elements of ( c − λa ) .
Break
ties arbitrarily, if any).
Find out
I drop := (cid:110) i ∈ I (cid:12)(cid:12)(cid:12)
Note that in Algorithm 2, a set of active indices I is maintained and updated in each iteration.
For the computations of X λ and K L ( λ ) (or K R ( λ ) ), only indices in I are considered, which will have computational costs O ( |I| log( |I| )) and |I| n respectively.
If the screening step can discard a large set of candidates in the first few iterations of the Algorithm 2, then the overall cost of
Algorithm 2 is significantly lower than that of Algorithm 1.
Appendix D. Recovering primal solutions
If Algorithm 1 finds the exact dual optimal solution λ ∗ , the (primal) optimal solution of (4) can be recovered directly.
Note that Algorithm 1 also makes X λ ∗ available.
Since λ ∗ is the dual optimal solution, g ′− ( λ ∗ ) ≤ 0 and g ′ + ( λ ∗ ) ≥ 0 , implying min X ∈X λ ∗ { a ⊤ Xw } ≤ b 2 ≤ max X ∈X λ ∗ { a ⊤ Xw } .
Let X
and X 2 be two extreme points of X λ ∗ such that a ⊤ X 1 w ≤ b 2 and a ⊤ X 2 w ≥ b 2 .
Define ρ :=
( b 2 − a ⊤ X 2 w ) / ( a ⊤ X 1 w − a ⊤ X 2 w ) and X ∗ := ρX 1 + (1 − ρ ) X 2 , then X ∗ ∈ S m,n and a ⊤ X ∗ w = b 2 .
By the KKT condition, X ∗ is an optimal solution of problem (4).
Appendix E. Data generation
We set the weights w as w j = 1 / log(1 + j ) for all j ∈ [ n ] as commonly used in the Discounted Cumulative Gain (DCG) measure [20].
We generate vector pairs ( a, c ) ∈
R m × 2 such that { ( a i , c i ) } ni =1 are i.i.d.
bi-variate Gaussian random variable with mean E ( a i ) =
E ( c i ) = 0 , variance var( a i ) =
var( c i ) = 1 and covariance cov( a i , c i ) =
α for some chosen α ∈ (0 , 1) .
Note that α controls the angle between the vectors a and c ; for a larger value of α , the angle between a and c are smaller (with high probability).
We set α = 0 .
Finally, to generate b 1 and b 2 , we compute ¯ X ∈ argmax
X ∈S m,n { c ⊤ Xw } , and evaluate a ⊤ ¯
Xw ; if a ⊤ ¯ Xw > 0 (which happens with high probability if α is not too small), take b 2 = − b 1 = 0 . 8( a ⊤ ¯ Xw ) ; otherwise drop this instance and regenerate one with a ⊤ ¯ Xw > 0 .
With these values of b 1 and b 2 , the constraint b 1 ≤ a ⊤ Xw ≤ bmust be active at the optimal solution of (3).
Appendix F. Performance on Real Datasets
We evaluate the performance of Algorithm 2 on proprietary real-world datasets that arise in a recommender system of people recommendations to generate connections.
To improve the diversity across different groups of the recommended people, we encode the group a candidate i belongs to as a i ∈ {− 1 , 0 , 1 } .
Here a i = 1 represents group 1 , a i = − 1 stands for group 2 , and a i = 0 denotes other groups.
Information about the specific feature according to which such groups are formed are withheld here due to privacy considerations.
We choose some b > 0 and set b 2 = − b 1 = b in problem (3).
We focus on two instances of the problem with n = 10 slots and m = 500 or 1000 candidates respectively.
To evaluate the robustness of Algorithm 2, we created 20 noised replications of problem (3) with noised scores c i ( i ∈ [ m ] ).
More precisely, we set c = c 0 + 0 .
2 ∥ c 0 ∥
∥ ϵ ∥ 2 ϵ , where c 0 ∈ R m is the original utility scores, and ϵ ∈ R m is a random vector with i.i.d.
N (0 , 1) coordinates.
Other data ( a and w ) assume the same values as the original data.
[Figure]
Figure 2 presents the box plot of Algorithm 2 runtimes for these 20 replications.
For m = 500 , most replications have a runtime between 1 ms and 2 .
25 ms; there are one or two replications that have a runtime below 0 .
5 ms – these replications correspond to the case when the diversity constraint b 1 ≤ a ⊤ Xw ≤ b 2 is not active at the optimal solution, and Algorithm 2 terminates earlier.
A similar argument applies to the examples with m = 1000 .
As a conclusion, Algorithm 2 is quite robust across different runs with noised data.
Appendix G. Real-world Use Cases
Below, we present a few concrete real-world use cases which can potentially leverage and benefit from our specialized solver.
One might be interested in providing more diverse exposure to different types of content creators on a social network platform.
For example, the platform might want to show diverse video recommendations from creators from different countries or states.
Introducing systematic diversity in movie recommendations can lead to better exploration and user retention.
For instance, the recommendations can span across genres such as “romance”, “action”, “sci-fi”, “comedy”, etc., to better exploit the interests of the users.
Our algorithms can also find applications related to ride-sharing apps.
Experienced and frequent drivers on such platforms usually have enough exposure to riders.
However, more balanced exposure to new or less frequent drivers may help ride-sharing platforms achieve more sustainable growth.
Of course, the same strategy may also find relevance in other two-sided marketplace platforms, such as house sharing, restaurant recommendations, etc.