Algorithmic Game Theory, or Algorithmic Mechanism Design, or The coupling of CS and Economics 1. Very broadly speaking, economics deals with efficient allocation of resources: capitalist markets, transfer of goods, buy-sell etc. In a similar vein, CS is also concerned broadly with efficient resource allocation: cache/memory management, job scheduling, bandwidth sharing, etc. Traditionally, however, CS has viewed resource allocation at a centralized level--- programmers or system architects design those policies, while in economics, we assume the participants are "competitors". However, the decentralized nature of the Internet (large number of autonomous agents, such as ISPs, users, content distributors, etc) are forcing the CS to adopt more of an economics perspective. Indeed, these participants may be best modeled as "rational, self-interested, profit-maximizing" agents that are the central players in economics and game theory. 2. Let us consider a central activity in much of CS: design of protocols. Indeed, many of our important protocols dictate policies about how a resource is shared among multiple agents/applications: - TCP congestion control - job scheduling on shared printers or machines (grid computing) - multicast - IP routing etc etc But in the Internet world, there is no central authority to enforce a protocol. YOU can change/modify the implementation of TCP stack on your computer, if you want. So, while everyone obeys the "backoff" upon detecting congestion, you don't, or worse just "increase" your rate, exploiting the fact that others are already helping with the congestion. Thus, many protocols that expect "good citizenship" are open for exploitation. A good protocol should be one that "incentivizes" players to do the right thing! In the future, such protocols are only going to grow: why should we all be subject to some arbitrary routing rules designed by a Cisco engineer? Why can't my application choose the route I want to take? etc etc 3. Of course, if everyone (or many) users think like this, we can also have anarchy! But, is anarchy inevitable? Economics and markets show otherwise: incentives help create order not chaos. In particular, GT has proved to be very valuable foundation/framework for studying interaction of self-interested agents, each attempting to maximize his/her profit/utility. (Recently, there have been strings of Nobel prizes awarded for work in GT. John Nash, Harsanyi, and Selten received the 1994 Nobel. This year, Myerson, Hurwicz, Maskin received Nobel for mechanism design.) GT studies interaction among competing firms, or self-interested agents, by asking which strategies are "optimal", and how to respond to others' strategies. In asking these questions, GT raises an important question: WHAT IS OPTIMAL? When studying CS questions in the centralized setting (single user or owner), the optimality is aligned with the user's interests. Whose interests should we consider when there are multiple agents, with conflicting goals? Thus, even the concept of a "good solution" is not obvious, much how to find one! 4. The solution concept that GT (through the work of Von Neumann and Nash) proposed is the idea of an EQUILIBRIUM: a set of actions/strategies from which no individual wishes to deviate! Thus, in the context of our protocol design, perhaps the best design is one that enforces an equilibrium---each agent it best off doing exactly what the desinger prescribes, because it serves the user's interests best too! 5. Fortunately, the interplay between CS and Economics has been a two-way road. The ideas from each are influening the other. Economics for CS: Think of your favorite algorithmic challenge: routing of IP packets, job scheduling in a networked system, distributed cache management, P2P, etc. Because the algorithm must run on machines owned and operated by individuals, with different preferences and goals, the algorithm HAS to assume that individuals will make strategic choices that serve their interests best. Thus, the protocol designer must use sound Mechanism Design. CS for Economics: Consider your favorite economic interaction: some market, auction, supply chain, etc. With the ubiquity of Internet, the interaction among participants is increasing implemented over computerized platform using software agents. These platforms enable unprecedented sophistication and complexity, requiring rational software as well algorithmic scale. 6. I will mention many examples where interaction of multiple self-interested agents leads to challenging CS problems, and new insights into the design of such systems: Cost sharing in multi-cast Selfish Routing Decentralized load balancing Selfish network Formation, etc etc But mainly I wanted to focus on a simple, but core, problem: Combinatorial Auctions. (I will discuss the famous Vickrey Auction, its generalization VCG auction, and its connections to the Google Auction used in their Keyword searches.) 7. More broadly, the field of Mechanism Design deals with the problem of "preference aggregation": how to make decisions in choosing a single outcome in the presence of (conflicting) preferences: electing a president choosing a textbook for schools public goods projects (build a bridge? swimming pool vs. gym, etc) These questions are often couched in the setting of Voting. I will discuss various voting methods, their properties, limitations, paradoxes, and finally prove the Celebrated theorem of Arrow (himself a Nobel prize winner). ----------------------------------------------------------------------------- Most of the combinatorial auction material is from the Lecture Notes of Tim Roughgarden available from: http://theory.stanford.edu/~tim/f05/ca.ps The short proof of VCG truthfulness is from: Lovely but Lonely Vickrey Auction. by Ausubel and Milgrom The Google Adword Auction material is from: Internet Advertising and the Generalized Second Price Auction Edelman, Ostrovsky, Schwarz ------------------------------------------------------------------------------- Exercise and Examples of VCG payments. 1. Suppose 2 identical units of a good (TV) for sale. Each player wants at most 1 unit. The bids are: 10, 9, 7, 6, 6, 5, 4 V* (opt) = 10 + 9 = 19 V* - {1} = 9; maxV_{without 1} = 9+7 = 16 V* - {2} = 10; maxV_{without 2} = 10 + 7 = 17. Payments: p1 = 16 - 9 = 7 p2 = 17 - 10 = 7 In general, the payments to all players will be the price of the highest rejected bid. (Natural generalization of Vickrey) 2. Bundle Bids. A B A+B 1 10 0 10 (don't care) 2 0 0 25 (complementary) 3 10 10 10 (substitute) V* = 25 (winner is #2) V* - {2} = 0; maxV_{without 2} = 10+10 = 20 p2 = 20 - 0 = 20. This makes sense---almost like Vickrey. 3. Bundle Bids. A B A+B 1 10 0 10 (don't care) 2 0 0 18 (complementarity) 3 10 10 10 (substitute) V* = 20 (winners are 1 and 3) V* - {1} = 10; maxV_{w/o 1} = 18 V* - {2} = 10; maxV_{w/o 2} = 18 p1 = 18 - 10 = 8 p1 = 18 - 10 = 8 /* each claims a discount of 2 for adding value to the auction */ ------------------------------------------------------------------------------- Computational Complexiy. ----------------------- 1. All these laudable properties of VCG, however, come with one major liability---determining the value-maximizing allocation V* typically involves solving an NP-complete problem. As we mention, there are two issues of complexity here: (i) each player's valuation function has to be specified over an exponential number of bundles: 2^m, for m goods. (ii) solving for optimal allocation. Of course, we will like our auction mechanism to be poly-time solvable. But, polynomial in what? Input size? But if we have an exponential size input (form i), what good is a poly-time auction scheme? So, instead, we will ask for something more grandiose, ambitious: poly-time solvability in m (goods) and n (players). 2. For a moment, let's ignore the issue of exponential number of bundles, and consider the problem assuming that we have some (a poly number of) bundle bids. There is a ground set I of items. There is collection of subsets Si \in I, each with a bid price b(Si). The goal is to choose a "feasible" collection of these bids (subsets) that yield the maximum total revenue. Feasibility here just means that accepted subsets should be disjoint, since there is only 1 copy of each item, but in general one can have many other types of constraints, and generalizations. Formulation: Introduce a binary variable xj, which is 1 if the bid b(Sj) is accepted, and 0 otherwise. /* You can assume that of there are multiple bids on a subset, only the highest one is kept. */ Objective: max \sum b(Sj)*xj s.t. xj \in {0, 1} /* all or nothing bids */ \sum_{Sj with i} xj <= 1, for each i \in I /* Strictly speaking, this formulation is only good for "superadditive" valuations, which ensures that a bidder is always allocated at most 1 set. Without that, we need put the single-set constraint explicitly. */ This is equivalent to the max weight set packing problem, which is known to be NP-complete. 4. Set Packing Problem: A ground set I of elements. A collection S of subsets of I, with non-negative weights. Find the largest weight pairwise disjoint collection in S. Easy to see this has the same formulation as an Integer Program. 5. A special case: Max Independent Set in a graph. Given an undirected graph G = (V,E), an IS is a subset IS \subset V such that if u, v \in IS, then (u,v) not an edge in E. The MIS is the problem of finding the size of the largest IS. The MIS is easily reduced to WDP: The items are the edges of E; put a bid for each vertex v of G, the bid is for all the edges incident to v, and has value 1. Then, the auction has a solutoin with value k iff G has MIS of size k. 6. Thus, even if the players' valuation function is polynomial size, just the allocation problem, which is called the WINNER DETERMINATION PROBLEM is NP-complete. 7. When confronted with computational intractability, there are several avenues one can follow. 1. Approximation. Give up the demand of exact optimal solution, and settle for approximate solutions with provable guarantees. Unfortunately, not only is WDP/SPP NP-complete, it's also known to be in-approximable!! In other words, there is no poly-time scheme that can guarantee a solution with factor better than O(n^{1 - eps}) for any eps > 0, with n being the number of vertices in the graph (for the weighted IS). ==> There is no O(m^{1/2 - eps}) approximation algorithm for WDP (even with single-minded bidders). Single minded bidders case turns out to be interesting special case where each bidder cares about exactly one bundle. Peter will discuss an approximation scheme for this. ==> Bottom line, is that this is not very practical approach. 2. Exact methods: just plough through. Despite NP-completeness, methods based on Mixed Int Prog, and combinatorial optimization work quite well in practice. The real world problem often are not as messy as one may imagine----in part because humans still have to "construct" the bundles. 3. Study poly-solved special cases. There are many interesting and useful cases of WDP that can be solved optimally in P-time. Here are some examples: 3a. Linear case. Items are arranged linearly 1, 2, .., m. The only bids are for a consecutive subset. Then, using dynamic programming one can solve the WDP optimally. /* Has natural real-world interpretation: items can be physical objects, such as real estate shoreline properties... */ 3b. Tree-structured. Items are arranged in a tree. Only bids allowed are connected subtrees. 3c. Totally Unimodular Matrices. If the item/subset matrix has unimodular structure, then LP solves it. Lots of work on this topic... -------------------------------------------------------- Internet Advertizing and the Generalized Second-Price Auction Edelman, Ostrovsky, Schawarz 1. Billions of dollars worth of online ads are sold using an auction by search companies like Google and Yahoo. How do they do it? How well are they doing it? How well are the customers (advertizers, who buy the right to show their ads, and the viewers like you) fare in this? The problem is interesting academically (the features of the auctions are unique), but also because of its impact on our lives---the commercial giants of search (google and yahoo) exist solely because of it. In 2005, G had revenue of $6B, of which 98% came from adword auctions; Y had revenue of $5.25B, of which more than 50% came from adword auctions. 2. First, how do these auctions work. When an Internet user enters a search term (query), the search engine returns a web page with "hits", along with a set of "sponsored links" (e.g. on the right hand side on google). The sponsored links are placed by advertisers who "pay" to get their ads/links displayed to the user. E.g., a travel agency may wish to display its ads to users who search for vacation spots like Hawaii. For this service, the travel agency pays the search engine company. The payment contract can take many forms, but the most prominent one (and one we focus on) is called "pay-per-click". That is, the advertizer pays when a user clicks on the advertizer's displayed ad. 3. Why auction? The adword real estate is limited. (Currently, the demand well exceeds supply.) Google and Yahoo limit the number of ads that can be shown on a web page. In addition, there are different positions where the ad can be shown. We take the simplest and cleanest approach (of Google): the ad positions can be ranked 1 through K. One can assume that ads in position i are valued more highly (clicked more often) than those are position j, for i < j. So, the search engines needs a mechanism to decide WHICH ads are shown, WHERE (which position) are they shown, and HOW MUCH each advertizer pays. The current dominant mechanism used by search engines is GSP (generalized second price). 4. Generalized Second Price (GSP). For a specific keyword, advertizers submit bids (their max willingness to pay for a click). The search engine ranks the bids in descending order (by price or by some other function; google, for instance, uses some complex and non-public weights). To keep things simple, let us just sort by bids. The auctioneer then charges the merchant ranked i an amount equal to the bid of the merchant ranked i+1. That is, i pays the minimum amount needed to maintain its position in the ranking. This should smack of the second price auction (VCG), and that's why this is called the GSP. However, we will see shortly that this is *nothing* like VCG!! appearances can be deceptive. (Interesting that google specifically mentions Vickrey and VCG on their web site to suggest that their auction method is VCG.) 5. Unique features of Adword auctions. a. High speed, fluid auctions. Bidders can change their bids any time, and subsequent searches will operate on new prices. b. Perishable goods: every user query is a good; if no bids on it, it's wasted; can't be stored. c. How to measure impact? The two parties (advertizers and search engines) have different views. The advertizer really cares about "selling" his real goods, not the ad. So, unless a user eventually buys something from his web site, the ad has no value. However, the road between showing an ad, and consummating a sale is a long and slippery one. (Used by some, such as Amazon's Associates Program, but not too common.) The search engine, on the other hand, feels it's job is done when it has shown the ad; whether or not a user clicks on the ad is not its responsiblity. (Again, pay-per-impression is that model, not used very infrequently.) The pay-per-click is an intermediate ground: the advertizer pays when a user clicks on his ad. This is the dominant form in use today. d. Even though there are multiple distinct positions for ads, the GSP insists that merchants submit 1 bid per keyword (and not one per position per keyword). This is also a reasonable compromise: it's easier to manage; the merchant does not care whether the click happened because its ad was on postion 3 or 9; he only pays when it's clicked. 6. A Brief History of Keyword Auctions. a. Early Internet Ads: Beginning in 1994, ads sold largely on a per-impression basis. Advertisers paid flat fee to show their ads a fixed number of times. b. In 1997, Overture (then GoTo, now part of Yahoo) introduced a completely new model of selling internet ads: bidding on keywords. With this, the advertizers could now directly "target" the viewers who saw their ads. Presumably, a user who was specifically searching for apartment rentals in Maui was a significantly better sales target than a random web user. Advertizing was also no longer in per-thousand impressions; instead it was on per-click basis. Every time a user clicked on a sponsor's ad, the advertizer's account was automatically billed the amount of the advertizer's most recent bid. The links to advertizers were arranged in descending order of their bids. The ease of use, low cost to entry, transparency of the mechanism made this immediately very successful, and used by Overture, Yahoo, MSN. But Overture and advertizers quickly learned that the mechanism was unstable due to the fact that bids could be changed very frequently. Example: Suppose 2 slots and 3 bidders. An ad in Slot 1 has CTR = 200 (e.g clicks/hour); Slot 2 has CTR = 100. Advertizers 1,2,3 have values per click of $10, $4, $2, resp. A bid of $2.01 by advertizer 2 ensures that he gets at least one slot. Now (or anticipating this), advertizer 1 will not bid more than $2.02; this is enough for him to get the top spot. But then advertizer 2 would want to raise his bid to $2.03 to get the top spot. This raise-reraise can continue until advertiser 2 reaches his upper bound, at which point he will drop back to $2.01. This see-saw behavior has been empirically observered and documented by Overture. There is no pure strategy equilibrium in the one-shot version of this game. It is also clear that first-price auction of Overture is not achieving the intended affect!!!!!! c. Generalized Second-Price Auction. Overture realized that first-price mechanism encouraged inefficient investments in gaming the system, causing volatile prices and allocative inefficiencies. Google addressed this problem when it announced its AdWords Select system in 2002. In Google's system, bids are ranked (in descending price order, possibly using weights). The ith agent pays th ebid price of the (i+1)st agent, for i <= K (plus a small increment, say, $0.01, which we will ignore). The second price mechanism makes the auction more friendly and less susceptible to gaming. Example: Same example as before, with bids being $10, $4, $2. Payments in the GSP will be 4 and 2. Including the CTRs, the total payments for advertisers are $800 and $200, resp. In this example, you can check that truthtelling is an equilibrium strategy. d. GSP vs. VCG. GSP clearly appears very similar to VCG---in both, the price of an agent depends only on the bids of others. In fact, Google's advertizing material makes explicit reference to Vickrey's Nobel winning work and use of economic theory to eliminate "that feeling that you have paid too much"! But appearances can be decentive---GSP is NOT VCG, and in fact GSP dost not have an equilibrium in dominant strategies, and truth telling is not an equilibrium strategy. Example: First, to see the difference, let's calculate the GSP and VCG prices for our old example. In GSP, agent 1 pays $4/click, for a total of $800; agent 2 pays $2/click, for a total of $200. In VCG, agent 1 pays $600: $200 externality imposed on agent 3, who is forced out of position 2, and $400 externality imposed on agent 2 who is forced from position 1 to 2. Agent 2 still pays $200 in VCG. Example. Modify the previous example slightly to show that GSP is not truthful. Same three agents, with values per click of $10, $4, and $2. The CTRs, however, are about the same in two positoins: 200 for slot 1, and 199 for slot 2. If all agents bid truthfully, then agent 1's payoff is: (10 - 4)*200 = 1200. But, if he instead bids just $3, he gets slot 2, and his payment will be (10 - 2)*199 = 1592 > 1200 !!! Thus, truthtelling is NOT a dominant strategy in GSP... 7. Edelman et al use Bayesian analysis to aruge some interesting equilibrium properties of GSPP and its analog of the Generalized English Auction. Aggrawal, Goel, Motwani propose a new auction Laddered Auction, which they prove is truthful. Active area of research: not just adwords, banner ads, and other display ads.