As the Internet achieves ubiquity and web-based services become more commonplace in modern life, online systems have increasingly relied on algorithms for allocating scarce resources to competing entities. For instance, in the field of Internet advertising, many conventional online resource allocation algorithms have been developed. Such algorithms commonly attempt to assign advertising slots on dynamically generated webpages to interested advertisers (e.g., bidders) who are constrained by respective advertising budgets, such that revenue generated by the assignments is maximized.
Allocation of scarce resources to competing entities is also employed in other types of online systems. For example, another type of online system that can employ an online resource allocation algorithm is an online store (e.g., e-commerce website) that causes a set of relevant products from multiple sellers to be output (e.g., displayed) in response to a product query. Following this example, traditional online resource allocation algorithms can be evaluated to assign the sellers and the set of products output responsive to the product query, where the assignment attempts to maximize expected revenue generated due sales of the products.
Described herein are various technologies that pertain to allocating requests based on revenue targets of providers for an online service. Information that indicates revenue budgets of the providers for the online service and the revenue targets of the providers for the online service can be received. The revenue budgets set maximums for total revenues from the providers and the revenue targets set minimums for the total revenues from the providers. Thus, a request may be allocated to a provider whose revenue budget is not yet exhausted and is yet to meet her revenue target. Further, bid values of the providers corresponding to the request can be received. The bid values of the providers can also be used to allocate the request. For example, the request can be allocated to the provider that has a high bid value and also has not met her revenue target. Accordingly, an output of an algorithm can be computed based at least in part upon the bid values of the providers and the revenue targets of the providers. The request can be allocated to a selected provider from the providers based upon the output of the algorithm.
According to various embodiments, the algorithm can be a max-min algorithm. The max-min algorithm can optimize a minimum fractional coverage among fractional coverages of the providers. A fractional coverage of a particular provider is a ratio of a total revenue generated by the particular provider to a revenue target of the particular provider. According to other embodiments, the algorithm can be a hybrid algorithm, which can optimize a sum of the total revenues of the providers with penalties included for the providers that do not meet their revenue targets. Further, the total revenues of the providers can be constrained by the revenue budgets of the providers.
Examples of the online service include online advertising, an information market, and an online store. For instance, if the online service is online advertising, then the providers can be advertisers and the request can be an advertising slot (e.g., corresponding to a user query, on a webpage, available during execution of an application on a mobile device, etc.). Further, if the online service is an information market, then the providers can be data providers and the request can be a data query. Moreover, if the online service is an online store, then the providers can be sellers of products and the request can be a product query. It is to be noted, however, that other types of online services for which resources (often associated with user requests) can be allocated to providers are intended to fall within the scope of the hereto appended claims.
Further, the revenue targets of the providers of the online service can be received in one or many forms. In an instance, user input that specifies a revenue target for a particular provider can be received. Additionally or alternatively, a revenue target for a given provider can be specified by contractual agreements. In another instance, a revenue target for a particular provider can be based on fairness considerations, where the revenue target represents a minimum revenue that gives the particular provider sufficient incentive to remain in a given system for the online service.
The above summary presents a simplified summary in order to provide a basic understanding of some aspects of the systems and/or methods discussed herein. This summary is not an extensive overview of the systems and/or methods discussed herein. It is not intended to identify key/critical elements or to delineate the scope of such systems and/or methods. Its sole purpose is to present some concepts in a simplified form as a prelude to the more detailed description that is presented later.
Various technologies pertaining to allocating requests based on revenue targets of providers for an online service are now described with reference to the drawings, wherein like reference numerals are used to refer to like elements throughout. In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of one or more aspects. It may be evident, however, that such aspect(s) may be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form in order to facilitate describing one or more aspects. Further, it is to be understood that functionality that is described as being carried out by certain system components may be performed by multiple components. Similarly, for instance, a component may be configured to perform functionality that is described as being carried out by multiple components.
Moreover, the term “or” is intended to mean an inclusive “or” rather than an exclusive “or.” That is, unless specified otherwise, or clear from the context, the phrase “X employs A or B” is intended to mean any of the natural inclusive permutations. That is, the phrase “X employs A or B” is satisfied by any of the following instances: X employs A; X employs B; or X employs both A and B. In addition, the articles “a” and “an” as used in this application and the appended claims should generally be construed to mean “one or more” unless specified otherwise or clear from the context to be directed to a singular form.
As set forth herein, requests can be allocated based on revenue targets of providers for an online service (e.g., online advertising, online store, information market, etc.). Information that indicates revenue budgets of the providers for the online service and the revenue targets of the providers for the online service can be received. The revenue budgets set maximums for total revenues from the providers and the revenue targets set minimums for the total revenues from the providers. Moreover, a request that is allocable to one of the providers having a total revenue generated thereby that is less than a corresponding revenue budget can be received. Further, bid values of the providers corresponding to the request can be received. An output of an algorithm can be computed based at least in part upon the bid values of the providers and the revenue targets of the providers. The algorithm can be a max-min algorithm or a hybrid algorithm. The request can be allocated to a selected provider from the providers based upon the output of the algorithm.
Referring now to the drawings,
The allocation system 104 provides access to a resource (e.g., the requests 102) that is constrained. An amount of demand for the resource can exceed a supply of the resource. Accordingly, the allocation system 104 can allot the resource to the providers 106-108 in a manner that provides access based upon fairness and revenue based considerations.
The allocation system 104 includes an interface component 110 that receives information that indicates revenue budgets of the providers 106-108 for an online service. The revenue budgets set maximums for total revenues from the providers 106-108. Moreover, the interface component 110 receives revenue targets of the providers 106-108 for the online service. The revenue targets set minimums for the total revenues from the providers 106-108. The interface component 110 can further receive the requests 102. For instance, a request (e.g., from the requests 102) can be allocable to one of the providers 106-108 having a total revenue generated thereby constrained by a corresponding revenue budget (e.g., the request can be allocable to a provider whose total revenue is currently less than the corresponding revenue budget for the provider). Moreover, the interface component 110 can receive bid values of the providers 106-108 corresponding to the requests 102. For example, a request may be allocated to a provider whose revenue budget is not yet exhausted and is yet to meet her revenue target. Following this example, the request can further be allocated based upon the bid values of the providers 106-108 corresponding to the requests 102.
The allocation system 104 further includes an evaluation component 112 that computes an output of an algorithm based at least in part upon the bid values of the providers 106-108 for a request (e.g., from the requests 102) and the revenue targets of the providers 106-108. Examples of the algorithm that can be analyzed by the evaluation component 112 include a max-min algorithm and a hybrid algorithm as set forth in greater detail herein. The allocation system 104 also includes an assignment component 114 that allocates the request (e.g., allocated request(s)) to a selected provider from the providers 106-108 based upon the output of the algorithm.
The max-min algorithm can optimize a minimum fractional coverage among fractional coverages of the providers 106-108. A fractional coverage of a particular provider can be a ratio of a total revenue generated by the particular provider to a revenue target of the particular provider. An objective of the max-min algorithm can be to meet the revenue targets of the providers 106-108; while meeting the revenue targets, the max-min algorithm can maximize revenue. Moreover, the hybrid algorithm can optimize a sum of the total revenues of the providers 106-108 with penalties included for a subset of the providers 106-108 that each has a total revenue that is less than a corresponding revenue target. The total revenues of the providers are further constrained by the revenue budgets of the providers 106-108. Thus, an objective of the hybrid algorithm can be to maximize revenue, yet penalties can be introduced for the subset of the providers 106-108 whose corresponding revenue targets are unmet.
The providers 106-108 (e.g., advertisers, data providers, sellers, etc.) can each constrained by a corresponding revenue budget given offline to the allocation system 104. Further, the requests 102 (e.g., advertising slots on webpages, data queries, product queries, etc.) can arrive at the interface component 110 of the allocation system 104 online. By being online, the requests 102 are unknown in advance (e.g., the allocation system 104 allocates the requests 102 as the requests 102 appear). Each request from the request 102 can be allocated to one of the providers 106-108 by the allocation system 104. Such allocation can generate a specified amount of revenue subject to the constraint that the total revenue for a provider cannot exceed her revenue budget.
In conventional revenue maximizing scenarios, a goal of an allocation algorithm can be to maximize revenue. In contrast, the allocation system 104 supports fairness in allocation of the requests 102 to the providers 106-108. Fairness is supported by an offline parameter referred to herein as the revenue target for a provider (e.g., from the providers 106-108). The revenue target can represent a minimum revenue for the provider that gives the provider sufficient incentive to stay in the system. The online allocation algorithm analyzed by the evaluation component 112 can provide that each of the providers 106-108 meets such corresponding revenue target even at a cost of decreased overall revenue across the providers 106-108. Allocations can be made by the allocation system 104 that meet the revenue targets, while favoring allocations that generate greater revenue.
It is contemplated that the revenue targets of the providers 106-108 can be from substantially any source. According to an example, the interface component 110 can receive user input that specifies a given revenue target for a given provider. The user input, for instance, can specify a minimum threshold amount of revenue that the provider desires to spend, a minimum fraction of a revenue budget that the provider desires to spend, etc. Additionally or alternatively, a given revenue target for a given provider can be specified by a contractual agreement, for example. Following this example, the contractual agreement may specify a certain number of requests being assigned to a provider (e.g., contractual agreement between an ad exchange and an advertiser for a certain number of impressions being allotted to the advertiser, etc.). According to another example, a revenue target for a particular provider can be based on fairness considerations, where the revenue target represents a minimum revenue that gives the particular provider sufficient incentive to remain in a given system for the online service. It is to be appreciated, however, that the claimed subject matter is not limited to the foregoing examples, and instead it is contemplated that a given revenue target for a given provider can be calculated, inferred, determined, etc. from substantially any other information. Moreover, the allocation techniques set forth herein are agnostic as to the source of the revenue targets for the providers 106-108.
Let D be a set of N providers 106-108. Let B, and Ti be the revenue budget and the revenue target respectively for provider iεD, where Ti≦Bi. An input set Q of m requests 102 arrives online at the interface component 110, where each request jεQ has a bid value bij corresponding to each provider iεD. For instance, some of the bid values can be 0; yet, the claimed subject matter is not so limited. It can be assumed that the requests 102 are independently and identically distributed (i.i.d.) according to some probability distribution that is unknown to the algorithm. On the arrival of request j, the algorithm allocates it to a provider (denoted d(j)). Let Q(i) be a set of requests that are allocated to provider i. Unrestricted revenue Ri generated by provider iεD is given by ΣjεQ(i)bij, while a budgeted revenue (or revenue) P, generated by provider iεD is given by min(Ri, Bi). A fractional coverage ci for provider iεD is given by the ratio
As noted herein, the evaluation component 112 can employ a max-min algorithm or a hybrid algorithm. The max-min algorithm can have differing objectives as compared to the hybrid algorithm. For instance, the max-min algorithm can have a goal to maximize a minimum fractional coverage (e.g., miniεDci). In contrast, the hybrid algorithm can seek to maximize a total revenue while penalizing providers 106-108 whose revenues are less than corresponding revenue targets. More particularly, a penalty coefficient α can be used in the hybrid algorithm to maximize ΣiεD(Pi−α max(Ti−Pi, 0)).
In contrast to the max-min algorithm and the hybrid algorithm, conventional approaches oftentimes employ a max-sum algorithm that maximizes a total budgeted revenue (e.g., ΣiεDPi). The max-sum algorithm, however, fails to take into account revenue targets of the providers 106-108. As compared to the max-sum algorithm, the max-min algorithm and the hybrid algorithm can allocate the requests 102 based upon fairness considerations (e.g., as a function of revenue targets of the providers 106-108). Moreover, the max-min algorithm and the hybrid algorithm can result in increased revenues as compared to the max-sum algorithm; yet, the claimed subject matter is not so limited.
The max-min algorithm is now described in greater detail. The evaluation component 112 can compute the output of the max-min algorithm based at least in part upon the bid values of the providers 106-108 and the revenue targets of the providers 106-108 by calculating rewards for the providers 106-108 based upon a reward function. According to an example, the reward function can exponentially decay depending upon the fractional coverages of the providers 106-108 and polynomially increase depending upon the bid values of the providers 106-108. The rewards can be proportional to the bid values of the providers 106-108 and inversely proportional to fractional coverages of the providers 106-108. A reward for a particular provider can be a decrease in a remaining reward value for the particular provider if the request is allocated to the particular provider. Moreover, the evaluation component 112 can identify a maximum reward from the rewards as calculated. The assignment component 114 can allocate the request to the selected provider associated with the maximum reward.
The reward function φ can be defined as
Moreover,
With reference to
The evaluation component 112 computes the output of the hybrid algorithm based at least in part upon the bid values of the providers 106-108 for a request (e.g., from the requests 102) and the revenue targets of the providers 106-108. The hybrid algorithm can optimize a sum of the total revenues of the providers 106-108 with penalties included for the subset of the providers 106-108 that each has a total revenue that is less than a corresponding revenue target. As noted above, the evaluation component 112 can employ the hybrid algorithm to maximize ΣiεD(Pi−β max(Ti−Pi, 0)).
Consider a linear program (LP) relaxation of the hybrid problem as set forth below (e.g., a primal LP).
Maximize ΣjεQΣiεDbijxij−αΣiεDπi subject to
ΣiεDxij≦1 for all jεQ
ΣjεQbijxij≦Bi for all iεD
πi≧Ti−ΣjεQbijxij for all iεD
xij≧0 for all iεD, jεQ
πi≧0 for all iεD
Here, xij is a fraction of request j that is allocated to provider i, and απi is a penalty paid by provider i. A dual LP of the primal LP is set forth below.
Minimize ΣjεQyi+ΣiεD(ziBi−wiTi) subject to
yi≧bij(1−zi+wi) for all iεD, jεQ
wi≦α for all iεD
yj≧0 for all jεQ
zi,wi≧0 for all iεD
The hybrid algorithm can be a two phase algorithm. The evaluation component 112 can include an initialization component 202 that solves the dual LP to determine dual LP variable values based upon a first fraction ε of the requests 102. For the first fraction ε of the requests 102, the hybrid algorithm can solve the dual LP with Bi and Ti replaced by εBi and εTi, respectively. The resulting dual LP variable values determined by the initialization component 202 are zi* and wi*. Accordingly, the initialization component 202 can determine the dual LP variable values based upon the revenue targets of the providers 106-108 and the revenue budgets of the providers 106-108 for a limited observation set.
The dual LP variable values determined by the initialization component 202 can be utilized by the evaluation component 112 for a remainder of the requests 102, where the remainder of the requests 102 is subsequent to the first fraction of the requests 102. According to an example, the first fraction of the requests 102 can be less than or equal to a first 1 percent of the requests 102; however, the claimed subject matter is not so limited.
Moreover, the evaluation component 112 can calculate values for the providers 106-108 as a function of the bid values of the providers 106-108 and the dual LP variable values computed by the initialization component 202. Complimentary slackness can be used to employ the dual LP variable values computed by the initialization component 202 in the primal LP. According to an example, for subsequently arriving requests (e.g., after the first fraction of the requests 102), the evaluation component 112 can identify a provider that satisfies arg maxiεDbij(1−zi*+wi*). Thus, the evaluation component 112 can identify a maximum value from the values as calculated. Moreover, the assignment component 114 can allocate the request to the selected provider associated with the maximum value.
Turning to
The data repository 306 includes revenue budgets 312 of the advertisers 308-310. Moreover, the data repository 306 includes revenue targets 314 of the advertisers 308-310. Further, the data repository 306 includes bid values 316 of the advertisers 308-310 for the advertising slots.
According to the example shown in
By way of an example, the ad exchange 302 can receive a request for an advertisement to display during an advertising slot from an ad server (not shown); however, the claimed subject matter is not so limited. Moreover, while not shown, it is contemplated that the advertisers 308-310 can communicate with ad network(s), and the ad network(s) can be in communication with the ad exchange 302; yet, the claimed subject matter is not so limited. Moreover, responsive to the allocation of the advertising slots to the advertisers 308-310, advertisements for the advertising slots can be output by the ad exchange 302.
With reference to
According to the example set forth in
In a data and information market, the allocation system 104 can allocate data queries to the data providers 404-406. The data providers 404-406 can sell raw data or services utilizing user generated data in the data and information market. In such market, the data queries (e.g., queries received from users) can seek specific information or datasets. The data queries can be redirected by the allocation system 104 to one among the set of data providers 404-406 who is was capable of providing such information responsive to the data queries. The allocation system 104 can employ the max-min algorithm or the hybrid algorithm to fairly allocate the data queries to the data providers 404-406 so as to mitigate one or more of the data providers 404-406 from being starved of data queries.
With reference to
The online service supported by the server 502 is an online store. According to the example set forth in
Accordingly, the online store (e.g., e-commerce website) can show a set of relevant products from multiple sellers 504-506 in response to a product query. The set of products displayed and the corresponding sellers 504-506 chosen by the allocation system 104 can be allocated based on expected revenue generated due to sales while meeting the revenue targets 314 for the sellers 504-506 to mitigate one or more of the sellers 504-506 from leaving the portal in the long run. Similar to above, the allocation system 104 can employ the max-min algorithm or the hybrid algorithm as described herein.
Moreover, the acts described herein may be computer-executable instructions that can be implemented by one or more processors and/or stored on a computer-readable medium or media. The computer-executable instructions can include a routine, a sub-routine, programs, a thread of execution, and/or the like. Still further, results of acts of the methodologies can be stored in a computer-readable medium, displayed on a display device, and/or the like.
Turning to
With reference to
Referring now to
The computing device 900 additionally includes a data store 908 that is accessible by the processor 902 by way of the system bus 906. The data store 908 may include executable instructions, revenue budgets, revenue targets, bid values, etc. The computing device 900 also includes an input interface 910 that allows external devices to communicate with the computing device 900. For instance, the input interface 910 may be used to receive instructions from an external computer device, from a user, etc. The computing device 900 also includes an output interface 912 that interfaces the computing device 900 with one or more external devices. For example, the computing device 900 may display text, images, etc. by way of the output interface 912.
It is contemplated that the external devices that communicate with the computing device 900 via the input interface 910 and the output interface 912 can be included in an environment that provides substantially any type of user interface with which a user can interact. Examples of user interface types include graphical user interfaces, natural user interfaces, and so forth. For instance, a graphical user interface may accept input from a user employing input device(s) such as a keyboard, mouse, remote control, or the like and provide output on an output device such as a display. Further, a natural user interface may enable a user to interact with the computing device 900 in a manner free from constraints imposed by input device such as keyboards, mice, remote controls, and the like. Rather, a natural user interface can rely on speech recognition, touch and stylus recognition, gesture recognition both on screen and adjacent to the screen, air gestures, head and eye tracking, voice and speech, vision, touch, gestures, machine intelligence, and so forth.
Additionally, while illustrated as a single system, it is to be understood that the computing device 900 may be a distributed system. Thus, for instance, several devices may be in communication by way of a network connection and may collectively perform tasks described as being performed by the computing device 900.
As used herein, the terms “component” and “system” are intended to encompass computer-readable data storage that is configured with computer-executable instructions that cause certain functionality to be performed when executed by a processor. The computer-executable instructions may include a routine, a function, or the like. It is also to be understood that a component or system may be localized on a single device or distributed across several devices.
Further, as used herein, the term “exemplary” is intended to mean “serving as an illustration or example of something.”
Various functions described herein can be implemented in hardware, software, or any combination thereof. If implemented in software, the functions can be stored on or transmitted over as one or more instructions or code on a computer-readable medium. Computer-readable media includes computer-readable storage media. A computer-readable storage media can be any available storage media that can be accessed by a computer. By way of example, and not limitation, such computer-readable storage media can comprise RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium that can be used to carry or store desired program code in the form of instructions or data structures and that can be accessed by a computer. Disk and disc, as used herein, include compact disc (CD), laser disc, optical disc, digital versatile disc (DVD), floppy disk, and blu-ray disc (BD), where disks usually reproduce data magnetically and discs usually reproduce data optically with lasers. Further, a propagated signal is not included within the scope of computer-readable storage media. Computer-readable media also includes communication media including any medium that facilitates transfer of a computer program from one place to another. A connection, for instance, can be a communication medium. For example, if the software is transmitted from a website, server, or other remote source using a coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL), or wireless technologies such as infrared, radio, and microwave, then the coaxial cable, fiber optic cable, twisted pair, DSL, or wireless technologies such as infrared, radio and microwave are included in the definition of communication medium. Combinations of the above should also be included within the scope of computer-readable media.
Alternatively, or in addition, the functionality described herein can be performed, at least in part, by one or more hardware logic components. For example, and without limitation, illustrative types of hardware logic components that can be used include Field-programmable Gate Arrays (FPGAs), Program-specific Integrated Circuits (ASICs), Program-specific Standard Products (ASSPs), System-on-a-chip systems (SOCs), Complex Programmable Logic Devices (CPLDs), etc.
What has been described above includes examples of one or more embodiments. It is, of course, not possible to describe every conceivable modification and alteration of the above devices or methodologies for purposes of describing the aforementioned aspects, but one of ordinary skill in the art can recognize that many further modifications and permutations of various aspects are possible. Accordingly, the described aspects are intended to embrace all such alterations, modifications, and variations that fall within the spirit and scope of the appended claims. Furthermore, to the extent that the term “includes” is used in either the details description or the claims, such term is intended to be inclusive in a manner similar to the term “comprising” as “comprising” is interpreted when employed as a transitional word in a claim.