The invention may be described in the general context of computer-executable instructions, such as program modules, being executed by a computer. Generally, program modules include routines, programs, objects, components, data structures, and so forth, which perform particular tasks or implement particular abstract data types. The invention may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in local and/or remote computer storage media including memory storage devices.
With reference to
The computer system 100 may include a variety of computer-readable media. Computer-readable media can be any available media that can be accessed by the computer system 100 and includes both volatile and nonvolatile media. For example, computer-readable media may include volatile and nonvolatile computer storage media implemented in any method or technology for storage of information such as computer-readable instructions, data structures, program modules or other data. Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can accessed by the computer system 100. Communication media may include computer-readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave or other transport mechanism and includes any information delivery media. The term “modulated data signal” means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. For instance, communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared and other wireless media.
The system memory 104 includes computer storage media in the form of volatile and/or nonvolatile memory such as read only memory (ROM) 106 and random access memory (RAM) 110. A basic input/output system 108 (BIOS), containing the basic routines that help to transfer information between elements within computer system 100, such as during start-up, is typically stored in ROM 106. Additionally, RAM 110 may contain operating system 112, application programs 114, other executable code 116 and program data 118. RAM 110 typically contains data and/or program modules that are immediately accessible to and/or presently being operated on by CPU 102.
The computer system 100 may also include other removable/non-removable, volatile/nonvolatile computer storage media. By way of example only,
The drives and their associated computer storage media, discussed above and illustrated in
The computer system 100 may operate in a networked environment using a network 136 to one or more remote computers, such as a remote computer 146. The remote computer 146 may be a personal computer, a server, a router, a network PC, a peer device or other common network node, and typically includes many or all of the elements described above relative to the computer system 100. The network 136 depicted in
The present invention is generally directed towards a system and method for scheduling online keyword auctions subject to budget constraints. A linear programming model of slates of advertisements may be created offline for predicting the frequency and sequence of keywords occurring throughout a day for use in online scheduling of bidders to auctions that may optimize revenue of an auctioneer. Each slate of advertisements may represent a candidate set of advertisements in order of optimal revenue to an auctioneer. Linear programming using column generation with the keyword as a constraint and a bidder's budget as a constraint may be applied to generate columns that may be added to the linear programming model of slates of advertisements in order to determine optimal revenue to an auctioneer. Upon receiving a query request, a slate of advertisements may be chosen online according to the generated frequencies, and the chosen slate of advertisements may then be output for sending to a web browser for display.
As will be seen, the framework described may also apply when the budget constraints for one or more bidders may require those bidders to be removed from a set of bidders. In this case, subsequent bidders may be moved up the order in a slate of advertisements. As will be understood, the various block diagrams, flow charts and scenarios described herein are only examples, and there are many other scenarios to which the present invention will apply.
Turning to
In various embodiments, a client computer 202 may be operably coupled to one or more servers 210 by a network 208. The client computer 202 may be a computer such as computer system 100 of
The server 210 may be any type of computer system or computing device such as computer system 100 of
The server 210 may be operably coupled to a database of advertisements such as ad store 218 that may include any type of advertisements 220 that may be associated with an ad ID 214. In an embodiment, several bidders 222 may be associated with an ad ID 214 for one or more advertisements 220. The ad store 218 may also include a collection of ad slates that may be generated as part of the linear programming model, each ad slate representing an ordered candidate set of advertisements for keywords of a query request.
There are many applications which may use the present invention for scheduling online auctions subject to budget constraints. For example, online search advertising applications may use the present invention to schedule keyword auctions subject to bidders' budget constraints. Or online search advertising applications may use the present invention to schedule keyword auctions by expected revenue rather than by bid. For any of these applications, advertisement auctions may be scheduled that optimize the objective of the auctioneer.
For each query qi, consider Ri,j(t)=Ai,j·wi,j(t) to be the ranking function used to rank the j-th offer in an auction instance, where wi,j(t) may be a time-dependent weighting factor for the i-th query and j-th bidder. The ranking function Ri,j(t) may be equal to zero for any bidder bj that may not participate in an auction instance. Furthermore, wi,j(t) may be separated into two components as follows: wi,j(t)=Qi,j(t)·Bi,j(t), where Qi,j(t) may be defined to be the quality component of wi,j and Bi,j(t) may be defined to be the budgeting component. For example, in an online auction Qi,j(t)=1 may result in a bid ordering of advertisements, and Qi,j(t)=CTRi,j, where CTR represents the click-through rate, may result in a revenue ordering of the advertisements. A linear programming model may be created for this defined marketplace as further described below.
At step 302, a set of queries bid upon by a set of bidders may be selected from the expected query set. For example, queries received for a previously occurring day may be selected and a set of bidders who have bid on those queries may be selected. At step 304, an estimate of the number of queries may be obtained for each time-slot in a time period. In an embodiment, there may be twenty-four hour-long timeslots defined for a 24 hour day. In various other embodiments, the timeslot may be fifteen minutes long, thirty minutes long, a period of a day and so forth.
Once an estimate of the number of queries may be obtained for each time-slot, a proportional budget for each bidder may be calculated for each time slot at step 306. In an embodiment, a proportional budget may be calculated for each bidder by scaling a known budget over a period of time, such as scaling a daily budget over a period of 24 hours, and over a set of queries. Furthermore, calculating a proportional budget may include adjusting a scaled amount by subtracting accrued spending for a given time period.
At step 308, ranked slates of ads may be determined for the subset of queries. For each query qi, the “bidding landscape” may be defined in an embodiment as a set of bidder indices Li={jp: Ri,j
Furthermore, a slate of ads may be defined that may be a subset of the bidding landscape Li. Each bidding landscape Li may be mapped into a set of slates Lik, each being a unique subset of Li which can be obtained by deleting members of Li while maintaining the ordering and then truncating, if necessary, to Pik members. More formally, The kth slate for ad i, may include a unique subset (of length Pik) of the indices of Li, and may be defined as Lik={jk
At step 310, the estimated click-through-rate may be determined for ad positions for keywords of each query. For a query qi, consider Ti,j(p) to denote the expected click-through-rate (“CTR”) for a bidder j who may be ranked at slot p on a page.
In general, the data collected in steps 302 through 310 may be stored for use by the linear programming analysis engine to apply linear programming using column generation to determine the relative frequency for each slate to provide optimal revenue. At step 312, linear programming using column generation may be applied to determine the relative frequency for each slate to provide optimal revenue.
The expected revenue-per-search (rps) may be defined in a 2nd bid pricing model for a slate and a query as:
The total revenue for a time-slot, over all queries, may therefore be defined as:
The daily spend for each bidder j may be represented as
may be the price bidder j pays every time his ad may be clicked at position p for the k-th slate of qi, defined as:
Linear programming with column generation may be used to find the optimal allocation. For example, consider dj to be the budget for bidder j; consider vi to be the expected number of occurrences of the i-th keyword in the time-slot; consider cijk=δj(i,k) to be the expected cost to bidder j of if slate k may be shown for keyword i; and rik=rps(Lik) to be the expected revenue on slate k for keyword i. For a budget defined as ΣiΣk cijk xik≦dj ∀ j=1, . . . , M, and an inventory defined as Σk xik≦vi ∀ i=1, . . . , N; the relative frequency for each slate to provide optimal revenue may be determined by maximizing Σi Σk rik xik.
Using a conventional column-generation approach (See “A Column Generation Approach for Combinatorial Auctions”, Workshop on Mathematics of the Internet: E-Auction and Markets Institute for Mathematics and its Applications (2001) by Brenda Dietrich and John J. Forrest), an initial subset of slates, Li ε Lik, may be generated at step 402 and the corresponding linear program may be solved at step 404,and then columns may be generated as needed using dual values of a linear program at step 406. For instance, consider πj to be the marginal value for bidder j's budget, more specifically, the simplex multipliers for the jth constraint of ΣiΣk cijk xik≦dj ∀ j=1, . . . , M, and consider γi to be the marginal value for the ith keyword, more specifically, the simplex multipliers for the ith constraint of Σk xik≦vi ∀ i=1, . . . , N, then a column corresponding to slate Lik (and hence to variable xik) may be profitably introduced into the linear programming model if
Accordingly, for each keyword i,
may be maximized over the legal slates Lik. If a slate may be found such that
the corresponding slate and its variable may be introduced into the linear programming model. If no such slate exists for any i, then an optimal solution may have been obtained. Those skilled in the art will appreciate that in an alternate embodiment,
may be equivalently minimized over the legal slates Lik.
Rather than generate every slate Lik a priori, after an initial subset of slates, LiεLik, may be generated, then columns may be generated as needed using the dual values πj and γi of a linear program. For instance, considering the coefficients
may be maximized for a given πj over slates Lik.
If so, the column(s) corresponding to the subset of Li may be added to the linear programming model at step 508. If the condition of Fik(π)>γi may not be satisfied, then it may be determined at step 510 whether the keyword may be the last keyword included in the query. If not, then processing may continue at step 502.
If all keywords have been processed, then it may be determined at step 512 whether any improving slate may have been found, that is some Lik may be found for which Fik(π)>γi. If so, the augmented linear program incorporating the additional columns generated at step 508 may be solved, and processing may continue to step 502. If it may be determined at step 512 that no improving slate may be found, then processing may be finished since there may not be found any new column satisfying the condition of Fik(π)>γi, and the linear programming model may provide an optimal solution.
Thus, the present invention may reduce the columns of the linear programming model to a manageable size by using a subset of possible combinations of advertisements which can be shown for each keyword. Once created, advertisement slates and frequencies may also be available for caching. In other embodiments, the linear programming analysis engine may associate with each slate of advertisements an indicator of priority or value, and an expected traffic volume. In such embodiments, the query processing server may choose a slate of advertisements online in accordance with the expected traffic priorities and values prescribed. Moreover, the framework described may also apply when the budget constraints for one or more bidders may require those bidders to be removed from a set of bidders. In this case, subsequent bidders may be moved up the order in a slate of advertisements.
In addition to a client-server application that may implement the steps described in conjunction with
Then, in an embodiment, effective throttle rates may be derived by comparing the number of times a bidder appears in some slate, for which they were eligible, with the number of times that the queries occured which were used to generate the slates. Accordingly, an effective throttle rate for bidder j may then be defined by the following equation:
which may be zero if j participates in all the slates for which j may be eligible, and 1.0 if j may appear in none of them because j has been completely throttled out. Considering the additional expected cost of participating in a slate, the average price that bidder j may pay per impression for participating in slates for query k may be defined as:
where the dependency of the pikj on the other bidders for the term may be ignored.
The effective throttle rate may then be computed by comparing the expected total price paid with the maximum that could have been spent at the rate Pij for the relevant queries by using the following equation:
when the pikj may be all equal.
In another embodiment, an effective throttle rate may be derived by applying the linear programming model to provide finer-grained throttling by query and bidder. To do so, the comparison of the number of times a bidder appears in some slate, for which they were eligible, with the number of times that the queries occurred which were used to generate the slates, defined as
may be applied to an individual query k by using the following equation:
These throttle rates for a query-bidder pair more closely approximate the linear programming model and should produce solution values intermediate between the effective throttle rate for all queries and the linear programming solution. Note that, in this case, it may no longer be necessary to weight by the expected cost. However, the data storage requirements for this approach may be greater, and it may require more computing resources to integrate throttle rates for a query-bidder pair in existing server implementations for advertising auctions.
Returning to
As can be seen from the foregoing detailed description, the present invention provides an improved system and method for scheduling online keyword auctions subject to budget constraints. Such a system and method may efficiently schedule bidders to auctions to optimize revenue of an auctioneer. The system and method may also apply broadly to online search advertising applications and may be used, for example, to schedule keyword auctions by expected revenue rather than by bid. Moreover, the present invention may also be applied for optimizing throttling rates used in applications to remove advertisements of bidders from a slate of advertisements when the bidders may be expected to exceed their budget. As a result, the system and method provide significant advantages and benefits needed in contemporary computing and in online applications.
While the invention is susceptible to various modifications and alternative constructions, certain illustrated embodiments thereof are shown in the drawings and have been described above in detail. It should be understood, however, that there is no intention to limit the invention to the specific forms disclosed, but on the contrary, the intention is to cover all modifications, alternative constructions, and equivalents falling within the spirit and scope of the invention.
The present invention is related to the following United States patent application, filed concurrently herewith and incorporated herein in its entirety: “System and Method for Optimizing Throttle Rates Of Bidders In Online Keyword Auctions Subject To Budget Constraints,” Attorney Docket No. 1270.