The Ad Types Problem
Riccardo Colini-Baldeschi, Juli\'an Mestre, Okke Schrijvers,, Christopher A. Wilkens

TL;DR
This paper introduces efficient algorithms for the Ad Types Problem, optimizing ad-slot matching with discount curves and providing solutions for both with and without gap rules, including complexity analysis and pricing strategies.
Contribution
It presents a novel algorithm for maximum weight matching in the Ad Types Problem with improved runtime and a method for VCG pricing, also addressing the problem with gap rules.
Findings
Algorithm runs in O(n^2(k + log n)) for maximum weight matching.
VCG pricing can be computed in asymptotic same time complexity.
The problem with gap rules is hard to approximate, but an exact dynamic programming solution exists.
Abstract
The Ad Types Problem (without gap rules) is a special case of the assignment problem in which there are types of nodes on one side (the ads), and an ordered set of nodes on the other side (the slots). The edge weight of an ad of type to slot is where is an advertiser-specific value and each ad type has a discount curve over the slots that is common for ads of type . We present two contributions for this problem: 1) we give an algorithm that finds the maximum weight matching that runs in time for slots and ads of each type---cf. when using the Hungarian algorithm---, and 2) we show to do VCG pricing in asymptotically the same time, namely , and apply reserve prices in . The…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
The Ad Types Problem
Riccardo Colini-Baldeschi Facebook, Core Data Science, [email protected]
Julián Mestre University of Sydney, School of Computer Science, [email protected]
Okke Schrijvers Facebook, Core Data Science, [email protected]
Christopher A. Wilkens Tremor Technologies, [email protected]. The work was done while the author was a full-time employee at Facebook Core Data Science.
Abstract
The Ad Types Problem (without gap rules) is a special case of the assignment problem in which there are types of nodes on one side (the ads), and an ordered set of nodes on the other side (the slots). The edge weight of an ad of type to slot is where is an advertiser-specific value and each ad type has a discount curve over the slots that is common for ads of type . We present two contributions for this problem: 1) we give an algorithm that finds the maximum weight matching that runs in time for slots and ads of each type—cf. when using the Hungarian algorithm—, and 2) we show to do VCG pricing in asymptotically the same time, namely , and apply reserve prices in .
The Ad Types Problem (with gap rules) includes a matrix such that after we show an ad of type , the next slots cannot show an ad of type . We show that the problem is hard to approximate within for any (even without discount curves) by reduction from Maximum Independent Set. On the positive side, we show a Dynamic Program formulation that solves the problem (including discount curves) optimally and runs in time.
1 Introduction
In online advertising, there is a hugely influential literature on sponsored search [41, 11, 29]. In this setting, a small number of ads (typically 2 or 3) are shown next to organic search results using a position auction [41, 11]. Since users tend to look at the results from top to bottom, an ad will have a higher click-through-rate (CTR) in a higher slot, and are therefore higher slots rae considered more valuable. The common way to capture this slot effect is with a separable model, where ad slots have an associated discount that represents the advertiser-agnostic CTR of the slot. The auction is run taking the expected number of clicks (as represented by ) as the “quantity of good” that is sold. Work in this area has proliferated and the position auction model lies at the basis of many applications of online advertising, even outside of sponsored search.
While the position auction model has been very influential in online advertising, there are important differences between the multi-slot ad allocation problem on a search results page and the multi-slot problem in content feeds like Facebook’s News Feed, reddit, and Apple News. In content feeds, ads are interspersed with organic content, so not all ads are visible from the start, and when the first ad is shown it is not clear how many ads will have to be allocated.111While this may not be a problem when deciding which ad to show the user, pricing generally needs information about how many items are sold, and what the other competition is in the auction. Moreover, there are many different types of organic content like text, photos, and videos mixed in the same stream. Similarly, there are many different types of ads that have different associated objectives: some ads simply want the user to see them, others want the user to click or view a video. These objectives must be considered when allocating slots to ads, since the probability that a user will see an impression-ad is quite different from the probability that she’ll watch a video ad or click on a link-click ad. There may be diversity rules as well that after a video ad you cannot show another video ad, but it’s okay to show a banner ad. These considerations have implications on which ads are eligible to be shown in which slots.
The standard position auction model fails to capture these important differences. For example, the probability of a user watching a video ad typically decays differently than a link-click ad. If one were to use the same discount curve for ads of different types, this could lead to a suboptimal allocation:
Example 1.1**.**
Suppose we have a setting with 2 ad types, link-click ads and video ads, two ad slots, and we have discount curve . These discounts are accurate for link-click ads (i.e. ), but for video ads, the user is more likely to watch the video in the second slot than they are to click a link in that slot: , .
Consider a video ad with bid \12$10\alpha\tfrac{1}{2}\cdot$12+\tfrac{1}{4}\cdot$10=$8.50\tfrac{1}{2}\cdot$10+\tfrac{1}{3}\cdot$12=$9>$8.50\alpha$ would not be incentive compatible. For readers less familiar with auction theory, we provide a primer in Section 2.1.
In this paper we propose a new theoretical model for online advertising that addresses these issues. It captures the position auction as a special case, but can handle discount curves for multiple types and intersperse advertising with organic content in a dynamic manner.333While our motivation for studying this problem comes from online advertising in content streams, it captures many other interesting settings that are unrelated to online advertising. For example, the setting without gap rules can model a worker with different time slots and jobs of different types that need to be done; jobs are most valuable when completed early and delays for jobs of the same type are discounted similarly. Adding gap rules can model the cost of moving between locations (in the physical world) or context-switching (in the digital world). An Ad Types Problem instance has ad types, that each have their own discount curve over slots, i.e. for each ad type we have a discount curve that represents the slot-specific action-rate for ads of type . All ad types agree on the order of the slots. Gap rules are modeled by a matrix , which indicates for each pair of ad types , that after showing an ad of type , the next stories cannot be of type .
We first focus on the special case where , i.e. different ad types have different discount curves but there are no constraints on the gaps between ads. In this setting, the Ad Types Problem is a special case of the maximum-weight bipartite matching problem (also known as the assignment problem), so we could find an optimal allocation using the Hungarian algorithm in time [37] (where is the number of ads, the number of slots, and we have ads per type). Our first result is an algorithm that finds the optimal allocation in time, saving a linear factor. In auctions, it’s not only important to find the optimal allocation of ads to slots, one also needs to compute appropriate prices. We show that we can compute VCG prices in asymptotically the same time as finding the optimal allocation, i.e. . A common way to control revenue is to set an appropriate minimum bid (also knows as a reserve price [34]); we show that we can compute incentive-compatible prices with advertiser-specific reserve prices for all ads in time.
Next we consider the more general Ad Types problem with both discount curves and gap rules (where ). We show that the problem is hard to approximate within for any (even without discount curves) by reduction from Maximum Independent Set. On the positive side, we show a Dynamic Program formulation that solves the problem (including discount curves) optimally and runs in time.
1.1 Related Work
Assignment Problem.
The maximum-weight bipartite matching problem, also known as the assignment problem, is a classical problem in operations research. Let be a complete bipartite graph with edges weights , and the set of nodes; the goal is to find a matching of maximal total weight . Kuhn [28] proposed an algorithm for this problem—which he called the Hungarian algorithm—based on ideas by Kőnig and Egerváry, though he only proved that the algorithm would terminate, not what the time complexity is. Munkres [32] showed that the time complexity of the Hungarian algorithm is . Edmonds and Karp [12] gave a time algorithm for balanced graphs, and Ramshaw and Tarjan [37] more recently gave an algorithm for unbalanced graphs (wlog assume ) that runs in . Since the seminal work on the assignment problem, there has been active research into relevant special cases. In particular there is a line of work on convex bipartite graphs, where the right side of the graph is ordered, and nodes on the left can only be connected to a single contiguous block of nodes on the right. For the unweighted case, a line of work starting with Glover [19, 30, 15] shows that the problem can be solved in time linear in the number of nodes . General weights are not considered, though early work on vertex-weighted bipartite graphs (where each node has an associated weight and the weight of an edge from to is ) yield a time algorithm [25]. More recently, Plaxton [35, 36] showed that Two-Directional Orthogonal Ray Graphs (a generalization of convex graphs) admit a time algorithm.
Sharathkumar and Agarwal [40] consider a more general set of edge weights, where nodes are embedding in -dimensional space, and the weights of the complete bipartite graph are all either the or metric. They present an algorithm to solve the maximum weight bipartite in , where is the diameter of the space that contains the points.
None of the results on specializations cover The Ad Types Problem setting (even without gap rules).
Ad Auctions.
The simple separable model for position auctions appears in Varian [41] and Edelman et al. [11]. One body of related work relaxes the assumption that action rates are separable. One common theme is to model externalities between ads (also related to our gap rules) [26, 16, 18, 3, 2, 20, 17]. Of note, [26, 16, 13, 2] study algorithms for computing allocations in models where the user’s attention cascades and prove hardness results. A different generalization is to allow arbitrary action rates that are still independent between ads [1, 6, 5], which corresponds to the Ad Type Problem (without gap rules) where each ad has a unique type.
Another generalization of the basic position auction allows ads to be placed in complex ways. A few papers study mechanisms that permit presentation constraints and/or ads with variable presentation [23, 4, 22, 33, 8]. Mahdian et al. study auctions for ads displayed on maps along with organic results [31] (since places of interest are connected to a physical location, this imposes constraints on where ads can be placed).
Finally, the connections between ad auctions and max-weight matching (and the Hungarian algorithm) have been studied before as well [9, 5, 27, 10].
1.2 Contributions
This paper presents three main contributions:
- •
Optimal Allocation. Firstly, we give an algorithm to optimally solve the Ad Types problem without gap rules. This setting is a special case of the assignment problem with applications beyond ad auctions. Our algorithm is a specialization of the Hungarian algorithm to find the maximum-weight matching in the bipartite graph that uses the structure of the Ad Types Problem to run in time (compared to for running the Hungarian algorithm on the instance; Theorem 3.1). While we are motivated by ad auctions, this setting also models other common settings like a worker who needs to do several tasks of different types.
- •
Pricing. Secondly, we show that we can do incentive-compatible pricing in this setting with minimal overhead. First we show how to compute VCG prices efficiently. Naively, VCG prices are computed by resolving the original problem times (removing 1 buyer in each instance). We show that we can extract VCG prices from the dual variables in our algorithm when they are properly updated. This yields VCG prices in time (cf. when implemented naively; Theorem 3.6). Second, we show that we can apply reserve prices (and in fact in all single-parameter environments) without a changepoint algorithm [34, 38]. For our case, this yields a time algorithm (Corollary 3.9).
- •
Gap Rules. Finally, we consider the more general Ad Types problem with both discount curves and gap rules (where ). We show that the problem is hard to approximate within for any (even without discount curves) by reduction from Maximum Independent Set (Theorem 4.1). On the positive side, we give a Dynamic Program formulation that solves the problem (including discount curves) optimally and runs in time (Theorem 4.2).
2 Preliminaries
In this section we give a primer on auction theory, a formal definition of the ad types problem, and a review of the Hungarian Algorithm and its application to Ad Types problem.
2.1 Auction Theory
There are (strategic) agents, and some finite set of outcomes . Agents have some value function over outcomes: . An auction consists of an allocation function that takes the bids (meaning a report of the valuation) of agents and selects the outcome, and a payment function .
A common goal444Other common goals include revenue and a notion of high-value allocation with fairness concerns. for the auctioneer is to select the outcome with the maximal total value, which is known as the social welfare: . Note however, that the auctioneer doesn’t have direct access to the valuation function ; she elicits them as bids . Each agent cares about their own utility, , where are the bids of all agents except . Thus, given bids by the other agents she will report . The auctioneer can use the pricing function to incentivize agents to report their true valuations. An auction is called dominant strategy incentive compatible (DSIC), or simply incentive compatible, if for any bid profile of agents other than , agent always maximizes their utility by bidding truthfully: . Celebrated work by Vickrey, Clarke and Groves [42, 7, 21] shows that it is always possible to do this by charging agents their externality.
A particularly interesting class of valuation functions are single-parameter in the following sense: there is some function that maps outcomes to a “quantity of goods” that agent receives. The valuation function is then expressed as , where we overload to be a single “value-per-unit-good” parameter. Single-parameter settings are quite common, e.g. single-item auction are single parameter: an agent has a value for receiving the good, the outcome space consists of the item going to each of the agents that participate, and iff agent receives the good in outcome and it is 0 otherwise. For single-parameter environments the allocation function and pricing function take as input a single number for each advertiser: their per-unit bid .
Besides social welfare, a common goal for an auctioneer is to maximize revenue. Myerson [34] shows how to maximize expected revenue in single-parameter environments when a buyer has knowledge about the distributions from which each buyer draws their value. For a buyer whose distribution is regular—meaning with CDF and corresponding PDF is monotonically non-decreasing—the optimal expected revenue from that buyer is obtained by setting reserve price (also known as a minimum bid) equal to .555Myerson also extends the results to non-regular distributions, though that is outside the scope of the present work. Setting the optimal reserve price for a non-regular distribution is still guaranteed to be within a factor 2 of optimal, see e.g. [39]. To apply a reserve price , let be the quantity of goods that a single-parameter buyer receives. If the buyer is rejected from the auction and thus receives nothing; otherwise is identical to the setting without reserve price . The incentive-compatible price corresponding to is given by Myerson’s payment identity: . For discrete , this becomes a summation over the changepoints where the allocation changes.
2.2 The Ad Types Problem
The Ad Types Problem involves computing an allocation of a set of ads to slots. Ads come in one of different ad types , for . We let the ads of type be for . There are three main components to the definition of the problem:
- •
Valuations. Ad of type has a value-per-conversion (a.k.a. value-per-action) . Ads of different types have different conversion events, e.g. for a display ad the conversion event is a view, for a link ad the conversion event is a link click, and for a video ad the conversion event is the user watching video ad. For each ad type , we index the ads in non-increasing order of valuation, i.e. .
- •
Discount curves. We assume a separable model for discount curves where we can write where is the slot effect for a particular ad type (e.g., the probability that a user will watch a video ad if its shown in the th slot) and is the advertiser quality (this separable model is also standard in position auctions [41, 11]). In the remainder of the paper we assume wlog that the advertiser effect has already been included in the advertiser’s value, i.e., if the value-per-conversion of the advertiser is , then . We further abuse notation to let for ad of type in slot .
Discounts are monotonically non-increasing, and all ad types agree on the order of slots, i.e. for each ad type , we have .
- •
Gap rules. When ads are interspersed with organic content, there must be some way to control how many ads are shown. In the simplest case, where there’s only one type of ad, this can be implemented by a gap rule , which states that two ads must be at least slots apart from each other. When there are multiple ad types, there is a matrix , which indicates for each pair of ad types , that after showing an ad of type , the next stories cannot be of type .
The Ad Types Problem is to find a social welfare maximizing allocation that obeys the gap rules.
2.3 The Hungarian Algorithm
The Hungarian Algorithm [28, 32] is a classical algorithm for computing a maximum weight matching in a bipartite graph. Starting from a trivial primal solution (empty matching) and a trivial dual solution, the algorithm iteratively increases the cardinality of the matching while improving the value of the dual solution until the value of the primal solution equals that of the dual.
Let be a complete bipartite graph with edges weights . The primal/dual pair of linear programs capturing the problem are as follows.
[TABLE]
[TABLE]
The algorithm starts from an empty primal solution , and a trivial feasible dual solution for all and for all . In each iteration, the algorithm identifies the set of tight edges and builds an alternating BFS tree (also known as Hungarian tree) in out of the free vertices in . If the alternating tree contains an augmenting path , we augment with thus increasing its cardinality; if no such path is available, we can update the dual solution by reducing the dual value of and increasing the dual value of by the same amount until a new edge become tight. This update maintains feasibility while reducing the value of the dual solution and makes at least one new edge tight, which in turn allows us to grow the alternating tree further.
Throughout the execution of the algorithm we maintain the invariants that the dual solution is feasible and that the edges in the matching are tight. As a result, at the end of the algorithm we have a matching whose weight equals the value of the dual feasible solution, which acts as a certificate of its optimality.
Using the right data structures, it is possible to implement the algorithm so that the amount of work done between each update to is . Therefore, if we let be a maximum weight matching, then the Hungarian algorithm can be implemented to run in time [14].
3 Ad Types Problem without Gap Rules
In this section we consider the ad types problem with discount curves but no gap rules. In this model we have ad types, and each ad type has its own monotonically decreasing discount curve for . Without gap rules, the problem becomes a simple maximum weight bipartite assignment on a complete graph with vertices (ads) on one side of the bipartition and vertices (slots) on the other side of the bipartition, with . Therefore, the Hungarian algorithm can solve this problem in time. We will assume throughout there are exactly ads of each type666If an ad type has fewer than ads, we can append ads with value [math], if there are more than ads of a type, with loss of generality we can restrict attention to the highest-value ads., hence the Hungarian algorithm runs in time.
In this section we start by giving an algorithm that finds the maximum-weight bipartite matching in time (Section 3.1). We show that in some sense the dependency on can be expected: when , the problem is no easier than solving the assignment problem (i.e. a common order of the slots does not improve the running time; see Section 3.2). We then turn our attention to pricing and show that computing VCG prices can be done in (Section 3.3 and that we can apply reserve prices in (Section 3.4).
3.1 Finding the Optimal Allocation
We present an adaptation of the Hungarian algorithm [28, 32] that exploits the special structure of the Ad Types problem. In the following we use the language of markets to describe the Hungarian algorithm: the dual variable of a slot corresponds to a price , while a dual variable of an advertiser corresponds to the utility of the advertiser if they get an item out their demand set (given the prices) [10]. Moreover, the instance is a complete bipartite graph with ads on one side and slots on the other side where the weight of the edge is . The maximum-weight matching in the bipartite graph corresponds to the social-welfare maximizing allocation of ads to slots. For ease of exposition, we assume that values and discounts are monotonically strictly decreasing, this restriction can be lifted by consistent tie-breaking.
Algorithm 1 shows how to compute the optimal allocation in an Ad Types instance. The algorithm is identical to how the Hungarian algorithm is commonly implemented; the only difference is how we maintain the set of possible new edges in Lines 6 and 13. The algorithm initializes the dual solution to be feasible, and starts with an empty matching . Algorithm considers slots in descending order in each iteration of the for loop in Line 3; we call each such iteration a phase.
During each phase we iteratively update the dual variables until we find an augmenting path to increase the size of the matching by one. In each of these iterations within a phase we explore a tight edge leading to a matched edge and both edges are added to our alternating tree. Every time we add a new matched slot to the alternating tree we explore the edges incident on using the routine UpdatePossibleNewEdges, which scan the edges incident on and works out which edges are tight and when the remaining edges will become tight. All these new edges are stored in a priority queue for later retrieval.
High-level running time analysis.
Even though the algorithm is not well defined yet (we have not specified how to implement UpdatePossibleNewEdges), still we can say something about the running time of the algorithm.
Each phase is implemented using a priority queue over some of the ads not in . For each ad in we keep track of the next edge that would become tight given the current structure of . The priority of captures when this next edge becomes tight, the smaller the priority the sooner it becomes tight; similarly, if already has a tight edge incident on itself then it should have the smallest priority in the queue.
In the normal implementation of the Hungarian Algorithm, the procedure UpdatePossibleNewEdges iterates over all edges incident on . If we can ignore the edge as has already been discovered and its slack will not change with future updates (since now both and belong to ). If then we compute its current slack to work out when it will become tight and compare this against the time of the current next tight edge incident on , which we may need to update.
Without making any assumptions on the structure of the valuations, in the worst case in each iteration of the while loop in Line 7 we perform work (assuming a Fibonacci heap implementation for ) since there are ads in total and edges incident on (one per ad). In each iteration be grow by adding one new matched edge, so we have at most iterations of the while loop. Therefore, the overall running time is .
However, we can come up with a more efficient implementation of UpdatePossibleNewEdges that exploits the special structure of our valuation function so that holds at most ads and only edges incident on need to be scanned without sacrificing the overall correctness of the algorithm. With this improvement in performance, each iteration of the while loop in Line 7 takes at most work. Again, since in each iteration be grow by adding one new matched edge, we have at most iteration of the while loop. Therefore, the overall running time is .
Theorem 3.1**.**
Given an input with ad types and slots, Algorithm 1 can be implemented to run in time .
Our goal for the the rest of this section is to provide an implementation UpdatePossibleNewEdges where the size of is always at most and only edges are considered in each invocation of the routine. Key to our analysis is the observation that tight edges cannot cross is the following sense: Given two ads of the same type , and two slots , then we cannot have the edge from ad to slot be tight, and simultaneously have the edge from ad to be tight.
Lemma 3.2** (Non-crossing lemma).**
Given two ads of the same type , and two slots , if and then in any feasible dual solution we cannot have the edge from ad to slot be tight, and simultaneously have the edge from ad to be tight.
Proof.
We prove by contradiction. If the edges between and and and are both tight, then we must have dual variables such that
[TABLE]
At the same time, due to the slackness constraints, we must have that
[TABLE]
We can combine these and obtain
[TABLE]
Which is false due to the standard exchange argument. We give the argument for completeness: Rearranging we have ; however, due to strict monotonicity and , so have reached a contradiction. ∎
3.1.1 UpdatePossibleNewEdges
The goal of UpdatePossibleNewEdges is to iterate over the edges incident on that are tight or that can potentially become tight later in the execution of the current phase. For each such edge we compare its slack with the priority associated with and update the entry for in accordingly if needed.
The exact definition of the edges inspected is given by Algorithm 2. Instead of describing how this works, let us make some observations about the set of edges that can potentially become tight, and then we shall see that the Algorithm indeed considers all these edges.
For each ad type we first consider the edges of the form where is matched and . We claim that we only need to consider the largest such . Recall that all the edges in are tight and remain tight throughout the execution of the phase; in particular, is tight and remains tight. Thus, any edge with is not tight and will never become tight due the Non-crossing Lemma 3.2 and the fact that and .
Now consider the edges of the form where is matched and . We claim that we only need to consider the smallest such . Recall that all the edges in are tight and remain tight throughout the execution of the phase; in particular, is tight and remains tight. Thus, any edge with is not tight and will never become tight due the Non-crossing Lemma 3.2 and the fact that and .
Finally, we need to consider edges of the form where is unmatched. We claim that we only need to consider the smallest such available777It is worth noting that even this case can be ignored if there exists a matched such that ; however, for ease of presentation we add the slot to even if such exists.. Indeed, for any other note that and since the variable of both ads is 0 (only slots that are part of an alternating tree get their dual variables increased and those are always matched) the slack of will always be smaller than the slack of since . Furthermore, notice that if the edge become tight, then we immediately have an augmenting path in , which concludes the phase.
It is easy to see that these three cases are precisely those covered by Algorithm 2.
Lemma 3.3**.**
There can be at most ads in at any given point in time.
Proof.
Notice that the the only edges that we consider in Line 16 are either to a matched node in or to the heighest unmatched ad of each type. There are exactly matched ads in phase and there are ad types, so the lemma follows. ∎
Lemma 3.4**.**
UpdatePossibleNewEdges* considers only edges when updating and these are the only edges we need to look at.*
Proof.
The reason why we can focus just on the edges in Line 14 has already been explained in the description of the algorithm UpdatePossibleNewEdges, so we only need to argue about their number. Clearly, each ad type generated at most three ads into , thus, the number of edges considered when updating is at most . ∎
3.2 Large Number of Ad Types
When , Algorithm 1 is no faster than running the standard Hungarian algorithm. The following lemma shows that this is to be expected as any instance of the assignment problem can be reduced to an instance where all ads agree on the order of the slots.
Lemma 3.5**.**
With ad types, the problem is no easier to solve than the assignment problem, even with monotone discount curves.
Proof.
We’ll reduce to the assignment problem. Given an instance of the assignment problem (with positive edge values), let , indicate one of the sides of the bipartite graph as the slots, and choose an order . For all incident edges to the lowest slot, add [math] to the edge. For the second to last edge, add to the edge, for the third to last edge add , and so on. The value of any perfect matching has increased by , which is a constant. So the solution to the optimal perfect matching is the same as the original problem. Note that now for each ad, the slots are monotonically decreasing according to order , so for each ad there’s a decomposition into a base value, and a discount for each slot which is monotonically decreasing. ∎
3.3 Computing VCG Prices
Algorithm 1 gives us a fast way to compute the optimal allocation for the Ad Types problem. The VCG mechanism [42, 7, 21] can be use to compute corresponding incentive compatible prices, by running the allocation algorithm times, for a total running time of . In this section we show that in fact we can compute VCG prices in asymptotically identical time to solving the allocation problem once: . It is a folk theorem that an instance of the assignment problem can be priced in asymptotically the same time as solving the assignment problem (namely for balanced bipartite graphs); this section shows that our improved running time carries over as well.
We begin with the well-known fact (e.g. [10, Chapter 15]) that VCG prices and buyer utilities are feasible (and optimal) dual variables for the assignment problem. Additionally, the VCG prices correspond to the point-wise lowest possible dual variables for the slots over all feasible solutions to the dual. Thus, we can find VCG prices by finding the lowest dual variables.
Theorem 3.6**.**
Given an instance of the assignment problem, along with an optimal matching , and shadow prices . Algorithm 3 computes VCG prices in time.
Proof.
Algorithm 3 is similar to a single “phase” of Algorithm 1. To find we use a Fibonnacci heap on the edges where or . During each while loop, we mark at least one slot as immutable, so the total number running time to find over the entire algorithm is .
The alternating BFS trees can only touch each edge ones over the course of all iterations, hence the total time this takes is bounded by , finally each node is marked as immutable at most once, hence the total time over all iterations of line 6 is . This yields total running time of as claimed. Note that no price could be lower, since all nodes either have price [math] or lowering their price would violate a slackness constraint. Thus, the dual variables for the slot correspond to VCG prices. ∎
Corollary 3.7**.**
Given an instance of the Ad Types problem, we can compute the optimal allocation and VCG prices in time.
Proof.
By theorem 3.1 we can compute an optimal allocation in time. By Theorem 3.6 and since , from the optimal allocation we can compute the corresponding VCG prices in hence the total time is as claimed. ∎
3.4 Applying Reserve Prices
Setting a reserve price, or a minimum bid, is a common way to control revenue [34]. But how can we apply a reserve price in the ad types problem? In our setting, where we have discrete allocation amounts (the discounts for an ad of type ), Myerson’s payment identity boils down to determining the changepoints in the mechanism, given the other bids . We could find these changepoints by updating the bid of an advertiser while maintaining the invariants in the Hungarian algorithm, but we present a simpler approach here that may be of independent interest to the mechanism design community. The idea is similar to the externality computation in VCG, but rather than removing the advertiser in the alternative allocation, we compare against an alternative where the advertiser bids their reserve price.
Since this approach works in single-parameter environments beyond the Ad Types Problem, we use the more general notation introduced in Section 2.1. Recall that we have strategic agents, outcome space , function from outcomes to a quantity of “stuff”, and valuation function where we overload notation and let . Additionally, we have agent-specific reserve prices below which we won’t serve an agent. Finally, we have black-box access to an algorithm that given bids , yields an outcome that maximizes , the social welfare of strategic agents.
The goal in this setting is to come up with an incentive-compatible pricing scheme to match the social welfare-maximizing (subject to reserve prices) allocation. Due to Myerson, we know that if we can compute the change points in the allocation function, we can recover the (unique up to translation) pricing rule that is incentive compatible. However, generally computing change points may be costly. The goal then is to compute incentive compatible prices without change point computation.
Incentive Compatible Pricing without Changepoint Computation.
The algorithm is given in Algorithm 4, where we overload to take the bids of the set passed to it, and we use the notation to indicate applying to the set plus bidder with their bid replaced by . In the traditional VCG algorithm, the buyer’s externality is computed by removing them from the auction entirely and charging the change in utility of the remaining buyers. The difference here is that we’re not removing the buyer, but instead we replace their bid by the reserve price. Additionally we charge them per unit of stuff they receive if they bid their reserve price. Intuitively this payment scheme corresponds to Myerson payments, where we only explicitly compute the change point at the reserve price, and we implicitly compute reserve prices by looking at the difference in outcomes between bidding and .
Myerson [34] showed that the payments that yield an incentive compatible auction are uniquely determined given an allocation rule, up to an additive constant. Of special interest are payments where losers pay nothing. Therefore, it suffices to show that the payments computed by Algorithm 4 are incentive compatible and charge losers nothing to prove that they are equivalent to applying Myerson’s payment identity. In the following let for —i.e. the social welfare of the optimal allocation assuming bids equal values—with such that is only the contribution of to and is the contribution of the remaining bidders . Similarly, let for i.e. the social welfare of the optimal allocation assuming bids equal values and replaced by , with and defined analogously.
Theorem 3.8**.**
Algorithm 4 yields the unique Incentive Compatible pricing scheme for with eager reserves that charges losers [math].
Proof.
[TABLE]
We treat the cases for and separately.
If , then for all , so there’s no beneficial deviation from to some other . Moreover, bidding can only yield negative utility: first observe that if , it must hold that by definition since the latter is the optimal social welfare achievable (if ), hence the former can only be lower. This implies that the utility must be non-positive for any since the value per-quantity good is lower than if but the price stays the same. So for there is no beneficial deviation.
If , notice that the term is independent of the bid of bidder . So the only relevant term is . Since compute the maximum-weight bipartite matching given the bids, bidding yields the maximum utility; hence no other bid can improve utility. Moreover, since the utility is guaranteed to be non-negative, bidding (which yields ) cannot increase utility.
So in all cases, a bidder maximizes their utility by bidding . Moreover, in both cases, if , the bidder pays nothing, so Algorithm 4 yields the unique incentive compatible prices where losers pay 0. ∎
Thus, if we use Algorithm 1 to compute the max-weight bipartite matching after applying reserve prices, Algorithm 4 runs in .
Corollary 3.9**.**
Algorithm 4 runs in for the Ad Types Problem without gap rules.
4 The Ad Types Problem with Gap Rules
In this section we switch our attention to the full version of the Ad Types problem where we do have gap rules. As we shall see, this problem is much harder if we do not place any restriction on the instances. On the positive side, we show that the problem is fixed parameter tractable on the number of ad types.
4.1 Hardness
In this subsection we prove that even approximating an optimal allocation for the Ad Types problem with Gap Rules is hard, even when there are no discount curves.
Theorem 4.1**.**
The Ad Types problem with Gap Rules hard to approximate better than for any , unless P = NP, even when the discount curves of all the ad types are identically equal to .
Proof.
The proof reduces the Maximum Independent Set (MIS) problem to the Ad Types problem. In the MIS problem we have a graph and we want to find the largest subset of vertices such that no two vertices are connected with an edge.
Given an instance of the MIS problem, we can build an instance of the Ad Types problem as follows:
- •
Let the number of slots and the number ad types equal the number of vertices in the MIS problem, i.e., .
- •
Each ad type has exactly one ad in it, i.e., for each for , .
- •
Each ad has value-per-conversion equal to , i.e. , . Notice that we dropped the subscript over , since there is only one ad per ad type.
- •
The ads have no discount curves over the slots, i.e., .
- •
Let be the matrix describing the gap rule. The gap between two ad types and is if and [math] otherwise, i.e., if and otherwise.
Given the construction of the gap rules, two ads can belong to a solution of the Ad Types problem only if their corresponding vertices are not connected in . Since all the ads have value for all the slots, a solution of the Ad Types problem represents how many ads have been allocated. Moreover, each allocated ad contributes 1 to the wellfare objective of the Ad Types problem so maximizing the value of the allocation for the Ad Types problem is equivalent to maximizing the size of the correspondign independent set. Thus, the Ad Types problems inherets the hardness of approximation of MIS [24, 43] since .
∎
4.2 Exact Algorithm
Since the previous section shown that the Ad Types Problem with Gap Rules cannot be solved in polynomial time, unless , here we provide a dynamic-programming based algorithm that solves the problem exactly in exponential time.
The dynamic program has dimensions. For each ad type the dynamic program stores (i) the number of ads of type that have been allocated, and (ii) the largest slot index that an ad of type has been allocated.
As usual, we assume that within each ad type, the ads monotonically decrease in valuation, i.e., for each .
In order to describe our dynamic program, we need some additional notation:
- •
let be the number of ads allocated for the ad type , we denote these values with a vector
- •
let be the last slot where an ad of type has been allocated, we denote these values with a vector
- •
for a given vector , let to denote a new vector where the th coordinate is replaced by , i.e., if then
Let be our dynamic program states, which we define to be maximum value among allocations that assigns ads of type with the last ad being assigned to slot . We allow to be empty (which we can denote with the special symbol ) to handle the case where .
To derive the recurrence for our DP formulation, let us focus on a type with largest value. Given that the last ad of type is in , let us denote with the set of possible slots where we could have the second to last ad of type . If then , otherwise, it contains every slot that obeys all the gap rules between this new ad and the ads locations specified by .
[TABLE]
The base case of the recurrence is when is the all 0 vector and is the all empty-position vector. If we ever reach a state where then the state is infeasible so we set its cost to be . The optimal solution will be at a state with highest value.
Theorem 4.2**.**
The Ad Types Problem can solved optimally in time.
Proof.
The correctness of the dynamic programming formulation follows from the fact that for any of the states on the right hand side of (1) any allocation that is consistent to the state can be augmented by allocating the th ad of type to slot due to the fact that has the largest value.
We only consider states where and for all types , so the DP table has entries. Each entry takes time to compute (there are possible slots in and each one takes to check whether it obeys the gaps rules), so the total running time is . ∎
The reference list from the paper itself. Each links out to its DOI / PubMed record.
- 1[1] Zoe Abrams, Arpita Ghosh, and Erik Vee. Cost of conciseness in sponsored search auctions. In Proceedings of the 3rd International Conference on Internet and Network Economics , pages 326–334, 2007.
- 2[2] Gagan Aggarwal, Jon Feldman, S. Muthukrishnan, and Martin Pal. Sponsored search auctions with markovian users. In Proceedings of the Workshop on Internet and Network Economics (WINE) , pages 621–628, 2008.
- 3[3] Susan Athey and Glenn Ellison. Position auctions with consumer search. The Quarterly Journal of Economics , 126(3):1213–1270, 2011.
- 4[4] Ruggiero Cavallo, Prabhakar Krishnamurthy, Maxim Sviridenko, and Christopher A Wilkens. Sponsored search auctions with rich ads. In Proceedings of the 26th International Conference on World Wide Web , pages 43–51. International World Wide Web Conferences Steering Committee, 2017.
- 5[5] Ruggiero Cavallo, Maxim Sviridenko, and Christopher A Wilkens. Matching auctions for search and native ads. In Proceedings of the 2018 ACM Conference on Economics and Computation , pages 663–680. ACM, 2018.
- 6[6] Ruggiero Cavallo and Christopher A. Wilkens. Gsp with general independent click-through-rates. In Tie-Yan Liu, Qi Qi, and Yinyu Ye, editors, Web and Internet Economics , pages 400–416, Cham, 2014. Springer International Publishing.
- 7[7] Edward H Clarke. Multipart pricing of public goods. Public choice , 11(1):17–33, 1971.
- 8[8] Xiaotie Deng, Yang Sun, Ming Yin, and Yunhong Zhou. Mechanism design for multi-slot ads auction in sponsored search markets. In Proc of the 4th Frontiers in Algorithmics International Workshop , pages 11–22, 08 2010.
