This invention relates to information management.
A website owner may find it useful to understand properties of visitors to the website. For example, the demographics of visitors to the website may be useful in selecting advertisements targeted to a particular portion of the website visitors. Some conventional systems use a panel-based approach in an attempt to acquire demographic information about website visitors. Individuals are invited to join a panel and software is installed on their computers, which monitors which websites they visit. The panelists are asked to provide demographic information. Accordingly, the information collected can be used to determine an estimated demographic for the visitors to certain websites. The panel-based approach might not provide useful information for infrequently visited websites. A survey-based approach has also been used. A survey can be placed on a given website soliciting visitors to provide their demographic information. However, it can be difficult to place surveys across a large number of websites, to ensure accurate visitor responses and to prevent spam attacks on surveys to bias answers. Further, response rates are generally low. Another approach can estimate demographics of website visitors using information known about persons living in a geographic location associated with an IP address of a visitor to the website.
This invention relates to information management. In general, in one aspect, the invention features a computer implemented method, system, and computer readable medium having instructions encoded thereon, which, when executed by a processor, cause the processor to perform operations, for inferring destination scores for a set of web destinations. A set of traversals indicating visits to a set of web destinations are received. The set of traversals includes scored and unscored traversals, where a scored traversal is associated with a known score of at least one visitor property of a visitor associated with the traversal. Initial destination scores of the at least one visitor property for the web destinations visited by the scored traversals are inferred based on the known scores of the scored traversals. Initial scores for the at least one visitor property for the unscored traversals are estimated based on the initial destinations scores. Revised destination scores for the web destinations visited by the scored traversals and initial destination scores for the web destinations only visited by the unscored traversals are inferred based on the known scores of the scored traversals and the initial scores of the unscored traversals. Revised scores for the unscored traversals are estimated based on the revised destination scores for the web destinations visited by the scored traversals and the initial destination scores for the web destinations only visited by the unscored traversals. Revised destination scores for all of the web destinations are inferred based on the known scores of the scored traversals and the revised scores of the unscored traversals. Multiple iterations of the last two steps above are performed.
Implementations of the invention can include one or more of the following features. Iterations of the last two steps can be performed until the estimated revised scores of the unscored traversals stabilize. A revised score can stabilize if the root mean square difference between the score for two consecutive iterations is less than a predetermined threshold value. Inferring a destination score of the at least one visitor property for the web destinations based on the known scores of the scored traversals and the revised scores of the unscored traversals can include inferring a destination score based on the scores of the set of traversals using an expectation-maximization algorithm. In one example, the at least one visitor property is a visitor demographic property.
In general, in another aspect, the invention features a computer implemented method including the following steps: (a) receiving a set of traversals indicating visits to a set of web destinations, the set of traversals including scored and unscored traversals where a scored traversal is associated with a score of at least one visitor property of a visitor associated with the traversal; (b) determining initial scores for the unscored traversals; (c) determining destination scores for the web destinations based on the scores for the set of traversals; (d) rescaling the determined destination scores; (e) determining revised traversal scores for the unscored traversals based on the rescaled_destination scores; and (f) rescaling the revised traversal scores.
Implementations of the invention can include one or more of the following features. The method can further include: (g) determining if the revised traversal scores have stabilized; and (h) if the revised traversal scores have not stabilized, then repeating steps (c) through (f) until the revised traversal scores have stabilized. In one example, the steps (c) and (e) above are performed by an algorithm that infers the destination and traversals scores by imputing values for a set of common latent variables.
In one implementation, rescaling the determined destination scores can include linearly rescaling the destination scores to adjust the mean and variance of the determined destination scores when computed from the unscored traversals to substantially equal the mean and variance of the destination score when computed from the scored traversals. In one implementation, rescaling the revised traversals scores can include linearly rescaling the traversals scores to adjust the mean of the revised traversals scores attributed to the unscored traversals to that of the traversal scores attributed to the scored traversals, while increasing the variance of the revised scores attributed to the unscored traversals.
Implementations of the invention can realize none, one or more of the following advantages. An estimate of a visitor property, e.g., a visitor demographic, can be estimated for a web destination regardless of the popularity of the web destination. As such, a broader range of web destinations can now determine demographics of their visitor base, which information can be helpful in shaping the content of their web destination, including advertisements displayed along with the content. Additionally, accurate demographics can be determined for web destinations while maintaining visitor privacy.
The details of one or more embodiments of the invention are set forth in the accompanying drawings and the description below. Other features, objects, and advantages of the invention will be apparent from the description and drawings, and from the claims.
Like reference symbols in the various drawings indicate like elements.
Techniques, computer program products, methods and systems for inferring a visitor property, for example, a visitor demographic, for a visitor to a web destination are described. A web destination refers to a web experience, indexed and accessed by a distinct URL, which can be presented to a user through a web browser on a network connected computer. A web experience can refer to a web page, a set of associated web pages, a video presentation, or an interactive game or process. A web destination can also be accessed and/or interacted with through another software application or on another device. By way of illustrative example, a web site such as www.google.com can be a web destination. As another example, a piece of content such as an advertisement or a video accessible on the video website www.youtube.com, or embedded in a third party site or application, can be a web destination.
A “traversal”, as the term is used herein, refers to a record of one or more web destinations visited during a particular web browsing session, presumably by one visitor. For example, if a particular person browsing the Internet visited five web destinations during a particular web browsing session, a record of the five web destinations visited associated with that visitor is referred to in the aggregate as a “traversal”. If a particular visitor property is known about the visitor, for example, if the visitor property is “gender” and it is known the visitor is a male, then the traversal is referred to herein as a “scored” traversal with respect to that property. That is, a score of 1.0 male is accorded to the particular traversal. A scored traversal can be “unscored” for a second visitor property. For example, if a second visitor property is “age”, and the age of the male visitor is not known, then with respect to the age property, the traversal is unscored.
A web destination owner may wish to determine an estimate of a score for a visitor property for the web destination. For example, if the visitor property is gender, the web destination owner or any other interested party, may wish to determine what percentage of visitors to the web destination are male. The percentage of visitors to the web destination that are male is the “destination score” for that particular web destination for the given visitor property. Techniques, methods, computer program products and systems are described herein for inferring (or estimating) a destination score for a web destination for a given visitor property based on a set of traversals including scored and unscored traversals.
For illustrative purposes, the techniques, computer program products, methods and systems described herein shall refer to one or more inferences of demographic information, however, the same techniques, computer program products, methods and systems can be used to infer other visitor properties. For example, visitor behavioral characteristics can be inferred.
Referring now to
The table 100 includes multiple Traversals A-E 102a-e along the vertical axis and multiple Web destinations A-F 104a-f along the horizontal axis. For illustrative purposes, the visitor property to be determined with respect to the Web destinations A-F is gender. The Traversal A 102a has an associated scored property of “male” (or 1.0 male) and the Traversal B 102b has an associated scored property of “female” (or 0.0 male). The Traversals C-E 102c-e in this example are unscored with respect to the gender property.
The scored traversals, i.e., Traversals A 102a and B 102b can be used to determine an estimated destination score for at least those web destinations visited by Traversals A and B. That is, the Traversal A 102a includes visits 106a-b to the Web destinations A 104a and C 104c, respectively. The Traversal B 102b includes visits 108a-b to the Web destinations B 104b and C 104c, respectively. The estimated destination scores, in this example, for the Web destinations A-C 104a-c can be used to determine estimated scores for the Traversals C-E 102c-e. All of the traversal scores, i.e., the scores for Traversals A-E 102a-e can then be used to estimate destination scores for Web destinations A-F 104a-f. In this manner, estimated scores for all of the web destinations depicted in the table 100 can be estimated. Depending on the volume of data and the desired level of accuracy, different algorithms can be employed to determine the estimated destination scores. However, the principal remains the same; that is, a set of traversals including scored and unscored traversals can be used to determine estimated destination scores for a set of one or more web destinations associated with the set of traversals.
By way of illustration, a simple example is shown in
The Traversals C-E 102c-e all visited the Web destination C 104c (50% male). However, in this example, the Web destination C 104c can not be used to conclusively determine the estimated gender property of the Traversals C-E 102c-e. In one implementation, the estimated gender property of the Traversal E 102e is undecided and initially scored as 0.50.
The gender property of the Web destinations D-F 104d-f has not yet been estimated, based on the Traversals A 102a and B 102b, as neither traversal visited these web destinations. However, now that estimated scores are known for the Traversals C-E 102c-e, the Traversals C-E 102c-e can be used to estimate the gender property of the Web destinations D-F 104d-f. For example, the Traversal C 102c has an estimated property of “male” and the Traversal C 102c includes visits to the Web destinations D 104d and F 104f. The Traversal D 102d has an estimated property of “female” and includes visits to the Web destinations E 104e and F 104f. Therefore, based on the estimated gender properties of the Traversals C 102c and D 102d, the scores of the Web destinations D-F 104d-f can be estimated as 100% male, 0% male, and 50% male, respectively.
The Traversal E 102e includes visits to the Web destinations C 104c, E 104e, and F 104f. As previously described, the gender property of the Web destination C 104c (50% male) is inconclusive/insufficient in determining the estimated gender property of the Traversal E 102e as is the gender property of the Web destination F 104f (50% male). However, the visit to the Web destination E 104e (0% male) by the Traversal E 102e suggests that the Traversal E has an estimated gender property of “female.”
The process described above is one iteration to determine a first estimate of destination scores for the Web destinations A-F 104a-f. However, additional iterations of the process can be performed to further refine the results and improve accuracy of the results. For example, the gender properties of the Web destinations D-F 104d-f can be recalculated based on the additional and/or recalculated properties of the Traversals A-E 102a-e.
Unlike some other techniques for determining or predicting values of visitor properties for unscored traversals, the methods and systems described herein use both the information implicit in the destination scores assigned to the web destinations and in the actual visitation patterns represented by both the scored and the unscored traversals. With real-world data, many web destinations are only visited by unscored traversals (e.g., Web Destinations D-F in
For example, referring again to
The type of analysis provided by the methods and systems described herein processes unscored traversals together, rather than independently from one another. By contrast, techniques that predict values for unscored traversals in isolation are unable to use the information implicit in common visits to otherwise unscored web destinations. For example, Web Destinations D, E and F are all visited only by the unscored Traversals C-E (i.e., they are not visited by the scored Traversals A and B). The information about the visits to the Web Destinations D, E and F is unusable with a technique that predicts values for unscored traversals in isolation. For example, a technique based on assigning weights (sometimes referred to as biases) to web destinations visited by a set of scored traversals and inferring values of visitor properties for individual unscored traversals (independent of each other) on the basis of the assigned weights, does not make use of any of the available data concerning the web destinations not visited by the scored traversals, e.g., Web Destinations D-F. Similarly, techniques that attempt to determine the probability of a particular value of visitor property for a particular unscored traversal that is limited to using web destination data for only web destinations visited by scored traversals face the same limitations on their capabilities.
Referring again to
In one implementation, an expectation-maximization (EM) algorithm can be used to estimate destination scores based on a set of traversals. The EM algorithm finds maximum likelihood estimates of parameters, in this case, traversal and destination scores. The EM algorithm can be a more efficient technique when dealing with large volumes of data, than the rather simplistic algorithm described above.
Referring now to
The process 200 determines an initial traversal score for each of the traversals for a given property (step 204). In one implementation, the process 200 determines an average of the particular visitor property and assigns the average as the initial traversal score to the unscored Traversals C-E 102c-e. By way of illustrative example, the process 200 may determine from survey information that 68% of visitors to the Internet are male, and therefore assign an initial traversal score of 0.68 to the unscored Traversals C-E 102c-e. In another example, the process 200 determines an average of the scored Traversals A-B 102a-b, i.e., an average of 1.0 and 0.0 is 0.50, and assigns the average to the unscored Traversals C-E 102c-e as an initial traversal score. In another example, the process 200 assigns a previously determined default_score to the Traversals C-E 102c-e. The process 200 uses the known scores of the Traversals A-B 102a-b as the initial traversal scores of these traversals. The initial scores of the Traversals A-E 102a-e are shown in the following table. In this example, the initial scores of the Traversals C-E are based on known survey information. In this particular example, for illustrative purposes, the initial score of 0.68 is used, being the percentage of users of the Internet that are male.
The process 200 next determines destination scores based on the current traversal scores, which in the first iteration are the initial traversal scores (step 206). One example process for determining destination scores (estimates) based on the traversal scores is described in further detail below in reference to
Once the destination scores are determined, the process 200 rescales the destination scores (step 210). That is, some destination scores can be increased and others decreased. In one implementation, rescaling the determined destination scores includes linearly rescaling the values to adjust the mean and variance of the determined destination scores when computed from the unscored traversals to substantially equal the mean and variance of the destination scores when computed from the scored traversals. One example process for rescaling the destination scores is described in further detail below in reference to
Revised traversal scores are now determined based on the rescaled_destination scores (step 212). In one implementation, rescaling the revised traversal scores includes linearly rescaling the values to adjust the mean of the revised traversal scores attributed to the unscored traversals to that of the traversals scores attributed to the scored traversals, while increasing the variance of the revised scores attributed to the unscored traversals. One example process for determining revised traversal scores based on the rescaled_destination scores is described in further detail below in reference to
In a next step the process 200 rescales the traversal scores (step 206). Some traversal scores can be increased and others decreased. One example process for rescaling the traversal scores is described in further detail below in reference to
A determination is then made as to whether the traversal scores have stabilized. That is, a rescaled traversal score can be compared to the initial traversal score (or the rescaled traversal score of a previous iteration) to determine whether the traversal score has stabilized. In one implementation, a traversal score is considered to have stabilized if the RMS (root mean square) difference between the traversal scores for two consecutive iterations of the process 200 is less than 0.001.
If the traversal scores are not stabilized (“no” branch of step 214), then the process 200 loops back to step 206 and repeats steps 206 to 212 until the traversal scores stabilize. When repeated, step 206 uses the rescaled traversal scores from the previous iteration. Once the traversal scores stabilize (“yes” branch of step 214), then the process 200 can end.
In one implementation, the estimated destination scores are the rescaled destination scores calculated in the last iteration of the process 200 at step 208. In another implementation, once the traversal scores are stabilized, the stabilized traversal scores are input back into the process at step 206 and the estimated destination scores are the rescaled_destination scores determined at step 210.
Referring now to
The process 212 calculates differences between the calculated traversal score logits and the calculated average traversal score logit (step 306). The process 212 adjusts each of the traversal scores by the corresponding differences multiplied by a multiplier (step 308). For example, the process 206 can multiply the differences by a multiplier of 2.0 and adjust or add the multiplied differences to the corresponding traversals. In one implementation, the scored traversals do not change; that is, they are not rescaled nor otherwise revised throughout iterations of the algorithm.
Referring now to
Referring now to
An “a” parameter and a “b” parameter are calculated, where:
a=(2+new_t)+d_score
The a and b parameters are then used to calculated the transformed traversal score for each rescaled traversal score, where the transformed traversal score=a/(a+b).
Referring now to
Referring now to
Referring now to
An “a” parameter and a “b” parameter are calculated, where:
a=(2+new_t)+d_score
The a and b parameters are then used to calculated the transformed destination score for each rescaled_destination score, where the transformed destination score=a/(a+b).
As described above, an algorithm can be employed to fill in the missing values on the table 100 shown in
To further illustrate how the above implementation for determining estimated destination scores can be performed, one example of pseudo-code that can be used is provided below. The pseudo-code is provided for illustrative purposes, and other code can be used to implement the algorithms described above.
In the example pseudo-code set forth below the term “bin” is used. A visitor property, e.g., a demographic feature, can be viewed as falling into “bins”, where each individual visitor falls into exactly one bin for each visitor property. Gender, for example, is naturally two-binned, as all visitors are either male or female. Education can be multi-binned, for example, bin 1=no high school diploma; bin 2=high school diploma; bin 3=university degree, etc. For advertisement purposes, age, although measured in years, is typically broken into disjoint categories, for example, bin 1=less than 18 years; bin 2=18-24 years; bin 3=25-34 years, etc. The algorithm implemented using the pseudo-code below can be used for visitor properties that can be divided into bins, inferring a bin into which to assign each traversal.
The following pseudo-code shows example code for a main driver loop:
Main loop:
Initialize unscored traversals to average values across population
repeat until convergence:
Compute new destination scores
Rescale new destination scores
Normalize new destination scores across bins
Compute new traversal scores
Rescale new traversal scores
Normalize new traversal scores across bins
If RMS (root mean square) distance between new and old traversal scores is small enough,
COMPLETE
Else
Goto loop start
The following pseudo-code provides example code for calculating the destination scores:
Compute new destination scores:
For each destination, d:
For each traversal, t, containing d:
For each bin, b:
new_vertex_score(t,d,b)=vertex_score(traversal_score(t,b),destination_score(d,b))
new_destination_score(d,b)+=new_vertex_score(t,d,b))
new_destination_score(d,b)/=#(traversals containing d)
Rescale new destination scores:
For each bin, b:
For each destination, d:
average of the logit_rescaled scores for bin b is average(b),
variance of the rescaled scores is variance(b)
logit_rescaled_destination_score(d,b)=logit_new_destination_score(d,b)−average(b)
logit_rescaled_destination_score(d,b)/=variance(b)
In one implementation, at this point, the average of the logit_rescaled scores is zero, and the variance is one.
logit_rescaled_destination score(d,b)*=desired_variance(b)
logit_rescaled_destination_score(d, b)+=desired_average(b)
At this point, the average and variance have set to the desired target values.
rescaled_destination_score(d,b)=inverse_logit(logit_rescaled_destination_score(d,b)))
Normalize destination bins:
For each destination, d:
total score=0
For each bin, b:
total_score+=rescaled_destination_score(d,b)
Now the total score contains the sum of all scores. Since the scores across all bins together for each destination preferably add to 1, the algorithm makes that happen.
For each bin b:
rescaled_destination_score(d,b)/=total_score
The following pseudo-code provides example code for calculating the traversal scores:
This routine computes the same vertex scores that are computed in the destination scoring routine. At convergence, the values are the same after update.
Rescale net traversal scores:
For each bin, b:
For each traversal, t:
average of the logit rescaled scores for bin b is average(b),
logit_resealed_traversal_score(t,b)=logit_new_traversal_score(t,b)−average(b)
At this point, the average of the logit_rescaled scores is zero, and the variance is unknown.
logit_resealed_traversal_score(t,b)*=2.0;
logit_resealed_traversal_score(t,b)+=desired average(b)
At this point, the average logit traversal score has been set to the desired value, and the variance of the set of logit traversal scores has been increased. That is what is trying to be achieved in this implementation, and the traversal variance can become arbitrarily large as the process continues.
rescaled_traversal_score(t,b)=inverse_logit(logit_rescaled_traversal_score(t,b)))
Normalize traversal bins:
For each traversal, t:
total_score=0
For each bin, b:
total_score+=rescaled_traversal_score(t,b)
The total score contains the sum of all scores. Now, since the scores across all bins together for each traversal preferably add to 1, the algorithm makes that happen.
For each bin b:
rescaled_traversal_score(t,b)/=total_score
The following pseudo-code can be used to implement the process flows shown in
The function provides a contrast enhancement transform that arises from a beta distribution defined by t_score and d_score simultaneously. This function can be used in computing both the new destination scores and the new traversal scores.
vertex_score(t_score, d_score):
new_t=exp(logit(t_score))
a=(2+new_t)+d_score
b=(4+2*new_t)+(1−d_score)
return a/(a+b)
As mentioned above, the pseudo-code included herein is for illustrative purposes, and other pseudo-code and code can be used to implement the techniques, systems, processes and computer programs described herein.
In one embodiment, additional steps that preserve visitor privacy can advantageously be included. Visitor privacy can be preserved by use of anonymized data, noise introduction at the individual visitor level, or other techniques that protect the privacy of individual users that are part of a larger demographic group.
The invention and all of the functional operations described in this specification can be implemented in digital electronic circuitry, or in computer hardware, firmware, software, or in combinations of them. Apparatus of the invention can be implemented in a computer program product tangibly embodied in a machine-readable storage device for execution by a programmable processor; and method steps of the invention can be performed by a programmable processor executing a program of instructions to perform functions of the invention by operating on input data and generating output.
The invention can be implemented advantageously in one or more computer programs that are executable on a programmable system including at least one programmable processor coupled to receive data and instructions from, and to transmit data and instructions to, a data storage system, at least one input device, and at least one output device. Each computer program can be implemented in a high-level procedural or object-oriented programming language, or in assembly or machine language if desired; and in any case, the language can be a compiled or interpreted language.
Suitable processors include, by way of example, both general and special purpose microprocessors. Generally, a processor will receive instructions and data from a read-only memory and/or a random access memory. Generally, a computer will include one or more mass storage devices for storing data files; such devices include magnetic disks, such as internal hard disks and removable disks; a magneto-optical disks; and optical disks. Storage devices suitable for tangibly embodying computer program instructions and data include all forms of non-volatile memory, including by way of example semiconductor memory devices, such as EPROM, EEPROM, and flash memory devices; magnetic disks such as internal hard disks and removable disks; magneto-optical disks; and CD-ROM disks. Any of the foregoing can be supplemented by, or incorporated in, ASICs (application-specific integrated circuits).
To provide for interaction with a user, the invention can be implemented on a computer system having a display device such as a monitor or LCD screen for displaying information to the user and a keyboard and a pointing device such as a mouse or a trackball by which the user can provide input to the computer system. The computer system can be programmed to provide a graphical user interface through which computer programs interact with users.
Referring now to
The system 700 includes a processor 710, a memory 720, a storage device 730, and an input/output device 740. Each of the components 710, 720, 730, and 740 can, for example, be interconnected using a system bus 750. The processor 710 is capable of processing instructions for execution within the system 700. In one implementation, the processor 710 is a single-threaded processor. In another implementation, the processor 710 is a multi-threaded processor. The processor 710 is capable of processing instructions stored in the memory 720 or on the storage device 730 to display graphical information for a user interface on the input/output device 740. In some embodiments, a parallel processing set of systems 700 connected over a network may be employed, clustered into one or more server centers.
The memory 720 stores information within the system 700. In one implementation, the memory 720 is a computer-readable medium. In one implementation, the memory 720 is a volatile memory unit. In another implementation, the memory 720 is a non-volatile memory unit.
The storage device 730 is capable of providing mass storage for the system 700. In one implementation, the storage device 730 is a computer-readable medium. In various different implementations, the storage device 730 can, for example, include a hard disk device, an optical disk device, or some other large capacity storage device.
The input/output device 740 provides input/output operations for the system 700. In one implementation, the input/output device 740 includes a keyboard and/or pointing device. In another implementation, the input/output device 740 includes a display unit for displaying graphical user interfaces.
A number of embodiments of the invention have been described. Nevertheless, it will be understood that various modifications may be made without departing from the spirit and scope of the invention. Accordingly, other embodiments are within the scope of the following claims.
This application claims priority to in U.S. Provisional Application Ser. No. 60/970,208, entitled “Visitor Profile Modeling”, filed on Sep. 5, 2007, the entire contents of which are hereby incorporated by reference.
Number | Name | Date | Kind |
---|---|---|---|
5870744 | Sprague | Feb 1999 | A |
6041311 | Chislenko et al. | Mar 2000 | A |
6438579 | Hosken | Aug 2002 | B1 |
6681247 | Payton | Jan 2004 | B1 |
6950987 | Hargraves et al. | Sep 2005 | B1 |
7130808 | Ranka et al. | Oct 2006 | B1 |
7181412 | Fulgoni et al. | Feb 2007 | B1 |
7213032 | Mascarenhas | May 2007 | B2 |
7284008 | Henkin et al. | Oct 2007 | B2 |
7318066 | Kaufman et al. | Jan 2008 | B2 |
7406434 | Chang et al. | Jul 2008 | B1 |
7451099 | Henkin et al. | Nov 2008 | B2 |
7493655 | Brown | Feb 2009 | B2 |
7698422 | Vanderhook et al. | Apr 2010 | B2 |
7707091 | Kauffman et al. | Apr 2010 | B1 |
7734632 | Wang | Jun 2010 | B2 |
7761423 | Cohen | Jul 2010 | B1 |
7783532 | Hsu et al. | Aug 2010 | B2 |
7870021 | Mankoff | Jan 2011 | B2 |
7930285 | Abraham et al. | Apr 2011 | B2 |
8073807 | Srinivasaiah | Dec 2011 | B1 |
20020004733 | Addante | Jan 2002 | A1 |
20020123928 | Eldering et al. | Sep 2002 | A1 |
20040002943 | Merrill et al. | Jan 2004 | A1 |
20050256756 | Lam et al. | Nov 2005 | A1 |
20050267766 | Galbreath et al. | Dec 2005 | A1 |
20060106780 | Dagan | May 2006 | A1 |
20060167971 | Breiner | Jul 2006 | A1 |
20070038516 | Apple et al. | Feb 2007 | A1 |
20070073681 | Adar et al. | Mar 2007 | A1 |
20080065701 | Lindstrom et al. | Mar 2008 | A1 |
20080104225 | Zhang et al. | May 2008 | A1 |
20080120308 | Martinez et al. | May 2008 | A1 |
20080140508 | Anand et al. | Jun 2008 | A1 |
20080140524 | Anand et al. | Jun 2008 | A1 |
20080155078 | Parkkinen et al. | Jun 2008 | A1 |
20080215607 | Kaushansky et al. | Sep 2008 | A1 |
20080242279 | Ramer et al. | Oct 2008 | A1 |
20080270425 | Cotgreave | Oct 2008 | A1 |
20080275980 | Hansen | Nov 2008 | A1 |
20090029687 | Ramer et al. | Jan 2009 | A1 |
20090055139 | Agarwal et al. | Feb 2009 | A1 |
Number | Date | Country |
---|---|---|
WO2006004455 | Apr 2006 | WO |
Number | Date | Country | |
---|---|---|---|
60970208 | Sep 2007 | US |