It is common for a website to allocate display space for paid advertisements (ads) as a means of generating revenue. However, because the number of ads available for display can significantly exceed the number of advertisement (ad) spaces available, it is necessary to select a particular set of ads for display. In general, when a displayed ad is clicked-on by a user, an owner of the clicked-on ad is charged a fee for having the corresponding ad displayed. Therefore, because a given ad generates revenue when it is clicked-on by a user, it is preferable to select ads for display that have a higher likelihood of being clicked-on.
When a new ad is introduced, there is no way of knowing whether the new ad will succeed in generating revenue, i.e., in being clicked on. Also, there is a chance that previously existing ads, i.e., proven ads, will be continuously selected to occupy all of the available ad spaces, thereby effectively blocking the new ad from being displayed, and in turn denying the new ad an opportunity to demonstrate its worth. It is necessary that new ads be given an opportunity to be displayed. However, a difficulty exists in that the display of new ads should be done in a manner that preserves the revenue generation derived from the display of proven ads.
In one embodiment, a computer implemented method for advertisement display policy exploration is disclosed. The method includes an operation for generating an exploratory ordering of advertisements using an exploration policy. The exploration policy is a modified version of an existing policy. The exploration policy is defined to swap a pair of adjacent advertisements in an ordering of advertisements generated by the existing policy, so as to generate the exploratory ordering of advertisements. An operation is also performed to display a top number of the exploratory ordering of advertisements, wherein the top number corresponds to a number of available advertisement display spaces. The method also includes an operation for collecting click data associated with display of the exploratory ordering of advertisements. The method further includes an operation for evaluating a revenue generation capability of a new policy based on the collected click data.
In another embodiment, a computer implemented method for exploring revenue generation capability of non-experienced advertisements is disclosed. The method includes an operation for generating a slate of advertisements for display through application of a policy to a current context. The method also includes an operation for selecting a test advertisement for substitution into the generated slate of advertisements. The selected test advertisement is then substituted into the generated slate of advertisements. The method also includes an operation for recording a click performance of the substituted test advertisement. The method further includes an operation for adjusting a weighting of the substituted test advertisement based on the recorded click performance. The weighting of the substituted test advertisement influences a probability that the substituted test advertisement will be re-selected for substitution into another generated slate of advertisements.
Other aspects and advantages of the invention will become more apparent from the following detailed description, taken in conjunction with the accompanying drawings, illustrating by way of example the present invention.
In the following description, numerous specific details are set forth in order to provide a thorough understanding of the present invention. It will be apparent, however, to one skilled in the art that the present invention may be practiced without some or all of these specific details. In other instances, well known process operations have not been described in detail in order not to unnecessarily obscure the present invention.
One technique for generating revenue through a webpage is to display advertisements (ads) within allocated spaces on the webpage and to charge an advertisement (ad) owner a fee whenever their ad is clicked-on by a user. For example,
An objective in selecting the slate of ads is to select a slate of ads that will optimize revenue generation. Because revenue is generated by an ad when a user clicks on the ad, i.e., when a user selects the ad, a corresponding objective in selecting the slate of ads to display is to select ads that have a high likelihood of being clicked-on by a user. However, as discussed below, the revenue generation capability of a given ad is a function of both the likelihood of a user click on the given ad and a bid amount associated with the given ad, wherein the bid amount of the given ad represents a maximum fee that may be charged per click on the given ad. Therefore, to optimize revenue generation through the slate of ads, it is appropriate to select ads that are both likely to be clicked-on by a user in a given context, and that have a relatively high bid amount compared to other available ads. To this end, a method is disclosed herein for selecting a slate of ads to be displayed so as to optimize revenue generation. However, before delving into the method, a number of associated definitions and concepts are described.
An ad (a) is defined to have a content (c). The ad (a) is also defined to have a bid (b) that is linked to a budget (B). Therefore, the ad (a) can be represented as a=(b,B,c). Also, the bid of an ad (a) is referred to as ba.
A context (x) is defined generally as every bit of information which is available and helpful in predicting which ad to display. The context (x) may include (but is not limited to): 1) a query by a user, 2) past queries by the same user, 3) a content (c) of the available ads, 4) a location of the user, 5) past purchases by the user, 6) a time of day/week/month/year, and/or 7) a set of ads available. The context (x) may be represented in a number of forms. For example, the context (x) may be represented as a vector of bits which encode the context information. However, it should be understood that the methods described herein are equally applicable to any context (x), regardless of the form in which the context (x) is represented.
A policy (π) is defined as a function on the context (x) that orders ads. More specifically, the term πi(x) represents the ad (ai) that is placed by the policy (π) at the i-th position in the ordering of ads, when the policy (π) is applied to the context (x). In one embodiment, the policy (π) is also defined to determine how many ads are to be displayed. However, it should be understood that in other embodiments the policy (π) is not required to determine how many ads are to be displayed.
Each ad has an associated ad revenue (r) when clicked-on by a user. The ads are ordered a1, . . . , an, by the policy (π) applied to the context (x), with a revenue for the i-th ad of ri(x,π) for clicking on ad (ai). The revenue ri(x,π) for clicking on ad (ai) is upper bounded by the bid amount (bi) for ad (ai). Also, as described below in a method for pricing a user-selected ad, the revenue ri(x,π) for clicking on ad (ai) is a function of the other ads in the displayed slate of ads, and is not dependent on the bid amount (bi) for ad (ai), although it is capped by the bid amount (bi) for ad (ai).
In a process of selecting a slate of ads for display, a current context (x) is drawn from an unknown distribution D. The context (x) includes the set of available ads {a}, represented as Ax. A policy (π) is used to order the ads in Ax. The slate of ads to be displayed is selected from the beginning of the ordered ads in Ax. A set of user clicks (c1, . . . , cn) are received. The set of user clicks (c1, . . . , cn) respectively correspond to the ordered set of ads (a1, . . . , an). Also, the set of user clicks (c1, . . . , cn) is drawn according to some unknown distribution (P|x, a1, . . . , an). Each user click variable (ci) can have a state of 1 or 0, wherein the state of a user click variable (c1) is 1 if the user clicks on the ad (ai) at position (i) in the ordered set of ads (a1, . . . , an), and 0 otherwise. Because a limited number of ad spaces are available in a given display, i.e., in a given ad slate, only a limited number of ads at the beginning of the ordered set of ads (a1, . . . , an) will be displayed at a given time. The state of the user click variable (ci) for each non-displayed ad is 0. The revenue generated by each ad in the displayed slate of ads equals ri(x,π) if ci=1, and equals 0 if ci=0.
An expected revenue (ERπ) of a given policy (π) is represented as shown in Equation 1, wherein (Ex˜D) is an expectation that a given context (x) is drawn from some distribution D, wherein P(ci=1|x,a1, . . . ,an) is a probability that a given ad (ai) is clicked by a user in the given context (x), and wherein ri(x,π) is a revenue generated by the given ad (ai) when clicked on in the displayed slate of ads as ordered by the policy (π) operating on the given context (x). It is desirable to maximize the expected revenue (ERπ). Therefore, an objective is to optimize a policy (π) that will maximize the expected revenue (ERπ).
Due to the difficulty associated with directly estimating the click-through-rate (CTR) probability for a given ad, particularly when the CTR probability is context dependent and ad display position dependent, it is of interest to have a method for optimizing the policy (π) so as to maximize the expected revenue (ERπ) without requiring a direct, i.e., explicit, evaluation of a policy (π). To this end, methods are disclosed herein to enable optimization of an ad ranking/pricing policy (π), with regard to revenue generation, without requiring explicit evaluation of a policy (π).
A first consideration in separating CTR probability estimation from policy (π) optimization is economics. Each policy (π) has an associated implicit generalized second price auction. The implicit generalized second price auction is defined as follows. For application of an arbitrary policy (π) to a given context (x) so as to place an ad (ai) in the i-th position, a financial reward is determined for a click on the ad (ai). First, the bid (bi) of ad (ai) is altered to a bid (bi′), thereby defining a perturbation of the context (x), which is represented as z(x,a,bi′). For example, if x={u,{a}}, where (u) denotes other context, and {a=(b,B,c)} is a set of ads, then xa′b′{u,{a}}, where a′=(b′,B,c) for the ad ai=a′. In other words, the context (xa′b′) is the same as the context (x) except that the bid of ad (ai) is changed from (bi) to (bi′). Second, the implicit generalized second price auction is defined by the relationship shown in Equation 2. In other words, the revenue (ri) generated by a click on ad (ai) is the value of the minimal bid for ad (ai) that would maintain the ad (ai) in the i-th position in the ad ordering as generated by applying the policy (π) to the context (x).
r
i(x,π)=min{b:πi(xa
To maintain incentive compatibility in the case of a single ad to be displayed, it is stipulated that the “winning” ad be monotonic with respect to the bid of the “winning” ad. In other words, if πi(x)=ai, it is required that for all bids b′>bai, either πi(xaib′)=ai, or πj(xaib′)=ai for j<i. Restated, in an implicit generalized second price auction, the smallest possible bid (bi) for a click on ad (ai) is charged such that the ad (ai) can maintain its position (i) under the policy (π) as applied to the context (x), when all other variables except for the bid (bi) are held constant in the context (x). The implicit generalized second price auction ensures that the payoff (ri) for the click on ad (ai) does not depend on the actual bid (bi), and that the payoff (ri) is no larger than the actual bid (bi). Also, when only one ad is displayed, the implicit generalized second price auction is incentive compatible.
To facilitate optimization of a policy to maximize revenue, a parameterized policy πθ(x) is defined to include a tuning parameter θ. The expected revenue (ERπθ) for the parameterized policy is shown in Equation 3. In order to find the parameter θ to optimize the total revenue (ERπθ), it is only necessary to have a good estimate of the position/context/user dependent CTR probability P(ci=1|x,a1, . . . ,an) for each position (i) and context (x, a1, . . . , an).
CTR prediction can be performed using counting-based techniques or machine learning-based techniques. When the amount of data is very large, and the context is small, the CTR probability may be estimated using the relative counts of events, such as shown in Equation 4. However, estimating CTR probability based on the relative counts of events breaks down quickly as the context (x) size increases. One approach for extending the ability to estimate the CTR probability based on the relative counts of events is to omit some context. For example, conditioning the CTR probability on just (x,ai,i) may extend the ability to estimate the CTR probability based on the relative counts of events. However, when the context becomes sufficiently large, machine learning-based techniques are needed to estimate the CTR probability.
Machine learning is a way of using past observations to predict future behavior. For example, a given ad may have been previously displayed in a particular context, and the given ad was either clicked or not. This data about the previously displayed ad can be used to predict whether a similar future ad in a similar future context will be clicked or not. In one embodiment, machine learning-based techniques for estimating the CTR probability utilize a proper scoring function defined as a loss function for which an optimizer of the loss is the probability of an event. Two types of proper scoring functions include log loss and squared loss. In one embodiment, a CTR predictor is found by creating examples ((x,i),ci), and then optimizing the prediction of squared loss over some architecture. Given CTR estimates, a policy (π) is learned by optimizing Equation 3 over θ. In a custom learning algorithm, Equation 3 may be optimized by a straightforward gradient descent application.
In one embodiment, a new policy (π′) created after estimating CTR is different from the policy (π) which was used to collect data for the CTR estimate. Therefore, in this embodiment, the “test data” for the CTR predictor is drawn from a different distribution than the “training data.” In one embodiment, the difference between “test data” and “training data” is dealt with by constraining the optimization over the new policy (π′) so that it cannot differ greatly from the policy (π) used to generate the samples for the CTR predictor. In one embodiment, an iterative process for policy (π) optimization to maximize revenue includes:
An inherent difficulty in policy learning, is that the new policy (π′) includes a bias that results from the previous policy's (π) influence on the data collected. For example, if a previous policy (π) chooses to not display an ad (ai) in some context (x), then the information needed to decide whether of not the ad (ai) is good in the context (x) is missing. Methods are described below for counteracting such bias in policy learning. In particular, a method is disclosed for systematically exploring ad-context pairs. More specifically, when data is gathered, the method uses small deviations from the current policy (π) to explore likely alternative ads of potentially good quality. Then, when learning a new policy (π′) on this gathered data, the set of possible explorations and their probability or frequency is explicitly taken into account in order to learn the new policy (π′). This method functions to yield a better ad placement policy so as to improve revenue and relevance of displayed ads.
In one embodiment, a new policy is learned by reordering ads in an ad sequence generated by an existing policy. Consider that (πctr) represents an existing policy learned via earlier techniques. Then, consider that (π′(x,πctr(x)) represents a randomized policy that sometimes swaps an adjacent pair of ads in an ad sequence generated by the existing policy (πctr), when applied to context (x). Click data associated with display of the ad sequence as modified by the randomized policy (π′(x,πctr(x)) is collected. From this collected click data, a new policy (π(x,πctr(x))) is learned, which swaps up to one pair of adjacent ads. An expected revenue (ERπ) for the new policy is shown in Equation 5.
In Equation 5, the term Eci,π′(x)|x represents an expectation over decisions made by an exploration policy (π′) and click outcomes for the displayed ad, conditioned on context features. The term (ci) represents whether (and which) ads are clicked on in the i-th display event. The term I(π′(x,πctr(x))=π(x,πctr(x))) represents the value 1 if the exploration policy (π′) chooses the same action as the policy (π), and 0 otherwise. The term Pr(π′(x,πctr(x))=π(x,πctr(x))|x) represents the probability that the exploration policy (π′) chooses the same action as the evaluated policy (π). If a new policy is sought by making small modifications to an existing policy, such as randomly swapping an adjacent pair of ads, then the term Pr(π′(x,πctr(x))=π(x,πctr(x))|x) can be reasonably large.
It should be understood that the method of randomly swapping an adjacent pair of ads in a policy-generated ad sequence, as a means for exploring a new policy, is provided by way of example. In other words, exploration of new policies for ordering of ads to optimize revenue generation can be performed in many different ways. However, it should be noted that exploration of a new policy based on a minor modification of an existing policy allows the exploration to be constrained over a manageable parameter space, such that a performance (with respect to revenue generation) of the new policy can be meaningfully evaluated against a performance of the existing policy. If the new policy is determined to provide better revenue generation performance than the existing policy, then the existing policy is replaced by the new policy, and the “incremental” exploration continues based on the ad ordering as generated by the new policy.
In the method of
The method continues with an operation 203 for displaying a top number of the exploratory ordering of advertisements. The top number corresponds to a number of available advertisement display spaces. The method further includes an operation 205 for collecting click data associated with display of the exploratory ordering of advertisements. Then, based on the collected click data, an operation 207 is performed to evaluate a revenue generation capability of a new policy. In one embodiment, the method includes an operation for comparing the revenue generation capability of the exploration policy to a revenue generation capability of the existing policy. If the revenue generation capability of the exploration policy is greater than the revenue generation capability of the existing policy, the existing policy is replaced by the exploration policy.
When a new advertisement is inserted into the population of available advertisements, there is little to no information available as whether or not the new advertisement is capable of generating revenue. Therefore, it is desirable to have the new advertisement inserted into a displayed slate of advertisements in an exploratory manner to gather some data as to whether or not the new advertisement is capable of generating revenue. However, insertion of a new advertisement should be done in a manner that takes into account a probability that the particular new advertisement is inserted. For example, an advertisement that is inserted once and gets clicked on once should not necessarily be treated in the same manner as an advertisement that gets inserted multiple times and gets clicked on once.
A technique is disclosed herein for weighting each test advertisement (i.e., a new advertisement that is being explored) by an inverse of a probability that the test advertisement is inserted for exploration. In other words, the weighting of a given test advertisement is equal to [1/(probability that the given test advertisement is inserted)]. When a test advertisement is inserted, a “click performance” of the test advertisement is adjusted by the weighting of the test advertisement. In one embodiment, the “click performance” of the test advertisement for a given insertion instance, prior to weighting, evaluates to 1 if the test ad is clicked on, and 0 otherwise.
The method also includes an operation 303 for selecting a test advertisement for substitution into the generated slate of advertisements. The test advertisement is selected from a set of test advertisements. The set of test advertisements includes test advertisements that are related to the current context and that have insufficient click performance data within the current context. In one embodiment, a probability distribution of selection is applied over the test advertisements in the set of test advertisements. In this embodiment, the test advertisement substituted into the generated slate of advertisements is selected based on the applied probability distribution of selection. In one version of this embodiment, the probability distribution of selection is a flat distribution, such that each test advertisement has an equal probability of being selected for substitution into the generated slate of advertisements for display. In another version of this embodiment, the probability distribution of selection is a distribution weighted by a relevance of each test advertisement to the current context, such that test advertisements that are more relevant to the current context have a higher likelihood of being selected for substitution into the generated slate of advertisements for display.
The method further includes an operation 305 for substituting the selected test advertisement into the generated slate of advertisements. In one embodiment, the selected test advertisement is substituted into the generated slate of advertisements at a random advertisement display location. In another embodiment, the selected test advertisement is substituted into the generated slate of advertisements at a high-performance advertisement display location, i.e., at an advertisement display location that has a demonstrated high click rate. The method also includes an operation 307 for recording a click performance of the substituted test advertisement.
In an operation 309, a weighting of the substituted test advertisement is adjusted based on the recorded click performance. The weighting of the substituted test advertisement influences a probability that the substituted test advertisement will be re-selected for substitution into another generated slate of advertisements. In one embodiment, upon a click on the substituted test advertisement, a revenue amount generated by the test advertisement is multiplicatively adjusted by an inverse of a probability that the substituted test advertisement was selected for substitution into the generated slate of advertisements. Therefore, the revenue generated by a test advertisement is exaggerated for the purpose of promoting advancement of the test advertisement within the general population of advertisements.
In one embodiment, the method of
With the above embodiments in mind, it should be understood that the invention may employ various computer-implemented operations involving data stored in computer systems. These operations are those requiring physical manipulation of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. Further, the manipulations performed are often referred to in terms, such as producing, identifying, determining, or comparing.
The invention can also be embodied as computer readable code on a computer readable medium. The computer readable medium is any data storage device that can store data which can be thereafter read by a computer system. Examples of the computer readable medium include hard drives, network attached storage (NAS), read-only memory, random-access memory, CD-ROMs, CD-Rs, CD-RWs, magnetic tapes, and other optical and non-optical data storage devices. The computer readable medium can also be distributed over a network coupled computer system so that the computer readable code is stored and executed in a distributed fashion.
Any of the operations described herein that form part of the invention are useful machine operations. The invention also relates to a device or an apparatus for performing these operations. The apparatus may be specially constructed for the required purposes, or it may be a general purpose computer selectively activated or configured by a computer program stored in the computer. In particular, various general purpose machines may be used with computer programs written in accordance with the teachings herein, or it may be more convenient to construct a more specialized apparatus to perform the required operations.
The above described invention may be practiced with other computer system configurations including hand-held devices, microprocessor systems, microprocessor-based or programmable consumer electronics, minicomputers, mainframe computers and the like. Although the foregoing invention has been described in some detail for purposes of clarity of understanding, it will be apparent that certain changes and modifications may be practiced within the scope of the appended claims. Accordingly, the present embodiments are to be considered as illustrative and not restrictive, and the invention is not to be limited to the details given herein, but may be modified within the scope and equivalents of the appended claims. In the claims, elements and/or steps do not imply any particular order of operation, unless explicitly stated in the claims.